Skip to content

A Claude Code status light on WizFi360-EVB-Pico

An RP2040 + WizFi360 desk light that shows Claude Code's status over Wi-Fi TCP, with LEDs and voice. No Bluetooth needed.

anvol

Published November 04, 2026 · © MIT license (MIT)

A Claude Code status light on WizFi360-EVB-Pico

Components

Hardware components
WizFi360-EVB-Pico

x 1

RP2040 + WizFi360; Wi-Fi TCP link to the PC


Project description

Claude Code can work for minutes at a time, and it sometimes stops to wait for your approval. FreakStudio's Claude Assistant is a small desk device that shows that state with two LEDs and a short voice line, so you do not have to keep checking the terminal. Most versions talk to the PC over Bluetooth LE. The WizFi360 version uses Wi-Fi TCP instead, which is the one to build when your PC has no Bluetooth or the desk is out of range.

The Clock edition. The WizFi360 version uses the same two-LED, voice and enclosure design.

The Clock edition. The WizFi360 version uses the same two-LED, voice and enclosure design.

What it shows

A daemon on the PC receives Claude Code's hook events (a tool starts, a task finishes, an approval is needed) and pushes the current state to the device.

StateLight
IdleSteady blue
WorkingCyan sweep
Waiting for your approvalSlow yellow blink
Task completeFast green flash
ErrorAlternating red

Each change also plays a pre-generated voice clip stored on the device. If several Claude Code windows are open, the daemon tracks all of them and shows the one that needs attention. Nothing goes to a cloud service: the device only receives state, never code.

How the WizFi360 is wired

The board is a WizFi360-EVB-Pico: an RP2040 with WIZnet's WizFi360 Wi-Fi module on board. The RP2040 runs MicroPython and drives the WizFi360 with AT commands over a UART. From the project's config.py and main.py:

FunctionRP2040 pin / setting
UART to WizFi360UART1 at 115200 baud, GP4 → WizFi360 RX, GP5 ← WizFi360 TX
WizFi360 resetGP20
WS2812B LEDs (2)GP16
Vibration sensorGP18
Vibration motorGP17
AudioMAX98357A I2S amplifier and a small speaker

The firmware bundles a MicroPython build of an AT-command driver for the WizFi360 (wizfiatcontrol, based on Adafruit's library) and runs the device as a TCP server on port 57321. The same firmware runs on all four versions of the project; one VARIANT = "wizfi360" line switches the transport from BLE to Wi-Fi and selects the pins above.

Holding the Clock edition

Holding the Clock edition

Getting it on the network

  1. Flash. The EVB-Pico ships with MicroPython, so there is no base firmware step. To flash the prebuilt image instead, hold BOOTSEL, plug in USB and copy the .uf2 file to the RPI-RP2 drive.
  2. Wi-Fi credentials. The project's Windows setup tool asks for the SSID and password and writes them into config.py at flash time. A static IP can be set in the same file; left empty, the module uses DHCP.
  3. Pair. The setup tool scans the local network for the device, or you type in its IP address, which the device prints on the serial console after boot (AT+CIFSR). The pairing is saved as ip:57321 in %APPDATA%\claude-buddy\device.json, and the daemon reconnects to it on every start.
  4. Install the Claude Code side. It installs as a Claude Code plugin that registers the hooks; manual hook registration is documented as a fallback. The PC side needs Windows 10/11 and Python 3.11+.

Two extras come from the Clock design: a tap on the enclosure triggers the vibration sensor and plays a random voice line, and the motor buzzes when a task finishes, fails or needs approval. Both can be switched off in the setup tool.

One practical note: because the Wi-Fi password ends up in config.py, keep your flashed copy of that file out of any public repository.

Clock edition on an office partition

Clock edition on an office partition

Links


Project by FreakStudio. Photos and technical details are from the project repository.

Have a working prototype you want to turn into a product? Anvol takes MicroPython and microcontroller prototypes like this one through enclosure, circuit board, firmware hardening, component sourcing and small-batch production, with no minimum order. When a project needs it, we can also arrange final assembly in the US. Tell us what you have built: anvol.dev · chris@anvol.dev

Documents

  • Firmware, PC daemon and setup tool

    FreakStudio's repository (MicroPython firmware for all four versions)

Comments

Comments