<p>Observations from initial looks at the device and flashing process:</p>
<p>Just because it says "Open DFU Bootloader" on the USB descriptors, it doesn't follow the USB DFU specification.</p>
<p>The linked python2 utility has broken links; <a href="https://github.com/NordicSemiconductor/pc-nrfutil/">look at the utility's github repo</a>. Beware that this is published under a non-free license ("use only with Nordic components", "no reverse engineering of shipped binaries").</p>
<p>There's a <a href="https://github.com/NordicSemiconductor/pc-nrf-dfu-js">javascript library</a> that probably has similar functionality. That appears to only be usable through the behemoth pc-nrf-core application with electron dependencies and whatsonot though.</p>
<p>The DFU protocol itself is quite a complex thing, which I attribute a) to the signature parts they roll in, b) supporting a plethora of transports (BLE, ant, serial, ...; there's even a generic chunking mechanism somewhere in there), and c) using their SoftDevice library in a fashion shared among bootloader and application. <rant>Feels a bit like the 80s'-net of things where everyone rolls own protocols over dozens of network technologies rather than using Internet technology. If they only just followed SUIT...</rant></p>
<p>Still, I think for the time being (ie. until having board support in RIOT means automatically getting a great USB-based bootloader) it's best to work from this rather than to put an own bootloader in; documenting (/ linking to docs on) how to flash the original bootloader back if something goes afoul would be helpful either way. With the guidance from the article I succeeded flashing the provided blinky hex file, let's see where I get from there.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/RIOT-OS/RIOT/issues/12189?email_source=notifications&email_token=ABE7WYFJPN5EGROCUVU3E23QJI3HNA5CNFSM4IVGOPR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6RYGYQ#issuecomment-530809698">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABE7WYGJMZNWH5FJJGHGJXTQJI3HNANCNFSM4IVGOPRQ">mute the thread</a>.<img src="https://github.com/notifications/beacon/ABE7WYHA2YXBW7UND35YNDDQJI3HNA5CNFSM4IVGOPR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6RYGYQ.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/RIOT-OS/RIOT/issues/12189?email_source=notifications\u0026email_token=ABE7WYFJPN5EGROCUVU3E23QJI3HNA5CNFSM4IVGOPR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6RYGYQ#issuecomment-530809698",
"url": "https://github.com/RIOT-OS/RIOT/issues/12189?email_source=notifications\u0026email_token=ABE7WYFJPN5EGROCUVU3E23QJI3HNA5CNFSM4IVGOPR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6RYGYQ#issuecomment-530809698",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>