boards/actinius/icarus/doc/index.rst
.. zephyr:board:: actinius_icarus
Overview
The Icarus is a cost-effective cellular IoT board in Adafruit's Feather/FeatherWing form factor. It is built around Nordic Semi's nRF9160 modem and combines LTE-M, NB-IoT, GPS, accelerometer, USB, LiPo charger as well as an eSIM and a nano SIM connector.
The main uController is the Nordic Semiconductor nRF9160, with ARM Cortex-M33F CPU, ARMv8-M Security Extension and the following devices (provided directly by Nordic):
ADC (Analog to Digital Converter)GPIO (General Purpose Input Output)I2C (Inter-Integrated Circuit)MPU (Memory Protection Unit)NVIC (Nested Vectored Interrupt Controller)PWM (Pulse Width Modulation)RTC (nRF RTC System Clock)SPI (Serial Peripheral Interface)UARTE (Universal asynchronous receiver-transmitter with EasyDMA)WDT (Watchdog Timer)IDAU (Implementation Defined Attribution Unit)Hardware
The detailed information about the on-board hardware can be found at the Icarus Product Website_.
.. figure:: img/Icarus_pinouts.jpg :align: center :alt: Icarus IoT Dev Board w/ Pinouts
Icarus IoT Dev Board w/ Pinouts
External Pins available to user:
+------------+----------------------------+----------------------------------------------+------------------+ | Icarus pin | Function | Description | Device-tree node | +============+============================+==============================================+==================+ | RST | Reset | Active low reset with internal pullup | - | +------------+----------------------------+----------------------------------------------+------------------+ | 3.3V | Power output | Main 3.3 V supply | - | +------------+----------------------------+----------------------------------------------+------------------+ | NC | - | Not connected | - | +------------+----------------------------+----------------------------------------------+------------------+ | GND | Power output | Ground | - | +------------+----------------------------+----------------------------------------------+------------------+ | 14 / A1 | GPIO / Analog in | nRF9160 P0.14 / AIN1 | gpio0 / adc_1 | +------------+----------------------------+----------------------------------------------+------------------+ | 15 / A2 | GPIO / Analog in | nRF9160 P0.15 / AIN2 | gpio0 / adc_2 | +------------+----------------------------+----------------------------------------------+------------------+ | 16 / A3 | GPIO / Analog in | nRF9160 P0.16 / AIN3 | gpio0 / adc_3 | +------------+----------------------------+----------------------------------------------+------------------+ | 17 / A4 | GPIO / Analog in | nRF9160 P0.17 / AIN4 | gpio0 / adc_4 | +------------+----------------------------+----------------------------------------------+------------------+ | 18 / A5 | GPIO / Analog in | nRF9160 P0.18 / AIN5 | gpio0 / adc_5 | +------------+----------------------------+----------------------------------------------+------------------+ | 19 / A6 | GPIO / Analog in | nRF9160 P0.19 / AIN6 | gpio0 / adc_6 | +------------+----------------------------+----------------------------------------------+------------------+ | 20 / SCK | GPIO / SPI pin | nRF9160 P0.20 / SPI SCK pin | gpio0 / spi3 | +------------+----------------------------+----------------------------------------------+------------------+ | 21 / MOSI | GPIO / SPI pin | nRF9160 P0.21 / SPI MOSI pin | gpio0 / spi3 | +------------+----------------------------+----------------------------------------------+------------------+ | 22 / MISO | GPIO / SPI pin | nRF9160 P0.22 / SPI MISO pin | gpio0 / spi3 | +------------+----------------------------+----------------------------------------------+------------------+ | 23 / RX | GPIO / UART pin | nRF9160 P0.23 / UART RX pin | gpio0 / uart1 | +------------+----------------------------+----------------------------------------------+------------------+ | 24 / TX | GPIO / UART pin | nRF9160 P0.24 / UART TX pin | gpio0 / uart1 | +------------+----------------------------+----------------------------------------------+------------------+ | VIN | Power input | Voltage input (maximum 10.2 V) | - | +------------+----------------------------+----------------------------------------------+------------------+ | VBAT | Power input | Battery voltage input | - | +------------+----------------------------+----------------------------------------------+------------------+ | EN | Power enable | Power enable pin (pull low to disable power) | - | +------------+----------------------------+----------------------------------------------+------------------+ | USB | Power input | USB voltage input | gpio0 | +------------+----------------------------+----------------------------------------------+------------------+ | 4 | GPIO | nRF9160 P0.04 | gpio0 | +------------+----------------------------+----------------------------------------------+------------------+ | 3 | GPIO | nRF9160 P0.03 | gpio0 | +------------+----------------------------+----------------------------------------------+------------------+ | 2 | GPIO | nRF9160 P0.02 | gpio0 | +------------+----------------------------+----------------------------------------------+------------------+ | 1 | GPIO | nRF9160 P0.01 | gpio0 | +------------+----------------------------+----------------------------------------------+------------------+ | 0 | GPIO | nRF9160 P0.00 | gpio0 | +------------+----------------------------+----------------------------------------------+------------------+ | 30 | GPIO | nRF9160 P0.30 | gpio0 | +------------+----------------------------+----------------------------------------------+------------------+ | 31 | GPIO | nRF9160 P0.31 | gpio0 | +------------+----------------------------+----------------------------------------------+------------------+ | SCL | GPIO / I2C pin | nRF9160 P0.26 / I2C SCL pin | gpio0 / i2c2 | +------------+----------------------------+----------------------------------------------+------------------+ | SDA | GPIO / I2C pin | nRF9160 P0.27 / I2C SDA pin | gpio0 / i2c2 | +------------+----------------------------+----------------------------------------------+------------------+
nRF9160 pins connected internally:
+--------------+---------------------------------------+----------------------+ | nRF9160 pin | Function | Device-tree node | +==============+=======================================+======================+ | P0.05 | User button | button0 | +--------------+---------------------------------------+----------------------+ | P0.10 | Red LED | led0 / pwm-led0 | +--------------+---------------------------------------+----------------------+ | P0.11 | Green LED | led1 / pwm-led1 | +--------------+---------------------------------------+----------------------+ | P0.12 | Blue LED | led2 / pwm-led2 | +--------------+---------------------------------------+----------------------+ | P0.28 | Accelerometer Interrupt 1 | lis2dh12-accel | +--------------+---------------------------------------+----------------------+ | P0.29 | Accelerometer Interrupt 2 | lis2dh12-accel | +--------------+---------------------------------------+----------------------+ | P0.08 | SIM select pin | gpio0 | +--------------+---------------------------------------+----------------------+ | P0.13 / AIN0 | Battery voltage measurement | adc_0 | +--------------+---------------------------------------+----------------------+ | P0.06 | USB - FTDI serial RX | uart0 | +--------------+---------------------------------------+----------------------+ | P0.09 | USB - FTDI serial TX | uart0 | +--------------+---------------------------------------+----------------------+ | P0.07 | USB - FTDI serial RTS | uart0 | | | Charger enable pin (Icarus v2.0) | gpio0 (Icarus v2.0) | +--------------+---------------------------------------+----------------------+ | P0.25 | USB - FTDI serial CTS | uart0 | | | FLASH memory SPI CS pin (Icarus v2.0) | gpio0 (Icarus v2.0) | +--------------+---------------------------------------+----------------------+
.. zephyr:board-supported-hw::
The SIM choice (eSIM or nano-SIM) can be configured in Devicetree by adjusting
the sim property in the sim_select node.
Since hardware version 2.0 the charger can be disabled by adjusting the charger
property of the charger_enable device tree node.
IDAU_). The IDAU is implemented
with the System Protection Unit and is used to define secure and non-secure
memory maps. By default, all of the memory space (Flash, SRAM, and
peripheral address space) is defined to be secure accessible only.The process requires the following steps:
-DBOARD=actinius_icarus and
CONFIG_TRUSTED_EXECUTION_SECURE=y in the application project configuration file.-DBOARD=actinius_icarus/ns.If you are using Segger Embedded Studio v4.18 or later, the two binaries are built, merged, and burned automatically, unless you have disabled the feature.
When building a Secure/Non-Secure application, the Secure application will have to set the IDAU (SPU) configuration to allow Non-Secure access to all CPU resources utilized by the Non-Secure application firmware. SPU configuration shall take place before jumping to the Non-Secure application.
More information can be found in the Icarus "Get Started" Guide_ or the
Actinius Documentation Portal_.
References
.. target-notes::
.. _IDAU: https://developer.arm.com/docs/100690/latest/attribution-units-sau-and-idau
.. _Icarus Product Website: https://www.actinius.com/icarus
.. _Icarus "Get Started" Guide: https://www.actinius.com/get-started
.. _Actinius Documentation Portal: https://docs.actinius.com