Marelleo: an open source ESP32 story box built for three kids, smoke included

Same gesture as a Toniebox, none of the catalogue: how a beginner built an ESP32 story box for his three kids, and what a short circuit and an always-on lithium cell taught him.

Binary Buddies · 5 min read · 3 views
A story box in a bedroom at nightA small wooden box on a bedroom rug with a figurine on top, sound rippling out of it while stars shine through the window and a mobile turns above the bed.

A two-year-old understands a Toniebox in about one second: put a figurine on the box and a story plays, lift it off and the story stops. No screen, no menu, no parent summoned to find the right track. The father behind Marelleo calls that gesture roughly the highest level of usability anyone can reach. What he could not stand was the bill that comes after it.

Every box in the category earns its money after the sale. The Lunii has its closed catalogue, the Yoto its card packs, the Toniebox its figurines. Each new story is another purchase, from a catalogue the parent does not choose, played on an object the parent does not control. In his words, you are not buying a player, you are buying "a subscription dressed up as a wooden toy."

Marelleo is his answer: an open source story box built on an ESP32 for his three children, shared on Hacker News as a Show HN, by someone who started out knowing nothing about electronics. His build notes, dated October 15, 2026, are worth reading less for the finished box than for the honest log of how he got there, including the night a lithium cell ended up soldered into a toy that could not be switched off.

Key takeaways

  • The figurine-on-a-box gesture is the part worth copying; the pay-per-story model is the part Marelleo rejects.
  • An ESP32 development board hits the sweet spot: built-in WiFi, enough power to decode MP3, Arduino-style programming, a handful of euros.
  • A breadboard got a working prototype running within hours, but friction-held contacts cause intermittent faults once the circuit moves.
  • The hard lessons were electrical: a miswired potentiometer became a short circuit, and a mismatched battery connector left the box permanently on.
  • A lithium cell in a child's bedroom needs a charge controller, a secure mounting and a way to turn the whole thing off.

A good gesture with a bad business model

The idea started on a summer holiday with friends and what the author calls a small tribe of children, where he first met a Toniebox and, by his own account, thought it was great. The design insight is real: the physical object is the interface. A child who cannot read can still choose, start and stop a story, and does it through play rather than through an app on a parent's phone.

His objection is about money and control. The player sells for a more or less reasonable price, and the revenue comes afterwards from content locked to one company's catalogue. For plenty of families that is a fair trade: a curated library and a finished, tested product with nothing to wire. For a parent who wants to decide what goes on the box, and to keep using the hardware on their own terms, it is a bad one.

The second urge was personal. For years he had wanted to understand electronics properly, not dabble, yet his soldering iron came out every three years to reattach a headphone wire. He was, as he puts it, the kind of person who knows what a resistor is without ever having had to choose one. The two ideas met in the car on the way home: an RFID reader, a tag, a box that plays a track depending on what sits on top. Not a product. Something for his kids, and a way to learn.

Driving home at duskA small car on a country road at dusk, low sun behind layered hills, headlights reaching ahead as the first stars appear.

Why an ESP32 and not a Raspberry Pi

He knew what he did not want before he knew what he did. A Raspberry Pi is a full computer just to play an MP3: too big, too power-hungry, and about twenty seconds to boot. That last number is the one that matters for this user. A child who puts a figurine down does not wait twenty seconds. They wander off and play with something else, and the magic of the gesture is gone.

At the other extreme sit the genuinely low-level chips, programmed in C against a 400-page datasheet. They are fine for an engineer and far too steep for a beginner who would like to hear a story that same evening.

Raspberry Pi

A full computer for a single job.

  • Too big for the box
  • Too hungry for a battery
  • About twenty seconds to boot

ESP32 development board

The choice Marelleo made.

  • WiFi built in
  • Powerful enough to decode MP3
  • Programmed like an Arduino
  • A handful of euros

Low-level chips in C

Maximum control, maximum effort.

  • 400-page datasheet
  • Far too steep for a beginner

The ESP32 development board landed in between: a microcontroller with WiFi built in, beefy enough to decode MP3, simple enough to program like an Arduino, and cheap. For a box whose whole job is to react the moment something touches it, that combination is hard to beat, and it is the reason the project could be finished by a beginner at all.

The breadboard: permission to be wrong

The second discovery was the breadboard, the perforated plate where components push in without any soldering. It sounds like a detail. The author calls it the whole project tipping over. On a breadboard, a mistake costs nothing: you unplug, you start again, nothing is damaged. When you are learning, that is exactly the property you need.

He read documentation, talked the design through with Claude, and drew wiring diagrams in a notebook. Within a few hours, far too quickly to feel earned in his telling, he had a circuit that played an audio track when a tag touched the reader. It was a plate of copper spaghetti with the speaker lying bare on the table, but it told stories, and he says he had not been that pleased with something made by his own hands since childhood.

The first Marelleo circuitA figurine tag on the NFC reader tells the ESP32 board which track to play through the speaker, and a red LED shows the board is alive.The first breadboard circuitFigurine tagNFC readerESP32 boardSpeakerRed LED: aliveBreadboard only, no solder
Follow the arrows from the tag to the speaker: every part sat on a breadboard, held without a single solder joint.

The potentiometer that became a wire

Volume control came next, through a potentiometer: the little rotary knob that is nothing more than a variable resistor. Wired correctly, turning it changes the resistance and sets the volume. Wired wrong, it stops setting anything at all and becomes a plain wire between plus and minus. That has a name, a short circuit, and in the author's words it heats up terrifyingly fast.

It smoked, and it gave off a smell he took a good while to place before it hit him all at once: ski wax, burning. He recognises it instantly now and notes that it is never good news. It is worth filing away for any beginner, because the nose often catches an overheating component before the eyes find it.

A potentiometer wired two waysLeft, the potentiometer acts as a variable resistor that sets the volume. Right, wired wrong, it is a plain wire between plus and minus, a short circuit that heats fast.Wired as intended+-Variable resistor sets volumeWired wrong+-Plain wire: short circuitIt heats up very fast
The same knob: on the left it varies resistance, on the right it joins the two supply rails directly.

3000 mAh, 3.7 volts and not remotely harmless

3000 mAhcapacity of the lithium cell
3.7 Vvoltage of the cell
20 sRaspberry Pi boot time he ruled out
3children the box was built for

The battery was the other big piece of work, and the one that made him think. A lithium cell is not something you connect to two wires and move on from. It needs a charge controller, a dedicated chip that decides when and how to fill the cell, stops at the right moment and cuts out before anything stupid happens. The cell in Marelleo is 3000 mAh at 3.7 V, flat and light, and in the author's phrase not remotely harmless.

Mounting matters as much as wiring. A lithium battery rattling around inside an enclosure can get pinched, which he describes as precisely the scenario in the videos nobody wants to watch. Fastening it down properly is part of the electrical design, not a finishing touch to deal with once the box is closed.

Where the charge controller sitsThe lithium cell connects through a charge controller to the ESP32 circuit. The controller decides when and how to charge, stops at the right moment and cuts out before trouble.Where the charge controller sitsLithium cell 3.7 VCharge controllerESP32 circuitDecides when and howStops at the right momentCuts out before trouble
The controller sits between the cell and everything else, and its three jobs are what make a lithium battery safe to leave in a toy.

Eleven at night on a Tuesday

Then came a small, stupid mismatch. The battery's connector and the charging board's connector were two little white plugs that looked alike but had different pitches, so they would not mate. At eleven at night on a Tuesday, nearly finished, he did what most people would do: cut the connector off and soldered the battery straight on.

The consequence he had not seen coming arrived immediately. With no connector, there was nothing to unplug. With no switch anywhere in the circuit, there was nothing to turn off. The box was on twenty-four hours a day: a lithium cell, hastily soldered into an object that never powers down, sitting in a child's bedroom. Written down like that, he says, it needs no comment.

How the box ended up always onConnector pitches differ, so the connector is cut off and the battery soldered straight on. That leaves no way to unplug and no switch, so the box is on 24 hours a day.How the box ended up always onConnector pitches differConnector cut offBattery soldered straight onNo way to unplugNo switch anywhereOn 24 hours a day
Read top to bottom: one shortcut at the connector removes both ways of turning the box off.

That was the turning point. Not fear, he writes, but the realisation that he was no longer tinkering with a gadget on the corner of a table. He was placing an electrical object into his children's daily life, and everything else in the project follows from that.

A workbench late at nightA desk lamp lights a bench with a breadboard, a flat battery and a soldering iron at eleven at night, a thread of smoke rising from the circuit while stars sit in the window.

Why the breadboard had to go

The first consequence was moving the circuit off the breadboard and onto perfboard, and safety was only part of the reason. A breadboard holds by friction: every wire is gripped by a tiny spring. That is wonderful for trying things and disastrous for anything meant to last.

Move the circuit and a contact goes. The fault that follows is worse than a clean failure, because it is intermittent. The author describes hunting a bug in his code for an hour and a half, rereading the same function, when the culprit was physical rather than logical. For a box a child will pick up, carry around and drop, a circuit that only works while it sits perfectly still is not a finished circuit.

Perfboard is where the project gives up the breadboard's freedom in exchange for permanence. Mistakes start to cost something again, which is exactly why the order matters: prove the idea where errors are free, then commit it to something that survives a bedroom floor.

What to check before you build your own

Marelleo is a personal build, not a product, and its author says so plainly: it was made for his kids and to learn. The open source framing makes it a starting point rather than a kit. Before copying the wiring, read the project's page for the current schematic, parts and licence, because the build notes record a design that changed each time a mistake surfaced.

The fair counterpoint is the one a Toniebox owner would make. A closed box arrives finished and curated, with none of the hazards above. Marelleo's freedom over content and hardware is paid for in evenings, solder and personal responsibility for a lithium cell. Whether that trade is worth it depends on whether you want the learning as much as the box.

The open question is whether the gesture can travel without the catalogue. The figurine-on-a-box interface is simple enough that a beginner rebuilt it on an ESP32 from a few euros of parts. What a homemade box cannot borrow from the commercial ones is their testing, so the lessons about the charge controller, battery mounting and an off switch are the part of this project most worth copying exactly.

What hardware does Marelleo use?

An ESP32 development board, an NFC reader with tags in the figurines, a speaker, a potentiometer for volume, and a 3000 mAh, 3.7 V lithium battery behind a charge controller.

Why not build a story box on a Raspberry Pi?

It is a full computer for the job of playing an MP3: too big, too power-hungry, and roughly twenty seconds to boot, which is longer than a small child will wait after putting a figurine down.

Is a homemade story box safe for a child's room?

Only if the battery is treated seriously. Marelleo's notes point to the essentials: a charge controller, a battery fastened so it cannot be pinched, matching connectors, and a way to switch the box off.

Do I need to know electronics to start?

Its author did not. He learned on a breadboard, where mistakes cost nothing, with documentation, notebook diagrams and conversations with Claude, and had a first working circuit within a few hours.

This article draws on Open Source Alternatives to Reflector? and answers to it (1, 2), on the Stack Exchange network, licensed under CC BY-SA 4.0.

  • #ESP32
  • #NFC reader
  • #Open Source
  • #Toniebox alternative
  • #breadboard
  • #story box

Comments

Add a comment
Sign in with Google to join the conversation