How to build OpenSK¶
This section demonstrates how to set up your development environment, build the OpenSK and prepare a working OpenSK firmware.
For a more detailed guide, please refer to Google's installation guide.
Clone OpenSK repository¶
Clone the OpenSK repository with the nRF52840 MDK USB Dongle supported:
git clone https://github.com/makerdiary/OpenSK
OpenSK needs Rust installed on your system. For the moment the official way to install Rust is using Rustup.
Run the following in your terminal, then follow the onscreen instructions.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Run the following script in the OpenSK repository for initial setup :
Build the Tock OS¶
Run the following script to compile the Tock OS:
board=nrf52840_mdk_usb_dongle ./deploy.sh os
The Tock OS firmware is located in
third_party/tock/boards/nordic/nrf52840_mdk_usb_dongle/target/thumbv7em-none-eabi/release/ with the
Build OpenSK application¶
Run the following script to compile the OpenSK application:
board=nrf52840_mdk_usb_dongle ./deploy.sh app
The app firmware contains
cortex-m4.tbf which is located in
Prepare OpenSK firmware¶
A working OpenSK firmware contains three parts:
cortex-m4.tbf. IntelHex can be used to convert and merge the firmware.
python bin2hex.py --offset=0x30000 padding.bin padding.hex
python bin2hex.py --offset=0x40000 cortex-m4.tbf cortex-m4.hex
To merge the
python hexmerge.py -o opensk_all_in_one.hex tock-os.hex padding.hex cortex-m4.hex
To create a UF2 image for UF2 Bootloader from a
python uf2conv.py -c -f 0xada52840 -o opensk_all_in_one.uf2 opensk_all_in_one.hex
uf2conv.py conversion script is located in nrf52840-mdk-usb-dongle/tools.
Flash OpenSK via UF2 Bootloader¶
Enter DFU mode by holding the dongle's RESET/USR button and connecting to your PC. A flash drive with the name MDK-DONGLE will appear.
opensk_all_in_one.uf2 image to MDK-DONGLE.
When programming is completed, the OpenSK will run automatically. The device named OpenSK will detected by the computer.
Content on this page is licensed under the Creative Commons Attribution 3.0 License.
Create an Issue¶
Interested in contributing to this project? Want to report a bug? Feel free to click here: