1.. _sparkfun_thing_plus_nrf9160:
2
3nRF9160 Thing Plus
4##################
5
6.. figure:: img/sparkfun_thing_plus_nrf9160.jpg
7     :align: center
8     :alt: Sparkfun nRF9160 Thing Plus
9
10     nRF9160 Thing Plus (Credit: Sparkfun)
11
12Overview
13********
14
15The nRF9160 Thing Plus designed by Circuit Dojo is a single-board development
16for bringing your LTE-M and NB-IoT applications to life. The sparkfun_thing_plus_nrf9160
17board configuration leverages the pre-existing support for the Nordic Semiconductor
18nRF9160. Supported nRF9160 peripherals include:
19
20* :abbr:`ADC (Analog to Digital Converter)`
21* CLOCK
22* FLASH
23* :abbr:`GPIO (General Purpose Input Output)`
24* :abbr:`I2C (Inter-Integrated Circuit)`
25* :abbr:`MPU (Memory Protection Unit)`
26* :abbr:`NVIC (Nested Vectored Interrupt Controller)`
27* :abbr:`PWM (Pulse Width Modulation)`
28* :abbr:`RTC (nRF RTC System Clock)`
29* Segger RTT (RTT Console)
30* :abbr:`SPI (Serial Peripheral Interface)`
31* :abbr:`UARTE (Universal asynchronous receiver-transmitter with EasyDMA)`
32* :abbr:`WDT (Watchdog Timer)`
33* :abbr:`IDAU (Implementation Defined Attribution Unit)`
34
35More information about the board can be found at the
36`nRF9160 Thing Plus Documentation`_.
37
38
39Hardware
40********
41
42Connections and IOs
43===================
44
45The nRF9160 Thing Plus has everything you know and love about
46the Feather platform. Here are some of the highlights:
47
48LED
49---
50
51* D7 (blue) = P0.03
52
53Push buttons and Switches
54-------------------------
55
56* MODE = P0.12
57* RESET
58
59USB
60---
61
62Contains a USB/UART connection for both debugging and loading new
63code using a UART Enabled MCUBoot.
64
65Standard Battery Connection
66----------------------------
67
68The nRF9160 Thing Plus has a 2 pin battery connector on board. Lithium Polymer batteries >
69300mA required.
70
71Nano SIM Holder
72---------------
73
74The nRF9160 Thing Plus has a built-in nano SIM (4FF) holder located
75on the bottom side.
76
77
78Programming and Debugging
79*************************
80
81sparkfun_thing_plus_nrf9160 can be used with most programmers like:
82
83* J-Link (the nRF53-DK is recommended)
84* CMSIS-DAP based programmers
85
86Check out `Getting Started`_ for more info.
87
88Building an application
89=======================
90
91In most cases you'll want to use the ``ns`` target with any of the Zephyr
92or Nordic based examples.
93
94Some of the examples do not use secure mode, so they do not required the ``ns`` suffix.
95A great example of this is the :zephyr:code-sample:`hello_world` below.
96
97Flashing
98========
99
100Follow the instructions in the :ref:`nordic_segger` page to install
101and configure all the necessary software. Further information can be
102found in :ref:`nordic_segger_flashing`. Then build and flash
103applications as usual (see :ref:`build_an_application` and
104:ref:`application_run` for more details).
105
106Here is an example for the :zephyr:code-sample:`hello_world` application.
107
108First, run your favorite terminal program to listen for output.
109
110.. code-block:: console
111
112   $ screen /dev/<tty_device> 115200
113
114Replace :code:`<tty_device>` with the port where the nRF9160 Thing Plus
115can be found. In most cases (On Linux/Mac) it will be: :code:`/dev/tty.SLAB_USBtoUART`.
116
117Then build and flash the application in the usual way.
118
119.. zephyr-app-commands::
120   :zephyr-app: samples/hello_world
121   :board: sparkfun_thing_plus_nrf9160
122   :goals: build flash
123
124Debugging
125=========
126
127Refer to the :ref:`nordic_segger` page to learn about debugging Nordic boards with a
128Segger IC.
129
130
131Testing the LEDs and buttons on the nRF9160 Thing Plus
132******************************************************
133
134There are 2 samples that allow you to test that the buttons (switches) and LEDs on
135the board are working properly with Zephyr:
136
137* :zephyr:code-sample:`blinky`
138* :zephyr:code-sample:`button`
139
140You can build and flash the examples to make sure Zephyr is running correctly on
141your board. The button and LED definitions can be found in
142:zephyr_file:`boards/sparkfun/thing_plus/sparkfun_thing_plus_nrf9160_common.dtsi`.
143
144References
145**********
146
147.. target-notes::
148
149**Side note** This page was based on the documentation for the nRF9160 DK. Thanks to Nordic for
150developing a great platform!
151
152.. _nRF9160 Thing Plus Documentation: https://docs.jaredwolff.com/nrf9160-introduction.html
153.. _Getting Started: https://docs.jaredwolff.com/nrf9160-getting-started.html
154