Turn any glasses into hackable smart glasses with less than $25 of off-the-shelf components. Record your life, remember people you meet, identify objects, translate text, and more.
We will ship a limited number of pre-built kits. Fill out the interest form to get notified.
Join the Based Hardware Discord for setup questions, contribution guide, and more.
Follow these steps to set up OpenGlass:
-
Gather the required components:
-
3D print the glasses mount case using the provided STL file.
-
Open the firmware folder and open the
.ino
file in the Arduino IDE.- If you don't have the Arduino IDE installed, download and install it from the official website.
- Alternatively, follow the steps in the firmware readme to build using
arduino-cli
-
Follow the software preparation steps to set up the Arduino IDE for the XIAO ESP32S3 board:
- Add ESP32 board package to your Arduino IDE:
- Navigate to File > Preferences, and fill "Additional Boards Manager URLs" with the URL:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
- Navigate to Tools > Board > Boards Manager..., type the keyword
esp32
in the search box, select the latest version ofesp32
, and install it.
- Navigate to File > Preferences, and fill "Additional Boards Manager URLs" with the URL:
- Select your board and port:
- On top of the Arduino IDE, select the port (likely to be COM3 or higher).
- Search for
xiao
in the development board on the left and selectXIAO_ESP32S3
.
- Add ESP32 board package to your Arduino IDE:
-
Before you flash go to the "Tools" drop down in the Arduino IDE and make sure you set "PSRAM:" to be "PSRAM: "OPI PSRAM"
- Upload the firmware to the XIAO ESP32S3 board.
-
Clone the OpenGlass repository and install the dependencies:
git clone [email protected]:fre2d0m/OpenGlass-0527.git cd OpenGlass-0527 npm install
You can also use yarn to install, by doing
yarn install
-
Add API keys for OpenAI in the
keys.ts
file located at https://github.com/BasedHardware/OpenGlass/blob/main/sources/keys.ts. -
Start the application:
npm start
If using yarn start the application with
yarn start
Note: This is an Expo project. For now, open the localhost link (this will appear after completing step 5) to access the web version.
This project is licensed under the MIT License.
- When the Bluetooth is disconnected and connected several times, the packetId of the image data cannot be connected, Invalid chunkId, in this case, you can try to restart the device
- If no error is reported and the serial port has no output, restart the device or reconnect the Bluetooth
Possible solutions:
- Each photo data add unique file id(like timestamp), and check the file id when receive the data, if the file id is not the same, discard the data.