Introducting Itsy Bitsy 32u4

Download as pdf or txt
Download as pdf or txt
You are on page 1of 21

Introducing ItsyBitsy 32u4

Created by lady ada

https://learn.adafruit.com/introducting-itsy-bitsy-32u4

Last updated on 2023-08-29 02:50:46 PM EDT

©Adafruit Industries Page 1 of 21


Table of Contents

Overview 3

Pinouts 6
• Which do you have?
• Power Pins
• 5V Power Pins
• 3V Power Pins
• Logic pins
• Other Pins!

Arduino IDE Setup 11

Using with Arduino IDE 13


• Install Drivers (Windows Only)
• Blink
• Manually bootloading
• Ubuntu & Linux Issue Fix

Downloads 19
• Files
• Bootloaders
• ItsyBitsy 3V
• ItsyBitsy 5V

©Adafruit Industries Page 2 of 21


Overview

What's smaller than a Feather but larger than a Trinket? It's an ItsyBitsy! Small,
powerful, Arduino-compatible - this microcontroller board is perfect when you want
something very compact, but still with a bunch of pins.

ItsyBitsy 32u4 is only 1.4" long by 0.7" wide, but has 6 power pins, 6 analog & digital
pins and 17 digital pins. It packs much of the same capability as an Arduino UNO. So
it's great once you've finished up a prototype on a bigger Arduino, and want to make
the project much smaller.

©Adafruit Industries Page 3 of 21


The ItsyBitsy 32u4 uses the Atmega32u4 chip, which is the same core chip in the
Arduino Leonardo as well as the same chip we use in our Feather 32u4. The 5V 16
MHz It runs at the same speed and voltage of an Arduino UNO or Leonardo. The 3V 8
MHz version is the same speed and voltage as a Feather 32u4. So you'll be happy to
hear that not only is Itsy Bitsy programmable using the Arduino IDE as you already set
up, but a vast number of Arduino projects will work out of the box!

We recommend this as an upgrade from the Pro Trinkets () because this has native
USB so it will work with all computers, USB serial debugging, and a more reliable
bootloader. You can even use the Pro Trinket LiPo backpack with this board to add
recharge-able battery. ()

Here's some handy specifications:

• ATmega32u4 onboad chip in QFN package


• USB bootloader with a nice LED indicator, AVR109 compatible (same as Flora,
Feather 32u4, Leonardo, etc)
• Micro-USB jack for power, USB uploading and debugging, you can put it in a box
or tape it up and use any Micro USB cable for when you want to reprogram.
• Can act as a USB HID Keyboard, Mouse, MIDI or plain USB 'CDC' serial device
(default)
• Power with either USB or external output (such as a battery) into VBAT pin - it'll
automatically switch over
• On-board red pin #13 LED
• 23 GPIO total - 6 analog in, 1x SPI port, 1x I2C port, 1x Hardware Serial port and
10 more GPIO, 4 of which have PWM
• Can drive NeoPixels, connect to sensors, servos, etc.
• Reset button for entering the bootloader or restarting the program.

For the 5V version:

• 5V power and logic, 16MHz clock rate, 2KB RAM and 28K FLASH
• On-board 5.0V power regulator with 150mA output capability and ultra-low
dropout. Up to 16V input, reverse-polarity protection, thermal and current-limit
protection.
• Low current 3.3V regulator output from chip, for small sensors

For the 3V version:

We have two special pins on the 3V version of this board. There's a VHigh pin, this pin
is a power pin whose voltage is the higher of VBAT and VUSB. We also made the
digital #5 pin extra special on this board, it connects to a level shifter so it is only an

©Adafruit Industries Page 4 of 21


output but the output is that 'high logic'. Basically what this means is if you want to
drive NeoPixels, a picky servo, or a high-dropout-voltage LED from this board, and
you want a 5V-logic-level output, this pin is the one you should use!

• 3.3V power and logic, 8 MHz clock rate, 2KB RAM and 28K FLASH
• On-board 3.3V power regulator with 500mA output capability and ultra-low
dropout. Up to 6V input, reverse-polarity protection, thermal and current-limit
protection.
• Special Vhigh output pin gives you the higher voltage from VBAT or VUSB, for
driving NeoPixels, servos, and other high-current devices. Digital 5 level-shifted
output for high-voltage logic level output.

Once headers are installed they can be fitted into 0.6" wide sockets ()

©Adafruit Industries Page 5 of 21


Pinouts

Click here to view a PDF version of the pinout diagram ()

Click here to view a PDF version of the pinout diagram ()

The ItsyBitsy 32u4's come in two flavors - 5V and 3V.

©Adafruit Industries Page 6 of 21


The pinouts for these are very similar except for the power pins which have different
voltages!

Which do you have?

Look in the middle of the board, you'll see


either 32u4 3V 8MHz or 32u4 5V 16 MHz

Power Pins
Both ItsyBitsy 32u4's have BAT G USB on the top left, right next to the micro USB port

©Adafruit Industries Page 7 of 21


These pins are:

• BAT - battery input for an alternative power source to USB.


On the 5V itsy, this pin can be 5.5-16VDC
On the 3V Itsy, we have a different regulator, so the voltage can only be from 3.5
V to 6VDC
• GND - Power/data ground
• USB - This is the same pin as the MicroUSB connector's 5V USB power pin. This
should be used as an output to get 5V power from the USB port. Say if you need
to power a bunch of NeoPixels or servos.

You can always put any voltage you like into BAT and the circuitry will switch between
BAT and USB dynamically for you. That means you can have a Batter backup that only
gets enabled when USB is disconnected.

If you want to add rechargeable power, a LiPoly backpack can be soldered into these
three pins that will let you have a battery that is automatically recharged whenever
USB is plugged in, then switches to LiPoly when on the go:

Adafruit LiIon/LiPoly Backpack Add-On for


Pro Trinket/ItsyBitsy
If you have an ItsyBitsy or Pro Trinket you
probably know it's the perfect little size
for a portable project. This LiPoly
backpack makes it really easy to do!
Instead of wiring 2...
https://www.adafruit.com/product/2124

©Adafruit Industries Page 8 of 21


5V Power Pins

In addition to the three standard power pins, the 5V ItsyBitsy has a few more pins
available for power sourcing:

• 5V - this is the regulated output from the onboard regulator or the USB
connection (if its powered!) You can draw 500mA when USB is connected, or up
to 150mA when on battery.
• 3V - this power pin is in the bottom right corner. It is a small 3V output from the
on-chip regulator. It's very low current, we don't recommend drawing more than
maybe 10 mA from this, but it can run small sensors!
• EN - connected to the regulator enable, it will let you shut off power - when
running on battery only. But at least you don't have to cut a trace or wire to your
battery. This pin does not affect power when using USB
• G - these are all Ground pins

3V Power Pins

©Adafruit Industries Page 9 of 21


In addition to the three standard power pins, the 3V ItsyBitsy has a few more pins
available for power sourcing:

• 3V - this is the regulated output from the onboard regulator. You can draw
500mA whether powered by USB or battery.
• Vhi - this is a special pin! It is a dual-Schottkey-diode connected output from BA
T and USB. This means this will always have the higher-of-the-two voltages, but
will always have power output. The voltage will about 5VDC when powered by
USB, but can range from 3.5-6VDC when powered from battery. It's not
regulated, but it is high-current, great for driving servos and NeoPixels.
• EN - connected to the regulator enable, it will let you shut off power - when
running on battery only. But at least you don't have to cut a trace or wire to your
battery. This pin does not affect power when using USB
• G - these are all Ground pins

Logic pins
This is the general purpose I/O pin set for the microcontroller. All logic is 3.3V on the
3V Itsy, and 5V on the 5V Itsy. You can usually use 3V logic as an input to 5V, but the
3V Itsy pins should not be connected to 5V!

Along the right edge

• #0 / RX - GPIO #0, also receive (input) pin for Serial1 and Interrupt #2
• #1 / TX - GPIO #1, also transmit (output) pin for Serial1 and Interrupt #3
• #2 / SDA - GPIO #2, also the I2C (Wire) data pin. There's no pull up on this pin
by default so when using with I2C, you may need a 2.2K-10K pullup. Also
Interrupt #1
• #3 / SCL - GPIO #3, also the I2C (Wire) clock pin. There's no pull up on this pin
by default so when using with I2C, you may need a 2.2K-10K pullup. Can also do
PWM output and act as Interrupt #0.
• #5 - GPIO #5, can also do PWM output. On the 3.3V ItsyBitsy this is a special OU
TPUT-only pin, that is level-shifted up to Vhi voltage, so its perfect for driving
NeoPixels that want a ~5V logic level input.
• #7 - GPIO #7. Also hardware Interrupt #4
• #9 - GPIO #9, also analog input A9 and can do PWM output.
• #10 - GPIO #10, also analog input A10 and can do PWM output.
• #11 - GPIO #11, can do PWM output.
• #12 - GPIO #12, also analog input A11

©Adafruit Industries Page 10 of 21


• #13 - GPIO #13, can do PWM output and is connected to the red LED next to the
Reset button

Along the left edge

• A0 thru A5 - These are each analog input as well as digital I/O pins.
• SCK/MOSI/MISO - These are the hardware SPI pins, you can use them as
everyday GPIO pins #15/#16/#14 but recommend keeping them free as they are
best used for hardware SPI connections for high speed. Also used to reprogram
the chip with an AVR programmer if you need.

Along the short edge:

• #4 - GPIO #4, also analog input A6


• #6 - GPIO #6, can also do PWM output and analog input A7
• #8 - GPIO #8, also analog input A8

Other Pins!
• RST - this is the Reset pin, tie to ground to manually reset the AVR, as well as
launch the bootloader manually
• ARef - the analog reference pin. Normally the reference voltage is the same as
the chip logic voltage (3.3V or 5V) but if you need an alternative analog
reference, connect it to this pin and select the external AREF in your firmware.
Don't set it higher than the logic level of the Itsy!

Arduino IDE Setup


The first thing you will need to do is to download the latest release of the Arduino
IDE. You will need to be using version 1.8 or higher for this guide

Arduino IDE Download

After you have downloaded and installed the latest version of Arduino IDE, you will
need to start the IDE and navigate to the Preferences menu. You can access it from
the File menu in Windows or Linux, or the Arduino menu on OS X.

©Adafruit Industries Page 11 of 21


A dialog will pop up just like the one shown below.

We will be adding a URL to the new Additional Boards Manager URLs option. The list
of URLs is comma separated, and you will only have to add each URL once. New
Adafruit boards and updates to existing boards will automatically be picked up by the
Board Manager each time it is opened. The URLs point to index files that the Board
Manager uses to build the list of available & installed boards.

To find the most up to date list of URLs you can add, you can visit the list of third party
board URLs on the Arduino IDE wiki (). We will only need to add one URL to the IDE in
this example, but you can add multiple URLS by separating them with commas. Copy
and paste the link below into the Additional Boards Manager URLs option in the
Arduino IDE preferences.

©Adafruit Industries Page 12 of 21


https://adafruit.github.io/arduino-board-index/
package_adafruit_index.json

Here's a short description of each of the Adafruit supplied packages that will be
available in the Board Manager when you add the URL:

• Adafruit AVR Boards - Includes support for Flora, Gemma, Feather 32u4,
ItsyBitsy 32u4, Trinket, & Trinket Pro.
• Adafruit SAMD Boards - Includes support for Feather M0 and M4, Metro M0 and
M4, ItsyBitsy M0 and M4, Circuit Playground Express, Gemma M0 and Trinket
M0
• Arduino Leonardo & Micro MIDI-USB - This adds MIDI over USB support for the
Flora, Feather 32u4, Micro and Leonardo using the arcore project ().

If you have multiple boards you want to support, say ESP8266 and Adafruit, have
both URLs in the text box separated by a comma (,)

Once done click OK to save the new preference settings. Next we will look at
installing boards with the Board Manager.

Now continue to the next step to actually install the board support package!

Using with Arduino IDE


Since the ItsyBitsy 32u4 uses an ATmega32u4 chip running at 8 or 16 MHz, you can
pretty easily get it working with the Arduino IDE. Many libraries (including the popular
ones like NeoPixels and display) work great with the '32u4 and 8/16 MHz clock speed.

©Adafruit Industries Page 13 of 21


Now that you have added the appropriate URLs to the Arduino IDE preferences, you
can open the Boards Manager by navigating to the Tools->Board menu.

Once the Board Manager opens, click on the category drop down menu on the top
left hand side of the window and select Contributed. You will then be able to select
and install the boards supplied by the URLs added to the prefrences. In the example
below, we are installing support for Adafruit AVR Boards, but the same applies to all
boards installed with the Board Manager.

Next, quit and reopen the Arduino IDE to ensure that all of the boards are properly
installed. You should now be able to select and upload to the new boards listed in the
Tools->Board menu.

©Adafruit Industries Page 14 of 21


Install Drivers (Windows Only)
When you plug in the Feather, you'll need to possibly install a driver

Click below to download our Driver Installer

Download Adafruit Drivers Installer

Download and run the installer

Run the installer! Since we bundle the SiLabs and FTDI drivers as well, you'll need to
click through the license

©Adafruit Industries Page 15 of 21


Select which drivers you want to install:

Click Install to do the installin'

©Adafruit Industries Page 16 of 21


Blink
Now you can upload your first blink sketch!

Plug in the ItsyBitsy 32u4 and wait for it to be recognized by the OS (just takes a few
seconds). It will create a serial/COM port, you can now select it from the dropdown!

©Adafruit Industries Page 17 of 21


Now load up the Blink example

// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}

// the loop function runs over and over again forever


void loop() {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

And click upload! That's it, you will be able to see the LED blink rate change as you
adapt the delay() calls.

Manually bootloading
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 RST button to get back
into the bootloader. The red LED will pulse, so you know that its in bootloader mode.
Do the reset button press right as the Arduino IDE says its attempting to upload the
sketch, when you see the Yellow Arrow lit and the Uploading... text in the status bar.

©Adafruit Industries Page 18 of 21


Don't click the reset button before uploading, unlike other bootloaders you want this
one to run at the time Arduino is trying to upload

Ubuntu & Linux Issue Fix


Note if you're using Ubuntu 15.04 (or perhaps other more recent Linux distributions)
there is an issue with the modem manager service which causes the ATmega32u4
micro to be difficult to program. If you run into errors like "device or resource busy",
"bad file descriptor", or "port is busy" when attempting to program then you are hitting
this issue. ()

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
board and will fix the programming difficulty issue. Follow the steps for installing
Adafruit's udev rules on this page. ()

Downloads
Files
• EagleCAD files for both 3V and 5V 32u4 ItsyBitsy's ()
• Fritzing files for both types in the Adafruit Fritzing library ()
• PDF for ItsyBitsy 32u4 3V Board Diagram on GitHub ()
• PDF for ItsyBitsy 32u4 5V Board Diagram on GitHub ()

©Adafruit Industries Page 19 of 21


SVG for ItsyBitsy 32u4 3V Board
Diagram

SVG for ItsyBitsy 32u4 5V Board


Diagram

Bootloaders
Caterina_itsybitsy3V.hex

Caterina_itsybitsy5V.hex

ItsyBitsy 3V
Schematic & Fabrication print

The 3.3V schematic regulator should be AP2112K-3.3

©Adafruit Industries Page 20 of 21


ItsyBitsy 5V
Schematic & Fabrication print

©Adafruit Industries Page 21 of 21

You might also like