Each Christmas, [Adam Anderson], [Daniel Quach], [Johan Wheeler], and [Gustav Abrahamsson] (going by ‘the Janky Jingle Crew’)—set themselves the challenge of outdoing their previous creations. Last year’s CH32 Fireplace brought an animated LED fire to life with CH32V003 microcontrollers.
This year, they’ve gone a step further with the North Pole Circuit, a holiday project that combines magnetic propulsion, festive decorations, and a bit of engineering flair. Inspired by a miniature speedway based on Friedrich Gauss’ findings, the North Pole Circuit includes sleighs and reindeer that glide along a custom PCB track, a glowing village with flickering lights, and a buzzer to play Christmas tunes.
The propulsion system works using the Lorentz force, where vertical magnets interact with PCB traces to produce motion. A two-phase design, similar to a stepper motor, ensures smooth operation, while guard rails maintain stability on curves. A separate CH32V003 handles lighting and synchronized jingles, creating a cohesive festive display. As we mentioned in the article on their last year’s creation, going from a one-off to a full batch will make one rethink the joy of repetitive production. Consider the recipients of these tiny Christmas cards quite the lucky ones. We deem this little gift a keeper to put on display when Christmas rolls around again.
This annual tradition highlights the Crew’s knack for combining fun and engineering. Curious about the details or feeling inspired to create your own? Explore the full details and files on their GitHub.
This is really nice!
Oh wow! That’s super cool!
Now this is pushing the boundaries of what I would expect to be possible!
It would have been a lot harder without your ch32v003fun framework! We used (and abused) it for last year’s card as well. Thanks for all the work you put into it!
I have always been so frustrated by how stifling the typical design-by-committee frameworks are, how slow iteration is and how locked down code is. I now have the tool I wanted. I’m really excited that I wasn’t the only one who wanted this.
I wish there was a better way to advertise it, because so many people say “I don’t want to use WCH because I don’t want to use Moun River.”
What is the best source to buy wch chips? If it is really that cheap I would buy 200-500pieces.
Wherever Ichecked it is either one off or a dozen in stock.
LCSC usually has plenty in stock
Okay, it is cool!
Idea 1: slot car racing
idea 2:
I think it is possible to move something with fieldgeneration on a different layer, too?
So perhaps an automatic chessboard is possible if the position is always known…
This is certainly a good iteration of the technology, but there are several other nice examples. I expect the origin of these machines was the micro-robots video by SRI. It was a bunch of magnets which moved around on a grid I can only describe as a grid of 2d linear actuators made of circuit boards.
Other notable iterations of the technology are racing tracks made by a German indoor miniature park. I can’t recall what it was called, but it’s here on Hack a Day, somewhere.
I looked at the technology and believed it would be possible to make a chess game. A real phantom chess board. I never made it, and don’t have the aspirations anymore. Please learn about the technology, and give it a go yourself.
That would be Miniature Wunderland in Hamburg. Check out their F1 track, it’s a replica of the Monaco track and they programmed it so that each car has a will to win and they really retry ( and succeed) to overtake each other.
https://www.miniatur-wunderland.com/discover-wunderland/worlds/monaco-provence/formel-1/
https://youtu.be/ck3Cycrmvcc?si=W27ccaKNY_tm_IOo
Racing would definitely be cool! The cars have a tendency to leave the track in high speed turns, so I think it could be a fun challenge. The cars also magnetically repel each other, which could be interesting.
We also thought about 2D, and in theory it definitely should be possible, maybe with a few more PCB layers. However, we could not figure out how to control it without knowing the position of the cars, which would introduce significant complexity. In a one dimensional loop, the cars can just keep moving forward without concern. With a 2d grid it’s easy to leave the active area if you don’t know the position of the car. Although for a chess game you would probably want to track the positions anyways!
Check out this project if you want to see what is possible: https://m.youtube.com/watch?v=MMtI9ERPerg
Fantastic PCB art and very cool and cute idea. Kudos.
Neat!
Then, I wondered if the ICs could look like buildings in the “pit area” with a little more PCB artwork.
Great technique.
Can’t wait for someone to make a clock with it !
How do these flat buttons work? Are they just fields for capacitive touch sensing? Or is there some gap between the layers, while the top layer is ellastic and you close the circuit by pressing it like a normal button?
Not sure, but they’re using 003fun, so probably https://github.com/cnlohr/ch32v003fun/blob/master/extralibs/ch32v003_touch.h
Yep, they are just pads for capacitive sensing. We charge them with a gpio and then measure the time it takes to discharge through an external resistor. cnlohr did all of the hard work, see https://github.com/cnlohr/ch32v003fun/blob/master/examples/cap_touch_exti/cap_touch_exti.c
How do I get added to their Christmas list? Haha