Caution
The PCB of the first prototype does not have 100% of it’s features working. If you want to make one wait until I fix all of the issues
Meko
Meko is a high audio quality DAP, it has an e-ink screen, a physical spinning wheel, small formfactor, Bluetooth, micro SD slot, transparent case. Its design was inspired by the iPod nano 2. The size of the case is 41x73x14mm
Why?
I really miss the era of gadgets, where every device served one specific function, without distraction, like a mp3 player, a camera, a gps navigator, an e reader, etc. With this player I wanted to make something unique
PCB
Production files in Releases
The PCB has 6 layers, in the SIG/GND/SIG/GND/GND/SIG stackup.
It is impedance controlled for JLCs default 6 layer PCB stackup, but not many of t…
Caution
The PCB of the first prototype does not have 100% of it’s features working. If you want to make one wait until I fix all of the issues
Meko
Meko is a high audio quality DAP, it has an e-ink screen, a physical spinning wheel, small formfactor, Bluetooth, micro SD slot, transparent case. Its design was inspired by the iPod nano 2. The size of the case is 41x73x14mm
Why?
I really miss the era of gadgets, where every device served one specific function, without distraction, like a mp3 player, a camera, a gps navigator, an e reader, etc. With this player I wanted to make something unique
PCB
Production files in Releases
The PCB has 6 layers, in the SIG/GND/SIG/GND/GND/SIG stackup.
It is impedance controlled for JLCs default 6 layer PCB stackup, but not many of the lines are impedance controlled, and if they are they are short, so if you must, you can use other stackups.
Chips
- main SOC: NRF5340
- DAC/AMP: TAD5212
- PMIC: npm1300
- hall-effect sensor: AS5600-ASOM
Case
Production files in Releases
The case in designed in FreeCAD, which is an Open Source and free CAD program, you will need this program to edit the case.
3D printing
I recommend you to print this in resin because it requires accurate dimensions for the best result. You can print this on a FDM, but you need to change the tolerance and maybe other parameters in the model.
Parameters
The case has parametric design, so you can change the design very easily, and I included some easily changeable parameters, here what they do:
battery_heightandbattery_widthare to set the size of the hole in thebottom_cade, the case is designed to have a 5mm thick battery, so you need to change the length of the first pad inbottom_caseto account for the thicker batterybearing_innerandbearing_outerset the inner and outer diameter of the bearing, this might mess up the top case, and if you dont want to use the recommended magnet,the wheel, so you might need to go in deeper to change these kinds of stuff. These parameters won’t change the 3D model of the bearing in the model.bearing_heightthis sets the hight of the bearing, this will change the size of the hole in thetop_caseand the rim of thewheel. This parameter won’t change the 3D model of the bearing in the model.bearing_tolerancethis sets the tightness of the friction fit of the bearing int thetop_caseandwheelbutton_filletthis sets the roundness of the buttonsbutton_heightandbutton_widthset the width and hight of the buttonsbutton_reatiner_edgeset the size of the edge that keeps the button inside of the case and doesn’t let it fall outbutton_tolerancesets the tolerance of the buttons to the case, this is a different form the generaltoleranceparameter, because the buttons are moving, and may wobble more if you set a loos tolerancecase_offsetthis parameter is still WIP, so don’t use it, it sets the offset of the PCB form the point where thetop_caseandbottom_casemeettolerancethis sets the general tolerance for inaccuracies in the 3D printwall_thicknessthis sets the thickness for the case wallswheel_thicknessthis sets how thick the wheel should be
Firmware
The firmware is being developed in this repo
The firmware is very WIP!!!! It will be written in rust with the esp-idf-svc and embassy-executor frameworks. I choose the std route for rust instead of the no-std one, because with std i can use existing std libraries for audio processing, no-std has more performance but it’s still in ts infancy, and doesn’t have mature libraries. It will support lots of file formats, Spotify connect support, AirPlay 2 Support, and maybe qobuz