Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NRF52840 boards? #3

Closed
tmikaeld opened this issue Jan 31, 2020 · 71 comments · Fixed by #78
Closed

NRF52840 boards? #3

tmikaeld opened this issue Jan 31, 2020 · 71 comments · Fixed by #78
Labels
question Further information is requested

Comments

@tmikaeld
Copy link

tmikaeld commented Jan 31, 2020

Does the key need to be the specific Nordic NRF52840 devoper dongle or does the key only need to have the NRF52840 SOC on the dongle?

@jmichelp
Copy link
Collaborator

The main requirement today is the Nordic nRF52840 SOC.

The two development boards that Nordic made around their chip (the NRF52840-DK and the NRF52840-Dongle) are already supported but it's pretty easy to adapt the code to support a custom design around the Nordic chip. You need 1 button and at least 1 LED to be wired to the chip.

Supporting another chip than the Nordic is also possible but requires more effort.

@tmikaeld
Copy link
Author

tmikaeld commented Jan 31, 2020

Seems great, unfortunately I know nothing of programming hardware.

But if someone else is interested, this dongle would be a great match for OpenSK:

https://github.com/makerdiary/nrf52840-mdk-usb-dongle

It has a really small form-factor and is available with a form-fit shell, I already made a suggestion to integrate OpenSK in their github.

@brouhaha
Copy link

Just FYI, the official Nordic nRF52840 dongle sells for $10, which is less than the price of the Makerdiary dongle. The design of the Nordic dongle is open. It doesn't come with a case, but if you have a 3D printer...

@tmikaeld
Copy link
Author

@brouhaha I looked at having the shell printed, but the shell is much larger, less durable and doesn't have a ring to have it in a key-chain. Plus, the MD dongle size is smaller, which I prefer - I'm too used to the smaller form-factor of Yubikeys.

@xiongyihui
Copy link

xiongyihui commented Feb 1, 2020

I managed to get it work with https://github.com/makerdiary/nrf52840-mdk-usb-dongle.
We just need to change the IOs. As I don't have a jlink, I used a CMSIS-DAP debug adaptor with pyocd to flash the firmwares.
The steps are a little different.

By the way, I use gitpod.io to build the project.

  1. Run curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh to install Rust

  2. Run setup.sh

  3. Change the pins of LEDs and Buttons at OpenSK/third_party/tock/boards/nordic/nrf52840_dongle/src/main.rs

    // The nRF52840 MDK USB Dongle LEDs
    const LED1_PIN: Pin = Pin::P0_04;           // not connected to a LED
    const LED2_R_PIN: Pin = Pin::P0_23;
    const LED2_G_PIN: Pin = Pin::P0_22;
    const LED2_B_PIN: Pin = Pin::P0_24;
    
    // The nRF52840 MDK USB Dongle button
    const BUTTON_PIN: Pin = Pin::P0_18;
    const BUTTON_RST_PIN: Pin = Pin::P0_03;     // not connected
    
    const UART_RTS: Pin = Pin::P0_05;
    const UART_TXD: Pin = Pin::P0_06;
    const UART_CTS: Pin = Pin::P0_07;
    const UART_RXD: Pin = Pin::P0_08;
    
  4. Run board=nrf52840_dongle ./deploy.sh os to build Tock OS

    The Tock OS firmware nrf52840_dongle.elf is at third_party/tock/boards/nordic/nrf52840_dongle/target/thumbv7em-none-eabi/release/

    gitpod /workspace/OpenSK $ ls third_party/tock/boards/nordic/nrf52840_dongle/target/thumbv7em-none-eabi/release/
    build  deps  examples  incremental  nrf52840_dongle  nrf52840_dongle.bin  nrf52840_dongle.d  nrf52840_dongle.elf
    
  5. Run pyocd flash -t nrf52840 nrf52840_dongle.elf to flash the Tock OS into the dongle.

  6. Run board=nrf52840_dongle ./deploy.sh app to build the OpenSK app

    The app contains two parts padding.bin and cortex-m4.tbf at target/tab/

    gitpod /workspace/OpenSK $ ls target/tab/
    cortex-m4.elf  cortex-m4.tbf  ctap2.tab  padding.bin
    
  7. Run pyocd flash -t nrf52840 --format bin -a 0x40000 cortex-m4.tbf and pyocd flash -t nrf52840 --format bin -a 0x30000 padding.bin to flash the app

    cortex-m4.tbf should be written to the address 0x40000. padding.bin should be written to the address 0x30000.

@mikejrh
Copy link

mikejrh commented Feb 1, 2020

Is it possible to program the NRF52840 USB Dongle as a security key without additional hardware ?

@rmm200
Copy link

rmm200 commented Feb 1, 2020

Google is presenting OpenSK as a tool for developers and hobbyists.
The Nordic Dongle costs about $10.
The associated hardware to program it costs roughly $1000, per installation guide.
Try to come up with a cheaper solution for us hobbyists. $1000 is more than I spent on my 3D printer.

@brouhaha
Copy link

brouhaha commented Feb 1, 2020

There are a multitude of options for programming the nRF52, none of which cost $1000. The Nordic nRF52 DK board can be used, and sells for $40.

@rmm200
Copy link

rmm200 commented Feb 1, 2020

It looks like nRF Connect Programmer can do the job:
https://devzone.nordicsemi.com/nordic/short-range-guides/b/getting-started/posts/nrf52840-dongle-programming-tutorial
Maybe the install guide could reference this? All it shows are the very expensive JProbe accessories.

@elfmimi
Copy link

elfmimi commented Feb 1, 2020

I tried RAYTAC MDBT50Q-RX and it worked.
https://www.raytac.com/product/ins.php?index_id=89

Note: you need to tweak pin settings for the led and the button. It would be safer to also change the pin for uart so that it won’t interfere with the reset pin.

@rmm200
Copy link

rmm200 commented Feb 1, 2020

It looks like the MDBT50Q-RX does not include a bootloader, so you also need a MDBT50Q-RX to do the programming? Sure beats anything JLink for cost though. The NRF52840 does appear to include the DFU Bootloader, so programming by USB is possible.

@xiongyihui
Copy link

If you have two nRF52840 MDK USB Dongle, you can use one as a CMSIS-DAP debug adapter with OpenOCD or pyOCD

See https://github.com/xiongyihui/mbed-CMSIS-DAP

@rmm200
Copy link

rmm200 commented Feb 2, 2020

Well that leaves open the question. Can you use the nRF52840 dongle bootloader to install OpenSK on itself, using just the one dongle - or does that destroy the bootloader? May be time to buy a second dongle...

@elfmimi
Copy link

elfmimi commented Feb 2, 2020

I think it can be done. I mean, it should be possible to install OpenSK with ordinary bootloaders and without using any jtag/swd adapters.

@xiongyihui
Copy link

xiongyihui commented Feb 2, 2020

We can modify OpenSK/third_party/tock/boards/nordic/nrf52840_dongle/layout.ld to make Tock OS compatible with the nordic open bootloader.

MEMORY
{
  rom (rx)  : ORIGIN = 0x00001000, LENGTH = 124K
  prog (rx) : ORIGIN = 0x00030000, LENGTH = 704K
  ram (rwx) : ORIGIN = 0x20000000, LENGTH = 256K
}

MPU_MIN_ALIGN = 8K;

INCLUDE ../../kernel_layout.ld

@rmm200
Copy link

rmm200 commented Feb 2, 2020

Man - you are getting there! Glad I asked!
Now to just not lose track of this information...
And - Thanks!

@MatchstickUK
Copy link

Google is presenting OpenSK as a tool for developers and hobbyists.
The Nordic Dongle costs about $10.
The associated hardware to program it costs roughly $1000, per installation guide.
Try to come up with a cheaper solution for us hobbyists. $1000 is more than I spent on my 3D printer.

The larger nRF52840 DK board spec lists it as "comes with an on-board SEGGER J-Link debugger allowing programming and debugging both the on-board SoC and external SoCs through the debug out header" so could one of those be used to provide the required support to the dongle ?

@jmichelp
Copy link
Collaborator

jmichelp commented Feb 3, 2020

Thanks all for your contributions.

Regarding JLink probes, multiple things:

  1. If you're not using them for commercial use, check if you're not eligible for their EDU (or EDU mini) version which is more affordable.

  2. Of course you can use other probes to program the dongle. JLink is the one that was already supported in Tock OS (and more specifically the tockloader tool) and it's embedded in the Nordic nRF52840-DK development kit. We're mentioning this as a tested/validated solution.

Regarding using another probe than the JLink, I tried a while ago with a Black Magic Probe and OpenOCD without success. I haven't tried with pyOCD instead. I'll give it a try and add documentation about it.

Regarding supporting the Nordic DFU bootloader, that's something we will indeed think about. Because it will also spare the cost of the Tag-Connect cable (even though one can also use a breadboard and press fit headers on the castellated holes for SWD).

Finally about supporting the nRF52840 MDK board, it's for sure possible but as mentioned in the review of the pull request, we would prefer the boards to be added directly to Tock OS instead of having to maintain patches for this. The patches we currently have in our repository are changes that are in the process of being upstreamed and we hope that we will soon be able to fully remove them from our repository.

@Raboo
Copy link

Raboo commented Feb 3, 2020

We can modify OpenSK/third_party/tock/boards/nordic/nrf52840_dongle/layout.ld to make Tock OS compatible with the nordic open bootloader.

@xiongyihui would this mean you can program the dongle with nRF Connect Programmer?
It would be super awesome if you could make a PR for Tock OS to also support nordic open bootloader.

@rmm200
Copy link

rmm200 commented Feb 3, 2020

Let me second the Super Awesome. Us low budget users will thank you forever!

@xiongyihui
Copy link

On nRF52840 MDK USB Dongle, we can install OpenSK without a debug adapter. See Get Started with OpenSK guide

I still can not get OpenSK with Nordic open bootloader directly. However, the open bootloader supports self-upgrade, so we can replace open bootloader with a UF2 bootloader, and then get OpenSK work with the UF2 bootloader.

@tmikaeld
Copy link
Author

tmikaeld commented Feb 4, 2020

@xiongyihui Amazing! I'll start ordering a bunch :-D

@jmichelp jmichelp added the question Further information is requested label Feb 6, 2020
@gregvinyard
Copy link

Regarding the nRF Connect Programmer, it looks like you need hex files. The build script creates elf files. Is there a way to convert elf to hex? Or modify the build script to output hex files?

@MatchstickUK
Copy link

@gregvinyard the Building OpenSK page https://wiki.makerdiary.com/nrf52840-mdk-usb-dongle/opensk/building/ covers using bin2hex.py and hexmerge.py to built a single .hex file to install via UF2 bootloader.

I'm guessing someone has already tried using the output of that with nRF Connect Programmer ?

@gregvinyard
Copy link

Thanks @MatchstickUK . Apparently I have a lot to learn, heh. I was able to convert the bin and tbf files to hex and flash them using nRF Connect Programmer, but OpenSK doesn't run. I didn't brick the dongle, I can flash again. No idea what I'm doing though. Time to do some more reading. :-)

@dennisg
Copy link

dennisg commented Feb 26, 2020

@sissaias yes I did: have a look at dennisg/OpenSK. After the generic installation instructions, run the flash_nrf52840_using_dfu.sh script and if all's well your dongle will have been programmed correctly

@sissaias
Copy link

sissaias commented Feb 26, 2020

@sissaias yes I did: have a look at dennisg/OpenSK. After the generic installation instructions, run the flash_nrf52840_using_dfu.sh script and if all's well your dongle will have been programmed correctly

Thank you will give it a try tonight.

@dennisg I am getting these errors:

WOPR ॐ ~/Projects/OpenSK:(9d15h10m|git@nrf52840_dongle_bootloader)
1264 ± ./flash_nrf52840_using_dfu.sh ✹
Compiling tock-cells v0.1.0 (/Users/sissaias/Projects/OpenSK/third_party/tock/libraries/tock-cells)
Compiling tock-registers v0.5.0 (/Users/sissaias/Projects/OpenSK/third_party/tock/libraries/tock-register-interface)
Compiling enum_primitive v0.1.0 (/Users/sissaias/Projects/OpenSK/third_party/tock/libraries/enum_primitive)
Compiling tock_rt0 v0.1.0 (/Users/sissaias/Projects/OpenSK/third_party/tock/libraries/tock-rt0)
Compiling nrf52840_dongle v0.1.0 (/Users/sissaias/Projects/OpenSK/third_party/tock/boards/nordic/nrf52840_dongle)
Compiling kernel v0.1.0 (/Users/sissaias/Projects/OpenSK/third_party/tock/kernel)
Compiling cortexm v0.1.0 (/Users/sissaias/Projects/OpenSK/third_party/tock/arch/cortex-m)
Compiling nrf5x v0.1.0 (/Users/sissaias/Projects/OpenSK/third_party/tock/chips/nrf5x)
Compiling capsules v0.1.0 (/Users/sissaias/Projects/OpenSK/third_party/tock/capsules)
Compiling cortexm4 v0.1.0 (/Users/sissaias/Projects/OpenSK/third_party/tock/arch/cortex-m4)
Compiling nrf52 v0.1.0 (/Users/sissaias/Projects/OpenSK/third_party/tock/chips/nrf52)
Compiling nrf52840 v0.1.0 (/Users/sissaias/Projects/OpenSK/third_party/tock/chips/nrf52840)
Compiling components v0.1.0 (/Users/sissaias/Projects/OpenSK/third_party/tock/boards/components)
Compiling nrf52dk_base v0.1.0 (/Users/sissaias/Projects/OpenSK/third_party/tock/boards/nordic/nrf52dk_base)
Finished release [optimized + debuginfo] target(s) in 21.67s
text data bss dec hex filename
114176 1708 260436 376320 5be00 target/thumbv7em-none-eabi/release/nrf52840_dongle
make: objcopy: No such file or directory
make: *** [target/thumbv7em-none-eabi/release/nrf52840_dongle.hex] Error 1
cp: third_party/tock/boards/nordic/nrf52840_dongle/target/thumbv7em-none-eabi/release/nrf52840_dongle.hex: No such file or directory
./deploy.sh: line 59: declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...]
ERROR: File not found: target/tab/padding.bin
ERROR: File not found: target/tab/cortex-m4.tbf
Traceback (most recent call last):
File "/usr/local/bin/hexmerge.py", line 178, in
sys.exit(main())
File "/usr/local/bin/hexmerge.py", line 158, in main
ih = intelhex.IntelHex(fname)
File "/usr/local/lib/python3.7/site-packages/intelhex/init.py", line 90, in init
self.loadhex(source)
File "/usr/local/lib/python3.7/site-packages/intelhex/init.py", line 199, in loadhex
fobj = open(fobj, "r")
FileNotFoundError: [Errno 2] No such file or directory: 'target/dfu/nrf52840_dongle.hex'
Traceback (most recent call last):
File "/usr/local/bin/nrfutil", line 5, in
from nordicsemi.main import cli
File "/usr/local/lib/python3.7/site-packages/nordicsemi/main.py", line 52, in
from nordicsemi.dfu.dfu_transport_serial import DfuTransportSerial
File "/usr/local/lib/python3.7/site-packages/nordicsemi/dfu/dfu_transport_serial.py", line 53, in
from nordicsemi.dfu.dfu_trigger import DFUTrigger
File "/usr/local/lib/python3.7/site-packages/nordicsemi/dfu/dfu_trigger.py", line 48, in
import usb1
File "/usr/local/lib/python3.7/site-packages/usb1/init.py", line 61, in
from . import libusb1
File "/usr/local/lib/python3.7/site-packages/usb1/libusb1.py", line 199, in
libusb = _loadLibrary()
File "/usr/local/lib/python3.7/site-packages/usb1/libusb1.py", line 173, in _loadLibrary
return dll_loader('libusb-1.0' + suffix, **loader_kw)
File "/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ctypes/init.py", line 364, in init
self._handle = _dlopen(self._name, mode)
OSError: dlopen(libusb-1.0.dylib, 6): image not found
Insert the dongle, make it go into DFU mode...
Traceback (most recent call last):
File "/usr/local/bin/nrfutil", line 5, in
from nordicsemi.main import cli
File "/usr/local/lib/python3.7/site-packages/nordicsemi/main.py", line 52, in
from nordicsemi.dfu.dfu_transport_serial import DfuTransportSerial
File "/usr/local/lib/python3.7/site-packages/nordicsemi/dfu/dfu_transport_serial.py", line 53, in
from nordicsemi.dfu.dfu_trigger import DFUTrigger
File "/usr/local/lib/python3.7/site-packages/nordicsemi/dfu/dfu_trigger.py", line 48, in
import usb1
File "/usr/local/lib/python3.7/site-packages/usb1/init.py", line 61, in
from . import libusb1
File "/usr/local/lib/python3.7/site-packages/usb1/libusb1.py", line 199, in
libusb = _loadLibrary()
File "/usr/local/lib/python3.7/site-packages/usb1/libusb1.py", line 173, in _loadLibrary
return dll_loader('libusb-1.0' + suffix, **loader_kw)
File "/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ctypes/init.py", line 364, in init
self._handle = _dlopen(self._name, mode)
OSError: dlopen(libusb-1.0.dylib, 6): image not found
Okay, make it go into DFU mode one more time...
Traceback (most recent call last):
File "/usr/local/bin/nrfutil", line 5, in
from nordicsemi.main import cli
File "/usr/local/lib/python3.7/site-packages/nordicsemi/main.py", line 52, in
from nordicsemi.dfu.dfu_transport_serial import DfuTransportSerial
File "/usr/local/lib/python3.7/site-packages/nordicsemi/dfu/dfu_transport_serial.py", line 53, in
from nordicsemi.dfu.dfu_trigger import DFUTrigger
File "/usr/local/lib/python3.7/site-packages/nordicsemi/dfu/dfu_trigger.py", line 48, in
import usb1
File "/usr/local/lib/python3.7/site-packages/usb1/init.py", line 61, in
from . import libusb1
File "/usr/local/lib/python3.7/site-packages/usb1/libusb1.py", line 199, in
libusb = _loadLibrary()
File "/usr/local/lib/python3.7/site-packages/usb1/libusb1.py", line 173, in _loadLibrary
return dll_loader('libusb-1.0' + suffix, **loader_kw)
File "/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ctypes/init.py", line 364, in init
self._handle = _dlopen(self._name, mode)
OSError: dlopen(libusb-1.0.dylib, 6): image not found
Traceback (most recent call last):
File "/usr/local/bin/nrfutil", line 5, in
from nordicsemi.main import cli
File "/usr/local/lib/python3.7/site-packages/nordicsemi/main.py", line 52, in
from nordicsemi.dfu.dfu_transport_serial import DfuTransportSerial
File "/usr/local/lib/python3.7/site-packages/nordicsemi/dfu/dfu_transport_serial.py", line 53, in
from nordicsemi.dfu.dfu_trigger import DFUTrigger
File "/usr/local/lib/python3.7/site-packages/nordicsemi/dfu/dfu_trigger.py", line 48, in
import usb1
File "/usr/local/lib/python3.7/site-packages/usb1/init.py", line 61, in
from . import libusb1
File "/usr/local/lib/python3.7/site-packages/usb1/libusb1.py", line 199, in
libusb = _loadLibrary()
File "/usr/local/lib/python3.7/site-packages/usb1/libusb1.py", line 173, in _loadLibrary
return dll_loader('libusb-1.0' + suffix, **loader_kw)
File "/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ctypes/init.py", line 364, in init
self._handle = _dlopen(self._name, mode)
OSError: dlopen(libusb-1.0.dylib, 6): image not found
WOPR ॐ ~/Projects/OpenSK:(9d15h10m|git@nrf52840_dongle_bootloader)
1265 ±

@dennisg
Copy link

dennisg commented Feb 29, 2020

Hi @sissaias, I'm running this on linux, untested on OSX, sorry.

your root cause is this:

make: objcopy: No such file or directory
make: *** [target/thumbv7em-none-eabi/release/nrf52840_dongle.hex] Error 1
cp: third_party/tock/boards/nordic/nrf52840_dongle/target/thumbv7em-none-eabi/release/nrf52840_dongle.hex: No such file or directory
./deploy.sh: line 59: declare: -A: invalid option

which means that it cannot find objcopy used to generate the hex file.

A little bit further in the logs I see that when deploy.sh is run from the script, there seems to be a mismatch w.r.t. arguments fed into declare and lastly libusb-1.0 cannot be found.

I'm afraid I cannot help you to solve this since I do not have a mac for testing.

@zappos23
Copy link

I had this problem on my MacOS too. Most probably it's due to old bash version not supporting declare option.
I think you could either removed the declare in the sh file or update your bash. Thanks

@jmichelp
Copy link
Collaborator

Portability issues should have been fixed. The deploy.sh script is gone.
If you're not using code from this repository I suggest you open an issue on the forked repository to tell them to update their fork

@dennisg
Copy link

dennisg commented Mar 2, 2020

Hi @jmichelp, I updated the fork, still untested but I will hopefully soon find time to do so; are you interested in knowing how to flash a regular nrf52840 dongle with your application without the use of expensive hardware? Do you care to help with your knowledge to fix the 'double flashing' ? I would really appreciate your input!

@sissaias
Copy link

sissaias commented Mar 2, 2020

Hello everyone

I upgraded bash as suggested now using @dennisg fork I am getting the follow request for j-link:

Screenshot 2020-03-02 at 21 33 29

@mlberlin
Copy link

mlberlin commented Mar 3, 2020

@dennisg awesome work! Many thanks! One small correction: the 1st argument of deploy.py in your bash script flash_nrf52840_using_dfu.sh should read app not os:

./deploy.py app --board=nrf52840_dongle

This probably also does away with your problem @sissaias.

@jmichelp
Copy link
Collaborator

jmichelp commented Mar 3, 2020

@dennisg Of course we're interested :) I actually bought myself 2 makerdiary dongles so that I can experiment/test.
I'll do my best to help merging your contribution to the main repository.

@dennisg
Copy link

dennisg commented Mar 4, 2020 via email

@dennisg
Copy link

dennisg commented Mar 5, 2020

@jmichelp Okay, I moved as much as possible/ seemed sensible from the bash script to the deploy.py and made it possible, using a --dfu flag, to bypass tockloader completely and only generate the hex files. Also updated the Tock OS main.rs for the nordic dongle (in most certainly a very dirty way, I'm no Rust developer) to set the table_offset_vector during compile time. Please have a look, sigh, do a face-palm and then point me to a better way to do it. thanks!

@dennisg
Copy link

dennisg commented Mar 5, 2020

This is an overview of the memory layout if you load the hex files in nrf programmer.

2020-03-05-124712_609x1481_scrot

bors bot added a commit to tock/tock that referenced this issue Mar 5, 2020
1579: add set_vector_table_offset() r=alevy a=xiongyihui

when using a bootloader, tock os may need to relocate interrupt
vector table, then use this function to do that.

See the discussion at google/OpenSK#3

### Pull Request Overview

This pull request adds `add set_vector_table_offset` function to relocate interrupt vector table.


### Testing Strategy

TODO

### TODO or Help Wanted

N/A

### Documentation Updated

- [x] Updated the relevant files in `/docs`, or no updates are required.

### Formatting

- [x] Ran `make formatall`.


Co-authored-by: Yihui Xiong <[email protected]>
@sissaias
Copy link

sissaias commented Mar 8, 2020

@dennisg I have to say after spending days on OSX, I decided to do it on Linux. Your flash script worked. The key now works fine. Thanks everyone for your help next move to find somewhere to print a case

@ejeyaseelan
Copy link

it would be helpful to have an updated write up on how to program this onto a new dongle with factory defaults on windows, linux and macos.

I am on windows and I got the files compiled in gitpod.

I have the nrf desktop connect app, not sure whats the best to proceed without frying my dongle.

thx

@jmichelp
Copy link
Collaborator

jmichelp commented Mar 9, 2020

Please be patient. I'm working on integrating all of that nicely into the main repository and the deploy.py script.

At the end, one should be able to flash OpenSK firmware using:

  • Segger JLink (it will leverage tockloader)
  • OpenOCD (it will also leverage tockloader)
  • pyOCD
  • Nordic DFU
  • No programmer (it will only produce a HEX file which will be handy for continuous integration and testing purpose or if a flashing method is not supported).

@jbalius
Copy link

jbalius commented Nov 25, 2021

Has anyone tried
Minew C2-7001 Nordic NRF52840 Dongle?

https://aliexpress.com/item/4000127809241.html

@jmichelp
Copy link
Collaborator

No we haven't.
They say it's a buttonless dongle though which is an issue for FIDO2 because we need the button to validate user presence.

@jbalius
Copy link

jbalius commented Nov 25, 2021

No we haven't. They say it's a buttonless dongle though which is an issue for FIDO2 because we need the button to validate user presence.

Actually it has a button. I have picture and schematics of it:
minew
MS04SF7_SCH_V1.0_a.pdf

As I understand they are suggesting it can be used without a button for some applications.

@jmichelp
Copy link
Collaborator

So, according to the schematics you provided, the board is equivalent to the nRF52840 Dongle from Nordic. Both LEDs and buttons are wired the same. Like on the Nordic dongle, one button acts as a reset button and the other one will be used for User Presence.

You should be able to flash OpenSK using the board definition nrf52840_dongle_dfu (simply follow the instructions we have for the Nordic nRF52840 dongleflashing over DFU and you should be fine).

@wezm
Copy link

wezm commented Feb 1, 2023

I tried RAYTAC MDBT50Q-RX and it worked. https://www.raytac.com/product/ins.php?index_id=89

Note: you need to tweak pin settings for the led and the button. It would be safer to also change the pin for uart so that it won’t interfere with the reset pin.

@elfmimi I have one of these, did you publish your tweaks anywhere? I can work out the changes to the pins myself but figured if you've already done it I would ask first.

@elfmimi
Copy link

elfmimi commented Feb 2, 2023

No, I haven't. I'll try to dig it out. pls wait few days.

@elfmimi
Copy link

elfmimi commented Feb 3, 2023

@wezm
Copy link

wezm commented Feb 3, 2023

Here you are. @wezm

Wonderful, thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

Successfully merging a pull request may close this issue.