Just in time! I received the SD card readers the day that I had planned to ship the first PU-2 Beta. I re-opened the boxes and fitted the card reader in each prototype.
This is the SD card reader that I chose:
It’s a generic card holder, that has the advantage of working with both 5V and 3.3V. The on-board IC is a voltage regulator that transforms the 5 Volt of the Arduino to the 3.3 Volt required by the SD card. I decided to use the 3.3v connection from the Arduino Mega board because the SD card operation requires very little current ( <50mA (safe for the Arduino)) and I will use other SPI components in the future. All the SPI components that I want to use are 3.3v. I could also have used the 5v pin and extracted the 3.3v from the card reader.
The SD card reader is connected to the Arduino with only 4 pins that are used to control the peripheral. This type of connection is explained on Wikipedia and on the Arduino site. An extra SPI peripheral will require only one more pin from the Arduino.
The card reader will let the user program the PU-2 faster. I decided at the beginning of the project that the PU-2 would not allow direct programming like the FCB-1010 on which it is based. Until now, all programming was done on a PC (or Mac (or Linux)) and a special file was created and sent to the pedal board. The input file can now be placed on the SD card and read directly by the PU-2. This will reduce the memory needed by the program to hold the data. This will soon mean that there is no limit to the total number of commands that the PU-2 can store and use.
Also, the fact that the file is now available to the Arduino means that the comment field, or description, is now available for display. The user can chose which description to post for each switch press, for each command bank. The limit is still about 3500 commands total, but I will switch the commands matrix from EEPROM to the SD card with a future version of the software.
Here’s the internals of the prototype, serial number 3, ready for final inspection.