The Toniebox is a toy that plays stories and songs for kids to listen to. Audio content can be changed by placing different NFC enabled characters that magnetically attach to the top of the toy. It can play audio via its built-in speaker or through a wired headphone connected to the 3.5 mm stereo jack. Using the built in speaker could sometimes be quite an irritant, especially if the parents are in “work from home” mode. And wired headphones are not a robust alternative, specially if the kid likes to wander around or dance while listening to the toy. We guess the manufacturers didn’t get the memo that toddlers and cables don’t mix well together. Surprisingly, the toy does not support Bluetooth output, so [g3gg0] hacked his kids Toniebox to add Bluetooth audio output.
[g3gg0] first played with the idea of transmitting audio via an ESP32 connected to the I²S interface, running a readily available A2DP library. While elegant, it is a slightly complex and time consuming solution. Using the ESP32 would also have affected the battery life, given the ESP32’s power hungry nature.
Instead, he decided to use an off-the-shelf Bluetooth module to simplify the hack. The KCX_BT_EMITTER module supports Bluetooth ver 4.1, so he expects battery life to be unaffected. The six connections between main board and module are straight forward. Power +5 V, power ground, audio left, audio right, analog ground, and a headphone detect signal to disable the internal speaker when Bluetooth headphone is connected. In the absence of easily accessible through hole solder pads, he soldered thin enamel copper wire to through hole vias. According to [g3gg0], some of the later hardware versions of the toy have masked solder vias, which need to be exposed to solder the connections.
The Bluetooth module has a LINK output which goes high when a connection is established with the headphone and can be used to drive an indicator LED. [g3gg0] connected this output to the gate of a generic, SMD, n-channel MOSFET to pull down the MICDETECT pin low. This causes the toy to switch to headset mode, disabling the speaker. An alternate mechanical hack to headphone detection is to use a 3.5 mm jack with its cable cut off and wiring a 1 kΩ resistor between tip and GND.
Check the video after the break for a quick overview of this simple, but useful and effective toy upgrade. While this hack registers at the dead simple end of the spectrum, [g3gg0] has cranked out some nifty ones too, such as this amazing DiY Wireless Serial Adapter that Speaks (true) RS-232.