Repository navigation
Releases: Forrest404/unidex
Release list
v1.8: a new logo, and unidex in your browser
A new logo, and unidex in your browser.
- New logo: the start-up screen shows the new unidex logo, the robot above the name, instead of the four squares. The unidex badge in the starter files is the new logo too.
- Chooser: up to nine squares, in a 3×3 grid. The tally shows each square's number with its wins underneath.
- Try unidex (new): the real firmware runs in your browser at https://forrest404.github.io/unidex/try.html, with your own app if you're writing one. Its Version menu opens the newest release, an older one, or the next version in development.
Also in this release:
- Website: a new design, with menus, a search (press /), a Help page, a Developers page, and a page for each app.
- App store: 15 new apps and plugins, including Dice, Weather, Focus, Flash Cards, Pet Rock and the Moon badge.
- Writing apps: step-by-step guides for apps and plugins, with templates, in unidex-apps.
To update, use Update on https://forrest404.github.io/unidex/ (your settings and files are kept). Every change is in CHANGELOG.md.
v1.7: apps and plugins
Apps and plugins. unidex now runs apps and plugins that anyone can write, in a few lines of Lua with no tools to install, and there's a store for them.
- Apps (Home > Apps): small apps kept on the SD card. Each runs in a sandbox with its own memory, its own folder and a time limit, and can't reach your WiFi password, keys, notes or other apps' files. An app that breaks shows "App error" with the line, and the device carries on. Hold B on one to offload it (its data stays) or delete it.
- Plugins add to the built-in apps. The first kind adds live badges to Badge, drawn by code each time they're shown (like Today, which always shows the date).
- The Apps page on the website shows what's on your unidex, and installs, updates, offloads and deletes apps over USB. Delete says how much data goes with it first.
- Make your own: read Writing apps for unidex, try it in the browser emulator or on your device, and send it in as a pull request to unidex-apps. It's tried automatically in the emulator and read by a person before it's listed.
Also in this release:
- WiFi: save up to five networks (home, eduroam or work, a phone hotspot). The device joins whichever is in range. The website's Notes page is now called Setup.
- Notes: a recording where nothing is heard is kept as a "Heard nothing" note instead of being deleted; one note that can't be sent no longer holds up the others; and a second recording in the same wake no longer says "Not enough memory".
To update, use Update on https://forrest404.github.io/unidex/ (your settings and files are kept). Every change is in CHANGELOG.md.
v1.6.1
What's new in v1.6.1
Games
- Less ghosting: each frame drives the screen about five times longer, with the panel maker's own balanced waveform. E-ink can't animate with no ghosting at all, but the trails are much fainter.
- Games run at their proper speed: a frame now takes longer to show than a game step, so the game catches up on the steps in between (before, they ran slightly slow).
- The screen is crisp again after a game. Before, it could stay washed out until the device restarted.
Notes
- Open on phone has moved into the note: open a note, then press B. The QR code appears; hold A to stop and go back to the note.
Update from https://forrest404.github.io/unidex/ (Update keeps your settings and files), or with Sync everything on the Tools page.
v1.6
What's new in v1.6
Looks after your battery
- When the battery is low, the things that need a lot of power (WiFi, the Pet's Meet, Dex scans and recording a note) say "Battery too low" instead of starting.
- When it's flat, the screen shows "Charge me" and the device switches itself off, so the battery isn't drained further. Plug in USB, then press PWR.
Never loses your things
- The calendar, badges, notes and the Pet's friends are saved whole or not at all: the old copy is kept until the new one is safely on the card.
- A calendar sync to a full or missing card now says it failed, and your saved calendar stays (before, it could be deleted).
- A note that's already been transcribed isn't lost when the card is full: it still goes to GitHub, or is shown on screen once.
- Pet friends are also kept on the SD card, so they survive Reset > Everything and a reinstall.
Never stuck
- If the device ever freezes, it restarts by itself after 30 seconds.
New
- Factory reset (Settings > Reset data, asks twice), for passing a device on: WiFi, keys, the Pet, friends and every setting. Files on the SD card stay.
- A welcome on a new device: the buttons, and a QR code for the website.
- Settings > Battery & info shows the device's name (the same as its Open on phone WiFi), handy when asking for help.
Fixes
- Timetable offers to set the clock even before there are any events.
- Confirm boxes and a few screens no longer cut their text short.
- A damaged file on the card can't run the device out of memory; the Dex says when it's full, or when new finds couldn't be saved.
GitHub and website
- Firmware files and checksums are attached to each release. Questions and problems: open an issue; security problems: see SECURITY.md.
Update from https://forrest404.github.io/unidex/ (Update keeps your settings and files), or with Sync everything on the Tools page.
v1.5
What's new in v1.5
Pet (a new app)
- A little creature you dress up: body, eyes, mouth, hat and an extra, or a random look. Name it on the device (a letter at a time) or on the website's Tools page; the name shows as a tag over its head.
- It blinks every few seconds, and A says hi (happy eyes and a heart).
- Meet: bring two unidex close (a row of dots shows how close) and press B. The two screens become one room: the Pets greet each other, visit (the host steps aside and they chat in speech bubbles), swap screens and take trips, by themselves or with the buttons. Pull them apart and each Pet walks home.
- Friends: after a first meeting both are asked "Be friends?". Friends get their own greeting, a heart, and a friends list (when you met, how many times).
- Send a badge to a friend: it goes over the radio in about a second, and they see it first and choose whether to keep it.
- Meet talks straight to the other device (ESP-NOW: no router, no internet), only while the Meet screen is open, with a new random radio address each time. See PRIVACY.md.
Screen
- unidex now has its own e-paper driver: screens refresh a little faster (a partial refresh takes 364 ms instead of 423).
- A new font, Liberation Sans, with the same letter widths, so every screen keeps its layout.
Licence
- From v1.5, unidex is under the PolyForm Noncommercial License 1.0.0: free to use, fork and improve for non-commercial purposes; selling it, or devices with it, needs written permission. v1.0 to v1.4 stay under the GPL. Contributions: CONTRIBUTING.md.
Website
- A Pet designer on the Tools page: every part with a preview, a name, and Send / Load over USB.
Fixes
- A new or fully erased board no longer prints error lines on the USB connection the first time it reads its settings.
- Settings > Battery & info: a version number between releases now fits.
Update from https://forrest404.github.io/unidex/ (Update keeps your settings and files), or with Sync everything on the Tools page.
v1.4
What's new in v1.4
Easier to use
- One rule for the buttons everywhere: A = next, B = select, hold A = back. Each screen shows its buttons at the bottom.
- Settings is now an app on the home screen.
- The home screen shows a live line under each app ("In 12 min: Maths", "3 notes", "Badge 5 of 12").
- Anything that can't be undone asks first, and short messages confirm what happened.
Notes
- Let go of B and you're back on the screen in about a second. Transcribing, tidying up and sending to GitHub carry on in the background, with progress on screen.
- Recordings with no speech are dropped instead of becoming made-up notes.
- Open on phone: the device makes its own WiFi hotspot (shown as a QR code). Browse, search, share and copy your notes on your phone.
Games
- New Games app with four one-button games: Flappy, Dino, Stack and Jetpack, with best scores.
Apps
- Timetable: a live countdown, Today with details for each event, page numbers, and clearer screens when there's nothing on or the clock isn't set.
- Dex, Badge and Chooser: clearer screens and confirm boxes. Chooser now keeps your number of squares.
Battery
- While charging, the % is now a real estimate instead of jumping to 100%.
Website
- Sync everything (Tools): one click updates the firmware when there's a newer release (your settings and files stay), sets the clock, sends your calendar file and starts sending waiting notes. It can also run by itself when the device is plugged in.
- eduroam: an optional CA certificate check.
Other
- Licensed under GPL-3.0-or-later, with third-party notices.
- Fixes: long event titles no longer spill off the screen, USB replies arrive straight away, and no stray file errors appear on the USB line.
Update from https://forrest404.github.io/unidex/ (Update keeps your settings and files), or with Sync everything on the Tools page.
unidex v1.3
Upgrades since v1.2:
Notes (new app)
- Hold B and talk, let go to stop (up to 3 minutes). The note is transcribed with OpenAI Whisper, tidied up with
OpenAI or Claude (title, summary, clean rewrite, topics, calendar event), kept on the SD card as Markdown and,
if switched on, pushed to a GitHub repo for Obsidian. B syncs recordings made offline. - Set up on the new Notes page (forrest404.github.io/unidex/notes.html): WiFi (including eduroam), API keys,
GitHub, a Test button for each, a microphone test, and note downloads. Keys go over USB to the device only.
Timetable
- A next-up card: countdown, the title wrapped to two lines, time and length, place, and what comes after.
- B opens details: the full title, date, time, location and the event's notes. Event titles, locations and notes
are longer (63 / 47 / 160 characters); re-run tools/calsync/install.sh once so the Mac agent sends them.
Home
- The home screen is a carousel: one app at a time, its icon large, a dot per app. A = next, B = open.
Storage
- Files live on a micro SD card (FAT32). Files already on the board are copied to the card once.
Timetable, Badge and Dex show "No SD card" without one.
Website
- Update writes only the firmware and never erases, so settings, saved keys and data stay.
- Install still erases the board's settings and keys (files on the SD card aren't touched).
Other
- The clock's WiFi time sync uses the WiFi saved on the Notes page (secrets.h is gone).
unidex v1.2
Upgrades since v1.1:
Badges
- Send to device: the badge maker (tools/badge-maker.html) puts a badge straight onto the board over USB
(Chrome/Edge, Web Serial). The board opens it immediately. Never overwrites an existing badge; keeps the
Dex, events and settings. - Picker: hold B in the Badge app for 3x3 thumbnails. A moves, B opens, hold B goes back. Thumbnails are
cached in RAM, so moving is fast.
Buttons
- The press that wakes the board also counts: tap A on a sleeping home screen and it wakes and moves in one go.
- Restart: hold A + B for 1 second. Boots fresh to home, keeps all data (badges, Dex, events, settings, clock).
- B long on home refreshes the time and battery.
Power
- Stays awake on USB power (a computer connected, or the charger topping up), so the Mac sync, the badge
maker and flashing always find it. Still sleeps on battery.
Clock
- Fixed: the clock chip (PCF85063) came from the factory stopped and in 12-hour mode, so the time froze while
asleep. It now runs in 24-hour mode and is set the way the datasheet recommends. - The home clock ticks live each minute while awake; asleep it counts silently and catches up on the next press
(no wake-ups, so no battery cost). - New USB command C: clock chip diagnostics.
Dex
- Hidden networks are left out.
unidex v1.1
Upgrades since v1.0:
Settings menu (hold A on the home screen)
- Date & time: set the clock by hand, no WiFi or Mac needed (London time, summer time automatic)
- Sleep: stay awake 10 / 20 / 30 / 60 s after the last press
- Invert: white-on-black mode for every screen
- Battery & info: battery voltage and %, firmware version, storage used, last Mac sync
- Reset data: clear the Chooser tally, Dex, calendar events, or everything (each with a confirm)
Home screen
- Time and battery % in the header, with a lightning bolt on USB power
Battery
- Calibrated reading: the ADC read about 2% low, so a full battery now shows 100% instead of 85%
- Resting LiPo curve, 100% from 4.15 V
- On battery the % only goes down, so it no longer bounces between screens
Flashing
pio run -t uploadworks again: 115200 baud and esptool's ROM loader for firmware
(tools/upload_nostub.py), avoiding the "No serial data received" drop on this board
unidex v1.0
First release: a small e-ink "OS" for the Waveshare ESP32-S3-ePaper-1.54 (V2), built with PlatformIO + Arduino.
Launcher
- Boot splash and a 2x2 home grid with pixel icons. A = next, B = open, A long = back home.
- Deep sleep after 10 s; light sleep between button polls while awake. The screen keeps its image with no power,
and the panel keeps its memory through sleep, so the first refresh after a wake is a quick partial one.
Apps
- Timetable: next class or event with a countdown; B long shows the rest of today. Weekly classes from
timetable.csv, plus Apple Calendar events synced from a Mac over USB (tools/calsync), which also sets the clock. - Name Badge: full-screen 1-bit BMP badges, remembered across power loss. Badge tools: tools/badges.py and
tools/badge-maker.html. - Dex: a WiFi network collection game. On-demand scans, one entry per network name, rarity classes, salted hashed BSSIDs,
a paged list of all finds, and a guarded clear. - Chooser: pick 2-6 squares; the spin slows down and lands on a winner chosen up front; tally of wins.
Under the hood
- Storage layer (LittleFS + NVS), shared theme, refresh rule (partial normally, full every 10 partials and on
app switches), CPU at 80 MHz (240 MHz only during a scan), WiFi only when needed.