Programming An Arduino Using An Audio File

This proof-of-concept is just waiting for you to put it to good use. [Mike Tsao] wrote an Arduino sketch that lets him decode incoming audio data which could be used to program the device. He’s calling the project TribeDuino because it decodes an audio file which is actually the firmware update for a Korg Monotribe.

Earlier in the month [Mike] read our feature on a project that reverse engineered the audio-based firmware update for the Korg hardware. He wanted to see if he could write some code to read that file on his own hardware. All it took was an audio jack and two jumper wires to get the Arduino ready to receive the audio file. His firmware reads the Binary Frequency-Shift Keying encoded data as the audio is played, then echos a checksum to prove that it works.

This would be a fantastic addition to your own projects. Since the audio connection only needs to be mono, it only takes just one Arduino pin to add this jack (the other is a ground connection). Having just played around with alternative ways to push data to a microcontroller ourselves, we might give this a try when we have some free time.

19 thoughts on “Programming An Arduino Using An Audio File

  1. Alex, thanks for referencing the Audioino project. I only got into Arduinos in November after seeing GE Color Effects Christmas lights in Costco, so I have some catching up to do on old Hack-A-Day articles. But wow, Chris’s work is awesome! It’s exactly the direction I wanted to go with TribeDuino, writing an audio bootloader for the ‘328. Very cool!

  2. I remember in the 1980’s a radio channel P3 in Sweden had a program about Commodore 64 and broadcast files where you recorded it on tape and played it up in C64.
    I got some flashback.

  3. What is old is new again. Kansas City Standard and other similiar standards have been around since the 70’s. I recall storing and loading programs on audio cassetes for KIM and SYM boards. The IBM PC had an audio storage function long after floppies and hard drives became common. Basically timing the duration of the zero-crossing to decode the fsk.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.