retia@sheen:~$ cat readme.md

Newsheen

A cute cat lamp with an upgradable hacker brain.
By Retia LLC.

A translucent silicone cat lamp with an ESP32-S3 puck inside: eight addressable LEDs, a button, and native USB-C. Add a 915 MHz LoRa radio, an IR receiver, or a microphone through the onboard headers to grow what it does.

One little board, a shelf full of personalities — a music-reactive lamp, an internet radio, a LoRa mesh node, a pocket hardware-hacking multitool, or the base for your own cute custom IoT build. Pick one and flash it right here in your browser.

[ flash the Sheen ] [ get a Sheen ↗ ] Getting started
// flashing and the serial monitor run on any browser supporting Web Serial.
// made in the USA by real catboys and catgirls.
[01] // getting_started

From box to glowing in four steps

Your Sheen ships as a blank ESP32-S3. Give it a personality and it wakes up.

  1. 01 Plug into USB-C.
    The S3's native USB shows up as a serial port — no drivers. macOS: /dev/cu.usbmodem*, Linux: /dev/ttyACM0, Windows: COMx.
  2. 02 Add the radio for mesh (optional).
    The Sheen ships without a radio. Meshtastic, MeshCore, RNode and Bit Pirate need a Seeed Wio-SX1262 fitted. Once it's in, before you transmit, attach a 915 MHz antenna — receiving is safe, but transmitting into nothing can cook the radio.
  3. 03 Flash a personality.
    Pick an image in the browser flasher and let it write. Every build is a complete .bin at offset 0x0, verified against a published hash before it touches your board.
  4. 04 Set it up over Wi-Fi.
    Most builds raise their own Wi-Fi AP with a setup page — WLEDkitty at http://4.3.2.1, Newsheen Radio at its own captive page. Mesh builds pair to a phone app instead.
!! Sheen quirks worth knowing
  1. Stuck flashing? Hold the BOOT button while you plug in USB, then release — that forces download mode. Hit CONNECT again.
  2. Running on a battery? Feed a regulated 5 V into the N-EXT pad and bridge JP1 — the onboard regulator makes 3.3 V from it. Never put 5 V or a raw battery on the 3V3 pad; that pad is the regulator's output. Details in Hardware.
  3. Add-ons unlock builds. Newsheen Radio needs a MAX98357A amp and speaker on the J3 header; WLEDkitty's sound-reactive mode needs an I²S mic there, and its remote needs the IR receiver fitted.
[02] // flash_the_sheen

Give your cat a personality

Flashing happens in your browser over Web Serial — every image is a complete .bin written at offset 0x0. Close any open serial monitors first (one client per port), plug the Sheen in, and pick a build.

loading catalog…
stuck? hold the BOOT button while you plug in USB, then release — that forces download mode. hit CONNECT again.
bins mirrored from scriptkitty.sh; each is verified against its hash before writing.
flash_log
// flasher idle — pick a build, plug the Sheen in, hit CONNECT
// tip: close other serial monitors first. one client per port.
[03] // serial_monitor

Talk to your cat

Bit Pirate and the RNode/CLI builds speak over serial at 115200 baud. Click connect, pick the Sheen, and you're in.

// serial monitor idle — plug a Sheen in and hit CONNECT
>
// bit pirate
Boots to the HIZ> prompt. Type help for the 26 modes, or led to light the ring from the CLI.
// meshtastic note
USB carries the protobuf client API, not a text log — use the phone app or meshtastic --port PORT --info.
// rnode status
The pre-provisioned RNode answers rnodeconf --info PORT straight away — no setup step.
[04] // firmware_catalog

Ten lives, one puck

Every image is mirrored from scriptkitty.sh and pinned to a hash the flasher checks before writing. Hit flash to load one into the flasher above. The last three are transmit- and attack-capable and ask you to confirm authorization first.

The Sheen is the ESP32-S3 Pusheen puck (esp32_base_puck_v2). Each build's source repo has its own PlatformIO project with the board definition if you want to roll your own.
[05] // hardware_and_pinout

Tech specs

Stock: an ESP32-S3, 8 LEDs, a button, and USB-C. The radio, IR receiver, and mic/amp are footprints you populate to add capabilities.

MCUESP32-S3-WROOM-1 — dual-core 240 MHz · WiFi + BLE · 16 MB flash · 2 MB PSRAM (N16R2) · native USB-C
LEDS8× WS2812B ring — top-facing, through the translucent lamp · GPIO 16 (via a 3V3→5V level shifter)
INPUTUser button — GPIO 17, active-low · BOOT on GPIO 0 · status LED on GPIO 48
POWERUSB-C, or 5 V external — external 5 V via the N-EXT pad + JP1 bridge (see below)
+ RADIOadd-on — Seeed Wio-SX1262 LoRa (915 MHz, wire-antenna pad) for the mesh builds
+ IRadd-on — VS1838B receiver on GPIO 4 for the 21-key remote (OUT leg in the square pad)
+ AUDIOadd-on — J3 header: an I²S mic (sound-reactive), or a MAX98357A amp + speaker for Newsheen Radio
$ cat pinout.map — the ones you'll reach for
# stock
leds      8× WS2812B ring ── GPIO 16   (via 3V3→5V level shifter)
button    user ───────────── GPIO 17   BOOT ── GPIO 0
status    LED ────────────── GPIO 48
usb       native S3 ──────── D- 19 · D+ 20
power     N-EXT pad + JP1 bridge for external 5 V

# add-on footprints (populate to enable)
ir rx     VS1838B ────────── GPIO 4    (OUT leg in the square pad)
mic/i2c   SDA 35 · SCL 36 · I²S WS 37 · SCK 38 · SD 39   (J3 header)
lora      SX1262: NSS 10 · SCK 13 · MOSI 11 · MISO 12
          NRST 9 · BUSY 47 · DIO1 21 · RF_SW 14
Top render of the Newsheen board — eight WS2812B LEDs around the edge, the ESP32-S3 in the center, the sensor header and buttons
front — rendered from the KiCad board (radio shown unpopulated, as it ships)
Bottom render of the Newsheen board — USB-C, the solder-pad power interface, JP1, and the 3V3 regulator
back — USB-C, the power pads, and JP1

Pinout map

Generated straight from the KiCad board. Green is stock, amber is an add-on footprint you populate, blue is power and battery.

Newsheen pinout map, front and back — each GPIO and pad labeled by function, color-coded stock / add-on / power
!! running it on a battery

External power goes to the N-EXT pad only — never wire 5 V or a battery to the 3V3 pad. That pad is the regulator's output; back-feeding it can damage the board.

The 3.3 V rail comes from an onboard regulator fed by the 5 V bus, so external power must be a regulated 5 V — a bare 3.7 V LiPo browns the board out. Run the cell through a charge-and-boost board set to 5 V: its output to the corner N-EXT pad and a GND pad, then bridge the JP1 jumper beside it — the silk reads SOLDER JP1 FOR EXT PWR. Charge through the boost board's own USB, not the Sheen's.

Full GPIO map and build notes: hardware/pinout.md. Part picks and a wiring diagram: ask in the Discord.

The shell & case files

The puck sits in a 3D-printed base under the translucent silicone lamp. The printable base, button, and retaining ring (v4), plus board STLs and the pinout, live in the Newsheen repo.

Perspective render of the Newsheen ESP32-S3 controller board
hardware/3d — printed base + button + retaining ring + board STLs
hardware/pinout.md — full GPIO map + build notes
Newsheen v1.0.0 release — ready-to-flash factory bins