HackerPhone + Hacker Band

Independent MIT firmware for the owner's CircuitMess MakerPhone 2 / MP24 engineering sample, maintained in its own HackerPhone repository. This is an early hardware bring-up, not a finished Marauder port or a validated daily-use telephone. The HackerPhone web flasher offers the 0.6 engineering preview with hardware-profile checks and a required local recovery backup. Read the supported profile, installation steps and validation limits.

Hacker Band development has started in this same repository for the owner's ESP32-C3 Maker Band. The first milestone provides tested portable clock, stopwatch, notification, Matrix rain animation and separate ignore/decline state, plus a versioned companion packet envelope and a compile-only C3 target. These modules are not yet connected to a band display, RTC or Bluetooth service. There is no flashable Maker Band release yet. See the Hacker Band implementation status and pairing design.

The intended pair is a watch-first wrist companion and a phone that handles cellular service and detailed recon. The band will show calls and texts, sync its RTC from the phone, and share evidence-labelled nearby-device observations. Ignore will silence the band while the phone keeps ringing; Decline will request rejection of that specific incoming call. The shared flasher currently offers HackerPhone only; Hacker Band is marked as in development until its hardware and recovery procedure are validated.

The original 4 MB flash has been saved privately before any replacement. This board has an ESP32-S3, 2 MB quad PSRAM, a 160×128 ST7735 panel, 23 keys, a Quectel EG91-NAX modem, and a working SD card under its original firmware. Original Ringo firmware targets different hardware.

HackerPhone home with the VTS wallpaper Green Radar theme and recon settings

Actual 160×128 framebuffer captures from the engineering sample, displayed at 2× size.

Current engineering build: 0.6 preview

The 0.5 foundation provides an SD MP3 player, retro RTTTL notifications, side volume controls, keypad lock/power-off handling and eight configurable notification LEDs. It also adds recon missions, editable SSID lists, Marauder AP JSON interchange, marked target lists, radio MAC settings and an SD file manager. See daily controls and audio and toolkit workflows.

Saved RTTTL call, text and recon tones LED patterns, brightness and notification settings Wi-Fi and BLE recon missions and AP JSON export

0.6 cellular preview

Mint LTE registration and internet access are now measured on this sample, with two-way call audio confirmed using the corrected 16 kHz PCM bridge. Settings / Cellular / 4G hotspot can share that connection over a password-protected Wi-Fi network. A laptop completed DHCP, cellular DNS and HTTP traffic through it. See cellular setup and controls. The 64 GB SD card mounts and passes a write/read check; directory loading is incremental and text previews page through files. Imported RTTTL supports up to 1,024 notes and ten minutes. The header also shows an estimated battery percentage and icon, or USB/charging status when plugged in. The percentage is based on voltage, not measured runtime; see battery indicator details.

Build and test

Use Python 3.12 in a virtual environment and install python -m pip install -r requirements-dev.txt. This includes pioarduino Core 6.2.0, required by the pinned ESP32 platform; it provides the platformio Python module and pio command. The recipe also pins TFT_eSPI and NimBLE. python tools/test_core.py runs native tests without opening a serial port. python -m platformio run -e mp24_sample builds the engineering image.

python -m platformio run -e hackerband_core compiles the portable watch services for ESP32-C3. This target intentionally has no peripheral pin assignments and blocks PlatformIO upload/erase targets until the actual Maker Band hardware and recovery procedure are established. Do not manually flash its generated image.

The partition file matches this sample's saved layout. Development flashing must write only the application at 0x10000, after verifying the connected chip, flash size, and recovery copy. Never use Ringo binaries, erase-flash, or the automatically generated firmware.factory.bin on this sample: its generic boot-app offset overlaps the saved NVS layout. The development procedure preserves the bootloader, partition table, NVS and SPIFFS. Normal runtime may update radio calibration/NVS and crash diagnostics. SD logging creates files only inside /hackerphone; no formatting is performed.

Repository layout

Directory Contents
firmware/ Phone services and the initial portable Hacker Band core
assets/ Owner-supplied BWM boot and VTS wallpaper originals
tools/ Native test runner, asset conversion, vendor database builder and USB exporter
tests/ Synthetic phone, protocol, storage and tracking checks
docs/ Hardware evidence, toolkit controls, feature inventory and validation results
third_party/ Pinned detector/decoder sources and license notices

Local recovery images, captures and toolchains are excluded from Git. CI checks native services and compiles the engineering application; it does not flash hardware or publish a factory image.

Controls

Joystick or A opens a menu item; C returns home and ends active transmissions/GATT connections; B goes back or erases text. Phone number entry uses the numeric keys and * for a leading +. Messages use traditional multi-tap typing (800 ms between different letters on one key), followed by a review screen. Radar's D button pauses listening. Target details lead to a signal hunt; D opens evidence, raw advertisement, connection and replay tools. A target being viewed is pinned against table eviction so a menu action cannot silently select its replacement. The SD browser loads 32 entries per page incrementally; Left/Right moves between directory pages or 168-byte text-preview pages.

Side volume buttons adjust master audio. The red side button taps to lock/unlock and holds for 2.5 seconds to begin shutdown; release it to finish. Music has play/pause, next/previous, stop and repeat controls. Daily-use controls describe saved tones, LED patterns, SD uploads and verification limits.

USB diagnostics and tools are documented in TOOLKIT.md. Explicit PHONE DIAL, PHONE ANSWER and PHONE HANGUP commands control live calls; USB does not expose SMS sending; explicit GATT, LAB, ATTACK and IR SEND commands perform their named operations. Full flash backups, private logs, extracted engineering firmware, and radio captures stay in ignored .work/ or on the device, never in a public repository.

Verification still required

The user confirmed the panel, navigation, headphone audio, MP3 playback, side volume buttons, red-button lock/shutdown/wake, all eight LEDs and the retro tones. On-device checks verify MP3 decoding during combined scanning, mission logs, file operations and byte-for-byte SPIFFS backup. Battery-only shutdown and long-term use still need physical acceptance; validation notes separate measured results from open checks. Mint LTE registration and cellular internet/hotspot traffic have been measured. Two-way call audio was confirmed by the owner; SMS delivery remains unvalidated; see the latest validation notes. No SDK or schematic was provided with this engineering sample. Board assignments recovered from its diagnostics/image are documented with their evidence in hardware notes.

Credits and licensing.