TouchTouch Board - An Versatile & Arduino Compatible Mainboard Touch Sense &MP3/ MIDI
The Boneduino TouchTouch is a microcontroller board with dedicated capacitive touch and MP3 decoder ICs. It has a headphone socket and micro SD card holder (for file storage), as well as having 12 capacitive touch electrodes. It is based around the ATmega32U4 and runs at 16MHz from 5V. It has a micro USB connector, a JST connector for an external lithium polymer (LiPo) cell, a power switch and a reset button. It is similar to the Arduino Leonardo board and can be programmed using the Arduino IDE (1.5.6 or later). The ATmega32U4 can appear to a connected computer as a mouse or a keyboard, (HID) serial port (CDC) or USB MIDI device.
• Microcontroller Atmel ATmega32U4
• Touch IC Freescale MPR121
• MP3 decoder IC VLSI Solution VS1053b
• Audio output 15mW into 32Ω via 3.5mm stereo socket
• Removable storage up to 32GB via micro SD card
• Input voltage 3.0V DC – 5.5V DC
• Operating voltage 5V DC
• Max. output current (5V rail) 400mA (100mA at startup)
• Max. output current (3.3V rail) 300mA
• LiPo cell connector 2-way JST PH series - pin 1 +ve, pin 2 -ve
• LiPo charge current 200mA
• Capacitive touch electrodes 12 (of which 8 can be configured as digital I/O)
• Digital I/O Pins 20 (of which 3 are used for the MPR121 and 5 are used for the VS1053b — the latter can be unlinked via solder blobs)
• PWM channels 7 (shared with digital I/O pins)
• Analogue input channels 12 (shared with digital I/O pins)
• Flash memory 32 kB (ATmega32U4) of which 4kB used by bootloader
• SRAM 2.5kB (ATmega32U4)
• EEPROM 1kB (ATmega32U4)
• Clock speed 16MHz (ATmega32U4), 12.288MHz (VS1053b)
• DC current per I/O pin 40mA sink and source (ATmega32U4), 12mA source / 1.2mA sink (MPR121)
• Analogue input resistance 100MΩ typical (ATmega32U4)
The Boneduino TouchTouch can be powered via the micro USB connection or from a 3.7V lithium polymer (LiPo) cell connected to the 2-way JST PH series connector. The power switch will switch the board on or off when powered by either power source. If power is supplied over USB whilst the LiPo cell is connected, then the charge LED will illuminate and the LiPo will charge from USB power, regardless of power switch position.
INPUT AND OUTPUT
The TouchTouch Board has the same I/O layout as the Arduino Leonardo, with two important differences. Firstly, some of the Leonardo pins are used to drive the MPR121, VS1053b and micro SD card. If you want to use these pins in your project, you can disconnect them from the components they are connected to by removing the appropriate solder blobs on the board. However, if you do this, you will not be able to use the functionality provided by the components the pins were connected to, unless you re-make the blobs. Please reference the Touch Board Pin Map and Touch Board and Shields Guide documents for more information. Secondly, there are 12 capacitive touch electrodes, brought out to contacts along the top edge, which afford connecting through painting, alligator clips or M3 hardware, and a row of 0.1" / 2.54mm pitch pads on the right side, for you to solder a header to if you wish. 8 of these can be used as digital I/O. Each special pin function is explained below.
• Touch electrodes These connect to the MPR121 and provide capacitive touch / proximity E0-E11 sensing. E4-E11 can optionally be used as 3.3V digital inputs or outputs.
• Serial Used to receive (RX) and transmit (TX) TTL serial data using the ATmega32U4 Pins 0 (RX) and 1 (TX) UART. This is separate to the USB serial (CDC) functionality, so the board effectively has two serial ports — one virtual over USB and one physical.
• TWI (I2C) TWI (I2C) data and clock pins — these are used to communicate Pins 2 (SDA) and 3 (SCL) with the MPR121.
• IRQ This pin is used to detect interrupt events from the MPR121 — Pin 4 it should only be configured as an input.
• SD-CS This pin is used to select the micro SD card on the SPI bus. You can disconnect Pin 5 it from the micro SD card pin for your own use by removing the solder blob adjacent to the output pad.
• D-CS This pin is used to select the data input on the VS1053b. You can disconnect Pin 6 it from the VS1053b pin for your own use by removing the solder blob adjacent to the output pad.
• DREQ This pin is used to detect data request events from the VS1053b. Pin 7 You can disconnect it from the VS1053b pin for your own use by removing the solder blob adjacent to the output pad.
• MP3-RST This pin is used to reset the VS1053b. You can disconnect it from the VS1053b Pin 8 pin for your own use by removing the solder blob adjacent to the output pad.
• MP3-CS This pin is use to select the instruction input on the VS1053b. You can disconnect Pin 9 it from the VS1053b pin for your own use by removing the solder blob adjacent to the output pad.
• MIDI IN This pin can be used to pass MIDI data to the VS1053b and have it behave Pin 10 as a MIDI synthesiser as opposed to an MP3 player. By default, this is not connected, but you can complete the connection to pin 10 by placing a solder blob across the pair of rectangular pads provided adjacent to the output pad. You will also need to place a solder blob on the “MIDI on” pad pair above the ICSP header.
• HEADPHONE OUTPUT These pins provide the headphone output from the VS1053b on 0.1" / 2.54mm AGND, R, L pitch pads that you can solder a pin header to if you wish, as an alternative to the 3.5mm socket.
• EXTERNAL INTERRUPTS These pins can be configured to trigger an interrupt on a low value, a rising Pins 0, 1, 2, 3, 7 or falling edge, or a change in value.
• PWM Provide 8-bit PWM output. Pins 3, 5, 6, 9, 10, 11, and 13
• SPI Note that the SPI pins are not connected to any of the digital I/O pins as they are On the ICSP header on the Arduino Uno. This means that if you have a shield that uses SPI, but does NOT have a 6-pin ICSP connector that connects to the Touch Board’s 6-pin ICSP header, the shield will not work.
• LED There is a built-in LED connected to digital pin 13. When the pin is HIGH value, Pin 13 the LED is on, when the pin is LOW, it is off.
• ANALOGUE INPUTS Provide 10-bit ADC input, returning integers from 0-1023. All analog pins have A0-A5, A6-A11 (in addition) the same functionality as general purpose input / output (GP10) pins. A6 – A11 are on digital pins 4, 6, 8, 9, 10, and 12 respectively.
• AREF Optional reference voltage for the analog inputs.
• RESET Bring this line LOW to reset the ATmega32U4.
The Boneduino TouchTouch has overcurrent protection for both the USB and battery power inputs. This protects them from trying to source too much current, which may damage them or the board. This protection is provided by two positive temperature coefficient (PTC) resettable fuses. The USB fuse has a holding current of 500mA and a trip current of 1000mA. The LiPo fuse has a holding current of 1100mA and a trip current of 2200mA. If these fuses trip, you will notice that the board loses power. You should switch off the board, and inspect it for faults, correcting any you find. After 20 seconds the fuses should reset and you can plug the board back in again.