Protofrenz Nano Firmware
Why ProtoFrenz Nano
A face that reacts, not just glows.
A face that reacts, not just glows.
The ProtoFrenz Nano firmware turns a handful of MAX7219 matrices and a single touch sensor into an expressive, audio-reactive visor — fully designed in your browser, then saved to the device so it works anywhere, untethered.
Design every expression
Paint Idle, Surprised, Angry and Dead pixel-by-pixel right here in the browser. Draw the left half — the Nano mirrors it perfectly to the right.
Reacts to sound
The mouth opens and moves with your voice automatically. No setup — just talk, and your face talks back.
Dance Mode
Tap into a full-face party: audio-reactive VU bars on the mouth, eyes strobing on the beat, nose pulsing the inverse.
Beat-reactiveOne-touch control
A single nose "boop" sensor drives everything — tap to switch expressions, hold for a cute squint. No buttons, no app.
Heart eyes & extras
Flip on animated heart eyes per expression, set auto-blink speed, and tune how long each reaction lingers.
Tune it untethered
An on-device menu lets you set brightness, mic sensitivity and blink speed with no computer in sight. Everything saves to the device.
Before you start · Hardware
What you'll need
What you'll need
ProtoFrenz Nano runs on a few inexpensive, easy-to-find parts. The controller is required; the touch sensor and microphone unlock the interactive features.
Arduino Nano
The controller that drives the MAX7219 matrices and runs the firmware. Use the ATmega328P "Old Bootloader" variant.
Matrices → D9 · D11 · D13TTP223 / TTP223B touch sensor
The nose "boop" pad. Wire its OUT to D2 (plus 5V and GND). Either the TTP223 or TTP223B works.
OUT → D2MAX9814 microphone
Auto-gain mic amp for sound reactivity. Its output runs through a simple envelope detector — an ordinary signal diode, a 47 µF capacitor and a 4.7 kΩ resistor — into analog pin A7. See the diagram below.
Envelope → A7Wiring at a glance
| Part | Connections to the Nano |
|---|---|
| MAX7219 matrices | 5V · GND · DIN→D11 · CLK→D13 · CS→D9 |
| TTP223 / TTP223B | 5V · GND · OUT→D2 |
| MAX9814 envelope detector | 5V · GND · diode + 47 µF cap + 4.7 kΩ resistor → A7 |
Step 1 · Firmware
Install or update the firmware
Install or update the firmware
New controller, or updating to the latest version? Flash the ProtoFrenz firmware straight from this page over USB — it takes about a minute, no software to install. Already running it and just want to change your face? Skip down to the editor.
Plug in your Nano
Connect the controller to your computer with a USB data cable (some cheap cables only charge). Use desktop Chrome or Edge — flashing isn't supported on Safari, Firefox, or phones/tablets.
Click Flash & pick the port
Press the button below. A small browser pop-up asks which device to connect — choose the one that looks like your Nano (often USB-SERIAL CH340, USB Serial Device, or Arduino) and click Connect.
Wait — don't unplug
The status line shows the progress (Downloading → Syncing → Flashing). When it says Done, your firmware is installed. Now scroll down to design your face.
Prefer to install manually? (avrdude)
- Download the
.hexfile using the link above. - Install avrdude if you don't have it.
- Open a terminal / command prompt and run:
avrdude -v -p atmega328p -c arduino -P COM# -b 57600 -D -U flash:w:protofrenz_nano_oldboot.ino.hex:i
(Replace COM# with your Nano's serial port.)
ProtoFrenz Face Editor
Draw the left half. The Nano mirrors it to the right. Use presets per component or paint pixels.
Eyes (2 matrices)
Nose (1 matrix)
Mouth (3-5 matrices depending on mode)
Preset files
.pfb file to share, back up, or copy to another Nano.Click Save .pfb to download all four faces — plus brightness and tap settings — as one file. No connection needed; perfect for a backup or sharing a look with friends.
Pick a .pfb file to drop it into the editor. Your suit doesn't change until you Connect and click Upload at the top.
Log
Requires desktop Chrome/Edge for Web Serial. iOS browsers generally don't support it.
Using your face in the suit
Everything is driven by the single touch sensor on the nose. There are just two gestures to learn.
🙂 Everyday face
- Tap to change expression — Surprised, Angry, Dead. Each holds for a set time, then returns to Idle on its own. (Tap counts and durations are configurable in the editor above.)
- Hold while Idle for a squinty "booped" reaction.
- Talk or play music — the mouth moves to the sound automatically.
- Blinking & nose animate on their own at relaxed intervals.
🎛️ On-device menu
Hold for 3 seconds to open the menu. The mouth shows the setting name, the eyes show its value. Tap for the next item (or to change a value); hold to select/confirm. It auto-saves and exits after 10 seconds.
| Item | What it does |
|---|---|
| BRIGHT | Brightness, 0 (dim) to F (brightest). Hold to edit, tap to step up, hold to confirm. |
| SENS | Mic sensitivity — 1 Low, 2 Medium, 3 High. |
| BLINK | Auto-blink speed — 1 Slow, 2 Normal, 3 Fast. |
| LOCK | Expression lock — 0 off, 1 on (taps ignored so the face stays put). |
| DANCE | Hold to start Dance Mode immediately. |