Getting started

Welcome to the BornHack 2026 Cyber Ægg badge. This guide takes you from “unbox” to “actually playing with it” in a few minutes.

First power-on

A fresh badge runs a built-in factory self-test on the very first boot. You will see a FACTORY TEST screen with a small PASS/FAIL grid, followed by ALL PASS. After that the badge goes straight to the application on every boot; the self-test never runs again unless the firmware is wiped.

The very first boot then plays a short one-time sponsor slideshow (the event logos, then the badge-sponsor logos, a couple of seconds each) before dropping you on the Main screen. It only runs once per badge — you can replay it any time from Main → Badge sponsors.

The LED sequence at every boot is:

  1. Pulsing orange — hardware initialisation
  2. Pulsing blue — display and LoRa radio coming up (about 13 seconds)
  3. A single green flash — ready

You then land on the Main screen.

Controls

The badge has a 5-way joystick on the left and two thumb buttons on the right:

ControlAction
Execute / joystick press (Fire)Select / activate
CancelBack / dismiss
Up / DownMove the cursor inside the current screen
Left / RightSwitch to the next top-level screen

Top-level screens

The interface is a carousel — Left / Right cycles through the top-level screens:

ScreenWhat it is
GameBornPets — virtual pet, mini-games and hatchery
MainRoot menu: Bornagotchi · Settings · About · Badge sponsors
PMsPrivate mesh messages inbox
ChannelGroup / room mesh chat
AdvertsRecently heard mesh adverts
TokensCollected NFC tokens
ClockDigital / analog watch face and alarm
CalendarMonth grid and per-day timeline
NameBig conference-badge name view
My QRYour mesh identity QR code to share with other badges

Pair with the MeshCore app

The badge speaks the MeshCore companion protocol over Bluetooth Low Energy. Install the MeshCore app on Android / iOS, or open https://app.meshcore.nz/ in a browser that supports Web Bluetooth (Chrome / Edge on desktop or Android).

  1. Make sure Bluetooth is on — Main → Settings → Bluetooth should read BLE: ON.
  2. In the app, scan for devices. Your badge advertises as Cyber Ægg XXYY, where XXYY is four hex characters unique to your badge.
  3. The phone shows a passkey prompt and the badge shows a 6-digit passkey on its display. Type that number into the phone.
  4. Once bonded, the app can set the clock, manage contacts, send and receive mesh messages, change the LoRa preset and more.

Set the time

The badge has no battery-backed real-time clock, so the clock resets to “not set” on every reboot. There are two ways to set it:

  • MeshCore app — connect over Bluetooth and the app pushes your phone’s time to the badge.
  • Near a synced repeater — a known-good mesh repeater advertises its time periodically and your badge picks it up automatically.

Set your timezone once under Main → Settings → Timezone — that setting persists.

Charging

Plug any USB-C cable into the badge to charge it. Charge state is shown on the on-screen battery icon (there is no dedicated charge LED).

Two things that look like faults but aren’t: the charge bolt disappearing while USB is still plugged means charging is complete (it returns by itself if the cell drains), and the battery icon can lag up to a minute behind reality — it is only re-sampled every 60 seconds.

USB drag-and-drop

When plugged in over USB-C the badge appears as a small drive named CYBR<4 hex>. You can drop these files into its root:

FileEffect
ALARMS.ICSiCalendar file — imports alarms and calendar events
030000.PCX030009.PCXSponsor slides shown on the splash carousel
<6 hex>.PCXGame sprites
PETS.CFGAdd / rename pets (with their sprite PCX files) — see Games
BORNPETS.CFGOverride the BornPets game balance
LUT.CFGCustom e-paper waveform (advanced — calibrated display LUT)

Reboot the badge after copying files (re-plug USB) for the changes to take effect.

LUT.CFG is an advanced tweak: it overrides the panel’s built-in display waveform with a calibrated one (e.g. faster refresh). If a custom LUT ever renders badly, hold Fire (joystick press) while booting to force the safe built-in waveform for that boot, then delete or fix the file. A malformed or wrong-panel LUT.CFG is rejected automatically.

Firmware update

The easiest route is the Flash page: it writes the firmware and the badge’s asset files straight from a Chromium-family browser, with no toolchain to install.

To do it by hand, slide the ON/OFF switch (top-left on the front of the badge) off and then back on while holding Execute to enter the bootloader (DFU) mode — the LED blinks red. (The battery keeps the badge running, so unplugging USB will not restart it.) You can then flash a new firmware image with dfu-util:

dfu-util -d 1915:521f -D cyber-aegg.bin

The firmware is open source and built with Rust / Embassy — see Ranzbak/bornhack-firmware-2026 for source, build instructions and pre-built images.