🤖 AI 资讯

· · ↗
← 返回列表

Marelleo, a story box I built for my kids

Zebra Rodeo2026-10-15T00:00:00+00:00大模型,算力芯片,AI应用,具身智能,Google,Anthropic,Meta,搜索RAG,招聘HR,网络安全,榜单评测原文 ↗

It started as an irritation on holiday

Last summer, on holiday with friends and a small tribe of children, I came across the Toniebox. And honestly, I thought it was great. The child puts a figurine on the box, the story starts. They take it off, it stops. No screen, no menu, no parent to go and fetch. A two year old gets it in one second, which is roughly the highest level of usability anyone can reach.

The gesture is perfect. The business model, much less so. All these boxes work the same way: the object sells for a more or less reasonable price, and the money is made afterwards, on the content. Whether it’s the Lunii and its closed catalogue, the Yoto and its card packs, or the Toniebox and its figurines, every new story is a purchase, from a catalogue I don’t choose, on an object I don’t control. You’re not buying a player, you’re buying a subscription dressed up as a wooden toy. And that genuinely annoys me.

Meanwhile, I had been telling myself for years that I wanted to do electronics. Not as a dabbler: actually understand it. Except I knew nothing about it. I own a soldering iron that comes out every three years to reattach a headphone wire, never to build anything. The kind of guy who knows what a resistor is without ever having had to choose one.

The two urges met in the car on the way home. That would be my project. An RFID reader, a tag, a box that plays an audio track depending on what you put on it. Not to make a product. Just for my kids, and to learn.

Two discoveriesv0

The breadboard, or the right to get it wrong

I already knew what I didn’t want. A Raspberry Pi is a full computer just to play an MP3: too big, too hungry, and it takes twenty seconds to boot. A child putting a figurine down does not wait twenty seconds, they wander off and play. At the other end, the genuinely low level chips, the ones you program in C with a 400 page datasheet, are far too steep for a beginner who would like to hear a story that same evening.

While reading around, I came across the two things that made the project possible. First the ESP32 development board: a microcontroller with WiFi built in, beefy enough to decode MP3, simple enough to program like an Arduino, and sold for a handful of euros. Then the breadboard, that perforated plate where you push components in without soldering anything.

It sounds like a detail. It is the whole project tipping over. On a breadboard, getting it wrong costs nothing: you unplug, you start again, nothing is damaged. When you’re learning, that is exactly the property you need.

So I read documentation, I talked it through with Claude, I drew wiring diagrams in a notebook. And very quickly, far too quickly to feel earned, I had a circuit that played an audio track when you put a tag on it. It was ugly, a plate of copper spaghetti, the speaker lying bare on the table. But it worked. A few hours, and I had a thing that told stories. I don’t think I had been that pleased with something made by my own hands since childhood.

What caught fire

The potentiometer, the smoke, and the smell of ski wax

What came next is less glorious. To set the volume I added a potentiometer, that little rotary knob which is nothing more than a variable resistor. Except that wired wrong, it no longer sets anything at all: it becomes a plain wire between plus and minus. That has a name, it’s called a short circuit, and it heats up terrifyingly fast.

It smoked. And it gave off a very particular smell, which took me a good while to place before it hit me all at once: ski wax. Burning wax. I recognise it instantly now, and it is never good news.

The battery was the other piece of work, and the one that made me think. You don’t connect a lithium cell to two wires and move on. You need a charge controller, a dedicated chip that decides when and how to fill it, that stops at the right moment and cuts out before anything stupid happens. You also need to fasten it down properly, because a lithium battery rattling around inside an enclosure and getting pinched is precisely the scenario in those videos nobody wants to watch.

And then a stupid detail: my battery’s connector did not match the one on the charging board. Two little white plugs that look alike, two different pitches, incompatible. So I did what you do at eleven at night on a Tuesday when you’re nearly there: I cut the connector off and soldered the battery straight on.

Immediate consequence, which I had not seen coming: no connector any more, therefore no way to unplug anything, and no switch anywhere in the circuit. The box was permanently on. Twenty four hours a day. A lithium cell hastily soldered into an object that never turns off, sitting in a child’s bedroom. Written down like that, it needs no comment.

That is the moment I stopped treating this lightly. Not out of fear, but because I understood that I was no longer tinkering with a gadget on the corner of a table: I was placing an electrical object into my children’s daily life. Everything else in the project follows from that realisation.

Workshop notev1

From breadboard to perfboard

The first consequence was leaving the breadboard, and it wasn’t only about safety.

A breadboard holds by friction. Every wire is held by a tiny spring, which is wonderful for trying things and disastrous for lasting. Move the circuit and a contact is lost, and the fault that follows is far worse than a clean failure: it is intermittent. You hunt a bug in your code for an hour and a half, you reread the same function twenty times, and it’s a wire that no longer touches.

The next step is perfboard: the same grid of holes, but on a printed circuit, with every component soldered in. You lose the right to be wrong, you gain a circuit that holds together. That’s where I really learned to solder, and above all where I understood that my repair soldering had nothing to do with manufacturing soldering. Repairing is remaking a joint that existed. Building is making a hundred in a row, all clean, all identical, knowing that the hundred and first is the one that will fail.

The enclosure

My kids unscrewed the knob until the wires tore off

For the enclosure I got very lucky: François Lagunas lent me his 3D printer and helped me through the first attempts. Without him I would still be cutting cardboard with a ruler. I drew my models in Fusion 360 on the free hobbyist licence, and printed.

The first version was too big and too fragile. And quality control arrived faster than expected, in the shape of three children aged 21 months, 5 and 7.

They broke the knob by turning it like animals. The volume knob ended up spinning with no end stop, round and round, and as it turned it wound the wires around themselves until it tore every one of them off. I opened the box onto a little nest of twisted copper. That’s where I learned the most important rule of the entire project: a five year old does not turn a knob, they unscrew it. And they don’t stop when it resists. They stop when it gives.

So I started over. I took every measurement again with callipers, component by component, so that each hole would land exactly where it should and each part would be held by plastic rather than by its wires. I thickened the walls, added pockets, lowered the height. Version after version, the object stopped looking like a prototype and started looking like an object.

Still in the spirit of nothing being allowed to give, I also abandoned self tapping screws. Screwing straight into printed plastic holds once, twice, and on the third go the material splits along the layers: the hole holds nothing any more and the part is fit for reprinting. The real answer is called a brass insert. You set it on the hole, come down on it with the tip of the soldering iron, the brass heats up, melts the plastic around itself and sinks in. As it cools you have a metal thread captured in the part, which you can screw and unscrew a hundred times.

And then came the only test that no technical argument passes on my behalf: my wife liked the box. Not politely: she put it on the living room shelf, among the objects you don’t tidy away when someone rings the doorbell. That also settles the cube shape, which I wasn’t sure about. An object for children that you don’t need to hide is an object that ends up being used.

In the opening photo, all of that is still visible: a circle engraved on the top, which says where to put the figurine because the antenna sits right underneath, the volume knob beside it, the play button, and the name raised in the front wall. The figurines are painted wooden people with an NFC sticker glued under their feet. Any object would do: a toy car, a token, a flat pebble. The child decides what tells what, and that is exactly what I wanted.

The boardv2

I wanted nothing left dangling

At that point I had a version that worked pretty well. But a wired circuit, however well soldered, is still a wired circuit. There is always a cable pulling on a joint, a module hanging off its legs, a connector that works loose when you shake it. And I had just spent a few weeks measuring, very empirically, how much my children shake things.

So I changed category and set about designing a printed circuit board. Everything that was scattered, brought together on a single board: the power supply, the charger, the amplifier, the SD card reader, the connectors. Every part in its place, nothing moving, nothing sticking out.

I used Claude to go from my wired circuit to a clean schematic, and that is where the division of labour became interesting. It reads a datasheet very well, spots that a pin needs a pull-up, works out a value, fetches a footprint from the library rather than copying it from memory. But it cannot route. Routing, that is to say physically drawing the path of every copper track between components without ever crossing another, is something I did by hand, in KiCad. 491 tracks. Entire evenings spent moving lines by a tenth of a millimetre to squeeze a connection between two pads eight tenths apart.

That file has to be gone over with a magnifying glass before you send it, for a very concrete reason: you don’t order a single board. The minimum is five, manufactured and assembled in one go. One mistake in there isn’t a touch-up job, it is five boards for the bin and the whole invoice.

So I had it reread the entire schematic, line by line. It found three things I would never have seen, and each one would have cost the order.

Workshop note

The three mistakes caught before the order

The resistor that would have killed everything. To produce the 3.3 V the processor needs, I use a step-down converter, and I had put two resistors around it forming a divider. That is the normal way to set the output voltage. Except the chip I had picked comes in two families: an adjustable one, and a fixed output one. I had taken the fixed one. With my divider, the regulation would have read a voltage far lower than reality, concluded the output was too weak, and pushed. The arithmetic gives 13.7 V on a rail meant for 3.3. The WiFi module, the SD card, the NFC reader: all dead within a second of power-up.

The diode the wrong way round. In KiCad, pad number 1 of a diode is the cathode, and my file placed it the other way round. A reversed diode at that spot means the 5 V doesn’t come out, so the 3.3 V doesn’t exist, so the board doesn’t start at all. Five mute boards in one go, with no way of noticing without having them made.

And the checker that checked nothing. KiCad automatically verifies that tracks respect minimum clearances. Mine was configured with a minimum clearance of zero. It ran, it reported zero errors, and it approved absolutely anything, silently. That is the worst kind of bug: the tool that reassures you.

Once, the roles reversed and it gave me a silly amount of pleasure: I was the one who spotted that two components in my bill of materials were out of stock, before it did. We turned that into a small program that queries the manufacturer’s catalogue and returns the stock and price of each part number, so that it never happens blind again. A part number is not a given: you recheck it on the day of the order, not the day before.

Delivery

160 euros of boards, and nothing happens

I ordered from JLCPCB, who manufacture the board and populate it. For 160 euros I got five, already assembled, enough to keep one and give the rest to cousins and friends. Opening that parcel was one of the very good moments of the project. Green boards, crisp, components perfectly aligned, my name written on them, out of a file I had drawn on my sofa.

First contact with the manufactured object: I can’t plug the USB in. The factory had added a small strip of material under the socket, a breakaway tab used to hold the board during assembly, which you’re meant to snap off on arrival. I had to work up the nerve to break it by hand on a thirty euro board. That took me a good ten minutes of contemplation.

Then I plug it in and test. And nothing happens. The NFC reader’s LED blinks, but no figurine is recognised, nothing plays, nothing appears on the network. Nothing.

I spent a quarter of an hour telling myself I was an old fool who had just burned 160 euros on useless boards, and that it served me right. A genuinely bad moment. Then I went looking, methodically, unplugging the harnesses one by one.

The culprit came down to two wires. I had swapped the two middle conductors on the NFC reader’s ribbon, the ones carrying the serial link. That link always crosses over: what one transmits, the other has to listen to. Wired straight, both ends talk at the same time and nobody listens. The module powers up, its LED blinks away happily, and it never answers. It is the kind of fault that looks serious and is just carelessness.

And the best part comes last. I had fixed the cable, and it still didn’t work. For two stacked reasons: first, the program questions the reader only once, at startup, so until you restart, the repair is invisible. Second, the power switch cuts nothing at all while USB is plugged in, because it acts on the battery’s transistor and USB feeds the board by another path. So I was spending my time “restarting” a board that wasn’t restarting, to test a repair that was already done.

Cable finally unplugged and plugged back in, the long awaited line dropped onto the console:

  • console
  • PN532 pret
  • bibliotheque : 4 figurine(s)
  • volume : 3 [3-21]

And for thirty seconds I thought it was still broken, because I couldn’t hear anything. The volume knob had been left at the bottom of its travel, at minimum. There is a poetic justice in ending a day of debugging on a volume problem.

But other than that: the board worked first time, with no rework at all. Not a single flying wire, not a track to scrape, not a resistor to replace. For a first board designed by someone who didn’t know what a footprint was three months earlier, I really did not expect that.

All that was left was to assemble everything int