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

  1. Start Arduino IDE 2 and plug the board in with the USB-C cable.
  2. Open Tools > Board > Boards Manager, search for esp32 and install esp32 by Espressif Systems, version 3.3.x. If it is not listed, add https://espressif.github.io/arduino-esp32/package_esp32_index.json under File > Preferences > Additional boards manager URLs and search again.
  3. Open Tools > Manage Libraries, search for NimBLE and install NimBLE-Arduino by h2zero, version 2.x. Do not use ArduinoBLE.
  4. 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.
  5. Set these in the Tools menu and leave the rest at the defaults:
Tools menuValue
BoardXIAO_ESP32S3
PortThe board's port, for example COM3
PSRAMOPI PSRAM
Partition SchemeMaximum APP (7.9MB APP No OTA/No FS)
USB CDC On BootEnabled
  1. Click Upload and wait for Hard resetting via RTS pin....
  2. Open Tools > Serial Monitor at 115200 baud and press RESET on the board, or type r and 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

  1. Open glassnotes.tech/app in Chrome or Edge with Bluetooth on.
  2. Press the button on the glasses once to wake them.
  3. Click Connect, pick GlassNotes in the list and click Pair. The label next to the name says Connected.
  4. Press the button on the glasses. The photo shows up under Photos a few seconds later.
  5. 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.
  6. 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:

  1. Type brave://flags/#brave-web-bluetooth-api in the address bar and press Enter.
  2. Set Web Bluetooth API to Enabled.
  3. 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:

MarkComes from
bleThe glasses, over Bluetooth. Lines marked earlier were printed before you connected; the glasses keep the newest 16 KB.
usbThe glasses, over the USB cable (see below).
appThe 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:

  1. Close the Arduino Serial Monitor.
  2. Plug the glasses in with the USB-C cable.
  3. 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.usbmodem port.
  4. Lines marked usb appear. Type r and click Send for the boot report, or p to 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.

  1. Download the repository from GitHub and unzip it. You need the extension folder.
  2. Open chrome://extensions (or edge://extensions) and turn on Developer mode at the top right.
  3. Click Load unpacked and pick the extension folder.
  4. Click the puzzle piece in the toolbar and pin GlassNotes. Click its icon to open the side panel.
  5. Click Connect, pick GlassNotes and click Pair.
  6. 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

ProblemWhat to do
GlassNotes is not in the listPress 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 ConnectCheck 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 updateWindows may remember the old Bluetooth services. Remove GlassNotes under Settings > Bluetooth & devices, turn Bluetooth off and on, and connect again.
The port (COM3) disappearsThe 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 slowlyPick 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 iPhoneEvery browser on iPhone and iPad uses Safari's engine, which has no Web Bluetooth. Use a computer or an Android phone.