Update your AirCube from the browser with AirCube Web. It talks to the cube over USB using the Web Serial API, so there is nothing to install -- and once you are connected you also get live readings, the LED brightness control and your history, the same as the desktop app.
- Browser: Google Chrome or Microsoft Edge (Safari and Firefox do not support Web Serial)
- OS: Windows, macOS, Linux, or ChromeOS
- Cable: A data-capable USB-C cable (charge-only cables won't work)
Go to stuckatprototype.github.io/AirCube.
- Plug the USB-C cable into your AirCube and your computer.
- Close anything else that might be holding the serial port (AirCube Tray, Arduino Serial Monitor,
idf.py monitor). - Click + Connect and pick your AirCube from the browser's device prompt. It appears as "USB JTAG/serial debug unit" or similar.
With one cube connected the app opens straight to its page and starts showing live readings.
- Open the ⋯ menu on the device page and choose Flash firmware. (You can also reach it from Settings → Firmware.)
- Pick the version you want. The newest release is marked (latest).
- Leave the flash offset at 0x0 (merged release image).
- Click Flash and watch the log. It takes about 30 seconds.
The cube reboots itself when the write finishes and reconnects automatically. The LED should light up green after a few seconds.
Your settings -- brightness level and Zigbee pairing -- are preserved across firmware updates.
If you built the firmware yourself with idf.py build, you have two options:
- Flash
build/AirCube.bin(the app only) at offset 0x10000. - Or run
esptool merge-binfirst and flash the merged image at 0x0.
Use the Local .bin button in the flash dialog to pick the file, then choose the matching offset.
- No device in the connect dialog: Make sure another app isn't using the serial port. Try a different USB port or cable. On some USB-C cables, flipping the connector helps.
- Browser not supported: Use Chrome or Edge on a desktop OS. Safari and Firefox do not implement Web Serial, and iOS browsers cannot access USB devices at all.
- "Failed to open serial port": Another tab or application already has it. Close AirCube Tray and any serial monitors, then click Refresh in the dialog.
- Flashing fails partway: Unplug the AirCube, plug it back in, and try again. The bootloader is only reached at reset, so a fresh power cycle usually clears it.
- Charge-only cable: Some USB-C cables carry power but no data. Use the same cable that works with the desktop app.
- Linux: If the device never appears, your user may need permission for the ESP USB device. Add a udev rule for
303a:1001or add yourself to thedialoutgroup, then replug. - The cube doesn't reconnect after flashing: Unplug and replug the USB-C cable, then click Connect again.
- AirCube Tray -- the Windows desktop app, which can also flash over USB.
- ESP Launchpad -- Espressif's generic web flasher. Use the DIY tab, add the
.binfrom Releases, and set the flash address to0x0. - esptool --
esptool --chip esp32h2 -p PORT write-flash 0x0 AirCube_firmware_vX.Y.Z.bin
After it reboots, the AirCube LED lights up and begins showing air quality colors within a few seconds. The gas sensor needs about 3 minutes to warm up before readings stabilize.