Setup guide
Flash the firmware once, then connect from the dashboard or the Chrome extension. Every step below was written for a Windows 11 PC with Arduino IDE 2; a Mac works the same way.
What you need
- A Seeed Studio XIAO ESP32S3 Sense with its camera board pressed on.
- A push button between pin D1 and GND.
- A USB-C cable that carries data, not only power.
- A computer with Bluetooth and Chrome or Edge. Brave works after one setting, see Use Brave.
- Arduino IDE 2, from arduino.cc.
Flash the firmware
- Start Arduino IDE 2 and plug the board in with the USB-C cable.
- Open Tools > Board > Boards Manager, search for
esp32and install esp32 by Espressif Systems, version 3.3.x. If it is not listed, addhttps://espressif.github.io/arduino-esp32/package_esp32_index.jsonunder File > Preferences > Additional boards manager URLs and search again. - Open Tools > Manage Libraries, search for
NimBLEand install NimBLE-Arduino by h2zero, version 2.x. Do not use ArduinoBLE. - Download the repository from GitHub (Code > Download ZIP) and unzip it. Then File > Open and pick
firmware/glasses_cam/glasses_cam.ino. The other files open as tabs. - Set these in the Tools menu and leave the rest at the defaults:
| Tools menu | Value |
|---|---|
| Board | XIAO_ESP32S3 |
| Port | The board's port, for example COM3 |
| PSRAM | OPI PSRAM |
| Partition Scheme | Maximum APP (7.9MB APP No OTA/No FS) |
| USB CDC On Boot | Enabled |
- Click Upload and wait for
Hard resetting via RTS pin.... - Open Tools > Serial Monitor at 115200 baud and press RESET on the board, or type
rand press Enter. The boot report looks like this:
===== GlassNotes glasses 1.1 booting: power on (normal) =====
================ GlassNotes glasses ================
Firmware: 1.1 (Bluetooth protocol 1)
PSRAM: OK, 8.0 MB (7.6 MB free)
Camera: OV5640 (PID 0x5640)
Bluetooth: "GlassNotes", address 74:4d:bd:12:34:56
Settings: 1600x1200 (UXGA, code 5), JPEG quality 12, sleep after 10 min idle
CRC32 test: PASS ("123456789" gives 0xCBF43926)
Serial keys: r = this report, p = take a photo
Bluetooth log: newest 16 KB kept for the Terminal tab (boot id 3F2A)
====================================================Check three lines
PSRAM says OK, Camera names a sensor, and CRC32 test says PASS. Close the Serial Monitor when you are done: only one program can use the port, and the dashboard can read the same text over Bluetooth.
Connect from the dashboard
- Open glassnotes.tech/app in Chrome or Edge with Bluetooth on.
- Press the button on the glasses once to wake them.
- Click Connect, pick GlassNotes in the list and click Pair. The label next to the name says Connected.
- Press the button on the glasses. The photo shows up under Photos a few seconds later.
- Click the photo to open it, click Copy, and press Ctrl+V (Cmd+V on a Mac) in ChatGPT or any chat. Turn on Auto copy to skip the click.
- Click Connection info to see the firmware, camera, Bluetooth link and chip temperature.
Do not pair in Windows or macOS settings
Only the browser talks to the glasses. If GlassNotes is listed under Settings > Bluetooth & devices (Windows) or System Settings > Bluetooth (Mac), remove it there. A pairing made there connects and drops, and can stop Chrome from connecting.
Use Brave
Brave ships with Web Bluetooth turned off, and Connect then fails with Web Bluetooth API globally disabled. Turn it on once:
- Type
brave://flags/#brave-web-bluetooth-apiin the address bar and press Enter. - Set Web Bluetooth API to Enabled.
- Click Relaunch at the bottom of the page.
Chrome and Edge need nothing. This is the same on Windows and on a Mac.
Read the log in the Terminal tab
The Terminal tab in the dashboard shows the same text as the Arduino Serial Monitor, without a cable. Each line is marked with where it came from:
| Mark | Comes from |
|---|---|
| ble | The glasses, over Bluetooth. Lines marked earlier were printed before you connected; the glasses keep the newest 16 KB. |
| usb | The glasses, over the USB cable (see below). |
| app | The dashboard itself: connecting, photos saved, errors. |
Click Report to make the glasses print their boot report again. Filter the lines by source or text, then Copy or Download them when you ask for help. Errors are red and warnings yellow.
When the glasses crash before Bluetooth starts, read them over USB instead:
- Close the Arduino Serial Monitor.
- Plug the glasses in with the USB-C cable.
- Click USB serial in the Terminal tab and pick the board's port. On Windows it is usually USB JTAG/serial debug unit (COM3), on a Mac a
cu.usbmodemport. - Lines marked usb appear. Type
rand click Send for the boot report, orpto take a photo.
Firmware 1.0
Glasses on firmware 1.0 do not send their log over Bluetooth, and the Terminal says so. Flash the current firmware as described above, or use USB serial.
Add the Chrome extension
The extension lives in Chrome's side panel and puts each photo into the tab you are working in, also when the dashboard is not open. Until it is in the Chrome Web Store, load it from the repository.
- Download the repository from GitHub and unzip it. You need the
extensionfolder. - Open
chrome://extensions(oredge://extensions) and turn on Developer mode at the top right. - Click Load unpacked and pick the
extensionfolder. - Click the puzzle piece in the toolbar and pin GlassNotes. Click its icon to open the side panel.
- Click Connect, pick GlassNotes and click Pair.
- Press the button on the glasses. Click Copy, or turn on Auto copy, and paste. Ctrl+Shift+V puts the newest photo straight into ChatGPT, Claude, Gemini, Perplexity or Grok.
One browser at a time
The glasses connect to one page at a time. Disconnect the dashboard before you connect the extension, and the other way round.
Troubleshooting
| Problem | What to do |
|---|---|
| GlassNotes is not in the list | Press the button to wake the glasses, check that Bluetooth is on, and close other tabs or the extension panel that may already be connected. |
| No list opens when I click Connect | Check that Bluetooth is on, that Windows lets apps use Bluetooth, and that the site is not blocked from Bluetooth (the icon left of the address). In Brave, see Use Brave. |
| Connect fails after a firmware update | Windows may remember the old Bluetooth services. Remove GlassNotes under Settings > Bluetooth & devices, turn Bluetooth off and on, and connect again. |
| The port (COM3) disappears | The glasses are in deep sleep. Press the button to wake them. To upload while they keep falling asleep, hold BOOT while you plug in the cable, then click Upload. |
| Photos arrive slowly | Pick a smaller resolution or a higher JPEG quality number under Settings. Each photo's speed is in its info panel and in the Terminal. |
| It does not work on my iPhone | Every browser on iPhone and iPad uses Safari's engine, which has no Web Bluetooth. Use a computer or an Android phone. |