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:
-
Connect a micro USB cable to the JTAG USB port.
-
Run our script for compiling/flashing Tock OS and OpenSK on your device:
./deploy.py --board=nrf52840dk_opensk --opensk
-
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.
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
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