This guide walks you through flashing the TigerScale firmware and getting your scale online for the first time.
- Quick options overview
- Option A — Web Installer (easiest)
- Option B — PlatformIO
- Option C — Arduino IDE
- Libraries
- First boot
- Updating the firmware
| Method | Skill needed | Time | Best for |
|---|---|---|---|
| A. Web Installer | Just plug USB | 60 s | Non-technical users |
| B. PlatformIO | Some CLI familiarity | 5 min | Developers, contributors |
| C. Arduino IDE | Basic Arduino knowledge | 10 min | Maker community, classic flow |
You only need one of these. Pick whichever you're comfortable with.
The TigerTag team hosts a browser-based flasher at https://tigertag-project.github.io/Tiger-Scale/.
- A Chromium-based browser : Chrome, Edge, Brave, Opera (Firefox/Safari are not supported because they lack Web Serial API)
- A USB-C or micro-USB data cable (a charge-only cable will NOT work)
- The ESP32 fully assembled with all components wired (or at least connected via USB)
- Plug your ESP32 into your computer via USB
- Open https://tigertag-project.github.io/Tiger-Scale/
- Click "Install TigerScale"
- A browser dialog asks which serial port — select your ESP32 (commonly
cu.usbserial-XXXXon macOS,COM3+on Windows,ttyUSB0on Linux) - Click "Install" and wait ~60 seconds (firmware + filesystem)
- Done — the scale will reboot and enter Setup Mode
If the installer can't find your device, see TROUBLESHOOTING.md.
The simplest path is the PlatformIO IDE extension for VS Code:
- Install VS Code
- Install the PlatformIO IDE extension from the marketplace
- Restart VS Code
Or via CLI:
pip install --user platformiogit clone https://github.com/TigerTag-Project/Tiger-Scale.git
cd Tiger-Scale
# Compile firmware (no upload yet)
pio run
# First flash — uploads firmware AND filesystem
pio run -t upload
pio run -t uploadfs
# Open the serial monitor
pio device monitorIf pio complains about USB upload speed or "Failed to verify flash chip connection", reduce upload_speed in platformio.ini (try 460800 then 230400).
Download from https://www.arduino.cc/en/software.
-
File → Preferences → "Additional Boards Manager URLs":
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json -
Tools → Board → Boards Manager → search "esp32" → install "esp32 by Espressif Systems"
- Board :
ESP32 Dev Module - Upload Speed :
460800(or921600if your USB is reliable) - Partition Scheme :
Default 4MB with spiffs - Flash Mode :
DIO - Flash Frequency :
80 MHz
Arduino IDE expects a sketch in a folder of the same name. To make it Arduino-compatible:
git clone https://github.com/TigerTag-Project/Tiger-Scale.git
cd Tiger-Scale
mkdir -p arduino/TigerScale
cp src/main.cpp arduino/TigerScale/TigerScale.inoThen File → Open → arduino/TigerScale/TigerScale.ino.
See Libraries below.
Press the upload arrow in Arduino IDE.
Arduino IDE 2.x doesn't yet have a built-in LittleFS uploader. Use one of:
- Plugin : arduino-littlefs-upload (drag-and-drop installer)
- CLI : the
mklittlefstool that ships witharduino-cli
Or simply switch to PlatformIO for this step (it handles filesystem upload natively with pio run -t uploadfs).
If you use PlatformIO, libraries are auto-resolved from platformio.ini. Skip this section.
If you use Arduino IDE, install these via Tools → Manage Libraries :
| Library | Author | Tested version |
|---|---|---|
WiFiManager |
tzapu | 2.0.16-rc.2 |
ESPAsyncWebServer |
me-no-dev | 1.2.3 |
AsyncTCP |
me-no-dev | 1.1.1 |
Adafruit SSD1306 |
Adafruit | 2.5.7 |
Adafruit GFX Library |
Adafruit | 1.11.3 |
HX711 |
bogde | 0.7.5 |
MFRC522 |
miguelbalboa | 1.4.10 |
ArduinoJson |
Benoit Blanchon | 6.21.5 (NOT v7) |
ESP32Servo |
madhephaestus | 3.0.5 |
When the ESP32 boots for the first time (or after a factory reset), it has no Wi-Fi credentials and starts an Access Point.
The OLED displays:
CONFIG MODE
Connect to WiFi
Setup-TigerScale-XXXX
On your phone or computer, join the Wi-Fi network Setup-TigerScale-XXXX (no password).
Most operating systems open the captive portal automatically. If not, browse to http://192.168.4.1.
You'll see a list of nearby Wi-Fi networks. Select yours and enter the password.
The scale automatically reconnects to your home Wi-Fi. The OLED now shows:
READY! Open browser:
192.168.X.Y
tigerscale-XXXX.local
WiFi: YourNetwork
On any device on the same network, open http://tigerscale-XXXX.local (replace XXXX with your scale's MAC suffix).
If .local resolution doesn't work (some routers / corporate networks block mDNS), use the IP directly.
A login modal appears. Choose:
- 🔵 Continue with Google — opens a popup, you grant access, done
- 📧 Email + password — for users with a TigerTag email account
Once logged in, the modal closes and you see the main UI : weight, RFID UID, calibration wizard, account info.
If this is a new device, run the Calibration wizard (Section "✨ Calibration" in the UI):
- Empty the platform → click Step 2 →
- Place a known-weight masterspool (BambuLab, R3D, or custom) → confirm
- The scale stores the calibration factor
Place a TigerTagged spool on the platform. The RFID readers detect the tags within 1-2 seconds. The OLED displays the spool metadata (manufacturer, material, color) and the net weight.
Re-open https://tigertag-project.github.io/Tiger-Scale/ and click Install again. Your settings (Wi-Fi, Firebase, calibration) are preserved across firmware updates.
git pull
pio run -t upload
pio run -t uploadfs # only if data/ changedNot yet supported. Planned for v2.1.