Octopus IO-Board
Overview
Octopus IO-Board is an expansion to the Octopus SoM, which is built around the nRF9160 SiP offering NB-IoT and LTE-M connectivity, GPS and accelerometer. Octopus IO-Board expands the capabilities of the Octopus SoM by providing additional peripherals and interfaces for development and prototyping of low-power IoT applications.
nRF9160 SiP contains ARM Cortex-M33 application processor and the following devices:
ADC
CLOCK
FLASH
GPIO
I2C
MPU
NVIC
PWM
RTC
Segger RTT (RTT Console)
SPI
UARTE
WDT
IDAU
Octopus IO-Board offers the following features:
Battery charger
USB-C for power
Solar charger
Alkaline battery input
LDO regulator to power Octopus SoM and peripherals
Battery monitoring using ADC
64 Mbit SPI NOR flash
Dedicated ADC, GPIO, I2C, SPI and UARTE pins for expansion
Exposed headers for current measurements
Nano SIM connector
Tag-Connect TC2030-IDC 6-pin connector for SWD programming and debugging
2x3 pinheader for SWD programming and debugging
More information about the board can be found at the Octopus IO-Board Product Page [1] and in the Octopus IO-Board Documentation [2].
Hardware
Connections and IOs
The Octopus IO-Board features multiple dedicated pin headers for peripherals:
3x I2C0 bus
2x SPI0 bus
3x I2C1/SPI1 bus (selectable)
1x UARTE0 bus
1x Analog input (5 input pins)
1x GPIO (7 I/O pins)
The I2C1/SPI1 bus is selectable by the user by cutting/soldering SB8 and SB9 solder bridges and configuring the bus in the device tree.
The GPIO pin header provides 7 I/O pins, which can be used as digital input/output. Some of them also serve as chip selects for SPI peripherals.
Power supply
The Octopus IO-Board can be powered from the following sources:
USB-C connector
Solar cell
Alkaline battery
Li-Po battery
When powered from USB-C or solar cell, the board can charge the Li-Po battery. The battery voltage can be monitored using ADC which can provide information about the battery State of charge (SOC).
When powered from alkaline battery, the user needs to set switch SW1 to ALK position. This ensures that the Li-Ion battery is not charged from the alkaline battery.
The board has a built-in LDO regulator that is used to power the Octopus SoM and peripherals. The EN2 pin can be used to enable/disable output 2 of the LDO regulator. This can be used to power off peripherals to save power when they are not needed.
The board also has multiple built-in test points for measuring current consumption of the board, which enables the user to measure and optimize the power consumption of the board.
Programming and Debugging
Norik Octopus IO-Board can be programmed and debugged using the Tag-Connect TC2030-IDC 6-pin connector or 6-pin SWD pinheader.
Building an application
In most case you’ll need to use octopus_io_board/nrf9160/ns
board target for building examples.
Some examples don’t require non secure mode and can be built with octopus_io_board/nrf9160
board target.
Flashing
Refer to the instruction in the Nordic nRF5x Segger J-Link page to install and configure all the necessary software.
Here is an example for the Hello World application.
First, run your favorite terminal program to listen for output.
$ minicom /dev/<tty_device> 115200
Replace <tty_device> with the port where the Octopus IO-Board can be found. For example, under Linux, /dev/ttyACM0.
Then build and flash the application in the usual way.
# From the root of the zephyr repository
west build -b octopus_io_board/nrf9160 samples/hello_world
west flash
To build and flash the application in non-secure mode, use the following command:
# From the root of the zephyr repository
west build -b octopus_io_board/nrf9160/ns samples/hello_world
west flash
Debugging
Refer to the instruction in the Nordic nRF5x Segger J-Link page for information on debugging.
Testing the on-board LED
Use the Blinky to test the on-board LED. Build and flash the example to make sure Zephyr is running correctly on your board.
# From the root of the zephyr repository
west build -b octopus_io_board/nrf9160 samples/basic/blinky
west flash