1.. _rak5010_nrf52840:
2
3RAK5010
4#######
5
6Overview
7********
8
9WisTrio NB-IoT Tracker Pro (RAK5010) is a tracker
10with integrated LTE CAT M1 & NB1, GPS, BLE, and sensors.
11It is built on the Quectel BG96 LTE CAT M1 & NB1 module,
12which has an integrated GPS receiver. The MCU running
13the board is a Nordic nRF52840 controller.
14
15As it has both GPS and BLE it can be used for outdoor
16and indoor scenarios, where location-based services need be present.
17
18The built-in sensors for RAK5010 are temperature and
19humidity sensor, motion sensor, pressure sensor, and light sensor.
20The extension IOs allow adding more sensors in addition to the on-board ones.
21
22This board is particularly suitable to be used as a
23quick testing and prototyping tool for applications
24requiring NB-IoT connectivity. Application development
25supports the GCC environment.
26
27.. image:: img/rak5010-front-parts.jpg
28     :align: center
29     :alt: RAK5010-NRF52840
30
31Hardware
32********
33
34- nRF52840 ARM Cortex-M4F Processor
35- 32.768 kHz crystal oscillator
36- 1 Micro-AB USB OTG host/device
37- Quectel BG96, with LTE CAT M1, LTE NB1, and GNSS
38- iPEX connectors for the LTE and GPS antenna and an on-board ceramic antenna for the BLE.
39- nano-SIM and ESIM options.
40- Multiple interfaces, I2C, UART, GPIO, ADC
41- 1 user LED
42- 1 SHTC3 Humidity and Temperature Sensor
43- 1 OPT3001DNPR Ambient Light Sensor
44- 1 LPS22HB Pressure Sensor
45- 1 LIS3DH Motion Sensor
46- Powered by either Micro USB, 3.7V rechargeable battery or a 5V Solar Panel Port
47
48Supported Features
49==================
50
51The rak5010_nrf52840 board configuration supports the following hardware features:
52
53+-----------+------------+----------------------+
54| Interface | Controller | Driver/Component     |
55+===========+============+======================+
56| ADC       | on-chip    | adc                  |
57+-----------+------------+----------------------+
58| CLOCK     | on-chip    | clock_control        |
59+-----------+------------+----------------------+
60| FLASH     | on-chip    | flash                |
61+-----------+------------+----------------------+
62| GPIO      | on-chip    | gpio                 |
63+-----------+------------+----------------------+
64| I2C(M)    | on-chip    | i2c                  |
65+-----------+------------+----------------------+
66| MPU       | on-chip    | arch/arm             |
67+-----------+------------+----------------------+
68| NVIC      | on-chip    | arch/arm             |
69+-----------+------------+----------------------+
70| PWM       | on-chip    | pwm                  |
71+-----------+------------+----------------------+
72| RADIO     | on-chip    | Bluetooth,           |
73|           |            | ieee802154           |
74+-----------+------------+----------------------+
75| RTC       | on-chip    | system clock         |
76+-----------+------------+----------------------+
77| SPI(M/S)  | on-chip    | spi                  |
78+-----------+------------+----------------------+
79| UART      | on-chip    | serial               |
80+-----------+------------+----------------------+
81| USB       | on-chip    | usb                  |
82+-----------+------------+----------------------+
83| WDT       | on-chip    | watchdog             |
84+-----------+------------+----------------------+
85
86Other hardware features have not been enabled yet for this board.
87
88Connections and IOs
89===================
90
91LED
92---
93
94* LED0 (green) = P0.12
95
96
97Programming and Debugging
98*************************
99
100The RAK5010 board shall be connected to a Segger Embedded Debugger Unit
101`J-Link OB <https://www.segger.com/jlink-ob.html>`_.  This provides a debug
102interface to the NRF52840 chip. You can use JLink to communicate with
103the NRF52840.
104
105Flashing
106========
107
108#. Download JLink from the Segger `JLink Downloads Page`_.  Go to the section
109   "J-Link Software and Documentation Pack" and install the "J-Link Software
110   and Documentation pack for Linux".  The application JLinkExe needs to be
111   accessible from your path.
112
113#. Run your favorite terminal program to listen for output.  Under Linux the
114   terminal should be :code:`/dev/ttyACM0`. For example:
115
116   .. code-block:: console
117
118      $ minicom -D /dev/ttyACM0 -o
119
120   The -o option tells minicom not to send the modem initialization string.
121   Connection should be configured as follows:
122
123   - Speed: 115200
124   - Data: 8 bits
125   - Parity: None
126   - Stop bits: 1
127
128#. Connect the RAK5010 board to your host computer using the USB debug port.
129   Then build and flash the :ref:`hello_world` application.
130
131   .. zephyr-app-commands::
132      :zephyr-app: samples/hello_world
133      :board: rak5010_nrf52840
134      :goals: build flash
135
136   You should see "Hello World! rak5010_nrf52840" in your terminal.
137
138Debugging
139=========
140
141You can debug an application in the usual way.  Here is an example for the
142:ref:`hello_world` application.
143
144.. zephyr-app-commands::
145   :zephyr-app: samples/hello_world
146   :board: rak5010_nrf52840
147   :maybe-skip-config:
148   :goals: debug
149
150References
151**********
152
153.. target-notes::
154
155.. _RAK5010 Product Description:
156    https://doc.rakwireless.com/datasheet/rakproducts/rak5010-wistrio-nb-iot-tracker-datasheet
157
158.. _JLink Downloads Page:
159    https://www.segger.com/downloads/jlink
160