Even g2 protocol
Let's reverse engineer the EvenRealities G2s! By reverse engineering the BLE protocol, developers can understand how to call G2 services, unleashing the true potential of the G2 smart glasses in a true open-source environment.
I have been reverse engineering the Even Realities G2 smart glasses BLE protocol. If you are interersted in joining this effort, please do! The project is first published in 2025. Key topics include: evenrealities, g2a, g2b, mentraos, smartglasses.
Even Realities G2 Smart Glasses - Protocol Documentation
I have been reverse engineering the Even Realities G2 smart glasses BLE protocol. If you are interersted in joining this effort, please do!
What the hell does that even mean???
The G2 glasses use a custom protocol created by EvenRealities. This BLE (bluetooth) protocol is used to transmit data in packets to and from the glasses. Currently, the G2 glasses are restricted to the functionality offered in the Even app - reverse engineering the BLE protocol removes this restriction.
Status
| Feature | Status | Notes |
|---|---|---|
| BLE Connection | Working | Standard BLE, no special pairing |
| Authentication | Working | 7-packet handshake sequence |
| Teleprompter | Working | Custom text display confirmed |
| Calendar Widget | Working | Display events on glasses |
| Notifications | Partial | Metadata only (app + count) |
| Even AI | Research | Protocol identified |
| Navigation | Research | High display traffic observed |
Quick Start
bashcd examples/teleprompter pip install -r requirements.txt # Display custom text on glasses python teleprompter.py "Hello from Python!" # Multi-line text python teleprompter.py "Line one Line two Line three"
Documentation
- BLE Services & UUIDs - Complete characteristic mapping
- Packet Structure - Transport layer format
- Service Reference - All known service IDs
- Teleprompter Protocol - Text display implementation (Work in Progress)
Protocol Files
- proto/ - Protobuf definitions for payload encoding
Key Findings
CRC Algorithm
- Type: CRC-16/CCITT
- Init: 0xFFFF
- Polynomial: 0x1021
- Scope: Calculated over payload bytes only (skip 8-byte header)
- Format: Little-endian
Packet Structure
[AA] [21] [seq] [len] [01] [01] [svc_hi] [svc_lo] [payload...] [crc_lo] [crc_hi]
Architecture
The G2 uses a dual-channel design:
- Content Channel (0x5401): What to display (text, data)
- Rendering Channel (0x6402): How to display (positioning, styling)
Contributing
Pull requests welcome! Areas needing research:
- Navigation turn-by-turn protocol
- Even AI request/response format
- Translation feature
- Display rendering commands (0x6402)
Credits
- Protocol research by the Even Realities community
Disclaimer
This is an unofficial community project for educational purposes. Not affiliated with Even Realities.
Discord
For all communications, I recommend Discord. Join the EvenRealities Discord Server, which contains a reverse engineering channel containing many threads, including G2 RE.
Contributors
Showing top 2 contributors by commit count.
