2

The open hacker's multitool, reborn on the RP2350. A pocket lab for radio, analog, RFID, CAN, retro gaming, onboard Linux — and AI agents that write firmware with you.

FreeWili2 device: 3.5-inch touchscreen, D-pad, action buttons and seven RGB status LEDs
RP2350
Dual MCU 16+8MByte
LinuxCM0
Raspberry Pi CM0
ESP32C5
2.4/5Ghz WiFi+BT
3.5"
480×320 Touch
SDCardBootloader
Load any RP2350/ESP32 Binaries
LoRa+SubGhz
CC1101+Lora+External Antenna
USBHostx3
GPS,UART,Joystic,Keyboard
CANFD
8MBit SIC
AudioIO
4 Mic Array, 2 Watt Speaker, 3.5mm Jack
AnalogIO
4 analog in, 4 analog out, PGA
GPIOIOx14
SPI,I2C,GPIO,UART
ProgrammablePWR
1.1 to 5.5V with glitching
IntegratedDebug
RPi Debug Probe Onboard, ESP32 JTAG
NiceUSB
Scriptable USB
DVIout
TV Time
SDCardreader
High speed USB sdcard reader onboard
GameON
14 gamer buttons, emulator friendly
SensorPackage
IR, IMU, MAG, ALS, HUMIDITY
AIAgent
Open hardware, UF2 Bootloader
3000mAh
17 Power Zones
PythonAPI
Runs on host or internal Linux
ZoomIORISCV
Sub microsecond BitBang scripting
rTHONScript
PythonLike embedded script
C++/RustWASM
Onboard WiliWASM engine and debugger and API
WiliBLOCKS
Point & Click scripting
// the hardware

Everything, in one pocket.

FreeWili2 packs a full electronics lab, a software-defined radio bench, and a games console into an open, scriptable, agent-ready tool.

FreeWili2 internal PCB with dual RP2350, ESP32-C5, FPGA, USB host ports and Orca connectors
RP2350 ESP32-C5 WiFi ICE40 FPGA CC1101 + LoRa USB host Orca headers RFID / NFC 17 power zones
// the brain

Upgraded to the RP2350.

FreeWili launched at DEFCON 2024 on the RP2040 — the very same day Raspberry Pi announced its successor, 100 yards from our booth. So we rebuilt it. Both the main and display CPUs are now RP2350: far more performance, headroom, and low-power smarts, and mostly software-compatible.

Each CPU gains 8 MB of serial SRAM, and the trusty ICE40 FPGA stays on board for the jobs even dual cores and PIO can't touch — like SPI-slave emulation.

  • Dual RP2350
  • 8MB SRAM each
  • ICE40 FPGA
  • PIO + dual-core
FreeWili2 board running a Hello World demo on its display
// display & input

A 3.5″ capacitive touchscreen.

480×320 of color, driven by the RP2350's HSTX. Around it: a full 5-way D-pad, four A/B/X/Y buttons (home · ok · cancel · page), five under-screen context keys, and an innovative two-press-per-letter keyboard.

Tilt it, too — the onboard IMU turns physical position into an input axis.

  • 480×320 cap-touch
  • 5-way D-pad
  • A·B·X·Y
  • 5 context keys
  • motion input
FreeWili2 front layout showing the touchscreen, D-pad and buttons
// wireless

Go full pirate radio.

WiFi is now built in — an upgraded ESP32-C5 with 5 GHz, using none of your GPIO. SubGHz rides a single antenna that switches between a CC1101 and a LoRa radio.

We ported Meshtastic, so FreeWili2 talks to the mesh straight out of the box.

  • WiFi 5GHz · C5
  • CC1101
  • LoRa
  • Meshtastic
Meshtastic messaging app running on a FreeWili device
// analog & gpio

Expandable, software-defined I/O.

Keep the FreeWili 1 20-pin connector (Orcas still fit), plus a new 10-pin analog header and rigid mounting posts. Set the IO voltage in software from the 5V rail, 3.3V rail, the pin itself, or the onboard programmable supply — and measure it with an ADC.

0–5V analog in (op-amp + PGA front end), 0–5V analog out at 25 kHz, a 1–5.5V / 1.5A programmable supply with a MOSFET crowbar for voltage glitching, and the old debug pins reborn as CAN FD at full 8 Mbit.

  • CAN FD 8Mbit
  • 0–5V in/out
  • PGA + window comparator
  • prog. PSU + crowbar
FreeWili2 GPIO pinout diagram
// did someone say linux?

A whole Linux machine inside.

FreeWili2 supports the Raspberry Pi CM0 module, wired straight to the onboard FPGA, the internal USB hub, and the 3rd host port. It runs headless by default and talks to FreeWili2 exactly like a Linux app would — so drivers map cleanly onto our Python API.

CM0 supply is famously thin, so the board works perfectly without it — and we're exploring letting you bring (and solder down) your own.

  • RPi CM0
  • FPGA link
  • USB gadget + host
  • own SD card
CM0 module footprint on the FreeWili2 PCB
// usb host

Three host ports. One scriptable.

Plug in a mouse, keyboard, joystick, GPS, serial adapter, thumbdrive — whatever TinyUSB can drive. Two 12 Mbit ports hang off the display CPU; the third is full 480 Mbit high-speed. The display CPU controls 5V host power, so each port is an easy on/off supply.

A second PIO-based USB port enables scriptable USB — BadUSB experiments and USB-stack testing.

  • host
  • 480Mbit HS
  • switchable 5V
  • scriptable / BadUSB
Three USB host ports on the FreeWili2 chassis
// sense the room

9-DOF motion + environment.

A full IMU (BMI323) plus magnetometer (BMM350) opens up motion and orientation as input. An OPT4001 ambient light sensor and an SHT40 temperature/humidity sensor round out environmental awareness.

Audio levels up too: a 3.5 mm headphone/mic jack and a 4-mic phased array that, with the RP2350's spare cycles, makes real beamforming possible. Viva Las Vegas, loud and clear.

  • BMI323 IMU
  • BMM350 mag
  • OPT4001 light
  • SHT40 temp/RH
  • 4-mic array
Diagram of a 9-DOF IMU and magnetometer sensor package
// rfid · nfc · ir

The answer to every DEFCON question.

At both launches, every other question was about RFID. So: 125 kHz RFID — where the RP2350's fast ADC and PIO get genuinely interesting — plus NFC via the ST25R3916B. IR is upgraded too: a stronger transmit LED, a real IR window in the case, and better Rx/Tx orientation.

  • RFID 125kHz
  • NFC · ST25R3916B
  • IR Tx/Rx
  • I2C Orca + EEPROM
GPIO connectors and Orca mounting on the FreeWili2 board
// portable by design

17 power zones, one tiny brain.

A dedicated ultra-low-power micro switches 17 power zones on and off dynamically. Sensors wire into the ULP as wake sources, the battery tripled to 3000 mAh, and the ULP squeezes the most out of whatever USB power is available — while managing charging.

A 7-port internal hub feeds it all: main CPU, SD reader, ESP32-C5, USB script engine, debug CPU, high-speed FTDI, and the Linux CPU / 3rd host port.

  • ULP micro
  • 17 zones
  • 3000mAh
  • 7-port hub
FreeWili2 simulator showing the command panel and power UI
// software

Built for agents.

FreeWili2 is a platform for running any code — software done by the user, for the user.

// ai & agents

Claude Code, in the loop.

This new age of AI lets tools like Claude Code write and debug your embedded application the way you want it. FreeWili GUI ships with integration for Claude and LM Studio for local models — and our open hardware docs plus Agent.md files give agents everything they need.

Onboard debugging seals the loop: an enhanced Raspberry Pi Debug Probe flashes and debugs both RP2350 cores and the LoRa processor — in the box.

  • Claude API
  • LM Studio (local)
  • Agent.md
  • in-box debug
FreeWili GUI Claude API configuration panel
// freewili gui

No install. No dependencies.

FreeWili GUI is a zero-dependency, USB-drive-capable app — launch it straight from the device's SD card, no install needed. It's loaded with new features: I2C component databases, integrated WASM compilers and debuggers, and point-and-click GUI drawing.

Draw to the screen the same way whether you're on the device, in WASM, or over the headless Linux API.

  • WASM compiler/debugger
  • I2C DB
  • GUI builder
  • portable
FreeWili GUI software showing the I2C panel and graphical editor
// bootloader

The SD-card UF2 bootloader.

My favorite. The SD-card bootloader loads applications written by anyone — first-party, third-party, or hand-rolled by an agent. Drop a UF2 on the card and run it. Two microSD slots (one for Linux, one for the device) and a runtime-swappable high-speed USB SD reader mean fast file exchange and broad OS support.

The reader even works with the Raspberry Pi Imager — so you'll never lose your card reader again.

  • UF2 from SD
  • dual microSD
  • USB SD reader
  • RPi Imager
GUI gauge widgets drawn in the FreeWili GUI builder
// play

Fruit Jam-compatible. Doom-approved.

The display CPU is nearly 100% compatible with Adafruit's Fruit Jam — port a Fruit Jam app to FreeWili2 with barely a change. Our team brought up PICO-8 and, of course, Doom.

// retro gaming

It runs Doom.

Comfortable buttons, a real D-pad, and a Fruit Jam-class display CPU make retro gaming play as good as it can on a hacking tool. PICO-8 brought up its reality-console fantasy world; Doom brought the demons. A full-size DVI connector (HSTX-driven) puts it all on the big screen.

  • Fruit Jam compatible
  • PICO-8
  • Doom
  • DVI out
// compatibility

The Fruit Jam connection.

Adafruit's RP2350-based Fruit Jam mini computer shares almost all of FreeWili2's display-CPU hardware (a few pins differ). That compatibility is the bridge: the broad Fruit Jam software ecosystem comes along for the ride, and it's what hinted at USB host in the first place.

  • RP2350 sibling
  • shared HW
  • easy ports
Adafruit Fruit Jam RP2350 mini computer board
// the full sheet

Specifications

Compute

Main / Display
2× RP2350 (dual-core, PIO)
Memory
8 MB SRAM / 16 MB Flash per RP2350
FPGA
Lattice ICE40 with 8 MB SRAM
Linux
Optional Raspberry Pi CM0
LoRa
STM32WLE5JC — STM32 with integrated LoRa
Debug
Enhanced RPi Debug Probe (RP2350 + LoRa)

Display & Input

Screen
3.5″ 480×320 capacitive touch
D-pad
5-way + A·B·X·Y (home/ok/cancel/page)
Keys
5 under-screen context buttons
Keyboard
2-press-per-letter
Motion
IMU position as input
USB host
Keyboard and mouse

Connectivity

WiFi/BT
ESP32-C5, 2.4 + 5 GHz
SubGHz
CC1101 + LoRa (Meshtastic)
RFID/NFC
125 kHz + ST25R3916B
CAN
CAN FD, 8 Mbit
Video
Full-size DVI (HSTX)
USB host
3× (2× 12 Mbit + 1× 480 Mbit)
GPS
Via USB host
IR
Tx/Rx, case window

Analog & GPIO

Connectors
20-pin (FW1) + 10-pin analog + posts
Analog in
0–5V, op-amp + PGA front end
Analog out
0–5V @ 25 kHz
Prog. PSU
1–5.5V / 1.5A + MOSFET crowbar
IO voltage
SW-selectable + ADC measure
I2C
3.3V Orca bus w/ EEPROM

Sensors & Audio

IMU
BMI323 (9-DOF w/ mag)
Magnetometer
BMM350
Light
OPT4001 ambient
Climate
SHT40 temp / humidity
Audio
4-mic array + 3.5 mm jack

Power & Storage

ULP
Dedicated micro, 17 power zones
Battery
3000 mAh + USB-aware charging
Storage
Dual microSD (device + Linux)
SD reader
High-speed USB, RPi-Imager ready
Boot
SD-card UF2 bootloader
// who wants to see it?

See FreeWili2 at DEFCON.

On sale at the show. Open hardware, open software, and an AI-native workflow — software done by the user, for the user.