In development

Your glasses’ firmware. Booting on a Mac.

A full-system emulator for RayNeo iO smart glasses. A Renode board model and a native Swift viewer, aimed at booting the unmodified stock firmware and showing its real display output.

rayneo-io-on-mac: boot your own RayNeo iO firmware on a Mac, in Renode

Unofficial · MIT licensed · No firmware distributed

Why

Stop flashing for every change.

  • Iterate safely

    Boot the firmware you already own on your laptop, as many times as you like, with no risk to the glasses.

  • Learn the hardware honestly

    Every peripheral model is written from what the firmware actually does on the emulated bus, not from guesses dressed up as results.

  • No patched instructions

    The goal is to run the stock image as-is. When something fails, the model gets fixed, not the firmware.

Boot progress

Stock firmware, booting on a Mac.

The stock firmware enters NuttX on the emulated CPU, runs board init, mounts storage and shows its boot logo in a Mac window. Next stop: bring up the BTH subsystem and boot all the way to the home screen.

How it works

A virtual board. A native window.

Scripts turn your firmware into an installed-format flash image and run it on a BES1700 board model in Renode. The display controller model scans out the frame buffer the firmware actually wrote, and a Swift Mac app shows that frame in a window.

Quick start

Four commands.

You need macOS 14 or later, the Xcode command line tools, Python 3 and Renode (MIT licensed, installed separately, not bundled).

git clone https://github.com/owenc1122/rayneo-io-on-mac.git && cd rayneo-io-on-mac

swift test                                   # unit tests
sh scripts/build-app.sh                      # builds "build/RayNeo io on Mac.app"
sh scripts/run-app.sh                        # boots .local/firmware.bin and shows the display
sh scripts/emulate.sh <ota-files-dir> 15     # headless run, 15 s of emulated time

Bring your own firmware from your own device or another lawful source and keep it under .local/ (ignored by Git). The scripts only read it and never modify it.

Contact

Ideas, questions, or want to help?

Open source

The other half of Spare io.

About Spare io →

rayneo-io-on-mac is unofficial and not affiliated with or endorsed by RayNeo, Bestechnic or any vendor; names are used only to describe what it interoperates with. It only emulates on a computer, never flashes hardware and distributes no firmware. Applying anything learned here to a real device can brick it, void the warranty or breach vendor terms, at your own risk. Provided “as is”, without warranty of any kind.