RedBoard Plus Hookup Guide

Pages
Contributors: bboyho, santaimpersonator
Favorited Favorite 3

Hardware Overview

Below is the graphical datasheet of the board and an overview of all of the important features for the RedBoard Plus. All of the RedBoard Plus pins are broken out to 0.1" spaced female headers (i.e. connectors) on the outer edges of the board. The pins are grouped together for power inputs/outputs, analog inputs, and digital inputs.

RedBoard Plus Graphical Datasheet

Click on image for a closer view

New Features

Building off the RedBoard Qwiic, the RedBoard Plus includes the following changes.

  • USB Type C Connector - The RedBoard has seen many types of USB connectors. The RedBoard Plus takes advantange of the USB C connector. The pins are also broken out on the back of the board!
  • Bypass Jumper - The board includes a jumper to bypass the resettable fuse.
  • I/O Logic Switch - Instead of cutting a jumper pad and adding solder to the board, you can now flip the switch to adjust the logic level for the system voltage.
  • Two More Analog Pins - Two additional analog pins are included for A6 and A7. Previous designs of the Uno R3 footprint on the RedBoard did not include the pins. These analog pins are included by the power pins as PTH pads.
  • PTH Pads - All of the edge pins on the RedBoard Plus now include an additional PTH pad by each female header. This makes the board slightly wider but you have the advantage of soldering wires or additional header pins to the board.
RedBoard Qwiic RedBoard Plus
RedBoard Qwiic RedBoard Plus

Power

The RedBoard Plus can be powered via the USB and/or barrel jack connectors. If you choose to power it via USB, the other end of the USB cable can be connected to either a computer or a 5V (regulated) USB wall charger. Otherwise, should you choose to use the barrel jack, any wall adapter connected to this jack should supply a DC voltage between 7 and 15V. You could also power the board via the header pins.

alt text

Barrel Jack

The barrel jack accepts a male, center-positive connector with a 5.5mm outer diameter and 2.1mm inner diameter. Check out this tutorial for more information on power connectors.

alt text

Our 9V and 12V power adapters are good choices if you're looking to power the board through the barrel jack. Any wall adapter connected to this jack should supply a DC voltage between 7 and 15V as specified by the electrical characteristics of the LM1117 voltage regulator used on the board. The input voltage pin VIN on the power headers is directly connected to the input voltage of the barrel jack. Depending on your project, you can also wire your own power supply with the DC barrel jack adapter or add a switch between your power supply and RedBoard Plus.

DC Barrel Jack Adapter - Male

DC Barrel Jack Adapter - Male

PRT-10287
$3.50
Wall Adapter Power Supply - 12VDC, 600mA (Barrel Jack)

Wall Adapter Power Supply - 12VDC, 600mA (Barrel Jack)

TOL-15313
$6.50
Wall Adapter Power Supply - 9VDC, 650mA (Barrel Jack)

Wall Adapter Power Supply - 9VDC, 650mA (Barrel Jack)

TOL-15314
$6.50
1
Barrel Jack Power Switch - M-F (3")

Barrel Jack Power Switch - M-F (3")

COM-11705
$2.75
Troubleshooting Tips: The board could operate on an external supply of 6 to 20 volts, but the recommended range is 7 to 12 volts. (*If supplied with less than 7V, the 5V pin may supply less than five volts and the board may be unstable. Using more than 12V, the voltage regulator may overheat and damage itself and/or the board.)

For more technical details about voltage regulators and thermal dissipation, I suggest taking a look at these blog posts and tutorial:

USB Power

A USB C cable is usually the easiest way to power the board, especially when you're programming it because the USB interface is required for uploading code too. The pins are broken out on the back of the board.

  • V - USB input voltage. This should be 5V.
  • D− and D+ - USB data pins. These are connected to the CH340 USB-to-serial converter.
  • G - Ground pin

A traditional USB port supplies a regulated 5V, but is limited to about 500mA (USB 2.0). Additionally, there is a resettable fuse that protects your computer from shorts and overcurrent. If more than ~750mA is drawn through the USB port, it automatically throttles the current draw or disconnects power until the short/overload is removed. If you need more than that a barrel jack wall adapter is the best choice.

BYP Jumper

Next to the USB C connector is a bypass jumper (labeled as BYP). If you need to bypass the PTC fuse (rated for 6V max, 4A trip current) for any reason, you can add some solder to connect the jumper. This is recommended for advanced users that know what they are doing.

alt text

USB Programming

There are two ways to program the RedBoard Plus. As stated in the previous section, the most common way for users is through the USB connection. The other slightly less common method is through the ISP headers or pins.

The USB C connector is the most convenient way to power and program the board. To program the board through the USB connection, you will need a USB Type C cable and there must be a bootloader flashed to the microcontroller (factory "installed"). For the RedBoard Plus, this is the same Optiboot bootloader from the Arduino Uno R3. For most users, the board will be programmed through a USB connection using the Arduino IDE.

Dual Power

It is fine to connect both a barrel jack and a USB connector at the same time. The RedBoard Plus has power-control circuitry to automatically select the best power source.

USB and barrel jack wires connected

USB and barrel jack wires connected.

AP2112 Voltage Regulator

The AP2112 uses a robust 3.3V regulator to provide more power to daisy chain multiple Qwiic (I2C) devices. Unlike the MIC5205 on the original RedBoard, which could only source about 150mA of current; the AP2112 can source up to 600mA of current and should be able to handle the needs of your Qwiic devices.

Troubleshooting Tip: If you need more power for your Qwiic devices, you can attach a separate power supply. However, it is recommended that you cut the 3.3V line of the Qwiic cable to the RedBoard Plus. Leave the GND line alone, as that ground loops your system, providing a consistent reference voltage for your I2C signals. By cutting the 3.3V line, this allows you to power all your devices without straining the 3.3V regulator. For more details on voltage regulators, check out this According to Pete blog post.

The Power Header

The power headers provides all your reference, input, and output voltages.

  • IOREF - This pin is connected to the I/O logic level switch. The voltage will either be 3.3V or 5V depending on what voltage is selected. This pin provides the voltage reference for the microcontroller's I/O pins. A properly configured shield can read the IOREF pin voltage and select the appropriate power source, or enable voltage translators on the outputs to work with 5V or 3.3V. We recommend selecting 5V as most Arduino Uno boards and shields expect 5V. However, depending on your needs, you can select 3.3V.
  • RESET - This pin is tied to the Reset pin of the microcontroller and reset Button. If this pin is toggled low or shorted to the GND pin, it will trigger a reset of the microcontroller.
  • 3.3V - A 3.3V supply generated by the on-board regulator. Maximum current draw is 600 mA.
  • 5V - This pin outputs a regulated 5V from the regulator on the board. The board can be supplied with power either from the DC power jack (7 - 12V), the USB connector (5V), or the VIN pin of the board (7-12V). Supplying voltage via the 5V or 3.3V pins bypasses the regulator, and can damage your board. We don't advise it.
  • GND - Ground pins.
  • VIN - The input voltage to the Arduino board when it's using an external power source. You can provide an external supply voltage through this pin or access the external supply voltage from the power jack through this pin. If only powered through a USB connection, voltage will be around 5V.

alt text

RedBoard Plus Power Header

I/O Logic Level Switch

For more advanced users, we've added an I/O voltage switch also known as the "Red Squirrel" switch (because they are the one who petitioned for the mod). Now you can easily select the GPIO voltage between 3.3V or 5V with just your finger. This is extremely handy if you have a shield or 3.3V sensitive devices, such as an SPI interface, that needs protecting. Worried about accidentally flipping the switch? A piece of tape will lock it in place!

alt text

Reset

Pushing the reset button will temporarily connect the reset pin to ground and restart any code that is loaded on the Arduino. This can be very useful if your code doesn’t repeat, but you want to test it multiple times. You can also use a jumper wire to connect the RESET pin to ground as another option. Certain shields may utilize this pin and reroute it to the top of the shield as well.

alt text

CH340C USB-to-Serial Converter

Unlike the classic RedBoard, that uses an FTDI IC; this board uses the CH340C IC for USB-to-serial conversion. One advantage is that it does not need a driver since most operating systems will have the drivers already installed. The chip is used to convert USB data coming to and from your computer into a serial protocol for the microcontroller.

alt text

Troubleshooting Tip:
  • Whenever you upload to your board or send serial data, you should seen the RX and/or TX LEDs flashing. The best way to test the functionality of this part is to send serial data between your computer and the board.
  • For more details on what happens in the Arduino IDE when code is uploaded through the bootloader, check out this great forum post.

For more tips and details on serial communication, read our Serial Communication and Terminal Basics tutorials. There are also good examples of using the serial communication with Arduino in the SparkFun Inventor's Kit v4.1.

Status LEDs

There are 4 status LEDs on the RedBoard Plus.

  • ON - The first LED is the power LED. This LED indicates that there is a potential between the VCC and GND pins. A good secondary test for this status indicator is to use a multimeter to test the VIN, 5V, and 3.3V pins against the GND pin.
  • RX/TX - The next two status LEDs are the serial communication LEDs. These LEDs indicate that there is data moving between the serial UART RX/TX pins and the USB-to-Serial Converter. A good secondary test for this status indicator is to make sure that these LEDs are flashing during upload or any other serial communication.
  • 13 - The last indicator is the pin 13 LED. This is typically only used as a test LED to make sure that a board is working or for basic debugging. However, for the RedBoard Plus, this LED can also indicate if there is presence of the bootloader. Usually the board is flashed with the bootloader . If the board was properly flashed, the LED should blink when powered up.
Troubleshooting Tips:
  • New boards will come programmed with a test sketch that cycles between the RX and TX LEDs.
  • Pin 13 is difficult to use as a digital input because of the voltage drop from status LED and resistor soldered in series to it. If the pin is enabled as an input with the internal 20k pullup resistor, it will always read a LOW state; an expected 5V (HIGH) signal will instead read around 1.7V (LOW).

    If you must use pin 13 as a digital input, it is recommended that you set the pinMode() as an INPUT and use an external pulldown resistor.

    pinMode(13, INPUT);

alt text

Status LEDs on the RedBoard Plus.

Note: There is a small change to the color of ther status LEDs from the original RedBoard. The power LED is green, the LED for Pin 13 is blue, the RX LED is yellow, and the TX LED is green. However, the color of the LED's don't really matter, the indication is based on whether the LED is on/off. The color differences only help to indicate which LED is on when the LED blinks quickly or from a quick glance.

Microcontroller

The microcontroller (ATmega328P IC) is the work horse of the RedBoard Plus. The ATmega328 is an 8-bit AVR microcontroller manufactured by Atmel, now Microchip. Once an Arduino sketch is uploaded to the board, the program is stored in the memory of the ATmega328. The microcontroller will then run/execute the program while the RedBoard Plus is powered.

alt text

Image of the ATmega328 IC.

Clock

An external 16MHz crystal is used as the clock for the ATmega328P. When setting the system voltage to 3.3V using the I/O logic level switch, technically you will be overclocking the ATmega328P. We've done this on other designs and have not seen any issues so your mileage may vary. If this is a concern, we recommend setting the system voltage to 5V.

Memory

The ATmega328 has Flash, SRAM (Static Random Access Memory), and EEPROM (Electrically Erasable Programmable Read-Only Memory) memory.

  • 32KB Flash Memory - where the Arduino sketch/program is stored (including the 512 byte Optiboot bootloader).
  • 2KB SRAM - where the sketch/program creates and manipulates variables when it runs.
  • 1KB EEPROM - is available for stable long-term storage (read/written with the EEPROM library).

The Flash and EEPROM memory are non-volatile; the data is still stored even when the board is no longer powered. The SRAM, on the other hand, is volatile and the data is only available while the board is powered.

Troubleshooting Tips
  • The EEPROM can be corrupted with low power/brown out issues.
  • When you run out of SRAM, the sketch may fail or act strangely after it is uploaded. If you suspect this is the issue, try to comment out any long strings or large data structures. If the sketch starts to run normally, then you may need to modify your data requirements.

Bootloader

The Optiboot bootloader is a unique piece of firmware (512 bytes) at the end of the address space of the flash memory. The Optiboot bootloader is specifically configured for the ATmega328P to interface with the Arduino IDE, through a serial interface, to upload code. Without a bootloader, you would need an external programmer and program the microcontroller through the SPI interface (specifically, the ISP/ICSP headers).

For more details on the ATmega328, memory, and the bootloader check out these tutorials:

You can also find the datasheet for the ATmega328 from the Microchip product page.

Microcontroller I/O Pins

All of the I/O pins on this board are digital inputs or outputs for the microcontroller (ATmega328P). There are select pins, like the Analog pins, which have additional capabilities.

Digital I/O

There are 22x I/O pins on this board that can be used as digital inputs or outputs for the microcontroller (ATmega328P). This includes the pins labeled as Analog, which may be configured and used in the same manner as the Digital pins. These are what you connect to buttons, LEDs, sensors, etc. to interface the Arduino with other pieces of hardware.

Input

By default, all digital I/O pins are configured as inputs. It is best practice to define the pinMode() in the setup of each sketch (programs written in the Arduino IDE) for the pins used. When configured properly, an input pin will be looking for a HIGH or LOW state. Input pins are High Impedance and takes very little current to move the input pin from one state to another.

Troubleshooting Tips:
  • If an input pin is read and that is floating (with nothing connected to it), you will see random data/states. In practice, it may be useful to tie an input pin to a known state with a pullup resistor (to VCC), or a pulldown resistor (to GND).
  • There are 20K pullup resistors built into the ATmega328 chip that can be configured by setting the pinMode() as INPUT_PULLUP.
  • Pin 13 is difficult to use as a digital input because of the voltage drop from status LED and resistor soldered in series to it. If the pin is enabled as an input with the internal 20k pullup resistor, it will always read a LOW state; an expected 5V (HIGH) signal will instead read around 1.7V (LOW). If you must use pin 13 as a digital input, it is recommended that you set the pinMode() as an INPUT and use an external pulldown resistor.
Output

When configured as an output the pin will be at a HIGH or LOW voltage. Output pins are Low Impedance: This means that they can provide a substantial amount of current to other circuits.

Troubleshooting Tip: The maximum current an I/O pin can source (provide positive current) or sink (provide negative current) is 40 mA (milliamps). For more details, you can refer to the ATmega328 datasheet or this reference page. Attempting to run high current devices may damage the output the pin or entire ATmega328 chip.

Note: For more details about digital pins, check out this reference page.

Additional Functions

There are several pins that have special functionality in addition to general digital I/O. These pins and their additional functions are listed in the tabs below. For more technical specifications on the I/O pins, you can refer to the ATmega328P datasheet.

Analog Input Pins

There are 6x analog inputs on the analog header and 2x additional analog pins next to the power header. These pins all have 10-bit (10-bit = 1024 different values) analog to digital converter (ADC), which can be used to read in an analog voltage between 0 and VCC. These are useful if you need to read the output of a potentiometer or other analog sensors.

Troubleshooting Tip: To take analog readings on pins A4/A5, the jumpers for the Qwiic connector need to be cut. Otherwise, the pullup resistors for the logic level converters will act as voltage dividers and the pins will read improper values at lower voltages.

alt text

Note: The AREF pin provides a reference voltage for the analog inputs. This pin can be used to get a higher resolution at lower voltage levels. Be sure to read the Notes and Warnings on the analogReference() page.

Analog pins 4 and 5 also support I2C (TWI) communication using the Wire library.

For more details on the analog inputs, check out these tutorials:

Pulse Width Modulation (PWM) Output Pins

Digital pins (3, 5, 6, 9, 10, and 11) marked with a tilde (~) are 8-bit PWM capable outputs, which you can use to dim LEDs or run servo motors.

alt text

Troubleshooting Tip: Novice users often mistake PWM pins as an analog output. Although, it can somewhat mimic that functionality, it is not a true analog output.

For more details on pulse width modulation, check out these tutorials:

Serial Communication Pins

Digital pins 0 (RX) and 1 (TX) are also dedicated serial communication pins ties to the USB-to-serial converter (CH340C). These pins are used to receive (RX) and transmit (TX) TTL serial data as well as program the microcontroller. Other digital pins can be use to emulate serial communication with SoftwareSerial().

alt text

Troubleshooting Tip:If a device is communicating to the microcontroller over digital pins 0 and 1, while you are trying to upload code, you will run into an upload error. Disconnect the device before uploading code again. It may be easier to emulate serial communication with another set of pins to make debugging easier.

For more details on serial communication, check out these tutorials:

SPI Communication Pins

Digital pins 10 (CS), 11 (COPI), 12 (CIPO), and 13 (SCK) support Serial Peripheral Interface (SPI) communication.

alt text

Note: Using the Serial Peripheral Interface, configures the SCK and COPI pins to be directly managed by the SPI hardware. Therefore, while in use, pins 11 and 13 can't be used (i.e. the LED on pin 13 can no longer be used as a debug/status indicator.)

Executing "SPI.end();" allows those pins 11 and 13 to be used as general I/O again.

For more details on the serial peripheral interface, check out these tutorials:

ISP or ICSP Connector

A less common way for most users to program the microcontroller on their board, is to use the ISP header. This method programs a microcontroller directly through the SPI pins. A more experienced user, with a firm grasp on digital electronics and the microcontroller (datasheet), will probably use a software package like Atmel studio, which is easier to debug.

alt text

The most common reasons for programming an AVR via an in-system programmer (ISP) are:

  • ISP is faster and more reliable - We use this method in our QC process for most boards.
  • There is no bootloader on the microcontroller or your board wasn't flashed properly:
    • This is probably the only way to program the microcontroller without a bootloader.
  • You want to use your own, custom bootloader.
  • Configure fuse bits for various settings.
  • Program without bootloader, when you need just a little bit more space for your program to load.

Most AVRs are programmed through a Serial Peripheral Interface (SPI). There are six unique signals required for communication between ISP and AVR.

alt text

AVR ISP Pinouts – Top View.

On the RedBoard Plus the COPI and D11 pins, CIPO and D12 pins, and SCK and D13 pins are tied together. To program the RedBoard Plus through the ISP pins, you will want to set the I/O jumper to 5V. This will tie the VCC of the microcontroller to the 5V rail//pin of the ISP header. Otherwise, you will probably run into issues and likely damage the I/O pins and/or the microcontoller chipset.

Troubleshooting Tip: Re-flashing the Bootloader
Often, this method is used as a last ditch effort, when after all else has failed to revive a board (do not attempt, unless you know what you are doing). Most likely your board isn’t bricked unless you have done something drastic like modified the fuses. In which case, reflashing the board probably won’t help you. However, if you have no options left and want to try to reflash the bootloader with an Uno or RedBoard. Here are links to some tutorials to get you started:


Time Capsule: If you would like to take a look back, here is a tutorial from back in June 2008 on How to Get Code Onto a Microcontroller. We have come so far since then!

Back then, it wasn't as easy to get into programming or processing. Without a USB-to Serial Converter or Bootloader, you needed an external ISP programmer to flash a microcontroller. You needed to use a lower level language and complex development platform to create and compile code for your microcontroller. Before flash memory, you could only program chips once.
(*Make sure to upload the ISP sketch to the programming board. Lastly, be sure to double check the board options you are selecting so that the Arduino IDE uses the correct bootloader hex file.)
I2C Communication Pins

Analog pins 4 (SDA) and 5 (SCL) support I2C (TWI) communication. These are connected to a few locations.

alt text

Troubleshooting Tip:
Be sure to double check that you are not trying to use and I2C device while you are trying use analog pin 4 or 5 to read analog data, you will run into issues. You can only do one or the other.

For more details on the serial peripheral interface, check out these tutorials:

I2C and Qwiic

The most convenient feature of the board is the Qwiic connector that allows the RedBoard Plus to seamlessly interface I2C devices with the SparkFun's Qwiic Ecosystem. Simply connect a Qwiic cable between your Qwiic enabled device and the RedBoard Plus's Qwiic connector and you are good to go! There are logic level converters by the Qwiic connector to safely convert the logic levels to 3.3V if the logic switch is on the 5V side. These I2C pins are connected to A4 and A5.

alt text

Analog Input (A4/A5) Jumpers

The back of the board includes jumpers on the back of the board in case you need to disconnect the logic level converters from A4/SDA and A5/SCL pins. This is if you need to use the pins to take analog readings. To modify, you will need a hobby knife to modify the A4/A5 jumpers. To modify the jumper, located on the back of the board next to the analog pins, you need to cut the trace between the two pads. Once you have cut the trace, the Qwiic connector and logic level conveters will be disconnected. To repair the connection, you just need to solder a jumper between the pads of both jumpers. Be sure to test the jumper with a multimeter to make sure you have a good soldered connection.

alt text

Troubleshooting Tip: To take analog readings on pins A4/A5, the jumpers for the Qwiic connector need to be cut. Otherwise, the pullup resistors for the logic level converters will act as voltage dividers and the pins will read improper values at lower voltages.
Interrupt Pins

Interrupts allow you to interrupt the code running in your main loop and execute another set of instructions (also known as interrupt handler or interrupt service routine) before returning back to the main loop. Digital pins 2 and 3 can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value.

alt text

For more details on the interrupts, check out these tutorials:

Board Dimensions

The board dimension is approximately 2.7" x 2.3". The board includes four mounting holes and female headers laid out in a standard Arduino Uno R3 footprint for Arduino shields. For the more details on the board sizing and component placement please refer to the Eagle files provided.

Board Dimensions