1.. _reel_board: 2 3reel board 4########## 5 6Overview 7******** 8 9`reel board`_ is a evaluation board based on the Nordic Semiconductor 10nRF52840 SoC. The board was developed by PHYTEC Messtechnik GmbH in 11cooperation with Zephyr Project for the Hackathon - "Get Connected". 12The board has a built-in debug adapter based on the DAPLink interface 13firmware and NXP MK20DX128VFM5 SoC. 14 15It is equipped with the Electrophoretic (electronic ink) Display (EPD), 16environmental (temperature, humidity, light, accelerometer) sensors, and 17Bluetooth connectivity making it easy to experiment and evaluate the 18Zephyr OS in these kinds of use cases: 19 20* battery powered sensor node 21* low-power, low-cost human-machine interface (HMI) for remote 22 control and environmental sensor monitoring 23* temperature and humidity monitor on your table 24* product, name or price tag 25* interactive badge for meetings and conferences 26 27The board provides support for the Nordic Semiconductor nRF52840 ARM |reg| 28Cortex |reg|-M4F SoC with an integrated 2.4 GHz transceiver supporting Bluetooth 29|reg| Low Energy and IEEE |reg| 802.15.4. 30 31The schematic can be found on the `reel board website`_. 32 33Hardware 34******** 35 36On the front of the board are RGB-LED, ADPS9960 and HDC1010 sensors, 37and Electrophoretic Display. 38The RGB-LED is controlled by the nRF52840 via GPIO pins. 39Display is controlled by the nRF52840 via SPI and 3 GPIOs. 40 41On the back side of the board are all other components such as nRF52840, 42a circuit for the Debug Adapter, On/Off and power source switch, battery holder, 43buttons and the MMA8652FC (accelerometer) sensor. 44 45ADPS9960 is a Digital Proximity, Ambient Light, RGB and Gesture sensor. 46HDC1010 is a digital humidity and temperature sensor. 47MMA8652FC is a 12-bit Digital Accelerometer. 48All sensors are connected to the I2C bus and one GPIO pin each, 49which can be used as an interrupt source. 50 51.. figure:: img/reel_board.jpg 52 :align: center 53 :alt: reel board front 54 55 reel board front (Credit: PHYTEC) 56 57.. figure:: img/reel_board_descr_back.jpg 58 :align: center 59 :alt: reel board back 60 61 reel board back (Credit: PHYTEC) 62 63Since PCB version 1507.2, the nRF52840 SoC is not soldered directly to 64the board but integrated as a module on a NOTM.2 adapter. 65The wiring is identical for versions 1507.1 and 1507.2. 66 67.. _reel_board_display: 68 69Display 70======= 71 72GDEH0213B1 is the display with which the board was introduced 73in 2018. Unfortunately, this display has been discontinued. 74Currently the board is delivered with the display GDEH0213B72. 75It is expected that the display will be replaced over time 76due the short product lifecycle of this type of displays. 77The following table lists the displays used on the reel board. 78The label on the ribbon cable can help to distinguish the displays. 79According to the display type, the correct designation must be 80used for building an application. 81 82+--------------+--------------------+----------------------+-------------------+ 83| Display | Ribbon Cable Label | Controller / Driver | Board Designation | 84+==============+====================+======================+===================+ 85| Good Display | HINK-E0213 | SSD1673 / | reel_board | 86| GDEH0213B1 | | ssd16xx | | 87+--------------+--------------------+----------------------+-------------------+ 88| Good Display | HINK-E0213A22 | SSD1675A / | reel_board@2 | 89| GDEH0213B72 | | ssd16xx | | 90+--------------+--------------------+----------------------+-------------------+ 91 92Power supply 93============ 94 95The board is optimized for low power applications and supports two 96power source configurations, battery and micro USB connector. 97 98The On/Off switch can choose which power source is used. 99 100reel board uses a TPS610981 boost converter to generate supply voltage 101for nRF52840 and peripherals (sensors and EPD). 102The boost converter has two modes: 103 104* Active mode - supply voltages for nRF52840 and peripherals are on 105* Low Power mode - only supply voltage for nRF52840 is on 106 107The mode is controlled by MODE pin (P1.00). 108 109.. note:: 110 Actually there is no possibility to reduce energy consumption by the 111 Low Power mode. Both voltages are always on, see: 112 :zephyr_file:`boards/phytec/reel_board/board.c` 113 114Supported Features 115================== 116 117The reel_board board configuration supports the following 118hardware features: 119 120+-----------+------------+----------------------+ 121| Interface | Controller | Driver/Component | 122+===========+============+======================+ 123| NVIC | on-chip | nested vectored | 124| | | interrupt controller | 125+-----------+------------+----------------------+ 126| RTC | on-chip | system clock | 127+-----------+------------+----------------------+ 128| UART | on-chip | serial port | 129+-----------+------------+----------------------+ 130| I2C | on-chip | i2c | 131+-----------+------------+----------------------+ 132| PWM | on-chip | pwm | 133+-----------+------------+----------------------+ 134| SPI | on-chip | spi | 135+-----------+------------+----------------------+ 136| GPIO | on-chip | gpio | 137+-----------+------------+----------------------+ 138| FLASH | on-chip | flash | 139+-----------+------------+----------------------+ 140| RADIO | on-chip | Bluetooth | 141+-----------+------------+----------------------+ 142| SENSOR | off-chip | MMA8652FC polling: | 143| | | ADPS9960 polling: | 144| | | HDC1010 polling | 145+-----------+------------+----------------------+ 146 147Other hardware features have not been enabled yet for this board. 148 149Connections and IOs 150=================== 151 152Port P0 153------- 154 155+-------+----------------------------+---------------------------+ 156| Name | Function | Usage | 157+=======+============================+===========================+ 158| P0.00 | XL1 | 32.768 kHz oscillator | 159+-------+----------------------------+---------------------------+ 160| P0.01 | XL2 | 32.768 kHz oscillator | 161+-------+----------------------------+---------------------------+ 162| P0.02 | expansion connector pin 30 | None | 163+-------+----------------------------+---------------------------+ 164| P0.03 | expansion connector pin 31 | None | 165+-------+----------------------------+---------------------------+ 166| P0.04 | expansion connector pin 19 | None | 167+-------+----------------------------+---------------------------+ 168| P0.05 | expansion connector pin 11 | None | 169+-------+----------------------------+---------------------------+ 170| P0.06 | UART0_TX | UART Console over USB | 171+-------+----------------------------+---------------------------+ 172| P0.07 | Button | user button (S5) | 173+-------+----------------------------+---------------------------+ 174| P0.08 | UART0_RX | UART Console over USB | 175+-------+----------------------------+---------------------------+ 176| P0.09 | expansion connector pin 27 | None | 177+-------+----------------------------+---------------------------+ 178| P0.10 | expansion connector pin 29 | None | 179+-------+----------------------------+---------------------------+ 180| P0.11 | RGB LED (red) | GPIO | 181+-------+----------------------------+---------------------------+ 182| P0.12 | RGB LED (green) | GPIO | 183+-------+----------------------------+---------------------------+ 184| P0.13 | PWM LED | Buzzer | GPIO | 185+-------+----------------------------+---------------------------+ 186| P0.14 | EPD Busy output | GPIO | 187+-------+----------------------------+---------------------------+ 188| P0.15 | EPD Reset input | GPIO | 189+-------+----------------------------+---------------------------+ 190| P0.16 | EPD DC input | GPIO | 191+-------+----------------------------+---------------------------+ 192| P0.17 | EPD SPI3_CS | SPI | 193+-------+----------------------------+---------------------------+ 194| P0.18 | CPU Reset | Reset (S4) | 195+-------+----------------------------+---------------------------+ 196| P0.19 | EPD SPI3_CLK | SPI | 197+-------+----------------------------+---------------------------+ 198| P0.20 | EPD SPI3_MOSI | SPI | 199+-------+----------------------------+---------------------------+ 200| P0.21 | SPI3_MISO | SPI (not connected) | 201+-------+----------------------------+---------------------------+ 202| P0.22 | HDC1010 DRDYn | GPIO | 203+-------+----------------------------+---------------------------+ 204| P0.23 | APDS9960 INT | GPIO | 205+-------+----------------------------+---------------------------+ 206| P0.24 | MMA8652FC INT1 | GPIO | 207+-------+----------------------------+---------------------------+ 208| P0.25 | MMA8652FC INT2 | GPIO | 209+-------+----------------------------+---------------------------+ 210| P0.26 | I2C_0 | I2C | 211+-------+----------------------------+---------------------------+ 212| P0.27 | I2C_0 | I2C | 213+-------+----------------------------+---------------------------+ 214| P0.28 | expansion connector pin 3 | None | 215+-------+----------------------------+---------------------------+ 216| P0.29 | expansion connector pin 52 | None | 217+-------+----------------------------+---------------------------+ 218| P0.30 | expansion connector pin 1 | None | 219+-------+----------------------------+---------------------------+ 220| P0.31 | expansion connector pin 37 | None | 221+-------+----------------------------+---------------------------+ 222 223Port P1 224------- 225 226+-------+----------------------------+---------------------------+ 227| Name | Function | Usage | 228+=======+============================+===========================+ 229| P1.00 | peripheral power on | GPIO | 230+-------+----------------------------+---------------------------+ 231| P1.01 | expansion connector pin 32 | None | 232+-------+----------------------------+---------------------------+ 233| P1.02 | expansion connector pin 34 | None | 234+-------+----------------------------+---------------------------+ 235| P1.03 | expansion connector pin 17 | None | 236+-------+----------------------------+---------------------------+ 237| P1.04 | expansion connector pin 15 | None | 238+-------+----------------------------+---------------------------+ 239| P1.05 | expansion connector pin 13 | None | 240+-------+----------------------------+---------------------------+ 241| P1.06 | expansion connector pin 33 | None | 242+-------+----------------------------+---------------------------+ 243| P1.07 | expansion connector pin 35 | None | 244+-------+----------------------------+---------------------------+ 245| P1.08 | expansion connector pin 45 | None | 246+-------+----------------------------+---------------------------+ 247| P1.09 | RGB LED (blue) | GPIO | 248+-------+----------------------------+---------------------------+ 249| P1.10 | expansion connector pin 47 | None | 250+-------+----------------------------+---------------------------+ 251| P1.11 | expansion connector pin 49 | None | 252+-------+----------------------------+---------------------------+ 253| P1.12 | expansion connector pin 51 | None | 254+-------+----------------------------+---------------------------+ 255| P1.13 | expansion connector pin 36 | None | 256+-------+----------------------------+---------------------------+ 257| P1.14 | expansion connector pin 48 | None | 258+-------+----------------------------+---------------------------+ 259| P1.15 | expansion connector pin 50 | None | 260+-------+----------------------------+---------------------------+ 261 262Solder Jumper and Testpoints 263============================ 264 265There are several labeled solder jumpers on the board. 266These can be used to connect a logic analyzer to check the behavior of a 267driver or to measure the voltage of a signal. 268 269.. figure:: img/reel_board_tp.jpg 270 :align: center 271 :alt: reel board Jumper and Testpoints 272 273 reel board testpoints (Credit: PHYTEC) 274 275I2C bus and sensors testpoints 276------------------------------ 277 278+-------+-----------------------+---------------------------+ 279| Name | Type | Usage | 280+=======+=======================+===========================+ 281| J19 | closed solder jumper | testpoint I2C SDA | 282+-------+-----------------------+---------------------------+ 283| J20 | closed solder jumper | testpoint I2C SCL | 284+-------+-----------------------+---------------------------+ 285| J7 | closed solder jumper | testpoint INT1 MMA8652FC | 286+-------+-----------------------+---------------------------+ 287| J24 | closed solder jumper | testpoint INT2 MMA8652FC | 288+-------+-----------------------+---------------------------+ 289| J11 | closed solder jumper | testpoint INT APDS9960 | 290+-------+-----------------------+---------------------------+ 291| J12 | closed solder jumper | testpoint DRDYn HDC1010 | 292+-------+-----------------------+---------------------------+ 293 294EPD testpoints 295-------------- 296 297+-------+-----------------------+---------------------------+ 298| Name | Type | Usage | 299+=======+=======================+===========================+ 300| J13 | closed solder jumper | testpoint EPD Busy | 301+-------+-----------------------+---------------------------+ 302| J14 | closed solder jumper | testpoint EPD Reset | 303+-------+-----------------------+---------------------------+ 304| J15 | closed solder jumper | testpoint EPD DC | 305+-------+-----------------------+---------------------------+ 306| J16 | closed solder jumper | testpoint EPD SPI_CS | 307+-------+-----------------------+---------------------------+ 308| J17 | closed solder jumper | testpoint EPD SPI_CLK | 309+-------+-----------------------+---------------------------+ 310| J18 | closed solder jumper | testpoint EPD SPI_MOSI | 311+-------+-----------------------+---------------------------+ 312 313Power supply testpoint 314---------------------- 315 316+-------+-----------------------+-------------------------------------------+ 317| Name | Type | Usage | 318+=======+=======================+===========================================+ 319| J21 | closed solder jumper | testpoint peripheral voltage on/off | 320+-------+-----------------------+-------------------------------------------+ 321| TP11 | testpoint | testpoint peripheral voltage | 322+-------+-----------------------+-------------------------------------------+ 323| TP12 | testpoint | testpoint nRF52840 supply voltage VDD_nRF | 324+-------+-----------------------+-------------------------------------------+ 325| TP13 | testpoint | testpoint boost converter input voltage | 326+-------+-----------------------+-------------------------------------------+ 327 328Built-in Debug Adapter 329====================== 330 331The debug adapter is based on the DAPLink interface firmware and 332NXP MK20DX128VFM5 SoC. The adapter is powered via a micro USB connector and 333is always on when the board is connected to the USB host. 334reel board can be flashed and debugged, powered either from battery or USB. 335If the Adapter is powered via USB, the Adapter circuit heats the board 336slightly and the temperature sensor can output values up to 1.5 degrees higher. 337 338.. figure:: img/reel_board_debug.jpg 339 :align: center 340 :alt: reel board Debug Adapter 341 342 reel board Debug Adapter overview (Credit: PHYTEC) 343 344Debug Adapter Firmware 345---------------------- 346 347DAPLink firmware for the adapter can be found at `DAPLink reel board Firmware`_. 348To update the firmware (if necessary), the adapter must be started in bootloader 349mode. For this, the board should be disconnected from the USB host, 350the J22 should be closed (use tweezers for this) and the board reconnected to 351the USB host. 352 353Debug Adapter Jumper 354-------------------- 355 356+-------+-----------------------+----------------------------------------------+ 357| Name | Type | Usage | 358+=======+=======================+==============================================+ 359| J3 | open solder jumper | close to pass UART TX to external adapter | 360+-------+-----------------------+----------------------------------------------+ 361| J4 | open solder jumper | close to pass UART RX to external adapter | 362+-------+-----------------------+----------------------------------------------+ 363| J22 | open solder jumper | close to start adapter in bootloader mode | 364+-------+-----------------------+----------------------------------------------+ 365 366Adapter LEDs 367------------ 368 369+-------+-----------------------+--------------------------------+ 370| Name | Type | Usage | 371+=======+=======================+================================+ 372| D11 | green | flashes when adapter is active | 373+-------+-----------------------+--------------------------------+ 374| D14 | red | reserved | 375+-------+-----------------------+--------------------------------+ 376| D15 | yellow | reserved | 377+-------+-----------------------+--------------------------------+ 378 379Expansion Connector 380************************ 381 382The expansion connector has the same dimensions and similar pinout 383as the BBC MicroBit edge connector. The expansion components that are 384designed especially for the reel board are called link boards. 385 386.. figure:: img/reel_board_excon.jpg 387 :align: center 388 :alt: reel board Expansion Connector 389 390 reel board Expansion Connector (Credit: PHYTEC) 391 392link board BASE 393=============== 394 395link board BASE is a passive expansion board and allows other link boards or 396third party shields in Arduino UNO R3 format to be connected to the reel board. 397In addition, it includes a NOTM.2 connector and more powerful DCDC converter 398then reel board. 399 400.. figure:: img/rb_lb_shield.jpg 401 :align: center 402 :alt: reel board and link board BASE 403 404 reel board and link board BASE (Credit: PHYTEC) 405 406link board BASE can be used in combination with other link boards or 407third party shields in two ways: 408 409 As an adapter 410 reel board is plugged into the link board BASE. Both peripherals on 411 reel board and shields can be used as long as there is no conflict 412 between I2C devices. Care should be taken to provide enough power 413 to the complete circuit. 414 415 Stand-alone 416 NOTM.2 adapter is removed from the reel board and 417 connected to NOTM.2 connector on the link board BASE. 418 The wiring to the shield connector is identical to the 419 configuration above and no software modifications for the shield 420 are necessary. 421 Stand-alone configuration is more suitable for applications where 422 peripherals on the reel board are not used or in conflict, 423 power provided by the reel board is not enough, 424 or for prototypes in the field. 425 426.. figure:: img/link_board_base.jpg 427 :align: center 428 :alt: link board BASE 429 430 link board BASE (Credit: PHYTEC) 431 432Components on the link board BASE: 433 434 reel board Connector: 435 2x40 position edge connector. 436 437 Micro USB Connector: 438 USB can be used as power source. USB data lines are wired 439 to NOTM.2 connector. 440 441 NOTM.2 Connector: 442 Connector for NOTM.2 adapter. If the connector is used then 443 reel board should be removed from reel board connector. 444 445 SWD Connector X11: 446 Wired to NOTM.2 connector. A debug probe can 447 be connected to program or debug MCU in Stand-alone configuration. 448 449 Alternative Power Source X5 or X9: 450 Positive pin is closer to the + character. Nominal voltage is 451 3.3V, there is no protection against reverse polarity or overvoltage. 452 Use it with care. 453 454 Shield Connector: 455 Connector for link boards and third party shields in Arduino UNO R3 456 format. Only shields designed for 3.3V supply voltage are supported. 457 458Meaning of the Power Source Switch positions: 459 460 EXT 461 link board BASE is powered from Alternative Power Source Connector 462 X9 or X5. 463 464 USB 465 link board BASE is powered from USB connector (via DCDC converter). 466 467 RB 468 link board BASE is powered from reel board. The available power is 469 below 0.3W and depends on which source is used to power the reel board. 470 471Programming and Debugging 472************************* 473 474Applications for the ``reel_board`` board configuration can be 475built and flashed in the usual way (see :ref:`build_an_application` 476and :ref:`application_run` for more details). 477 478Flashing 479======== 480 481If you use Linux, create a udev rule (as ``root``) to fix a permission issue 482when not using root for flashing. 483 484.. code-block:: console 485 486 # echo 'ATTR{idProduct}=="0204", ATTR{idVendor}=="0d28", MODE="0666", GROUP="plugdev"' > /etc/udev/rules.d/50-cmsis-dap.rules 487 488Reload the rules and replug the device. 489 490.. code-block:: console 491 492 $ sudo udevadm control --reload-rules 493 494Finally, unplug and plug the board again for the rules to take effect. 495 496Build and flash 497applications as usual (see :ref:`build_an_application` and 498:ref:`application_run` for more details). 499 500Here is an example for the :zephyr:code-sample:`hello_world` application. 501 502First, run your favorite terminal program to listen for output. 503 504.. code-block:: console 505 506 $ minicom -D <tty_device> -b 115200 507 508Replace :code:`<tty_device>` with the port where the reel board 509can be found. For example, under Linux, :code:`/dev/ttyACM0`. 510 511Then build and flash the application in the usual way. 512 513.. zephyr-app-commands:: 514 :zephyr-app: samples/hello_world 515 :board: reel_board 516 :goals: build flash 517 518.. note:: 519 Please use reel_board@2 to build a application for the board equipped with 520 the GDEH0213B72, see :ref:`reel_board_display`. 521 522.. zephyr-app-commands:: 523 :zephyr-app: samples/hello_world 524 :board: reel_board@2 525 :goals: build flash 526 527Debugging 528========= 529 530You can debug an application in the usual way. Here is an example for the 531:zephyr:code-sample:`hello_world` application. 532 533.. zephyr-app-commands:: 534 :zephyr-app: samples/hello_world 535 :board: reel_board 536 :maybe-skip-config: 537 :goals: debug 538 539 540Testing the LEDs and buttons 541**************************** 542 543There are 2 samples that allow you to test that the buttons (switches) and 544LEDs on the board are working properly with Zephyr: 545 546* :zephyr:code-sample:`blinky` 547* :zephyr:code-sample:`button` 548 549You can build and flash the examples to make sure Zephyr is running correctly on 550your board. 551 552References 553********** 554 555.. target-notes:: 556 557.. _reel board Website: 558 https://www.phytec.de/reelboard/ 559 560.. target-notes:: 561 562.. _reel board: 563 https://www.phytec.de/reelboard/ 564 565.. _DAPLink reel board Firmware: 566 https://github.com/PHYTEC-Messtechnik-GmbH/DAPLink/tree/reel-board 567