Sleep Lamp
Flash your Sleep Lamp firmware straight from the browser. Plug in, pick a port, done — no drivers, no IDE, no command line.
Supported hardware
How to flash
-
01
Connect your board
Plug the Sleep Lamp board into your computer with a data‑capable USB‑C cable. Charge‑only cables won't work.
-
02
Click Flash Firmware
Use the button above in Chrome or Edge. A browser panel will ask you to pick a serial port.
-
03
Select the port
Choose the entry that matches your board — usually named
USB SerialorCP210x/CH340. -
04
Wait for flashing to finish
Keep the board connected until the progress bar completes. This takes 30–90 seconds.
-
05
Reboot and enjoy
The board restarts automatically once flashing finishes. Sleep Lamp is ready to use.
Before you flash
- Flashing erases existing firmware on the board. Back up anything you need first.
- Don't unplug the USB cable or close this tab while flashing is in progress.
- Only one program can use the serial port at a time — close the Arduino IDE / Serial Monitor before flashing.
Browser & driver requirements
Supported browsers
Sleep Lamp's flasher uses Web Serial, supported on:
- Google Chrome 89+ (Windows, macOS, Linux, ChromeOS)
- Microsoft Edge 89+ (Windows, macOS)
Safari, Firefox, and all mobile browsers are not supported — Web Serial isn't available there.
USB drivers
Most Sleep Lamp boards use a CP2102 or CH340 USB‑to‑serial chip. If the board doesn't show up as a serial port:
Troubleshooting
“Failed to download manifest”
This means the browser can't reach manifest.json. Check that:
- The file is named exactly
manifest.jsonand sits next toindex.html. - GitHub Pages has finished deploying (check the Actions tab for a green checkmark).
- You're opening the Pages URL, not the raw GitHub file view.
No serial port shows up
- Try a different USB cable — many cables are charge‑only.
- Install the CP210x or CH340 driver (see above), then reconnect the board.
- Close any other program (Arduino IDE, PlatformIO, Serial Monitor) that might be holding the port open.
- Try a different USB port, ideally directly on the computer rather than through a hub.
Flashing fails partway through
- Hold the board's BOOT button while clicking Flash Firmware, release once flashing starts.
- Lower the USB cable length — long or poor‑quality cables cause dropouts.
- Try a different USB port or computer to rule out a power issue.
GitHub Pages shows a 404
- Confirm Pages is enabled under Settings → Pages and points at the correct branch/folder.
index.htmlmust be in the repository root (or the folder you selected as the Pages source).- Wait 1–2 minutes after enabling Pages — the first deploy takes a moment.
Manually entering bootloader mode
If auto‑reset doesn't work on your specific board revision:
- Hold BOOT, tap RESET once, then release BOOT.
- The board is now in download mode — click Flash Firmware while it stays connected.
Verifying BIN files are accessible online
Open each file's URL directly in the browser, e.g.:
https://<username>.github.io/<repo>/firmware/sleeplamp.ino.bin
It should prompt a download or show binary data — not a 404 page.
Clearing browser cache issues
If you updated the firmware but the page still installs the old version, hard‑refresh with Ctrl/Cmd + Shift + R, or open the page in an incognito window.
Manual flashing (esptool)
If you'd rather flash from a terminal, or the web flasher isn't working on your setup:
pip install esptool
esptool.py --chip esp32s3 --port COM5 --baud 460800 write_flash ^
0x0 sleeplamp.ino.bootloader.bin ^
0x8000 sleeplamp.ino.partitions.bin ^
0xe000 boot_app0.bin ^
0x10000 sleeplamp.ino.bin
Replace COM5 with your board's port (/dev/tty.usbserial-* on macOS, /dev/ttyUSB0 on Linux).