a maker studio

Solder & Sparkles

By Honey Chawla β€” where circuits meet crafts.

Cyberdecks, custom PCBs, 3D prints, handmade jewelry with a heartbeat, and whatever else the parts bin dreams up.

I want to read fanfiction on an e-reader I built myself. That's it. That's the project.

Step one β€” picking parts from the bin β€” is done, and every choice has a reason:

The e-reader parts laid out on a Gengar desk mat: the ESP32 Feather V2 board, the 3.5-inch TFT display, a rotary encoder with its knob, the 3.7V 1200mAh battery, and a strip of pin headers
the chosen ones, assembled πŸ“Έ
  • Brain: ESP32 Feather V2 β€” it has LiPo charging built right in, so battery management is solved by plugging in a connector. 8MB of flash means several novels' worth of fic fit on board.
  • Screen: the 3.5" TFT (320Γ—480) β€” the biggest screen in the bin. Big SPI displays redraw slowly, which rules them out for games β€” but a page of text is static, so the e-reader is the one build where that weakness doesn't matter.
  • Page turns: the rotary encoder β€” spin forward for next page, back for previous, click for the menu. The entire UI is one knob.
  • Power: the 3.7V 1200mAh battery β€” straight into the Feather's battery connector. No regulators, no extra boards.
  • Firmware: CircuitPython β€” the board joins WiFi and serves its own little file manager in the browser, so loading a fic is wireless: download, drop, read. No apps, no cables at all.

Step 2: prototyping ⚑

First signs of life! We flashed the classic blink example onto the Feather from the Arduino IDE. One tiny red LED, blinking once per second β€” which doesn't sound like much, but it proves the whole pipeline works: the cable, the board, the toolchain, the flash. In hardware, the humble blink is the "hello world."

Then we took a detour through CircuitPython β€” Python on hardware, live REPL, very appealing on paper. But on this particular board it wanted WiFi configured before it would even take a file, the editor couldn't find the device, and the tooling fought us at every step. Lesson logged, mistakes and all: the boring write-compile-flash Arduino flow just works, so boring wins. Back to Arduino IDE we go.

Then the soldering iron came out β€” for the first time ever. The display's pin header needed attaching: nine little joints, with the breadboard holding everything straight as a jig. Lead-free solder, steady hands, zero bridges.

Soldering station setup: a Weller iron in its stand, a spool of lead-free solder, and the display resting on the breadboard jig
the operating table πŸ”§
Close-up of the display's freshly soldered pin header, nine shiny solder joints in a row
first solder joints ever ⚑

Nine jumper wires later, the display was wired to the Feather. We asked it politely which driver chip it has (displays are supposed to answer over SPI) β€” it returned gibberish and kept its secrets. So we guessed: ILI9488, the most likely brain for a 3.5" screen like this, and flashed a test sketch…

The wired-up display held in hand showing only its lit backlight, no image yet
the "why is nothing drawing" moment (the code was... not uploaded 🀑)

…and it worked on the first try:

The 3.5-inch display rendering 'hello sparkles β€” the AO3 e-reader begins' in white text on a pink-purple background, wired to the Feather on the breadboard
hello sparkles πŸ’— it speaks!

Update: the rotary encoder is in! Spin the knob and pages turn on screen; click it and the color scheme flips. The e-reader's entire input system is officially one very satisfying knob.

spin to turn, click to vibe swap πŸŽ›οΈ

And then, the big one: a real fic on the real screen. "The Auction" β€” a 1.8MB Dramione epic β€” is flashed into the board's storage, and the reader does word wrap, pagination, a page counter, dark mode, and remembers your page across power-offs. (The pink is properly pink now, too β€” the panel wanted its colors in the other order.)

One last dragon to slay: the first version took minutes to load, because it paginated the novel one character at a time through the filesystem. Version two slurps the whole fic into the board's 2MB of PSRAM in one go and wraps text with pure integer math. Boot time: a few seconds. Lesson logged: the filesystem is for storing, RAM is for reading.

actually reading fanfiction on hardware I built πŸ“–πŸ’—

Step 2: prototyping β€” done. It boots in seconds, holds a novel, turns pages with a knob, has a dark mode, and remembers where you stopped. That's not a prototype of an e-reader. That's an e-reader.

Step 3: make it cute πŸŽ€

Goal: a real PCB so the jumper-wire nest becomes a proper board, and a case so the breadboard becomes a gadget. This is where the two big skill goals (PCB design and 3D printing) come due β€” and the first one just got paid. In a single evening, in KiCad (chosen over the AI-assisted tools on purpose: the whole point is learning to read the schematic myself), the e-reader's circuit went from breadboard to finished board design.

The best catch of the night wasn't on the screen: halfway through layout I realized the encoder's shaft would stab the display in the back β€” CAD happily approves designs that are impossible in three dimensions. So the board grew a 20mm "control deck" below the display where the knob gets open air, which accidentally made it look like… an e-reader. Screen up top, wheel under your thumb.

Then: routing. Fat traces for power hugging the board edges, a six-lane signal fan feeding the display connector, a ground pour flooding the entire back with copper β€” and the design rule check came back with zero violations and zero warnings, first try. The back of the board is signed, because you sign your work.

3D render of the e-reader PCB front: sockets for the Feather and display, rotary encoder pads on the control deck, slide switch at the edge
the front, waiting for its Feather πŸ–₯️
3D render of the e-reader PCB back: solid copper ground pour with 'Solder & Sparkles β€” e-reader v1.0' in silkscreen
the back: one sheet of ground and a signature βœ’οΈ

Update: the order is placed. Five copies of a board I designed are being manufactured right now β€” 58.7 Γ— 120.4mm of fiberglass, copper, and signature. (One last catch before ordering: holding the real display against the layout revealed the bottom mounting holes needed to move β€” the board got a little taller. Verify against atoms, not just pixels.) While the fab works: the case gets designed, and the breadboard prepares for honorable retirement.

Two iPod-inspired Bluetooth MP3 players, built into real iPod shells with real clickwheels. Yes, two. Mixtapes are for sharing.

The iPod Classic was peak gadget: one device, one job, one extremely satisfying wheel. So we're building it back β€” genuine iPod Video housings and clickwheels from the parts market, modern guts inside, Bluetooth and the original headphone jack. Inspired by the legendary sPot build, which proved the clickwheel's secret language has already been decoded.

Phase 1 is collecting the parts, and the cast is fully chosen:

  • Brain: ESP32 Feather V2 β€” the same beloved board as the e-reader, picked here for a rarer talent: it's the generation that still speaks Bluetooth Classic, which streaming to headphones requires. USB-C charging built in.
  • Shell: real iPod Video parts β€” white faceplate, chrome thick back, genuine clickwheel with its ribbon, and the original headphone-jack-and-hold-switch assembly. The hold switch will actually work. Authenticity matters.
  • Display: 2.4" TFT (320Γ—240) β€” almost exactly the size and resolution of the original iPod Video screen, so it drops behind the window like it was born there. Bonus: its SD card slot doubles as the music library.
  • Storage: 32GB microSD β€” roughly 7,000 songs. The 2005 dream, casually exceeded by a fingernail.
  • Power: 3.7V 2000mAh battery β€” 13–20 hours of playback, charged over USB-C. No power switch, on purpose: real iPods slept, so ours deep-sleeps too.
  • Audio: PCM5102A DAC β€” turns bits into music for the wired jack; Bluetooth handles the wireless side.

Everything is ordered and in the mail. Phase 2: breadboard the audio chain, teach the Feather to read a clickwheel, and hear the first song. Somewhere down the road, this project's jumper nest becomes our first custom PCB β€” a board shaped to fit an iPod.

A custom portable computer, built from scratch and documented every step of the way.

The approach is materials-first: gather the parts, then let the parts bin tell us what wants to be built β€” the idea board below is where the candidates are fighting it out.

Along the way: learning to 3D print and to design a real PCB β€” so the finished build gets an enclosure that looks intentional and a board that isn't a bird's nest of jumper wires.

The Parts Bin

Shared across every project β€” whatever gets built draws from here.

Brains

  • ESP32-S3
  • ESP32-CAM
  • XIAO-ESP32-C6 Γ—2
  • ESP32 Feather V2 Γ—2

Displays

  • 1.28" round GC9A01
  • 1.28" round TFT 240Γ—240
  • 2.8" TFT SPI 240Γ—320
  • 2.8" resistive touch 240Γ—320
  • 3.5" TFT 320Γ—480
  • 3.5" RPi display 480Γ—320

Power

  • 3.7V 1500mAh LiPo
  • 3.7V 1200mAh Li-ion
  • LM2596 step-down regulator
  • Micro-LiPo charger

Inputs

  • Micro switches Γ—5
  • Rotary encoder
  • Joysticks Γ—3
  • Colorful square buttons Γ—15
  • Power switch

Bits

  • Half-size breadboard
  • FeatherWing Proto Γ—2
  • NeoPixel ring 16Γ— RGB
  • 18-pin 100mm FPC cable

The Toolbox

The machines that make the making happen.

The Idea Board

Things the parts bin could become β€” each one test-fitted against what's actually in the bin.

The Compowder

A Totally Spies-style flip compact β€” round screen as the "mirror," glowing NeoPixel bezel, spy boot animation.

would use

  • ESP32 Feather V2
  • round TFT 240Γ—240
  • NeoPixel ring
  • FeatherWing Proto
  • 1200mAh Li-ion

PokΓ©dex

The classic red clamshell. Point the camera at something and get a Dexter-style entry for it.

would use

  • ESP32-CAM
  • 3.5" TFT 320Γ—480
  • joystick
  • micro switches
  • 1500mAh LiPo

Yu-Gi-Oh LP counter

Dial in damage on the encoder, watch life points drain dramatically. Duel disk shell as the stretch goal.

would use

  • XIAO-ESP32-C6
  • round GC9A01
  • rotary encoder
  • square buttons

Heart macropad

A heart-shaped mini keyboard β€” the classic first custom PCB. Pink solder mask, obviously.

would use

  • XIAO-ESP32-C6
  • square buttons

Card scanner

A little tray that looks up prices and details for PokΓ©mon and Yu-Gi-Oh cards.

would use

  • ESP32-CAM
  • 3.5" RPi display

Digital locket

The round display as a necklace: animated hearts, tiny photos, a sprite that blinks at people.

would use

  • XIAO-ESP32-C6
  • round GC9A01
  • 1200mAh Li-ion