1.. zephyr:board:: octopus_io_board 2 3Overview 4******** 5 6Octopus IO-Board is an expansion to the Octopus SoM, which is built around the nRF9160 SiP 7offering NB-IoT and LTE-M connectivity, GPS and accelerometer. Octopus IO-Board expands 8the capabilities of the Octopus SoM by providing additional peripherals and interfaces for 9development and prototyping of low-power IoT applications. 10 11nRF9160 SiP contains ARM Cortex-M33 application processor and the 12following devices: 13 14* :abbr:`ADC (Analog to Digital Converter)` 15* CLOCK 16* FLASH 17* :abbr:`GPIO (General Purpose Input Output)` 18* :abbr:`I2C (Inter-Integrated Circuit)` 19* :abbr:`MPU (Memory Protection Unit)` 20* :abbr:`NVIC (Nested Vectored Interrupt Controller)` 21* :abbr:`PWM (Pulse Width Modulation)` 22* :abbr:`RTC (nRF RTC System Clock)` 23* Segger RTT (RTT Console) 24* :abbr:`SPI (Serial Peripheral Interface)` 25* :abbr:`UARTE (Universal asynchronous receiver-transmitter with EasyDMA)` 26* :abbr:`WDT (Watchdog Timer)` 27* :abbr:`IDAU (Implementation Defined Attribution Unit)` 28 29Octopus IO-Board offers the following features: 30 31* Battery charger 32* USB-C for power 33* Solar charger 34* Alkaline battery input 35* LDO regulator to power Octopus SoM and peripherals 36* Battery monitoring using ADC 37* 64 Mbit SPI NOR flash 38* Dedicated ADC, GPIO, I2C, SPI and UARTE pins for expansion 39* Exposed headers for current measurements 40* Nano SIM connector 41* Tag-Connect TC2030-IDC 6-pin connector for SWD programming and debugging 42* 2x3 pinheader for SWD programming and debugging 43 44More information about the board can be found at the `Octopus IO-Board Product Page`_ 45and in the `Octopus IO-Board Documentation`_. 46 47Hardware 48******** 49 50Connections and IOs 51=================== 52 53The Octopus IO-Board features multiple dedicated pin headers for peripherals: 54 55* 3x I2C0 bus 56* 2x SPI0 bus 57* 3x I2C1/SPI1 bus (selectable) 58* 1x UARTE0 bus 59* 1x Analog input (5 input pins) 60* 1x GPIO (7 I/O pins) 61 62The I2C1/SPI1 bus is selectable by the user by cutting/soldering SB8 and SB9 solder bridges and configuring the bus in the device tree. 63 64The 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. 65 66Power supply 67============ 68 69The Octopus IO-Board can be powered from the following sources: 70 71* USB-C connector 72* Solar cell 73* Alkaline battery 74* Li-Po battery 75 76When 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 77provide information about the battery State of charge (SOC). 78 79When 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. 80 81The 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. 82This can be used to power off peripherals to save power when they are not needed. 83 84The 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. 85 86Programming and Debugging 87************************* 88 89Norik Octopus IO-Board can be programmed and debugged using the Tag-Connect TC2030-IDC 6-pin connector or 6-pin SWD pinheader. 90 91Building an application 92======================= 93 94In most case you'll need to use ``octopus_io_board/nrf9160/ns`` board target for building examples. 95Some examples don't require non secure mode and can be built with ``octopus_io_board/nrf9160`` board target. 96 97Flashing 98======== 99Refer to the instruction in the :ref:`nordic_segger` page to install and 100configure all the necessary software. 101 102Here is an example for the Hello World application. 103 104First, run your favorite terminal program to listen for output. 105 106.. code-block:: console 107 108 $ minicom /dev/<tty_device> 115200 109 110Replace <tty_device> with the port where the Octopus IO-Board can be found. For example, under Linux, /dev/ttyACM0. 111 112Then build and flash the application in the usual way. 113 114.. zephyr-app-commands:: 115 :zephyr-app: samples/hello_world 116 :board: octopus_io_board/nrf9160 117 :goals: build flash 118 119To build and flash the application in non-secure mode, use the following command: 120 121.. zephyr-app-commands:: 122 :zephyr-app: samples/hello_world 123 :board: octopus_io_board/nrf9160/ns 124 :goals: build flash 125 126Debugging 127========= 128Refer to the instruction in the :ref:`nordic_segger` page for information on 129debugging. 130 131Testing the on-board LED 132======================== 133Use the :zephyr:code-sample:`blinky` to test the on-board LED. Build and flash the example to make sure Zephyr is running correctly on your board. 134 135.. zephyr-app-commands:: 136 :zephyr-app: samples/basic/blinky 137 :board: octopus_io_board/nrf9160 138 :goals: build flash 139 140References 141********** 142 143.. target-notes:: 144 145.. _Octopus IO-Board Product Page: https://www.norik.com/octopus-io-board/ 146.. _Octopus IO-Board Documentation: https://www.norik.com/wp-content/uploads/2024/09/Octopus_IO-Board_Datasheet.pdf 147