Reverse engineering Solos smart glasses Author: John Floren Date: August 28, 2025 --- Background Solos Smart Glasses, released in 2018, targeted cyclists and runners with a heads-up display (HUD). The glasses originated from Kopin, a company specializing in micro-displays mostly for military and industrial use. Priced at $500 initially, these glasses did not achieve commercial success. John managed to purchase a new pair cheaply on eBay and explored hacking opportunities due to their wireless display capabilities. The companion app is available, but official documentation and protocol specs are not publicly shared by the company, which has shifted towards audio-only AI glasses. --- Bluetooth Traffic Capture The glasses primarily receive graphical data from a smartphone via Bluetooth. Using Android’s Bluetooth HCI snoop log feature, John captured Bluetooth communications by following these steps: Enable developer options. Enable “Enable Bluetooth HCI snoop log”. Restart Bluetooth and connect to the glasses. Perform actions on the app, then disable the snoop log. Use adb bugreport to extract logs. Analyze packet captures with tools like Wireshark. --- Packet & Data Analysis The data packets start with the magic number 1d60. Packets contain run-length encoded (RLE) image data using RGB 5:6:5 (little-endian) format. Color encoding example: ff0000: 255 pixels of black (0x0000) ad0000: 173 pixels of black (0x0000) Header fields breakdown: 1d60: start marker Next bytes: drawing mode selector (varies) Length field: size of RLE data (divided by 2 for actual length) Offset: x,y position on display (frequently zero or small coordinates) Dimensions: width and height of the image/data section (e.g., 428x240 resolution) The length field’s exact behavior remains partly mysterious, possibly requiring repeated packet sending. --- Driving the Display John wrote a Python script using Bluetooth RFCOMM to: Convert input images (428x240 pixels) to RLE RGB 5:6:5 format. Split encoded image data into chunks. Send header plus chunks over Bluetooth to the glasses. Pause between multiple images for seamless display updates. The code uses the Python Imaging Library (PIL) and handles encoding, chunking, and socket communication. --- Demonstrations Simple graphical data (weather, status) displayed successfully. Sending actual photos was slower but the glasses showed high-quality images. Suggested using a looped script with regularly generated PNGs to refresh the display content dynamically. --- Conclusion & Next Steps Successfully displaying arbitrary images on the glasses opens potential for custom wearable HUDs. Possible use cases: notifications, weather, system status, and more. The hacking approach is nondestructive; original app functionality remains accessible by just pairing with a phone. The glasses include microphone and speakers, which might be enabled through Bluetooth commands for additional wearable audio capabilities. Further work includes automating image pipelines and discovering commands for activating audio features. --- This reverse engineering effort highlights an affordable, hackable wireless display platform for wearable computing experimentation.