1.. zephyr:board:: actinius_icarus 2 3Overview 4******** 5 6The Icarus is a cost-effective cellular IoT board in Adafruit's Feather/FeatherWing 7form factor. It is built around Nordic Semi's nRF9160 modem and combines 8LTE-M, NB-IoT, GPS, accelerometer, USB, LiPo charger as well as 9an eSIM and a nano SIM connector. 10 11The main uController is the Nordic Semiconductor nRF9160, with 12ARM Cortex-M33F CPU, ARMv8-M Security Extension and the 13following devices (provided directly by Nordic): 14 15* :abbr:`ADC (Analog to Digital Converter)` 16* CLOCK 17* FLASH 18* :abbr:`GPIO (General Purpose Input Output)` 19* :abbr:`I2C (Inter-Integrated Circuit)` 20* :abbr:`MPU (Memory Protection Unit)` 21* :abbr:`NVIC (Nested Vectored Interrupt Controller)` 22* :abbr:`PWM (Pulse Width Modulation)` 23* :abbr:`RTC (nRF RTC System Clock)` 24* Segger RTT (RTT Console) 25* :abbr:`SPI (Serial Peripheral Interface)` 26* :abbr:`UARTE (Universal asynchronous receiver-transmitter with EasyDMA)` 27* :abbr:`WDT (Watchdog Timer)` 28* :abbr:`IDAU (Implementation Defined Attribution Unit)` 29 30Hardware 31******** 32 33The detailed information about the on-board hardware can be found at the `Icarus Product Website`_. 34 35.. figure:: img/Icarus_pinouts.jpg 36 :align: center 37 :alt: Icarus IoT Dev Board w/ Pinouts 38 39 Icarus IoT Dev Board w/ Pinouts 40 41Pin description 42=============== 43 44External Pins available to user: 45 46+------------+----------------------------+----------------------------------------------+------------------+ 47| Icarus pin | Function | Description | Device-tree node | 48+============+============================+==============================================+==================+ 49| RST | Reset | Active low reset with internal pullup | - | 50+------------+----------------------------+----------------------------------------------+------------------+ 51| 3.3V | Power output | Main 3.3 V supply | - | 52+------------+----------------------------+----------------------------------------------+------------------+ 53| NC | - | Not connected | - | 54+------------+----------------------------+----------------------------------------------+------------------+ 55| GND | Power output | Ground | - | 56+------------+----------------------------+----------------------------------------------+------------------+ 57| 14 / A1 | GPIO / Analog in | nRF9160 P0.14 / AIN1 | gpio0 / adc_1 | 58+------------+----------------------------+----------------------------------------------+------------------+ 59| 15 / A2 | GPIO / Analog in | nRF9160 P0.15 / AIN2 | gpio0 / adc_2 | 60+------------+----------------------------+----------------------------------------------+------------------+ 61| 16 / A3 | GPIO / Analog in | nRF9160 P0.16 / AIN3 | gpio0 / adc_3 | 62+------------+----------------------------+----------------------------------------------+------------------+ 63| 17 / A4 | GPIO / Analog in | nRF9160 P0.17 / AIN4 | gpio0 / adc_4 | 64+------------+----------------------------+----------------------------------------------+------------------+ 65| 18 / A5 | GPIO / Analog in | nRF9160 P0.18 / AIN5 | gpio0 / adc_5 | 66+------------+----------------------------+----------------------------------------------+------------------+ 67| 19 / A6 | GPIO / Analog in | nRF9160 P0.19 / AIN6 | gpio0 / adc_6 | 68+------------+----------------------------+----------------------------------------------+------------------+ 69| 20 / SCK | GPIO / SPI pin | nRF9160 P0.20 / SPI SCK pin | gpio0 / spi3 | 70+------------+----------------------------+----------------------------------------------+------------------+ 71| 21 / MOSI | GPIO / SPI pin | nRF9160 P0.21 / SPI MOSI pin | gpio0 / spi3 | 72+------------+----------------------------+----------------------------------------------+------------------+ 73| 22 / MISO | GPIO / SPI pin | nRF9160 P0.22 / SPI MISO pin | gpio0 / spi3 | 74+------------+----------------------------+----------------------------------------------+------------------+ 75| 23 / RX | GPIO / UART pin | nRF9160 P0.23 / UART RX pin | gpio0 / uart1 | 76+------------+----------------------------+----------------------------------------------+------------------+ 77| 24 / TX | GPIO / UART pin | nRF9160 P0.24 / UART TX pin | gpio0 / uart1 | 78+------------+----------------------------+----------------------------------------------+------------------+ 79| VIN | Power input | Voltage input (maximum 10.2 V) | - | 80+------------+----------------------------+----------------------------------------------+------------------+ 81| VBAT | Power input | Battery voltage input | - | 82+------------+----------------------------+----------------------------------------------+------------------+ 83| EN | Power enable | Power enable pin (pull low to disable power) | - | 84+------------+----------------------------+----------------------------------------------+------------------+ 85| USB | Power input | USB voltage input | gpio0 | 86+------------+----------------------------+----------------------------------------------+------------------+ 87| 4 | GPIO | nRF9160 P0.04 | gpio0 | 88+------------+----------------------------+----------------------------------------------+------------------+ 89| 3 | GPIO | nRF9160 P0.03 | gpio0 | 90+------------+----------------------------+----------------------------------------------+------------------+ 91| 2 | GPIO | nRF9160 P0.02 | gpio0 | 92+------------+----------------------------+----------------------------------------------+------------------+ 93| 1 | GPIO | nRF9160 P0.01 | gpio0 | 94+------------+----------------------------+----------------------------------------------+------------------+ 95| 0 | GPIO | nRF9160 P0.00 | gpio0 | 96+------------+----------------------------+----------------------------------------------+------------------+ 97| 30 | GPIO | nRF9160 P0.30 | gpio0 | 98+------------+----------------------------+----------------------------------------------+------------------+ 99| 31 | GPIO | nRF9160 P0.31 | gpio0 | 100+------------+----------------------------+----------------------------------------------+------------------+ 101| SCL | GPIO / I2C pin | nRF9160 P0.26 / I2C SCL pin | gpio0 / i2c2 | 102+------------+----------------------------+----------------------------------------------+------------------+ 103| SDA | GPIO / I2C pin | nRF9160 P0.27 / I2C SDA pin | gpio0 / i2c2 | 104+------------+----------------------------+----------------------------------------------+------------------+ 105 106nRF9160 pins connected internally: 107 108+--------------+---------------------------------------+----------------------+ 109| nRF9160 pin | Function | Device-tree node | 110+==============+=======================================+======================+ 111| P0.05 | User button | button0 | 112+--------------+---------------------------------------+----------------------+ 113| P0.10 | Red LED | led0 / pwm-led0 | 114+--------------+---------------------------------------+----------------------+ 115| P0.11 | Green LED | led1 / pwm-led1 | 116+--------------+---------------------------------------+----------------------+ 117| P0.12 | Blue LED | led2 / pwm-led2 | 118+--------------+---------------------------------------+----------------------+ 119| P0.28 | Accelerometer Interrupt 1 | lis2dh12-accel | 120+--------------+---------------------------------------+----------------------+ 121| P0.29 | Accelerometer Interrupt 2 | lis2dh12-accel | 122+--------------+---------------------------------------+----------------------+ 123| P0.08 | SIM select pin | gpio0 | 124+--------------+---------------------------------------+----------------------+ 125| P0.13 / AIN0 | Battery voltage measurement | adc_0 | 126+--------------+---------------------------------------+----------------------+ 127| P0.06 | USB - FTDI serial RX | uart0 | 128+--------------+---------------------------------------+----------------------+ 129| P0.09 | USB - FTDI serial TX | uart0 | 130+--------------+---------------------------------------+----------------------+ 131| P0.07 | USB - FTDI serial RTS | uart0 | 132| | Charger enable pin (Icarus v2.0) | gpio0 (Icarus v2.0) | 133+--------------+---------------------------------------+----------------------+ 134| P0.25 | USB - FTDI serial CTS | uart0 | 135| | FLASH memory SPI CS pin (Icarus v2.0) | gpio0 (Icarus v2.0) | 136+--------------+---------------------------------------+----------------------+ 137 138Supported Features 139================== 140 141The actinius_icarus board configuration supports the following 142hardware features: 143 144+-----------+------------+----------------------+ 145| Interface | Controller | Driver/Component | 146+===========+============+======================+ 147| ADC | on-chip | adc | 148+-----------+------------+----------------------+ 149| CLOCK | on-chip | clock_control | 150+-----------+------------+----------------------+ 151| FLASH | on-chip | flash | 152+-----------+------------+----------------------+ 153| GPIO | on-chip | gpio | 154+-----------+------------+----------------------+ 155| I2C(M) | on-chip | i2c | 156+-----------+------------+----------------------+ 157| MPU | on-chip | arch/arm | 158+-----------+------------+----------------------+ 159| NVIC | on-chip | arch/arm | 160+-----------+------------+----------------------+ 161| PWM | on-chip | pwm | 162+-----------+------------+----------------------+ 163| SPI(M/S) | on-chip | spi | 164+-----------+------------+----------------------+ 165| SPU | on-chip | system protection | 166+-----------+------------+----------------------+ 167| UARTE | on-chip | serial | 168+-----------+------------+----------------------+ 169| ACCEL | st | lis2dh | 170+-----------+------------+----------------------+ 171 172SIM Selection 173============= 174 175The SIM choice (eSIM or nano-SIM) can be configured in Devicetree by adjusting 176the ``sim`` property in the ``sim_select`` node. 177 178Charger Enable/Disable 179====================== 180 181Since hardware version 2.0 the charger can be disabled by adjusting the ``charger`` 182property of the ``charger_enable`` device tree node. 183 184Security components 185=================== 186 187- Implementation Defined Attribution Unit (`IDAU`_). The IDAU is implemented 188 with the System Protection Unit and is used to define secure and non-secure 189 memory maps. By default, all of the memory space (Flash, SRAM, and 190 peripheral address space) is defined to be secure accessible only. 191- Secure boot. 192 193Building Secure/Non-Secure Zephyr applications 194============================================== 195 196The process requires the following steps: 197 1981. Build the Secure Zephyr application using ``-DBOARD=actinius_icarus`` and 199 ``CONFIG_TRUSTED_EXECUTION_SECURE=y`` in the application project configuration file. 2002. Build the Non-Secure Zephyr application using ``-DBOARD=actinius_icarus/ns``. 2013. Merge the two binaries together. 202 203If you are using Segger Embedded Studio v4.18 or later, the two binaries are built, merged, and 204burned automatically, unless you have disabled the feature. 205 206When building a Secure/Non-Secure application, the Secure application will 207have to set the IDAU (SPU) configuration to allow Non-Secure access to all 208CPU resources utilized by the Non-Secure application firmware. SPU 209configuration shall take place before jumping to the Non-Secure application. 210 211More information can be found in the `Icarus "Get Started" Guide`_ or the 212`Actinius Documentation Portal`_. 213 214References 215********** 216 217.. target-notes:: 218 219.. _IDAU: 220 https://developer.arm.com/docs/100690/latest/attribution-units-sau-and-idau 221 222.. _Icarus Product Website: 223 https://www.actinius.com/icarus 224 225.. _Icarus "Get Started" Guide: 226 https://www.actinius.com/get-started 227 228.. _Actinius Documentation Portal: 229 https://docs.actinius.com 230