NAVI Navbar

Get Started With C.H.I.P. Pro

C.H.I.P. Pro

The C.H.I.P. Pro System-on-Module (SOM) is designed to get you making great products instead of re-inventing computers. It’s a low-cost, high-capability module that lets you focus on fast iterations of brilliant ideas that will be ready to manufacture.

To get the most out of developing and designing for C.H.I.P. Pro we recommend prototyping with the C.H.I.P. Pro Development Kit.

This document provides technical details that will make integrating C.H.I.P. Pro module into your designs a breeze, along with technical specifications and basic guides to get you connected and working with software on C.H.I.P. Pro.

At a Glance C.H.I.P. Pro’s Features:

Comprehensive audio handling includes:

To learn more, go to our Specification section.

GR8 SiP

GR8

C.H.I.P. Pro is powered by Next Thing Co’s GR8 SiP (System in Package). GR8 features a 1GHz Allwinner R8 ARMv7 Cortex-A8 processor with NEON SIMD extensions and a Mali-400 GPU. 256MB of Nanya DDR3 SDRAM is combined with the R8 processor into a 14mm x 14mm, 0.8mm pitch 252 ball FBGA package.

In addition to the Mali-400 graphic engine that supports OpenGL ES 1.0 and 2.0. GR8 includes a video engine for encoding and decoding codecs such as VP6/8, AVS, H.264, H.263, MPEG-1/2/4 and a display engine for a hardware cursor, alpha blending, and anti-flicker.

More information about the GR8 SiP can be found in the GR8 data sheet.

Block Diagram

C.H.I.P. Pro Block Diagram

Connect and Control

Flash an Operating System

Like its older sibling C.H.I.P., C.H.I.P. Pro’s GR8 SiP runs mainline Linux by default. This provides security, flexibility, robust tools, and open-source options. In the interest of power consumption and storage space, we have two OS options to best fit your needs:

Debian is a classic amongst embedded Linux board users for rapid prototyping. It offers a full package manager and loads of precompiled software and familiar command-line tools.

Buildroot is simple and stripped down making it efficient and ideal for permanent deployment and high-reliability embedded systems.

C.H.I.P. Pro has 512MB of high-reliability SLC NAND storage onboard for holding the core operating system and a limited amount of user and program data. While the storage is faster and more reliable it has less capacity. Because of this, it’s a good idea to know how much storage software will take before flashing and installing. Where needed, additional high-speed storage can be added through C.H.I.P. Pro’s SDIO bus.

Grab these items to flash C.H.I.P. Pro:

Flashing Process

Head over to the web flasher at flash.getchip.com/pro. If it’s your first time flashing, when you arrive you will be asked to install the NTC Flasher Chrome Extension.

After installing the extension, the main page will give you the option to either download an image or follow the wizard to flash C.H.I.P. Pro.

Download an image to look at the source code or store and flash a board with it when you see an option for choosing an image from your computer.

Click FLASH to flash C.H.I.P. Pro.

flasher home page

You will then arrive at the “Flasher First Time Setup” page which will have setup instructions specific to your computer’s operating system. Follow along in the browser or below.

After you have setup your computer, press START!.

first time setup

Plug the micro USB cable into the micro USB port on C.H.I.P. Pro. Hold down the FEL button (a pencil eraser works nicely) and with the other hand plug the USB cable into the computer. When the pink power and white status LEDs on C.H.I.P. Pro light up, you can release the FEL button.

pushing FELL button

The web flasher will search for and recognize C.H.I.P. Pro.

searching page

You will then be directed to the page with the example images. Hover over each image to see a description and click to see more details such as file size and kernel version. When you have chosen your adventure, click FLASH TO C.H.I.P. PRO.

image page flash to board
Choose image Click FLASH TO CHIP PRO

Watch the flashing process progress and leave the browser tab open in order for it to complete. You will be notified when C.H.I.P. Pro has been flashed successfully. You are then free to unplug the C.H.I.P. Pro or connect to it via serial.

succeeded page

If you are having problems with the flashing process follow the troubleshooting instructions given by the web flasher or check out the Web Flasher OS-Specific Issues troubleshooting section.

Examples

You can select an OS by flashing one of our examples using the web flasher flash.getchip.com/pro in Chrome or Chromium browser.

We have built examples based on Buildroot that implement features exposed on the CHIP Pro Dev Board such as its two MICs, and array of GPIOs. If you are building a circuit that incorporates mics and LEDs with a bare C.H.I.P. Pro you can start with these examples.

Blinkenlights (Buildroot)

Size: ~60MB

This Python based example provides easy-to-understand code with exciting results. Flash C.H.I.P. Pro with this image and LEDs connected to GPIO D0-D7 turn on and off in a cascading pattern. LEDs connected to the PWM0 and PWM1 pins will pulse from dim to bright.

VU Meter (Buildroot)

Size: ~60MB

Want to make sure your mics are working? Use this handy VU Meter example. LEDs connected to GPIO D0 - D7 will light proportional to the volume of the noise captured by two mics connected to the MICIN1 and MICIN2 pins.

Pro

Size: ~180MB

We provide a standard Debian distribution. Once flashed connect to the C.H.I.P. Pro via serial and log in with the default username chip and password chip.

If you want to configure and build the rootfs for the Debian image, take a look at our github repo

Make a Serial Connection

C.H.I.P. Pro is a headless computer, so you will need a separate computer in order to interact with it. This section will go over how to connect via USB-serial to UART, connect to a WiFi network and where to find example scripts.

USB-Serial to UART Pins

A UART to USB-serial connection between C.H.I.P. Pro and your computer offers the most comprehensive look at what’s happening in C.H.I.P. Pro since you can get all message output from the moment it starts booting.

Things you will need

Install USB-UART Cable Drivers

Not only will you need a USB-UART cable but you will need to install the appropriate drivers that go with the cable.

For example, this cable uses the Prolific hardware. The drivers are available on their site. If you are on Windows the driver can be installed after connecting C.H.I.P. Pro to your computer and navigating to Device Manager, finding Ports (COM & LPT) and double-clicking on the unrecognized USB-serial port. From the window that pops up, you will be able to tell the computer to go find the device’s driver online and install it.

Solder Headers to C.H.I.P. Pro

To connect the USB-UART cable to C.H.I.P. Pro you will need to solder headers onto the board for a reliable connection.

UART connection

The below connections work for the cable linked to in the above material list. Make sure to check the manufacturer’s product description for the correct pinout for whichever cable you are using.

UART connection

Power C.H.I.P. Pro

C.H.I.P. Pro can be powered through a computer’s USB port. However, some power intensive applications might require more current than the average computers provide via their USB port. A reliable way to power C.H.I.P. Pro is through the micro USB port using an AC/DC adapter (we recommend getting one that supplies 5V and 1 amp).

OS X & Linux

Mac systems and most flavors of Linux come with the terminal emulator software Screen. In case Screen is missing, it can be installed using apt-get on Debian-based systems:

sudo apt-get install screen

With C.H.I.P. Pro connected to your computer check to see if the usbserial port has appeared:

Mac

ls /dev/tty.*

The port name will be /dev/tty.usbserial or something similar.

Linux

ls /dev/ttyUSB*

The port name will be ttyUSB0 or something similar.

Connect

Use Screen to create a serial terminal connection at 115200 bps:

Mac

screen /dev/tty.usbserial 115200

Linux

screen /dev/ttyUSB0 115200

Once a terminal window pops up, hit the Enter key.

Exit Screen

When done with Screen, press Ctrl+A then Ctrl+k to kill all windows and terminate Screen.

If you get the error “Cannot open line… Resource busy” when trying to connect via Screen it’s because the last session was not properly exited. Here is how kill an open session that was not disconnected:

Search for the open file and active process using usbserial:

lsof | grep usbserial

You will get an output that looks something like this:

screen  27127 Sefi  5u  CHR             18,0        0t0     605 /dev/tty.usbserial

Note the process ID. In this case, it’s 27127. Then run:

screen -x 27127 

This will return you to the previous screen session. Then use Ctrl+A Ctrl+K to close it (will ask you to confirm).

Windows

Download the PuTTY terminal emulator.

In Windows, open the Device Manager. Find and expand Ports (COM & LPT). Find the port labeled USB-to-Serial Port (COMx) and take note of the COMx port number. This is the port that the C.H.I.P. Pro is connected to.

In PuTTY choose Serial as the Connection type. Plug the following items in and click Open.

Com Port puTTY
In Device Manager find COM port # Plug port # and baud rate into puTTY

Once a terminal window pops up, press Enter.

WiFi Antenna

C.H.I.P. Pro comes with an onboard ceramic antenna that is intended for debugging purposes only. We recommend the use of an external antenna for all product applications. Use the antenna that comes with the C.H.I.P. Pro Dev Kit or obtain any of these officially supported ones:

Antenna Model Manufacturer Gain Antenna Type Connection Type Freq. Range (GHz) Cable Length (mm)
AA107 Unictron 3.3 dBi PCB IPEX 2.4 - 2.5 100
HCX-P321 Wacosun 2 dBi PCB IPEX 2.4 - 2.5 150
FXP73.07.0100A Taoglas 2.5 dBi PCB IPEX 2.4 - 2.483 100
AA055 Unictron 2.5 dBi Ceramic SMT 2.4 - 2.5 n/a

Connect Antenna

C.H.I.P. Pro uses a standard 50Ω IPEX (Hirose U.FL compatible) connector for the external antenna path.

To connect an antenna, come straight from the top and push the antenna onto the connector. Keep in mind the connector will wear out over time. We suggest keeping the disconnect/connect cycle down to 10 or less.

wifi antenna connector push antenna on
WiFi antenna connector Push antenna onto connector

wifi antenna connected

Enable Wifi Antenna

In order to use it, you need to set the path of the external antenna.

Buildroot

With the Buildroot C.H.I.P. Pro images comes a set_antenna script which accepts two arguments of either pcb or ufl depending on which you want to enable.

sh set_antenna pcb|ufl

Debian

In Debian, there are two ways to set the antenna path:

0 = onboard-antenna

1 = external-antenna

Edit Buildroot Examples

After connecting to the Dev Kit via USB-serial you can check out and edit the scripts for each Buildroot example. Use the Vi command-line editor to read and edit example scripts found in /usr/bin.

Blinkenlights

vi /usr/bin/blink-leds
vi /usr/bin/fade-pwms

VU-Meter

vi /usr/bin/vu-meter

Basic Vi Editor Commands

To edit text take Vi from command mode (default) to insert mode. Press the following keys to edit text.

Vi was built for Qwerty keyboards without arrow keys. They may work but if not, use these keys to move cursor:

Other helpful commands:

WiFi Setup: Buildroot

The Buildroot operating system uses the ConnMan command-line network manager to connect and manage your network connections.

Requirements

Step 1: Enable WiFi and Find a Network

These three commands will in turn, enable wifi, scan for access points, and list what networks are available:

connmanctl enable wifi 
connmanctl scan wifi
connmanctl services

The services command has output similar to:

WaffleHouse          wifi_xxxxxxxxxxxx_xxxxxx_managed_psk
                     wifi_xxxxxxxxxxxx_hidden_managed_psk
YOUR_NETWORK         wifi_xxxxxxxxxxxx_xxxxxx_managed_psk
                     wifi_xxxxxxxxxxxx_xxxxxx_managed_none
Donut_Hut            wifi_xxxxxxxxxxxx_xxxxxxxxx_managed_psk

Step 2: Connect

Copy the string that starts with “wifi_’ to the right of the network name you want to connect to. If it has psk at the end, that means it is password protected (short for Wi-Fi Protected Access 2 - Pre-Shared Key) and you need to scroll further down to the ” Password Protected" section.

No Password

To connect to YOUR_NETWORK, which has no password, services shows two choices. We want the one without psk in the string. Use the connect command:

connmanctl connect wifi_xxxxxxxxxxxx_xxxxxx_managed_none

If your network is not password protected, you’ll get some output that will indicate a successful connection, such as:

[  961.780000] RTL871X: rtw_set_802_11_connect(wlan0)  fw_state=0x00000008
[  962.070000] RTL871X: start auth
[  962.080000] RTL871X: auth success, start assoc
[  962.090000] RTL871X: rtw_cfg80211_indicate_connect(wlan0) BSS not found !!
[  962.100000] RTL871X: assoc success
[  962.110000] RTL871X: send eapol packet
[  962.290000] RTL871X: send eapol packet
[  962.300000] RTL871X: set pairwise key camid:4, addr:xx:xx:xx:xx:xx:xx, kid:0, type:AES
[  962.320000] RTL871X: set group key camid:5, addr:xx:xx:xx:xx:xx:xx, kid:1, type:AES

If your network is password protected you’ll get an error.

Password Protected

To deal with passwords you’ll need to put ConnMan into interactive mode:

connmanctl

This command gives a connmanctl prompt:

connmanctl>

In the shell, turn the agent on so it can process password requests:

  agent on

Now use the connect command with your pasted wifi network string:

  connect wifi_xxxxxxxxxxxx_xxxxxx_managed_psk

Enter your password when prompted:

  Agent RequestInput wifi_xxxxxxxxxxxx_xxxxxx_managed_psk
  Passphrase = [ Type=psk, Requirement=mandatory ]
  Passphrase?

You will be notified that you are connected:

  Connected wifi_xxxxxxxxxxxx_xxxxxx_managed_psk

Exit connmanctl interactive mode:

  quit

Step 3: Test Connection

Finally, you can test your connection to the internet with ping. Google’s DNS server at the IP address 8.8.8.8 is probably the most reliable computer on the internet, so:

ping -c 4 8.8.8.8

Expect ping to output some timing messages:

PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=60 time=7.631 ms
64 bytes from 8.8.8.8: seq=1 ttl=60 time=7.474 ms
64 bytes from 8.8.8.8: seq=2 ttl=60 time=7.697 ms
64 bytes from 8.8.8.8: seq=3 ttl=60 time=9.004 ms

--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 7.474/7.951/9.004 ms

The -c 4 option means it will happen only 4 times.

Congratulations! You are now Connected to a Network

If your connection is not successful, then ping will tell you your network is down:

PING 8.8.8.8 (8.8.8.8): 56 data bytes
ping: sendto: Network is unreachable

Troubleshooting Connection Problems

Disconnect from Network with Connman

To disconnect from your network, you might first want a reminder of the unfriendly string used to describe your access point:

connmanctl services

This command will output information about your current connection:

YOUR_NETWORK         wifi_xxxxxxxxxxxx_xxxxxx_managed_psk

Copy and paste the string ID along with the disconnect command:

connmanctl disconnect wifi_xxxxxxxxxxxx_xxxxxx_managed_psk

You will be notified when it has disconnected:

Disconnected wifi_xxxxxxxxxxxx_xxxxxx_managed_psk

Forget Network with Connman

Generally, ConnMan will remember and cache setup information. This means that if you reboot in the vicinity of a known network, it will attempt to connect. However, if you need to forget a network setup, navigate to:

cd /var/lib/connman/

You can delete a single connection by seeing which are stored and copying the one you want to delete:

/var/lib/connman # ls
settings
wifi_xxxxxxxxxxxx_xxxxxx_managed_psk
wifi_xxxxxxxxxxxx_xxxxxx_managed_none

Then delete that connection:

rm -r wifi_xxxxxxxxxxxx_xxxxxx_managed_psk

You can delete all the “wifi” connections with:

rm -r wifi*

The -r is needed because these are directories you are deleting and the star at the end of wifi* assumes your connection IDs all start with the string “wifi”.

WiFi Setup: Debian

If you are using the Debian OS you will find that ConnMan is not installed, you will need to use Networking/CLI or the command nmcli instead.

Requirements

Step 1: List available Wi-Fi networks

In terminal type:

nmcli device wifi list

The output will list available access points:

*  SSID      MODE   CHAN  RATE       SIGNAL  BARS  SECURITY
*  YOUR_NETWORK    Infra  11    54 Mbit/s  100     ▂▄▆█  --
   CatCafe         Infra  6     54 Mbit/s  30      ▂___  WPA1 WPA2
   2WIRE533        Infra  10    54 Mbit/s  44      ▂▄__  WPA1 WPA2

Step 2: Connect

You can connect to password protected or open access points.

No Password

To connect to an open network with no password:

sudo nmcli device wifi connect "YOUR_NETWORK_SSID" ifname wlan0

These commands will respond with information about the connection. A successful connection looks like:

Connection with UUID 'xxxxxxxx-yyyy-zzzz-xxxx-yyyyyyyyyyyy' created and activated on device 'wlan0'

Password Protected

To connect to a password protected network, use this command inserting your own network name and password:

sudo nmcli device wifi connect "YOUR_NETWORK_SSID" password "UR_NETWORK_PASSWORD" ifname wlan0

These commands will respond with information about the connection. A successful connection looks like:

Connection with UUID 'xxxxxxxx-yyyy-zzzz-xxxx-yyyyyyyyyyyy' created and activated on device 'wlan0'

Hidden SSID and Password Protected

To connect to a hidden and password-protected network:

sudo nmcli device wifi connect "YOUR_NETWORK_SSID" password "UR_NETWORK_PASSWORD" ifname wlan0 hidden yes

Step 3: Test your Connection

You can verify and test your wireless network connection.

Verify

nmcli device status

This outputs a list of the various network devices and their connections. For example, a successful connection would look like this:

DEVICE   TYPE      STATE         CONNECTION
wlan0    wifi      connected     YOUR_NETWORK
wlan1    wifi      disconnected  --
ip6tnl0  ip6tnl    unmanaged     --
lo       loopback  unmanaged     --
sit0     sit       unmanaged     --

Because it is worth knowing that Linux offers many ways of doing things, another command that shows your current active connection is:

nmcli connection show --active

Which outputs:

NAME           UUID                                  TYPE             DEVICE
YOUR_NETWORK   xxxxxxxx-yyyy-zzzz-xxxx-yyyyyyyyyyyy  802-11-wireless  wlan0

After you have connected once, C.H.I.P. Pro will automatically connect to this network next time you reboot (or start NetworkManager services).

Test

Expect ping to output some timing messages:

PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=60 time=7.631 ms
64 bytes from 8.8.8.8: seq=1 ttl=60 time=7.474 ms
64 bytes from 8.8.8.8: seq=2 ttl=60 time=7.697 ms
64 bytes from 8.8.8.8: seq=3 ttl=60 time=9.004 ms

--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 7.474/7.951/9.004 ms

The -c 4 option means it will happen only 4 times.

Congratulations! You are now Connected to a Network

If your connection is not successful, then ping will tell you your network is down:

PING 8.8.8.8 (8.8.8.8): 56 data bytes
ping: sendto: Network is unreachable

Disconnect Network with Nmcli

Disconnect from the wireless device:

sudo nmcli dev disconnect wlan0

Forget Network with Nmcli

You may want to prevent auto-connection to a network. If so, you want the device to forget the a specific network. First, list the connections:

nmcli c

Which outputs something like:

NAME           UUID                                  TYPE             DEVICE 
YOUR_NETWORK   xxxxxxxx-yyyy-zzzz-xxxx-yyyyyyyyyyyy  802-11-wireless  wlan0

Then, delete the network specified between quotes to forget it:

sudo nmcli connection delete id "YOUR_NETWORK"

Troubleshooting Connection Problems

No network within range. If there’s no network, you can’t connect. Go find a network!

If you type in the wrong password, you’ll get some errors like this:

[32258.690000] RTL871X: rtw_set_802_11_connect(wlan0) fw_state=0x00000008
[32258.800000] RTL871X: start auth
[32263.720000] RTL871X: rtw_set_802_11_connect(wlan0) fw_state=0x00000008
[32263.820000] RTL871X: start auth
[32264.430000] RTL871X: auth success, start assoc
[32269.850000] RTL871X: rtw_set_802_11_connect(wlan0) fw_state=0x00000008
[32269.970000] RTL871X: start auth
Error: Timeout 90 sec expired.

Try connecting again with the correct password.

If you don’t have access to the internet, your ping to an outside IP will fail. It is possible that you can connect to a wireless network, but have no access to the internet, so you’d see a connection when you request device status, but have a failed ping. This indicates a problem or restriction with the router or the access point.

A failed ping looks something like:

From 192.133.2.10 icmp_seq=14 Destination Host Unreachable
From 192.133.2.10 icmp_seq=15 Destination Host Unreachable
From 192.133.2.10 icmp_seq=16 Destination Host Unreachable
18 packets transmitted, 0 received, +9 errors, 100% packet loss, time 17013ms
pipe 4

Change the router or access point permissions to allow a foreign board to connect to it. Alternatively, a personal mobile hotspot can obtained and used if you are in a work environment that can not change its network security settings.

A sudden, unplanned disconnection will post an error in the terminal window:

[30863.880000] RTL871X: linked_status_chk(wlan0) disconnect or roaming

The Network Manager will periodically try to reconnect. If the access point is restored, you’ll get something like this in your terminal window:

[31798.970000] RTL871X: rtw_set_802_11_connect(wlan0)
[31799.030000] RTL871X: start auth
[31799.040000] RTL871X: auth success, start assoc
[31799.050000] RTL871X: rtw_cfg80211_indicate_connect(wlan0) BSS not found !!
[31799.060000] RTL871X: assoc success

If you try to use nmcli and you get an error that it is not found or is not a command, chances are that you are using a C.H.I.P. Pro Buildroot image. The nmcli commands only apply to C.H.I.P. Pro using Debian linux.

SSH

Once you connect to an network you can ssh into the C.H.I.P. Pro in order to program and control it. Our Debian example comes with ssh servers, our Buildroot examples do not. If you want to ssh while using Buildroot you will need to do a manual build.

Find IP

ip addr

The IP is on wlan0 or sometimes on wlan1.

Connect

ssh root@<CHIPproIP>

Access I/O via sysfs

C.H.I.P. Pro has a total of 27 GPIO pins ready for use:

To see all the functions C.H.I.P. Pro pins offer check out the Multiplexing table.

pin out

GPIO is accessed through Linux’s sysfs interface.

Depending on the image that is flashed to C.H.I.P. Pro, the commands used to interact with the sysfs interface will differ. If using a Pro image, you need to act as root and use sudo sh -c with quotes around the command string. For example:

Pro (Debian)

sudo sh -c 'echo 132 > /sys/class/gpio/export'

Buildroot:

echo 132 > /sys/class/gpio/export

All PWM examples are done using one of NTC’s Buildroot based images.

GPIO Sysfs Numbers

To address a GPIO port via sysfs, you do not use the C.H.I.P. Pro or GR8 pin name. Sysfs sees the pins as another set of numbers. To find out what number to use for each GPIO pin reference the tables below.

Sysfs Pin Numbers

D0 - D7:

C.H.I.P. Pro Pin # 37 36 35 34 33 32 31 30
sysfs # 132 133 134 135 136 137 138 139

TWI1, UART2:

C.H.I.P. Pro Pin # 11 12 13 14 15 16
sysfs # 47 48 98 99 100 101

I2S:

C.H.I.P. Pro Pin # 21 22 23 24 25
sysfs # 37 38 39 40 41

SPI2:

C.H.I.P. Pro Pin # 41 40 39 38
sysfs # 128 129 130 131

PWM:

C.H.I.P. Pro Pin # 9 10
sysfs # 0 1

UART1:

** These pins are connected to the FE1.1S USB hub controller IC which is connected to the micro USB providing USB serial functionality. To use them as GPIO disable the USB hub controller by cutting the “UART Disconnect” traces.

C.H.I.P. Pro Pin # 44 43
sysfs # 195 196

Calculate sysfs Number

If a pin is not listed above you can calculate the sysfs number starting with the GR8 port number. All port numbers are printed on C.H.I.P. Pro for your convenience. They can also be found in the Allwinner R8 Datasheet starting on page 15.

As an example, take a look at D0 which is port PE4. Look at the letter that follows the “P”, in this case it’s “E”. Starting with A = 0, count up in the alphabet until you arrive at “E” and that is the letter index. For example, E=4.

Multiply the letter index by 32, then add the number that follows “PE”:

(4*32)+4 = 132

Digital Input Example

To access the GPIO pins through sysfs there is a process that must be adhered to. The following lines of code are an example that reads the changing state of pin PE4 which corresponds to 132 in sysfs.

When connecting a switch, we recommend adding a external pull-up or pull-down resistor to prevent a floating pin logic state.

pull-down resistor

In terminal, tell the system you want to listen to a pin by exporting it:

echo 132 > /sys/class/gpio/export

Next, the pin mode needs to be set. By default, the pin modes are set to input. So, the following command that views the mode will return “in” unless the pin mode was changed to “out” previously:

cat /sys/class/gpio/gpio132/direction

Connect a switch between pin PE4 and GND. Use this line of code to read the value:

cat /sys/class/gpio/gpio132/value

Continuously poll a switch on pin PE4(132) for its state change:

while ( true ); do cat /sys/class/gpio/gpio132/value; sleep 1; done;

Digital Output Example

Attach an LED to pin PE4 and ground. We recommend placing a current-limiting resistor in series to protect the GR8 module and LED from overcurrent or a potential short.

UART connection

Change the mode of the pin from “in” to “out”:

echo out > /sys/class/gpio/gpio132/direction

Now that it’s in output mode, you can write a value to the pin and turn the LED on and off:

echo 1 > /sys/class/gpio/gpio132/value
echo 0 > /sys/class/gpio/gpio132/value
while ( true ); do echo 1 > /sys/class/gpio/gpio132/value; cat /sys/class/gpio/gpio132/value; sleep 1; echo 0 >  /sys/class/gpio/gpio132/value; cat /sys/class/gpio/gpio132/value; sleep 1; done;

Unexport GPIO

When you are done experimenting, always tell the system to stop listening to the gpio pin by unexporting it:

echo 132 > /sys/class/gpio/unexport

If pins are not unexported, the pins will be "busy” the next time you go to export them.

Power

Power C.H.I.P. Pro

C.H.I.P. Pro can be powered in a few ways that are all managed by the AXP209 power management IC.

power LED USB

Below is a list of the ports and pins to provide power to and pins that are necessary to initiate power in some instances.

Pins

PWR on

Battery Charging and BTS Pin

C.H.I.P. Pro uses the AXP209 IC to manage battery charging. Pin 7 marked BATTEMP or BTS is directly connected to the TS pin on the AXP209. This pin supports a thermistor to monitor the battery temperature when the battery is charging or discharging. If you do not incorporate a thermistor into your setup the pin may float from ground interfering with how much charge current is throttled to the BAT pin and the JST connector. To ensure maximum charge current without a thermistor disable the battery temperature monitoring system.

There are two ways to do this:

sudo i2cset -y -f 0 0x34 0x82 0x82

The AXP209 IC is seen as a I2C device on C.H.I.P. Pro. By default the AXP209 is tuned for a 10KΩ 1% thermistor at 25°C with a programmable register for thermistor current to adapt to different devices. You can find more information on this setup in the AXP209 Datasheet. Search “ts pin” to quickly find information.

Power Out

C.H.I.P. Pro also has options for providing power to peripherals and sensors.

If you need to provide power to a USB device connected to USB1, connect IPSOUT to an appropriate switching regulator to the USB connector pad on your circuit board.

Powering Off

There are two ways to power off C.H.I.P. Pro:

1) Ideally, C.H.I.P. Pro should be powered off through a terminal window using the poweroff command. This will end all processes safely protecting your data.

2) On the board, connect PWR pin to GND for 3+ seconds to power off.

PWR off

Specifications

C.H.I.P. Pro Exposed Interfaces

Audio

Stereo audio in and out is handled by an on-die 24-bit audio codec in GR8.

Power and Battery Management

C.H.I.P. Pro can be powered by battery, USB or AC/DC adapter. On-board Power management with the AXP209 provides plenty of power options to better match your applications: mobile, commercial, and low-power are all possible with C.H.I.P. Pro.

For more details, the AXP209 datasheet can be found here.

WiFi

A software controlled antenna path selects between the onboard chip antenna or a IPEX (U.FL) antenna connector where several pre-certified antennas can be added.

FCC Modular certification (47 CFR 15.212) limits the need for final device “intentional radiator” certification under 47 CFR 15.247, so long as pre-certified antennas are used with C.H.I.P. Pro.

To learn more, find the FN-Link Module antenna datasheet here

Mechanical Drawing

Mechanical Drawing

You can download a high resolution version of this image here.

PCB Footprint

C.H.I.P. Pro is designed for prototyping and dropping into a production assembly line. We have detailed diagrams for mounting C.H.I.P. Pro by hand soldering and by SMT pick-and-place machines to include in your PCB designs.

More detailed information on designing a PCB for C.H.I.P. Pro is found here.

C.H.I.P. Pro PCB Footprint

C.H.I.P. Pro PCB Footprint

C.H.I.P. Pro PCB stencil

Datasheet

The complete datasheet for C.H.I.P. Pro is available on our C.H.I.P. Pro Hardware GitHub repo.

Open Source Hardware

C.H.I.P. Pro is open source. Find all you need to build a C.H.I.P. Pro in our Github repo.

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

Pin Descriptions

C.H.I.P. Pro Pins

C.H.I.P. Pro has a number of specialized pins for input and output, plus 27 general purpose input and output (GPIO) pins. The image above shows the pin location and muxing on C.H.I.P. Pro, and the tables below organize pins according to their specialized functions.

For more detailed information about pins on C.H.I.P. Pro and the GR8, please see the data sheets available here.

BATTEMP

Pin Number Port AXP209 Pin Name Signal Description Type
7 NA BATTEMP Thermistor connection for battery heat detection I

PWM

Pin Number Port GR8 Pin Name Signal Description Type
9 PB2 PWM0 Pulse Width Module Channel0 Output O
10 PG13 PWM1 Pulse Width Module Channel1 Output O

TWI1

Pin Number Port GR8 Pin Name Signal Description Type
11 PB15 TWI1-SCK TWI0 Clock I/O
12 PB16 TWI1-SDA TWI0 Data/Address I/O

UART – Universal Asynchronous Receiver/Transmitter

Pin Number Port GR8 Pin Name Signal Description Type
44 PG3 UART1-TX UART1 Data Transmit O
43 PG4 UART1-RX UART1 Data Receive I
13 PD2 UART2-TX UART2 Data Transmit I
14 PD3 UART2-RX UART2 Data Receive O
15 PD4 UART2-CTS UART2 Data Clear to Send I
16 PD5 UART2-RTS UART2 Data Request to Send I

Audio Codec

Pin Number Port GR8 Pin Name Signal Description Type
26 NA AGND Audio Codec Analog Ground G
19 NA HPCOM Headphone Common Reference Output AO
18 NA HPL Headphone Left Channel Output AO
20 NA HPR Headphone Right Channel Output AO
27 NA MICIN1 Microphone Input AI
28 NA MICIN2 Microphone Input AI
29 NA VMIC Bias Voltage Out AO

I2S

Pin Number Port GR8 Pin Name Signal Description Type
21 PB5 I2S-MCLK I2S Master Clock O
22 PB6 I2S-BCLK I2S Bit Clock I/O
23 PB7 I2S-LRCK I2S Left/Right Channel Select Clock I/O
24 PB8 I2S-DO I2S Data Output O
25 PB9 I2S-DI I2S Data Input I

OWA – One Wire Audio

Pin Number Port GR8 Pin Name Signal Description Type
9 PB2 OWA-DO OWA Data Output O

LRADC

Pin Number Port GR8 Pin Name Signal Description Type
42 NA LRADC0 ADC Input Channel0 for Multi-Button Input I

SPI – Serial Peripheral Interface

Pin Number Port GR8 Pin Name Signal Description Type
41 PE0 SPI2-CS0 SPI2 Chip Select Signal (active low) I/O
40 PE1 SPI2-CLK SPI2 Clock Signal I/O
39 PE2 SPI2-MISO SPI2 Master Data In, Slave Data Out I/O
38 PE3 SPI2-MOSI SPI2 Master Data Out, Slave Data In I/O

D0-D7 – General Purpose In/Out

Pin Number Port Name GR8 Pin Name Signal Description Type
37-30 D0-D7 GPIO Digital I/O I/O

CSI – Camera Sensor Interface

Pin Number Port Name GR8 Pin Name Signal Description Type
41 PE0 CSI-PCLK CSI Pixel Clock I
40 PE1 CSI-MCLK CSI Master Clock O
39 PE2 CSI-HSYNC CSI Horizontal Sync I
38 PE3 CSI-VSYNC CSI Vertical Sync I
37-30 PE4-PE11 CSI-Data[7:0] CSI Data Bit I

SD/MMC

Pin Number Port Name GR8 Pin Name Signal Description Type
37-34 PE4-PE7 SDC2-D[3:0] SDC2 Data Bit [3:0] I/O
33 PE8 SDC2-CMD SDC2 Command Signal I/O
32 PE9 SDC2-CLK SDC2 Clock O

External Interrupt

Pin Number Port Name GR8 Pin Name Signal Description Type
44 PG3 EINT3 External Interrupt Input I
43 PG4 EINT4 External Interrupt Input I
10 PG13 EINT13 External Interrupt Input I
21 PB5 EINT19 External Interrupt Input I
25 PB9 EINT24 External Interrupt Input I

USB1 and USB0

Pin Number Port Name GR8 Pin Name Signal Description Type
52 UDM0 USB0-DM USB0 D- Signal A I/O
51 UDP0 USB0-DP USB0 D+ Signal A I/O
48 UDM1 USB1-DM USB1 D- Signal A I/O
47 UDP1 USB1-DP USB1 D+ Signal A I/O
Pin Number Port Name AXP209 Pin Name Signal Description Type
50 VUSB VBUS-USB VBUS Power Supply P

Note: The on-board micro-USB connector is wired in parallel with the castellated edge points at VBUS, UDP0, UDM0, and GND. If you connect a USB host to both the castellated edges AND the connector, at best your USB will no longer work, at worst you may damage your equipment.

C.H.I.P. Pro FAQ

Hardware/Software

How do I get Bluetooth working?

Currently, the Debian-based Pro image with built-in Bluetooth drivers is a work in progress. Since our software and hardware is open source for development, our community created an image that includes a working Bluetooth utility that you can use to validate that Bluetooth is working. Follow the instructions below to manually flash C.H.I.P. Pro with a Debian image that implements the Bluetooth stack using BlueZ.

These instructions are written for a development machine that runs a Debian distro of Linux. Depending on what OS your machine runs you will either need to install packages using a different package manager than apt-get or your dev machine may already include them.

sudo apt-get update
sudo apt-get install git -y
sudo apt-get install sunxi-tools u-boot-tools -y
git clone https://github.com/NextThingCo/CHIP-mtd-utils.git
cd CHIP-mtd-utils
make
sudo make install
git clone  https://github.com/NextThingCo/CHIP-tools.git
cd CHIP-tools
tar xf chip-ble.tar.gz 
sudo chown -R : img/
sudo ./chip-update-firmware.sh -L img/
sudo bluetoothctl
scan on
pair [MAC ADDRESS]
connect [MAC ADDRESS]
scan off

Original forum post.

What does FCC Modular Certification mean?

C.H.I.P. Pro is CE, IC, and FCC Part 15 Modular Transmitter certified for use with multiple commercially available external antennas. Read our compliance statement for more information.

I made a C.H.I.P. prototype, will it be hardware and software compatible with GR8?

Yes! GR8 has the same Allwinner R8 processor that is in C.H.I.P., so your C.H.I.P. software is 100% compatible with C.H.I.P. Pro. We believe you shouldn’t have to change your software to go into production.

Ordering

How much does C.H.I.P. Pro cost?

C.H.I.P. Pro costs $16. Contact sales@nextthing.co (pre-flashing available for large orders).

Are there quantity discounts?

C.H.I.P. Pro is $16 no matter how many you order. But, if you have to ask you should contact sales@nextthing.co.

Is C.H.I.P. Pro open source?

Yes, you can see our design files in our git repository.

Does C.H.I.P. Pro replace C.H.I.P.?

C.H.I.P. is still a huge part of what we do. We made C.H.I.P. Pro and Gadget so the enterprising members of the CHIPster community would have a great option for scalable hardware, software and infrastructure for their products.

Where can I buy C.H.I.P. Pro?

Currently, we’re offering the C.H.I.P. Pro Dev kit for $49 in our web store.

How many may I order?

As many or as few as you’d like. 1 to 1 million (or more). For larger orders, hit us up at sales@nextthing.co

When will C.H.I.P. Pro ship?

C.H.I.P. Pro Dev kits are shipping in late Q4 of 2016 and C.H.I.P. Pro will be available in any quantity starting Q1 of 2017.

What is the lead time on a C.H.I.P. Pro order?

Once available in Q1 of 2017, small orders (1-20) will ship immediately. For large orders taking advantage of our factory flashing offering, there will be a lead time of 60 days.

GR8 FAQ

GR8

What are the GR8’s dimensions?

14mm x 14mm

What is the GR8 package?

252 ball FBGA package.

I have a prototype of my product, is GR8 right for me?

Depends! For most customers, C.H.I.P. Pro will be the best way to work with GR8. We’ve already sourced 127 components for you and include all the working drivers. If you’ve tried C.H.I.P. Pro but are looking for a differently layout, then GR8 is a great option.

Do you offer custom flashing solutions?

For C.H.I.P. Pro yes! For GR8, no, but it still works with Gadget to build, deploy and manage your products software.

Who are some of the companies using GR8 in their products?

Oh wow. We cannot wait to tell you. Stay tuned. Stay very, very tuned.

I’m a distributor, can I carry GR8?

Sure! We want to talk to you. Contact us at sales@nextthing.co.

C.H.I.P v C.H.I.P Pro

C.H.I.P and C.H.I.P Pro have a lot of similarities, but there are some very important distinctions that go beyond the obvious size differences.

feature C.H.I.P C.H.I.P Pro
RAM 512 MB 256 MB
Storage 4GB NAND SLC or 8GB NAND MLC 512 MB SLC NAND
SD Card Interface Yes, 4-bit Yes, 4-bit
I2S Digital Audio No Yes
Video Interface Composite No
Certification Section 15 Section 15 Modular
Easy to Mass Produce with No Yes
Easy to Play With Yes No
Size Small (40.64 mm x 60.50 mm x 11.2 mm) Tiny (30 mm x 45 mm x 5.2 mm)
Pin Headers Yes No
Operating System Debian Gadget
SOC Allwinner R8 ARM7 Next Thing GR8 ARM7
Speed 1 Ghz 1 Ghz
Wifi B/G/N 2.4GHz (Realtex RTL8723BS) B/G/N 2.4GHz (Realtex RTL8723DS)
Bluetooth 4.0 4.2
PWM 1 2
Audio Input 1 channel 2 channel

If you are looking for a more C.H.I.P-like experience with connectors and LEDS, we recommend the Development Kit.

GR8 Pins and Multiplexing on C.H.I.P. Pro

Key

italics = default pin function

In the “On C.H.I.P. Pro” column:

Function Pin Name On C.H.I.P. Pro Multi2 Multi3 Multi4 Multi5 Multi6 Multi7
PB(21) PB0 n/e TWI0_SCK
PB1 n/e TWI0_SDA
PB2 9 PWM0 SPDIF_DO EINT16
PB3 n/e IR_TX EINT17
PB4 n/e IR_RX EINT18
PB5 21 I2S_MCLK EINT19
PB6 22 I2S_BCLK EINT20
PB7 23 I2S_LRCK EINT21
PB8 24 I2S_DO EINT22
PB9 25 I2S_DI SPDIF_DI EINT23
PB10 n/e SPI2_CS1 SPDIF_DO EINT24
PB11 n/e SPI2_CS0 JTAG_MS0 EINT25
PB12 n/e SPI2_CLK JTAG_CK0 EINT26
PB13 n/e SPI2_MOSI JTAG_DO0 EINT27
PB14 n/e SPI2_MISO JTAG_DI0 EINT28
PB15 11 TWI1_SCK
PB16 12 TWI1_SDA
PB17 n/e TWI2_SCK
PB18 n/e TWI2_SDA
PC(20) PC0 NAND NWE SPI0_MOSI
PC1 NAND NALE SPI0_MISO
PC2 NAND NCLE SPI0_CLK
PC3 NAND NCE1 SPI0_CS0
PC4 NAND NCE0
PC5 NAND NRE
PC6 NAND NRB0 SDC2_CMD
PC7 NAND NRB1 SDC2_CLK
PC8 NAND NDQ0 SDC2_D0
PC9 NAND NDQ1 SDC2_D1
PC10 NAND NDQ2 SDC2_D2
PC11 NAND NDQ3 SDC2_D3
PC12 NAND NDQ4 SDC2_D4
PC13 NAND NDQ5 SDC2_D5
PC14 NAND NDQ6 SDC2_D6
PC15 NAND NDQ7 SDC2_D7
PC19 NAND NDQS UART2_RX UART3_RTS
PD2 13 LCD_D2 UART2TX_
PD3 14 LCD_D3 UART2RX_
PD4 15 LCD_D4 UART2CTS_
PD5 16 LCD_D5 UART2RTS_
PD6 n/e LCD_D6 ECRS
PD7 n/e LCD_D7 ECOL
PD10 n/e LCD_D10 ERXD0
PD11 n/e LCD_D11 ERXD1
PD12 n/e LCD_D12 ERXD2
PD13 n/e LCD_D13 ERXD3
PD14 n/e LCD_D14 ERXCK
PD15 n/e LCD_D15 ERXERR
PD18 n/e LCD_D18 ERXDV
PD19 n/e LCD_D19 ETXD0
PD20 n/e LCD_D20 ETXD1
PD21 n/e LCD_D21 ETXD2
PD22 n/e LCD_D22 ETXD3
PD23 n/e LCD_D23 ETXEN
PD24 n/e LCD_CLK ETXCK
PD25 n/e LCD_DE ETXERR
PD26 n/e LCD_HSYNC EMDC
PD27 n/e LCD_VSYNC EMDIO
PE(12) PE0 41 TS_CLK CSI_PCLK SPI2_CS0 EINT14
PE1 40 TS_ERR CSI_MCLK SPI2_CLK EINT15
PE2 39 TS_SYNC CSI_HSYNC SPI2_MOSI
PE3 38 TS_DVLD CSI_VSYNC SPI2_MISO
PE4 37 TS_D0 CSI_D0 SDC2 D0
PE5 36 TS_D1 CSI_D1 SDC2 D1
PE6 35 TS_D2 CSI_D2 SDC2 D2
PE7 34 TS_D3 CSI_D3 SDC2 D3
PE8 33 TS_D4 CSI_D4 SDC2 CMD
PE9 32 TS_D5 CSI_D5 SDC2 CLK
PE10 31 TS_D6 CSI_D6 UART1 TX
PE11 30 TS_D7 CSI_D7 UART1 RX
PF(6) PF0 n/e SDC0_D1 JTAG_MS1
PF1 n/e SDC0_D0 JTAG_DI1
PF2 n/e SDC0_CLK UART0_TX
PF3 n/e SDC0_CMD JTAG_DO1
PF4 n/e SDC0_D3 UART0_RX
PF5 n/e SDC0_D2 JTAG_CK1
PG(14) PG0 n/e GPS_CLK EINT0
PG1 n/e GPS_SIGN EINT1
PG2 n/e GPS_MAG EINT2 USB0-IDDET
PG3 n/e SDC1_CMD MS_BS UART1_TX EINT3
PG4 n/e SDC1_CLK MS_CLK UART1_RX EINT4
PG5 n/e SDC1_D0 MS_D0 UART1_CTS EINT5
PG6 n/e SDC1_D1 MS_D1 UART1_RTS UART2_RTS EINT6
PG7 n/e SDC1_D2 MS_D2 UART2_TX EINT7
PG8 n/e SDC1_D3 MS_D3 UART2_RX EINT8
PG9 n/e SPI1_CS0 UART3_TX EINT9
PG10 n/e SPI1_CLK UART3_RX EINT10
PG11 n/e SPI1_MOSI UART3_CTS EINT11
PG12 n/e SPI1_MISO UART3_RTS EINT12
PG13 10 SPI1_CS1 PWM1 UART2_CTS EINT13
TVOUT TVOUT n/e
USB UDM0 52
UDP0 51
UDM1 48
UDP1 47
VCC_USB n/e
TP TPX1 n/e
TPX2 n/e
TPY1 n/e
TPY2 n/e
LINEINL n/e
LINEINR n/e
MIC1OUTP n/e
MIC1OUTN n/e
VMIC n/e
MICIN2 28
MICIN1 27
VRA1 n/e
VRA2 n/e
AVCC n/e
VRP n/e
AGND n/e
HPR 20
HPCOM 19
HPCOMFB n/e
VCC_HP n/e
HPBP n/e
HPL 18
LRADC LRADC0 42
LRADC1 n/e

Compliance Statement

C.H.I.P. Pro is officially certified for CE, IC and FCC for use with multiple commercially available external antennas as well as the onboard ceramic SMT antenna. Find all Test Reports and Certificates in the C.H.I.P. Pro Hardware repository.

FCC

FCC ID: 2AF9F-1337R

C.H.I.P. Pro complies with part 15 of the FCC Rules. Operation is subject to the following two conditions:

  1. This device may not cause harmful interference.
  2. This device must accept any interference received, including interference that may cause undesired operation.

C.H.I.P. Pro has FCC Modular Transmitter certification meaning any product with C.H.I.P. Pro as the only active radio transmitter will not require your company to run certification testing for the Intentional Radiator portion of FCC tests. When you list that your product contains our FCC-ID’d module you avoid the need to apply for a new FCC-ID.

This greatly lessens the workload of taking your product through FCC certification. Your product will probably still need to be tested and state compliance with FCC Part 15 Class A or B for Unintentional Radiation limits.

CE + RED 2014/53/EU

The CE mark on CHIP Pro enable the free movement of products into and within the European market.

CHIP Pro is in compliance with the European Union’s Radio Equipment Directive for wireless transmitters and receivers.

Industry Canada

IC: 20863-1337R

This device complies with Industry Canada license-exempt RSS standard(s). Operation is subject to the following two conditions:

  1. This device may not cause harmful interference;
  2. This device must accept any interference received, including interference that may cause undesired operation of the device.

Cet appareil est conforme à Industrie Canada une licence standard RSS exonérés (s). Son fonctionnement est soumis aux deux conditions suivantes: 1. Cet appareil ne doit pas provoquer d'interférences 2. Cet appareil doit accepter toute interférence reçue, y compris les interférences pouvant provoquer un fonctionnement indésirable de l'appareil.

Information to User

CAUTION: Changes or modifications not expressly approved for compliance could void your authority to operate this equipment.

For any questions, reach out to us at pro@nextthing.co.

PCB Design Tips

C.H.I.P. Pro was created to be seamlessly embedded into products and we at NTC are here to help you do that. If you are ready to go from breadboard to PCB, read on. This section gives recommendations and provides resources and tips to help plan a successful PCB design.

C.H.I.P. Pro PCBs

From 1 to 1MM

To make scaling up efficient and easy, C.H.I.P. Pro is offered in small and large quantities. Purchase from the online store or, for larger orders, email sales@nextthing.co.

Tech Documents

NTC hardware and software is open source for development. You will find the following design and technical documents for C.H.I.P. Pro and C.H.I.P. Pro Dev Kit on our Github account.

C.H.I.P. Pro Footprint

Create a C.H.I.P. Pro footprint with the EDA (Electronic Design Automation) software of your choice using the measurements provided in our footprint diagrams. For SMT manufacturing, you will also find a solder paste stencil.

SMT Footprint

C.H.I.P. Pro SMT footprint

Solder Paste Stencil

C.H.I.P. Pro SMT stencil

Hand Solder Footprint

C.H.I.P. Pro footprint

If using Eagle software to design your PCB with, we’ve taken away the need to design one. Find our ready-made Eagle footprint here.

Do you want to share a footprint that you have created with us? We would like to include it here for others to use. Send your footprint to docs@nextthing.co.

PCB Software and Services

There are many software packages and services to design and manufacture a PCB with. If you are just starting out in PCB design or want to explore other options we offer suggestions below.

The tools and services chosen are based on what we have seen used in the field and community across all levels of development. NTC does not officially recommend one EDA software package. The effectiveness of a design tool will depend on the user’s preferences and skill level.

EDA Software

PCB Fabrication Services

When you are ready to get your board fabricated you will need to choose a PCB manufacturer. Your choice will be based on a number of factors including, turn around time, board features (flex and color options) and scale of order. All of the services listed do small quantities to get you started. Some do large scale and offer multi-layer boards and other advanced services.

Verify Manufacturer Design Rules

PCB manufacturers have specifications outlining their production capabilities called “design rules”. These design rules include smallest possible traces, drill hole size, spacing, etc. Most PCB design software have an automated process that checks your design against these design rules using files. This is called the DRC (design rule checking) process. If the design software you are using does not have this feature some board manufacturers offer the service or you can use DRC specific software.

As an example, OSH Park’s PCB design rules are found on their OSH Park Design Submission Guidelines page. Conveniently, they provide a file for checking PCB designs using Eagle software. OSH Park also provides design guideline documents for many of the EDA software people submit designs with. To get you started, below are some design rule resources for software linked to in this doc.

Power Considerations

Supplying Power to C.H.I.P. Pro

Powering C.H.I.P. Pro via the CHG-IN pin at 5-5.5V is the suggested route for all embedded applications. A reliable 2A+ rated power supply works well to power C.H.I.P. Pro.

C.H.I.P. Pro can also be battery powered through BAT, and by a USB charger/supply connected to VBUS.

Pin Min Typical Max Unit
CHG-IN 3.8 5-5.5 6.3 V
BAT 3.0 3.8 4.2+/-0.5% V
VBUS 3.8 5-5.5 6.3 V

PMU (Power Management Unit) Vout Current Available Before Loading Battery

Iout Min Typical Max
PMU Vout 500 mA 900 mA 2500 mA

A programmable current limit can be set in software allowing for safe attachment to USB 2.0, USB 3.0, or high-current CHG-In sources. Check the AXP209 datasheet. for more information starting on page 33. The current set options are 100mA, 500mA, 900mA and “no limit”. C.H.I.P. Pro is set to 900mA upon boot by default.

Keep in mind that if the current draw spikes and exceeds the threshold even momentarily this will cause a brownout and C.H.I.P. Pro will shut down.

Power Consumption

Like any feature-loaded SOM, how much current C.H.I.P. Pro draws depends on what you need it to do. The following measurements are offered as a rough starting point with which to begin to understand the range of power budgets relevant to a CHIP Pro-based device operated from a battery. Exact power consumption is significantly influenced by factors such as software power optimizations (or lack thereof), power source quality, external peripheral circuitry, and ambient operating conditions.

System State Measurement Value
Idle at Linux Shell Supply (BAT) 4.17V
Current 125.90 mA
Power 525.00 mW
Playing Local Audio Supply (BAT) 4.17V
Current 209.40 mA
Power 873.62 mW
WiFi Pinging Supply (BAT) 4.17V
Current 184.70 mA
Power 770.20 mW
Standby Supply (BAT) 4.17V
Current 5.30 mA
Power 22.10 mW
Shutdown Supply (BAT) 4.17V
Current 1.60 mA
Power 6.67 mW

Battery and BTS Pin

Thinking of including a rechargeable battery as a product feature? Read on to learn more about the BTS pin.

Pin 7 on C.H.I.P. Pro is marked BATTEMP or BTS and is directly connected to the TS pin on the AXP209 PMU. This pin supports a 10KΩ 1% thermistor to monitor the battery temperature when the battery is charging or discharging. If you do not incorporate a thermistor into your circuit the pin may float from ground interfering with how much charge current is throttled to the BAT pin and the JST connector.

To ensure maximum charge current without a thermistor disable the battery temperature monitoring system by one of two ways:

sudo i2cset -y -f 0 0x34 0x82 0x82

You can find more information on this setup in the AXP209 Datasheet starting on page 21.

Power Button

The PWRON pin can be connected to GND through a button as a Power Enable Key (PEK) or hibernation/wake button. The AXP209 can automatically identify long and short button presses. Read more about this on page 10 of the AXMP209 datasheet.

Additional USB Port

Whether you want to add a micro USB 5V source or a host USB-A port, here are some points on power to consider while designing your PCB.

Analog Input

If your product requires analog input for sensors, keypads or potentiometers there a few ways to utilize an ADC.

WiFi Signal

The onboard ceramic WiFi antenna is meant for debugging purposes only. For product applications use the antenna that comes with the C.H.I.P. Pro Dev Kit or obtain any of these pre-certified options:

Antenna Model Manufacturer Gain Antenna Type Connection Type Freq. Range (GHz) Cable Length (mm)
AA107 Unictron 3.3 dBi PCB IPEX 2.4 - 2.5 100
HCX-P321 Wacosun 2 dBi PCB IPEX 2.4 - 2.5 150
FXP73.07.0100A Taoglas 2.5 dBi PCB IPEX 2.4 - 2.483 100
AA055 Unictron 2.5 dBi Ceramic SMT 2.4 - 2.5 n/a

Make Use of Modular Certification

To provide fast integration time into your product NTC has done most of the heavy lifting when it comes to certification.

C.H.I.P. Pro FCC ID

Do Something GR8

Are you thinking of going into mass production, but not sure what path to take? We offer services at several production stages.

If you would like to learn more about how we can help you make a GR8 product, contact us at pro@nextthing.co.