Despite having only 14 pads with 8 general purpose I/O pins available, there are a lot of possibilities with Circuit Playground Express. We went over all the internals in the last page. On this page we'll go through each pin/pad to explain what you can do with it.
Other than A0, no external I/O pads are shared with internal sensors/devices, so you do not need to worry about 'conflicting' pins or interactions!
There are 6 power pads available, equally spaced around the perimeter.
- GND - there are 3 x Ground pads. They are all connected together, and are all the signal/power ground connections
- 3.3V - there are two 3.3 Volt output pads. They are connected to the output of the onboard regulator. The regulator can provide about 500mA max, but that includes all the built in parts too! So you should roughly budget about 300mA available for your usage (450mA if you are not using the onboard NeoPixels)
- Vout - there is one Voltage Output pad. This is a special power pad,it will be connected to either the USB power or the battery input, whichever has the higher voltage. This output does not connect to the regulator so you can draw as much current as your USB port / Battery can provide. There is a resettable fuse on this pin, so you can draw about 500mA continuous, and 1 Amp peak before it will trip. If the fuse trips, just wait a minute and it will automatically reset
Next we will cover the 8 GPIO (General Purpose Input Ouput) pins! For reference you may want to also check out the datasheet-reference in the downloads section for the core ATSAMD21G18 pin. We picked pins that have a lot of capabilities.
All the GPIO pads can be used as digital inputs, digital outputs, for LEDs, buttons and switches. In addition, all can be used as analog inputs (12-bit ADC). All but A0 can be used for hardware capacitive touch. All pads can also be used as hardware interrupt inputs.
Each pad can provide up to ~20mA of current. Don't connect a motor or other high-power component directly to the pins! Instead, use a transistor to power the DC motor on/off
All of the GPIO pads are 3.3V output level, and should not be used with 5V inputs. In general, most 5V devices are OK with 3.3V output though.
Other than A0, which is shared with the speaker, all of the pads are completely 'free' pins, they are not used by the USB connection, LEDs, sensors, etc so you never have to worry about interfering with them when programming.
Let's start with A0 which is in the bottom right corner, and work our way counter-clockwise
- A0 (a.k.a D12) - This is a special pin that can do true analog output so it's great for playing audio clips. In can be digital I/O, or analog I/O, but if you do that it will interfere with the built-in speaker. This is the one pin that cannot be used for capacitive touch.
- A1 / D6 - This pin can be digital I/O, or analog Input. This pin has PWM output and can be capacitive touch sensor
- A2 / D9 - This pin can be digital I/O, or analog Input. This pin has PWM output and can be capacitive touch sensor
- A3 / D10 - This pin can be digital I/O, or analog Input. This pin has PWM output and can be capacitive touch sensor
- A4 / D3 - This pin can be digital I/O, or analog Input. This pin is also the I2C SCL pin, and can be capacitive touch sensor
- A5 / D2 - This pin can be digital I/O, or analog Input. This pin is also the I2C SDA pin, and can be capacitive touch sensor
- A6 / D0 - This pin can be digital I/O, or analog Input. This pin has PWM output, Serial Receive, and can be capacitive touch sensor
- A7 / D1 - This pin can be digital I/O, or analog Input. This pin has PWM output, Serial Transmit, and can be capacitive touch sensor
These are the names of the pins that are used for built in sensors and such!
D4 - Left Button A
- D5 - Right Button B
- D7 - Slide Switch
- D8 - Built-in 10 NeoPixels
- D13 - Red LED
- D27 - Accelerometer interrupt
- D29 - IR Transmitter
- D39 - IR Receiver
- A0 - Speaker analog output
- A8 - Light Sensor
- A9 - Temperature Sensor
- A10 - IR Proximity Sensor
- D28 - Internal I2C SDA (access with Wire1)
- D29 - Internal I2C SCL (access with Wire1)
- D30 (PIN_SPI_MISO) - SPI FLASH MISO
- D31 (PIN_SPI_SCK) - SPI FLASH SCK
- D32 (PIN_SPI_MOSI) - SPI FLASH MOSI
- D33 - SPI FLASH Chip Select