Skip to content

Latest commit

 

History

History
85 lines (61 loc) · 3.21 KB

nrf52840dk.md

File metadata and controls

85 lines (61 loc) · 3.21 KB

OpenSK logo

Nordic nRF52840-DK board

Nordic development kit

Flashing using JTAG

The development board comes with its own JTAG port, so the default programmer is the easiest and most convenient. You can flash OpenSK with these steps:

  1. Connect a micro USB cable to the JTAG USB port.

  2. Run our script for compiling/flashing Tock OS and OpenSK on your device:

    ./deploy.py --board=nrf52840dk_opensk --opensk
  3. Connect a micro USB cable to the device USB port.

Note: Due to current limitations of our implementation and Tock, you may have to press the BOOT/RESET button, located next to the device USB port on the board in order to see your OpenSK device on your system.

Buttons and LEDs

Out of the 5 buttons, the group of 4 behaves identically. They all convey user presence to the application. Some actions like register and login will make the board blink, asking you to confirm the transaction with a button press. The remaining fifth button restarts the board.

The group of 4 LEDs on the right show the state of the app. There are different patterns:

Pattern Cause
LED1 slow blink kernel panic
all LEDs blinking together app panic
LED1+4 and LED2+3 fast alternating asking for touch
fast swirling wink (just saying Hi!)
circle allocator panic

The LEDs closer to the JTAG port indicates the power and debugging state.

There are 3 switches that need to be in the correct position:

  • Power (bottom left): On
  • nRF power source (center left): VDD
  • SW6 (top right): DEFAULT

Upgradability

There are variants of the board that introduce A/B partitions for upgrading the firmware. You can bootstrap an upgradable board using one of the two commands:

./deploy.py --board=nrf52840dk_opensk_a --opensk --version=0
./deploy.py --board=nrf52840dk_opensk_b --opensk --version=0

Afterwards, you can upgrade the other partition with

# Board A -> B
./deploy.py --board=nrf52840dk_opensk_b --opensk --programmer=none --version=1
py_virtual_env/bin/python3 -m tools.deploy_partition --board=nrf52840dk_opensk_b --version=1
# Board B -> A
./deploy.py --board=nrf52840dk_opensk_a --opensk --programmer=none --version=1
py_virtual_env/bin/python3 -m tools.deploy_partition --board=nrf52840dk_opensk_a --version=1

respectively. You can only upgrade the partition that is not currently running, otherwise your deploy attempts will fail. You can call deploy_partition after you locked down your device, to deploy changes to your development board. Upgrades only apply after a reboot.

If you want to use Vendor HID, add the --vendor-hid flag to all calls, for example:

./deploy.py --board=nrf52840dk_opensk_a --opensk --version=0 --vendor-hid
./deploy.py --board=nrf52840dk_opensk_b --opensk --programmer=none --version=1 --vendor-hid
py_virtual_env/bin/python3 -m tools.deploy_partition --board=nrf52840dk_opensk_b --version=1 --vendor-hid