Spool Inspector - User Guide
How It Works
- Place a spool on the load cell (weight > 50g triggers detection)
- Wait for stability — weight must settle within ±5g for 3 seconds
- Camera autofocuses the OV5640 and scans for a QR code (up to 20 attempts)
- Results reported — QR payload + weight shown on OLED, serial, web UI, and optional REST API
- Remove spool — station returns to idle (weight < 20g), ready for the next spool
After the first successful QR scan, the focus position is remembered for the session — subsequent spools skip autofocus and scan immediately.
First-Time Setup
1. Flash the Firmware
Before using the Spool Inspector for the first time, you need to load the firmware onto the ESP32S3.
- Connect the Spool Inspector to your computer via USB-C
- Go to 3dspooltracker.com and open the firmware flasher
- Click Connect, select the ESP32S3 serial port, and follow the on-screen prompts
- The flasher will install the latest firmware automatically — this takes about a minute
Note: The web flasher works in Chrome and Edge. If your device isn't detected, make sure you have the correct USB drivers installed for the ESP32S3.
Once flashing is complete, the OLED display should turn on and show the idle screen.
2. Tare the Scale
Remove everything from the scale and press the Tare button (left button) to zero the scale. You can also send t via serial.
3. Calibrate
Place exactly 100g on the scale, then short-press the Calibrate button (right button) to start the 3-step calibration process. Follow the OLED prompts.
4. WiFi Setup (Optional)
Long-press the Tare button (3 seconds) to start the captive portal:
- Connect to the
SpoolInspector-SetupWiFi network from your phone or computer - A captive portal page opens automatically (or browse to
192.168.4.1) - Select your WiFi network and enter the password
- Optionally configure the API URL and API key for integration with 3dspooltracker.com
- Press Save & Connect — the device tests the connection and shows the result
- Long-press Tare again to exit AP mode
Credentials are stored in flash and persist across reboots.
Button Reference
| Button | Short Press | Long Press (3s) | |--------|------------|-----------------| | Left (Tare) | Tare / zero the scale | Toggle WiFi AP mode | | Right (Cal) | Calibration step | Toggle New Spool mode |
OLED Display
+--------------------------+
| 1234 g [WiFi] | Weight + WiFi icon
| 43.5 oz / 2.72 lbs | Unit conversions
|--------------------------|
| 192.168.1.123 | IP address or scan status
| Place spool | Current state
|--------------------------|
| TARE CAL | Button labels
+--------------------------+
Web Interface
When connected to WiFi, the Spool Inspector runs a web server on port 80. The IP address is shown on the OLED display.
Features
- Real-time weight display in grams, ounces, and pounds
- Station state and QR code payload
- Live camera view with capture and streaming modes
- Camera controls — brightness, contrast, and AE level sliders
- Save Preset — persist camera settings to flash
- Reset Defaults — clear saved settings, return to auto
New Spool Mode
Long-press the Calibrate button to toggle New Spool mode (indicated by [NEW] on the OLED). When active, the API receives a calibration payload with the current gross weight, which your tracking system can use as the baseline for that spool — whether it's brand new or a partial one being added to the system. Auto-disables after one scan.
Serial Commands
Connect via USB at 115200 baud for advanced controls:
| Command | Action |
|---------|--------|
| t | Tare (zero the scale) |
| c | Calibrate (place 100g first) |
| r | Show raw ADC reading |
| a | Auto-focus sweep (find and save optimal focus) |
| d | Delete saved calibration |
| w | Show WiFi status and IP |
| f | Forget saved WiFi credentials |
| h | Show help |
REST API Integration
When WiFi is connected and an API URL is configured, the device POSTs scan results automatically.
Weight update (POST /api/device/weigh):
{"spoolId": "QR_PAYLOAD", "weightGross": 496.0}
New spool calibration (POST /api/device/calibrate):
{"spoolId": "QR_PAYLOAD", "grossWeight": 1100.0}
An X-API-Key header is included if an API key is configured.
Troubleshooting
Scale not reading correctly
- Ensure the load cell is properly mounted and nothing is obstructing it
- Re-tare with an empty scale
- Re-calibrate with a known 100g weight
QR code not scanning
- Ensure adequate lighting
- Position the QR code facing the camera (about 3-4 inches away)
- Try the auto-focus sweep via serial command
a - Adjust camera brightness/contrast via the web interface
WiFi not connecting
- Ensure you're within range of your WiFi network
- Verify the password is correct
- Send
fvia serial to forget credentials and try again - Check that your router supports 2.4GHz (ESP32 does not support 5GHz)