Android Firmware Recall Info + How To Fix it Yourself With an Arduino Uno
NOTICE: This update only applies to Android users who received their BeatBox prior to January 27, 2021.
Hey guys, we are finally able to bring you an answer to what the deal with the Android app is. The TLDR version is that the issue was not with the app but with the BeatBox firmware. If you have an Arduino Uno board you can fix it yourself at home with the instructions below, if not you can send us your board and we will send you back a corrected version. There will be a Google form sent out by email you can fill out if you need us to send you a replacement board so be on the look out for that.
We have been able to pinpoint the issue we've been facing regarding the Android version of the app. It turns out that the problem was not with the software, but with the firmware, specifically the brain module board inside the BeatBox. The problem was found in a few of the serial monitoring lines. We have found a way to fix the issue by flashing the brain module board by connecting it to an Arduino Uno board.
Side note: If you ever want to reprogram your board in the future you'll need to do it with an Arduino Uno so this project would be a great starting off point! It is a super easy process, even our Marketing Director who has never done a DIY project of the sort was able to do both the Windows and Mac version with ease.
It is a similar process for Mac and Windows users with just a few steps that are unique. Steps 1-3 are the same for both and go as follows:
STEP 1: Get your parts ready! For this you will need an Arduino Uno to act as an AVR programmer, 6x female to male jumper wires, 6x 2.54mm headers, a Windows or Mac computer, and the brain board. The brain board needs to be by itself and not have any other part attached to it, meaning you can’t do this while the board is still installed in the BeatBox. You should be able to use any AVR programmer for this task, in this case we are just focusing on repurposing an Arduino as an AVR programmer since you can use the Arduino for other fun projects later on.
STEP 2: Download the files necessary here: https://drive.google.com/drive/folders/1V0m1DkGAVX7ZrHP5WmFY2VLC4jnnFu5y?usp=sharing.
STEP 3: Download Arduino 1.8.12 here: https://www.arduino.cc/en/Main/OldSoftwareReleases#previous Make sure you download the 1.8.12 version, this workaround isn’t going to work on the most recent 1.8.13. When you open the 1.8.12 version it will ask you if you want to upgrade to the newer version, DO NOT upgrade it. If you are already using 1.8.13, you will need to downgrade it to 1.8.12.
This is where the steps become different depending on your operating system.
Windows users: continue on to the steps below starting with step 4.
Mac users: scroll down to the "Mac" section to see your step 4 and following steps.
STEP 4: Download Teensyduino installer for Windows: https://www.pjrc.com/teensy/td_download.html
STEP 5: Install Arduino 1.8.12, and then install Teensyduino. It’ll ask you to install it to your Arduino install folder and you'll go ahead and allow it to.
STEP 6: Go to your Arduino install folder, and find the Teensy library. This is usually at Program Files (x86) -> Arduino -> hardware -> teensy -> avr.
STEP 7: Replace the “boards.txt” file with the file we provided in the google drive download. This will allow Arduino to use our brain board as a Teensy 2.0 ++. To do this you can copy the new file and paste it in to the folder with the original file. It will ask you if you want to replace the file and you will want to allow it to.
STEP 8: Now, go to cores -> usb_midi, and replace the “usb_private.h” file with the file we provided. You'll replace it the same way you did with the "boards.txt" above. This will change the device name back to Beatbox after flashing the board.
STEP 9: Open Arduino, and open the ArduinoISP example.
STEP 10: Connect the Arduino Uno to your computer using the included USB cable. Under “Tools”, make sure you have Arduino Uno as the board, and Arduino Uno as the port.
STEP 11: Click “upload” to upload the code. This will turn your Arduino Uno into an AVR programmer.
STEP 12: Now comes the fun part. Get the jumper wires, and connect the male ends to digital pins ~10,~11,12,13, 5v, and ground. There are 3 ground ports on the board labeled GND. You only have to plug into one of them. We have plugged it into the one next to 5v.
STEP 13: Connect the header pins to the bottom 6 empty pin holes on the brain board by putting in the longer side. Ideally this should be soldered down, but the header pins just by themselves seem to make enough contact for this to work.
STEP 14: Connect the cables to the pins as such, from left to right: Gnd, 13, 11, 12, 10, 5v. Notice that 11 and 12 are reversed on the brain board.
STEP 15: Open the supplied “midicodev2.2.ino” file with Arduino. This time, in “Tools”, select Teensy 2.0 ++ as your board, “MIDI” as USB Type, but use Arduino Uno as the port. Select “Arduino as ISP” as the Programmer. FOR MAC: When you open “midicodev2.2.ino” it will want to create a folder for it and go ahead and allow that.
STEP 16: Go to Sketch - Include Library - Manage Libraries, and add OneButton to your libraries.
STEP 17: Now, using Sketch -> Upload using Programmer, you should be able to upload the new firmware to your Brain Board. This can take over a minute, so be patient!
Once it is done uploading, you're good to go!
STEP 4: Download Teensyduino Macintosh OS Software on https://www.pjrc.com/teensy/td_download.html
STEP 5: We have to do a bit of hacking here since instead of being an add-on installer, Teensyduino on Mac OS is a bundled app that has Arduino 1.8.13 built-in, but we need the downgraded 1.8.12 version. Go to your Arduino 1.8.12 app (not Teensyduino), right click and open “Show Package Contents”, then go to Contents -> Java. With Teensyduino, do the same thing, open “Show Package Contents”, go to Contents -> Java. Replace the “Hardware” folder in Arduino with the “Hardware” folder in Teensyduino.
STEP 6: You can close Teensyduino now. Go to Arduino Contents -> Hardware -> Teensy
-> avr, and replace the “board.txt” file with the file we provided.
STEP 7: Now, go to cores -> usb_midi, and replace the “usb_private.h” file with the file we provided.
STEP 8: Those are all the steps that are different on a Mac! You can go back to step 9 on the Windows guide for the rest of the tutorial.