Files
OpenSK/docs/boards/nrf52840dk.md
kaczmarczyck 187111f9c5 Bootloader infrastructure and main logic (#404)
* adds bootloader code without a SHA256 implementation

* small fixes and typos
2022-03-03 22:01:42 +01:00

2.6 KiB

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
./deploy.py --board=nrf52840dk_opensk_b --opensk

Afterwards, you can upgrade the other partition with

./tools/perform_upgrade.sh nrf52840dk_opensk_b
./tools/perform_upgrade.sh nrf52840dk_opensk_a

respectively. You can only upgrade the partition that is not currently running, so always alternate your calls to perform_upgrade.sh. Otherwise, this script works like deploy.py. You can call it even after you locked down your device, to deploy changes to your development board.