It was almost my friend’s birthday, I planned to give them something as a present. I planned to make some very simple stuff and call it a day. So I looked at some project ideas online and found a few simple projects that use DFPlayer Mini. So my plan was simple, I would create a simple box in Fusion 360 and shove an Arduino Nano Every, a DFPlayer, battery, a speaker, and maybe a converter and a display inside and done and done.
So, I started prototyping a few weeks ago. Well, I have used DFPlayer before, so all I need to do now is make the code more robust and maintainable. And et voilà! It’s done! Or is it?

So the issue is that I couldn’t find a speaker that was small enough to fit inside a small case but also had decent sound quality. I tried many different speakers and even pulled one out from my old laptop. But they were either too large or sounded like someone smeared 46 layers of butter on top of the speaker while the signal was being transmitted from space.
So, the project was delayed and, until I noticed, I only had one day left. So I had to skip my plan and just buy them a present like a normal person would.
But still, I had already coded the thing, I may as well just print a larger box and put the thing inside it. So I did, and printed it out to see what it was like. And you know what, the longer I looked at it, the more it looked like an upright piano…

Okay, maybe not. It’s just a rectangular box. But I suddenly had an idea of making an upright piano-shaped music box. Now, it has a reason to be much taller than a normal music box.
Designing the Piano#
So I quickly started to make the piano. I decided to use Yamaha U1 as my reference, the piano that I grew up with.
After some testing and iterating, I finalized the shape. And we can start the assembling.

BTW, I tried so hard to figure out why I couldn’t open the lid no matter what changes I made to it. It turned out that I forgot to leave a gap. Ahhh… First time debugging plastic.

Assembly#
With the shape decided, I soldered everything else together.

Anyway, started to assemble things together.
I first soldered the components onto two separate boards, one for the microprocessors, the power converter, and the battery, and another for the buttons. I hot-glued the charging module and converter to the board.
![]() | ![]() |
|---|
Then inserted the threaded inserts into the screw holes.
![]() | ![]() | ![]() |
|---|
I didn’t have AMS, so I had to superglue the lid and the white keys together.

And then put the boards, display, and speakers in place.



Result#
And finally, it’s done!
Final Thought#
It was actually a pretty fun project. This is currently the most complicated 3D model I have ever made. And quite frankly, I didn’t make it easy for myself to assemble. If I do a revision, I will probably make the back panel removable. This way, it will be much easier to put in all the components.
The code and model can be found here if you are interested:
Code: https://github.com/js-lm/Piano-Music-Box
Model: https://www.printables.com/model/1478391-piano-music-box





