Jukebox v1 (2013)
Problem: average stereo or music player has too many functions and options for an elderly person.
Solution: jukebox with three inputs: (1) on/off, (2) play/pause, (3) track forward/backward; offers up to 100 tracks
Project cost: ~60€ (45€ for Arduino and mp3 shield + miscellaneous parts)
Hardware
- Arduino Uno
- Sparkfun mp3 shield operating on VLSI VS1053b
- 2x Kingbright SA56-11EWA 7-segment displays to display current track number
- Power supply: generic USB 5V
- Audio: active speakers powered by generic USB 5V
Development and test of basic function (August 4, 2013)
(1) Ardunino with mp3-player and (2) prototype of a 7-segment display
Final assembly (December 22, 2013)
The PCB in the background holds two shift registers that drive the LEDs of the display, some resistors to limit the current, as well as a capacitor for input voltage filtering






Jukebox v2 (2020)
Problem: average stereo or music player has too many functions and options for little children, but more flexibility required than Jukebox v1. Commercial solution (Toniebox) too limited in choice of audio files and too expensive: 80€ for device and 12-15€ per album+RFID at time of writing.
Solution: jukebox with (1) intuitive selection of albums/tracks and play/pause using customizable RFID tags that are placed on the device, (2) on/off switch, (3) two push buttons for volume control (long press for track forward/backward); offers up to 100 albums with up to 255 tracks each (number of tracks per album according to Tonuino project, unconfirmed)
Project cost (baseline): less than 8€ (Arduino nano, RFID reader, mp3 module, level shifter for reliable communication between modules)
Project cost (actual): ~95€ (60% housing and I/O, 40% internal electronics) + miscellaneous parts (0.20-0.30€ per RFID tag, scrap wood, etc.)
Draft
- Software and design based on Tonuino developed by Thorsten Voss and a growing community since 2018
- Hardware modifications with regard to reference design
- Power up delay for speaker to avoid clicking during boot up phase (using 2x IRLML2502)
- Logic level shifter between Arduino digital I/O at 5V and MFRC522 I/O as well as DFPlayer module I/O, both of which operate at 3.3V
- Third button (play/pause of Tonuino) is internal and implements a hardware protection of administration menu (no PIN code or admin-RFID required)
- Explicit power-switch
- Jukebox can be used while powerbank is being charged (in alignment with Strandbummler's choice of hardware)
- Software modifications with regard to reference design
- Playback control (play/pause) without a third button: play on placement of RFID, pause on removal (resume on placement of previously played track, otherwise start from beginning).
Note that this probably conflicts with Tonuino's "modification cards", but my priority is on reducing complexity and buttons. - Reset playback to beginning of album by placing, removing, and placing a tag within a given time, e.g. two seconds.
- Change pin assignment for ease of routing in PCB layout. Note that the digital pins 11 through 13 of the Arduino nano are reserved for SPI communication with MFRC522 and should not be changed.
- Playback control (play/pause) without a third button: play on placement of RFID, pause on removal (resume on placement of previously played track, otherwise start from beginning).
Housing
Sketch draft of housing (June 9, 2020)
- Draft based on designs of hiJack (January 2020) and Strandbummler (January 2020) at Tonuino archives
- Sketch based on photograph by Strandbummler at Tonuino archives


Housing draft with actual parts (June 9, 2020)


Bill of Materials
Amount | Description | Spare Parts | Price (€) |
---|---|---|---|
Essential Parts | |||
1 | USB Nano V3.0 ATmega328P CH340G 5V | 1 | 3.31 |
1 | 13.56 Mhz RFID RC522 Reader | 1 | 1.56 |
1 | DFPlayer Mini | 1 | 1.79 |
1 | 8 channel level shifter (Pegelwandler) 5V--3.3V, bidirectional | 1 | 1.21 |
Custom Parts | |||
1 | Kingston microSD Speicherkarte, SDCS2/16GB Class 10 | no | 3.79 |
1 | Intenso Powerbank PM5200, 5200mAh | no | 7.99 |
1 | Visaton FR 10 HM 20 W schwarz, 4 Ohm | no | 6.99 |
2 | IRLML2502 MOSFET N-CH 20V 4.2A SOT-23 | 18 | 0.21 |
2 | 6-pin SOT23 zum DIP Adapter | 18 | 0.16 |
1 | 22mm Power mark brass Push Button Switch with illumination, yellow | no | 6.62 |
1 | 25mm Drucktaster m.Fassung LED grün Edelstahl | no | 10.10 |
1 | 25mm Drucktaster m.Fassung LED rot Edelstahl | no | 10.10 |
1 | 74HC14 (to debounce push button inputs) | 9 | 0.21 |
4 | Flachsteckhülsen 0.5 - 6 mm² DIN Kabelschuh Steckverbinder | 46 | 0.40 |
1 | Kentop Micro SD auf TF Karten Verlängerung Kabel | no | 3.59 |
1 | Neutrik NAUSB-W Reversibler USB-Adapter (Typ A und B) | (1) | 4.90 |
various | Wire Cable 2/3/4/5 Pin, 2.54mm Pitch, Male-Female, 300mm, 26AWG | various | 0.34 |
1 | USB Micro-Kabel 0,15m (Outlet – Power Bank) -- did not use | 1 | 1.79 |
1 | USB Mini-Kabel 0,15m (Power Bank – Arduino) -- did not use | 1 | 1.85 |
1 | Casani / Holzkörper für neue Bildformate 15x15x9cm | no | 16.40 |
80mm x 90mm | PLEXIGLAS® GS Platte, 2mm stark | 1 | 1.85 |
120mm x 120mm | Fliegengitter (Metallnetz für Lautsprecherschutz) | tbd | |
160mm x 160mm | Fabric (speaker cover) | various | 0 |
4 sets | Magnastico Neodym Scheibenmagnete selbstklebend 8,0 x 0,75 mm | 21 sets | 1.29 |
1 | Mini Step-Up Spannungswandler Modul 5V 8V 9V 12V Power Boost Converter Arduino | no | 2.99 |
4 | AUPROTEC Flachstecker Flachsteckhülsen 0.5 - 6 mm² DIN Kabelschuh Steckverbinder | various | 0.40 |
Accessories | |||
1 | Kopfhörerbuchse PJ-306B / Umschalter | 8 | 0.61 |
20 | 13.56 MHz NFC Tag Stickers | tbd | 5.78 |
10 | 13.56 MHz RFID Cards | tbd | 2.00 |
Parts overview (July 12, 2020)
Everything has arrived (or found). I will not need all of the wires, IRLML2502 MOSFET, and automatically switching audio jack (PJ-306B), but this was the smallest amount I was able to order. The audio jacks are for future use.


Not shown in picture:
- 1x step-up converter 5V to 9V/12V for 25mm buttons,
- flat plugs for connecting the power button without soldering.
Test of illuminated push buttons (July 12, 2020)
Buttons from left to right: (1) Power on/off (latching), (2) Next track / volume up (momentary), (3) Previous track / volume down (momentary).
The green and the red button are a bit dim in the picture. The photograph shows them operating at 5V, but they are designed to operate at 12V. I will add a boost converter to run them at 9V or 12V.


Housing: milling and drilling (July 20, 2020)
Housing after milling the card slot and drilling holes for the buttons and charging connector.


Prelminary assembly of housing. The holes for the handle and the interior structure are still missing.
The card holder is shown with a partially inserted RFID card. Note the hole in the plexiglass cover. This is how a card can be pushed out. Additionally, the diameter of 35 mm serves as landing pad for figurines with a matching stand that contains a RFID tag.






Assembling the housing (August 1, 2020)
The dust work is finally done! Final steps will be applying oil to the housing, glazing the handle, mounting the magnets that hold the front cover, and mounting the buttons and charging connector.
Note the additional cutouts in the frame shown in the first and second picture. The rectangular cutout is for the SDcard holder. The small hole just above is for the third push button to enter the admin menu.






Sockets for the figurines – RFID-tagged wood (August 1, 2020)
IoT meets wood – trial run for placing an RFID-tag hidden inside the socket of figurines.




The result passes the mechanical test. It fits! We will see later, whether I damaged the tag along the way.
The edges of the plexiglass still looks a bit funny. The protective sheet is still in place.




Prototype electronics (August 12, 2020)
Works like a charm...


Prototype electronics and firmware patches, rev4 (August 15/16, 2020)
The Arduino nano has internal pull-up resistors and the latest Tonuino firmware uses the library JS_Button to debounce the inputs. The external pull-up and analog debouncing can be spared. This frees up some space for placing the entire power distribution network on the main PCB. Here is a view of the schematic and silkscreens for jukebox v2, rev4:




The breadboard looks much cleaner as well:


At this time, I added two patches to the latest (i.e. development) Tonuino firmware and did some refactoring for ease of maintenance:
- Playback control (play/pause) without a third button: play on placement of RFID, pause on removal (resume on placement of previously played track, otherwise start from beginning).
Note that this probably conflicts with Tonuino's "modification cards", but my priority is on reducing complexity and buttons. - Reset playback to beginning of album by placing, removing, and placing a tag within a given time, e.g. two seconds.
- Collective definition of all Arduino port assignments at the top of the file.
- Change pin assignment for ease of routing in PCB layout. Note that the digital pins 11 through 13 of the Arduino nano are reserved for SPI communication with MFRC522 and should not be changed.
View difference of the patches
PCB assembly, incl. update of layout, rev5 (August 18, 2020)
The layout had to be adjusted due to avoid collisions with the power inlet and the speaker. Good thing that we have some space left in the corners!
For anyone interested in reproducing the PCB, here are top and bottom silkscreen on 2.54mm grid:


Can you spot the connection that I was missing at this time? Hint: it is on the bottom layer... ;-) The PCB worked as expected after closing this gap (sic!). I am amazed by the smooth transition from prototype breadboard to PCB. Thank you, KiCAD!




Putting everything together (August 19, 2020)
A final test...


...and then fitting everything into the box. Looks like I even have additional space left.


All done and ready to use (August 20, 2020)
Are you able to tell the difference between the initial sketch and the real deal?






A couple more views with the first two figurines. The RFID tag is hidden in the bottom, cf. my previous post from August 1.




More Figurines (September 8, 2020)
Cost per piece: 20ct for RFID tag + 20ct miscellaneous material cost (+ use of already licensed music)


More Figurines (December 7, 2020)
Wintertime! Cost per piece: 20ct for RFID tag + 20ct miscellaneous material cost (+ use of already licensed music)


New Figurine (December 28, 2020)
Bedtime music

