AdaFruit Introducing Circuit Playground
AdaFruit Introducing Circuit Playground
AdaFruit Introducing Circuit Playground
Guide Contents 2
Overview 4
Classic vs. Express 7
How to tell if you have a Classic 7
How to tell if you have an Express 7
Guided Tour 9
Power and Data 9
Micro B USB connector 9
JST Battery Input 10
Alligator/Croc Clip Pads 10
Microchip 10
LEDs 11
Green ON LED 11
Red #13 LED 11
10 x Color NeoPixel LED 11
Speaker 12
Sensors 12
Light Sensor 12
Temperature Sensor 13
Microphone Audio Sensor 13
Motion Sensor 14
Capacitive Touch 14
Switches & Buttons 14
Pinouts 17
Power Pads 17
Input/Output Pads 17
Common to all pads 18
Each Pin! 18
Internally Used Pins! 19
Windows Driver Installation 20
Manual Driver Installation 21
Arduino 23
Set Up & Test Arduino 24
Download Latest Arduino IDE 24
Install Drivers (Windows 7 Only) 24
Blink 24
Manually bootloading 25
Ubuntu & Linux Issue Fix 26
Circuit Playground Library 27
Installing Via Library Manager 27
Run the Demo 27
Select the Circuit Playground Board 28
Circuit Playground features an ATmega32u4 micro-processor, just like our popular Flora. It also is round and has
alligator-clip pads around it. You can power it from USB, a AAA battery pack, or Lipoly (for advanced users). Program
your code into it, then take it on the go.
We've started out with a Developer Edition of Circuit Playground. This version is designed for people who have a little
experience with Arduino already, who want to help build & document projects. There might be minor hardware or
software bugs. Once we feel like the design is really solid we'll revise/re-release it into a universal edition for anyone to
use!
There are TWO Circuit Playgrounds - one Classic and one Express.
The Express version can run MakeCode, CircuitPython and Arduino (Code.org support is not ready at this time)
Let me take you on a tour of your Circuit Playground Classic (we'll shorten that to CPC). Each CPC comes chock-full of
good design to make it a joy to use.
All 8 non-power pads around the circuit playground have the ability to act as capacitive touch pads. Each pad has a
1Mohm resistor between it and digital pin #30. You can toggle this pin to control whether the resistor is a pullup or
pulldown or floating. Note that this means that all the pads have a 2Mohm resistance between them.
You can also of course just use those pads for GPIO, we expose the hardware Serial (TX + RX), hardware I2C (SDA +
SCL) and 4 gpio pins that can also do analog readings. They are the same exact pins as those on the Flora
Microchip
The brains of the operation here is the ATMEGA32u4 an 8-bit AVR microcontroller. It sits in the top center, and is what
LEDs
Green ON LED
To the left of the USB connector. This LED lets you
know that the CPC is powered on. If it's lit, power is
good! If it's dim, flickering or off, there's a power
problem and you will have problems. You can't disable
this light, but you can cover it with electrical tape if you
want to make it black.
Speaker
© Adafruit Industries https://learn.adafruit.com/introducing-circuit-playground Page 11 of 36
You can make your circuit playground sing with the built
in buzzer. This is a miniature magnetic speaker
connected to digital pin #5 with a transistor driver. You
can use PWM at varying frequencies to make basic
tones.
Sensors
The Circuit Playground Classic has a large number of sensor inputs that let you add all sorts of interactivity to your
project.
Light Sensor
There is an analog light sensor, part number ALS-
PT19 (https://adafru.it/tC2), in the top left part of the
board. This can be used to detect ambient light, with
similar spectral response to the human eye.
This sensor is connect to analog pin A5 and will read
between 0 and 1023 with higher values corresponding
to higher light levels. A reading of about 300 is common
for most indoor light levels.
With some clever code, you can use this as a color
sensor or even a pulse sensor!
Capacitive Touch
The CPC has some resistor pullups and an extra pin that
gives it the ability to perform capacitive touch readings.
This is a great way to sense human touch without
additional components. Even animals will work if its
directly touching their skin!
On the Classic you get eight capacitive touch pads (all
GPIO pads)
No external I/O pads are shared with internal sensors/devices, so you do not need to worry about 'conflicting' pins or
interactions!
Power Pads
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)
VBATT - 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.
Input/Output Pads
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 ATMEGA32U4 pin. We picked pins that have a lot of
capabilities.
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.
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.
Each Pin!
Let's start with #10 which is in the top right corner, and work our way clockwise
D10 / A10 - This pin can be digital I/O, or Analog Input. This pin has PWM output
D9 / A9 - This pin can be digital I/O, or Analog Input. This pin has PWM output.
D6 / A7 - This pin can be digital I/O, or Analog Input. This pin has PWM output.
D12 / A11 - This pin can be digital I/O, or Analog Input.
D1 - This pin can be digital I/O, it is also used for Hardware Serial Transmit, and can be an interrupt input.
D0 - This pin can be digital I/O, it is also used for Hardware Serial Receive, and can be an interrupt input.
D4 - Left Button A
D5 - Speaker PWM output
D7 - Accelerometer interrupt
D13 - Red LED
D17 - Built-in 10 NeoPixels
D19 - Right Button B
D21 - Slide Switch
A0 - Temperature Sensor
A4 - Microphone sound sensor
A5 - Light Sensor
Before you plug in your board, you'll need to possibly install a driver!
Run the installer! Since we bundle the SiLabs and FTDI drivers as well, you'll need to click through the license
Select which drivers you want to install, we suggest selecting all of them so you don't have to do this again!
The Trinket / Pro Trinket / Gemma / USBtinyISP drivers are also installed by default.
You can also, optionally, install the Arduino Gemma (different than the Adafruit Gemma!), Huzzah and Metro 328
drivers.
Note that on Windows 10, support for many boards is built in. If you end up not checking any boxes, you don't
need to run the installer at all!
Arduino is an open-source electronics platform based on easy-to-use hardware and software. Arduino boards are
able to read inputs - light on a sensor, a finger on a button, or a Twitter message - and turn it into an output -
activating a motor, turning on an LED, publishing something online. You can tell your board what to do by sending
a set of instructions to the microcontroller on the board. To do so you use the Arduino programming language
(based on Wiring), and the Arduino Software (IDE), based on Processing.
-- https://www.arduino.cc/en/Guide/Introduction
Arduino has over a decade of projects and history, so you'll find a lot of existing code that you can use with your Circuit
Playground Classic.
Since Circuit Playground is now built into Arduino, it's great for beginners - and you can take advantage of the huge
Arduino community.
For experts - Arduino is essentially C/C++ with a built in library of hardware interfaces. You can embed assembly, write
ultra-fast code, and twiddle registers.
You can also use Arduino Create, in which case the IDE is already the latest version
Blink
Now you can upload your first blink sketch!
Select Circuit Playground from the Tools -> Board dropdown menul
And click upload! That's it, you will be able to see the LED blink rate change as you adapt the delay() calls.
If you are having issues, make sure you selected the matching Board in the menu that matches the hardware
you have in your hand.
Manually bootloading
Once it is in bootloader mode, you can select the newly created COM/Serial port and re-try uploading.
If you ever get in a 'weird' spot with the bootloader, or you have uploaded code that crashes and doesn't auto-reboot
into the bootloader, click the RESET button twice (like a double-click) to get back into the bootloader.
The red LED will pulse so you know that its in bootloader mode.
In the Arduino IDE, re-select the Serial Port to the new port that has been created for the bootloader.
The fix for this issue is to make sure Adafruit's custom udev rules are applied to your system. One of these rules is
made to configure modem manager not to touch the Feather board and will fix the programming difficulty issue.
Follow the steps for installing Adafruit's udev rules on this page.
We recommend updating the library even if you just installed the Arduino IDE, we have constant updates!
Type Circuit in the search box. You should see Adafruit Circuit Playground listed.
Follow the Arduino Set Up guide page to make sure you can Blink upload. Once that's known to work, come back
You can now run the serial console to get data output:
"Capacitive touch" readings for all 8 outer pads (under 50 means not touched, over 100 usually means the pads
are touched)
Slide switch location (left or right)
If the Right and Left buttons are pressed
Light sensor readings, higher values mean more light
Sound sensor readings
X, Y and Z accelerometer readings
Temperature in Celsius
So, please, try multiple USB cables, and if you find a charge-only cable, cut it in half and throw it away so you will
not make the mistake again!
Ack! I "did something" and now when I plug in the Circuit Playground it doesn't show up as a device anymore so I
cant upload to it or fix it...
No problem! You can 'repair' a bad code upload easily. Note that this can happen if you set a watchdog timer or
sleep mode that stops USB, or any sketch that 'crashes' your Circuit Playground
Source
Arduino Circuit Playground interfacing library
Adafruit Board Support Pkg (Should be installed via the Board Manager!)
PCB Files in EagleCAD format
Fritzing object available in the Adafruit Fritzing Library
Datasheets
Microcontroller datasheet
Buzzer datasheet
MEMS microphone datasheet
Thermistor datasheet
Schematic
Fabrication Print
Dims in inches