GUIDE - NRF5 / NRF51 / NRF52 for beginners
-
@sancho119 No matter what I tried, I could not unlock the E73 with the STLink.
I had to buy a jlink clone, download a bunch of segger debugging tools, use the segger tools to override the lock flag. After that I could flash the bootloader.
https://github.com/micooke/arduino-nRF5-smartwatches/blob/master/nrf52_disable_read_protection.txt
#To share my experience with the nRF52832. #I was unable to disable the read protection / flash lock with a BMP or ST-Link V2, but i was successful with a J-Link. #When nRF52832 chip is read protected / locked, the first step is to try: nrfjprog –recover -f nrf52 #This performs the same task as: Jlink -if swd -device nrf52 J-Link>SWDSelect J-Link>SWDWriteDP 1, 0x50000000 J-Link>SWDWriteDP 2, 0x01000000 J-Link>SWDWriteAP 1, 0x00000001 #Wait until AP 2 is 0, and the operation is complete J-Link>SWDReadAP 2 #If two successive reads from AP 3 produce 0, then 1 then protection is disabled J-Link>SWDReadAP 3 J-Link>SWDReadAP 3 #Tested with JLink v6.20b -
-
Hello,
Some news !
i buy a Jlink, and success in erase my nrf52832 with nrf prog, using method of berkseo.Next i try to upload a basic sketch (blink) :
#define MY_RADIO_NRF5_ESB
#include <nrf.h>
#include <MySensors.h>void setup() {
Serial.begin(9600);
hwPinMode(LED_BUILTIN,OUTPUT_H0H1);
}void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}I have this :
Open On-Chip Debugger 0.10.0-dev-00254-g696fc0a (2016-04-10-10:13)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
debug_level: 2
0
adapter speed: 10000 kHz
cortex_m reset_config sysresetreq
Info : No device selected, using first device.
Info : J-Link ARM-OB STM32 compiled Aug 22 2012 19:52:04
Info : Hardware version: 7.00
Info : VTarget = 3.300 V
Info : clock speed 10000 kHz
Info : SWD IDCODE 0x2ba01477
Info : nrf52.cpu: hardware has 6 breakpoints, 4 watchpoints
nrf52.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x0000051c msp: 0x20010000
** Programming Started **
auto erase enabled
Warn : Unknown device (HWID 0x00000139)
Warn : not enough working area available(requested 32)
Warn : no working area available, falling back to slow memory writes
wrote 12288 bytes from file C:\Users\Sancho\AppData\Local\Temp\arduino_build_76789/NRF5_blink_led8.ino.hex in 4.155332s (2.888 KiB/s)
** Programming Finished **
** Verify Started **
Warn : not enough working area available(requested 52)
verified 10812 bytes in 0.165932s (63.632 KiB/s)
** Verified OK **
** Resetting Target **
shutdown command invokedI think its good, but when i put a led with a resistance on P0.08, nothing :(
could you help me more ?
-
Hello,
Some news !
i buy a Jlink, and success in erase my nrf52832 with nrf prog, using method of berkseo.Next i try to upload a basic sketch (blink) :
#define MY_RADIO_NRF5_ESB
#include <nrf.h>
#include <MySensors.h>void setup() {
Serial.begin(9600);
hwPinMode(LED_BUILTIN,OUTPUT_H0H1);
}void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}I have this :
Open On-Chip Debugger 0.10.0-dev-00254-g696fc0a (2016-04-10-10:13)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
debug_level: 2
0
adapter speed: 10000 kHz
cortex_m reset_config sysresetreq
Info : No device selected, using first device.
Info : J-Link ARM-OB STM32 compiled Aug 22 2012 19:52:04
Info : Hardware version: 7.00
Info : VTarget = 3.300 V
Info : clock speed 10000 kHz
Info : SWD IDCODE 0x2ba01477
Info : nrf52.cpu: hardware has 6 breakpoints, 4 watchpoints
nrf52.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x0000051c msp: 0x20010000
** Programming Started **
auto erase enabled
Warn : Unknown device (HWID 0x00000139)
Warn : not enough working area available(requested 32)
Warn : no working area available, falling back to slow memory writes
wrote 12288 bytes from file C:\Users\Sancho\AppData\Local\Temp\arduino_build_76789/NRF5_blink_led8.ino.hex in 4.155332s (2.888 KiB/s)
** Programming Finished **
** Verify Started **
Warn : not enough working area available(requested 52)
verified 10812 bytes in 0.165932s (63.632 KiB/s)
** Verified OK **
** Resetting Target **
shutdown command invokedI think its good, but when i put a led with a resistance on P0.08, nothing :(
could you help me more ?
@sancho119 said in GUIDE - NRF5 / NRF51 / NRF52 for beginners:
Hello,
Some news !
i buy a Jlink, and success in erase my nrf52832 with nrf prog, using method of berkseo.Next i try to upload a basic sketch (blink) :
#define MY_RADIO_NRF5_ESB
#include <nrf.h>
#include <MySensors.h>void setup() {
Serial.begin(9600);
hwPinMode(LED_BUILTIN,OUTPUT_H0H1);
}void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}I have this :
Open On-Chip Debugger 0.10.0-dev-00254-g696fc0a (2016-04-10-10:13)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
debug_level: 2
0
adapter speed: 10000 kHz
cortex_m reset_config sysresetreq
Info : No device selected, using first device.
Info : J-Link ARM-OB STM32 compiled Aug 22 2012 19:52:04
Info : Hardware version: 7.00
Info : VTarget = 3.300 V
Info : clock speed 10000 kHz
Info : SWD IDCODE 0x2ba01477
Info : nrf52.cpu: hardware has 6 breakpoints, 4 watchpoints
nrf52.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x0000051c msp: 0x20010000
** Programming Started **
auto erase enabled
Warn : Unknown device (HWID 0x00000139)
Warn : not enough working area available(requested 32)
Warn : no working area available, falling back to slow memory writes
wrote 12288 bytes from file C:\Users\Sancho\AppData\Local\Temp\arduino_build_76789/NRF5_blink_led8.ino.hex in 4.155332s (2.888 KiB/s)
** Programming Finished **
** Verify Started **
Warn : not enough working area available(requested 52)
verified 10812 bytes in 0.165932s (63.632 KiB/s)
** Verified OK **
** Resetting Target **
shutdown command invokedI think its good, but when i put a led with a resistance on P0.08, nothing :(
could you help me more ?
LED_BUILTIN corresponds to po17
-
-
Hi. Are the steps in first post still valid please?
I'm trying without luck to get first nrf52 programmed. I get a weird error"Error resolving FQBN: missing" in Arduino IDE when I try to verify any basic sketch, even blink. Thanks for any thoughts
-
@p359 Which version of Arduino IDE are you using? I was seeing that with 1.8.10, but I ended up downgrading to 1.8.6 to test and it worked.
-
Hi,
Is it possible to get Serial output in Arduino IDE for nRF52 boards with J-Link OB 7.0? Or do I need a newer programmer? Or maybe I can get it with ST-Link v2/v2.1 somehow?
@martinc said in GUIDE - NRF5 / NRF51 / NRF52 for beginners:
Hi,
Is it possible to get Serial output in Arduino IDE for nRF52 boards with J-Link OB 7.0? Or do I need a newer programmer? Or maybe I can get it with ST-Link v2/v2.1 somehow?
The answer is actually in the first post.
-
@alowhum said in GUIDE - NRF5 / NRF51 / NRF52 for beginners:
The answer is actually in the first post.
Thanks, I've seen it before. In my case a programmer is easier solution - I don't know yet how to re-assign TX&RX pins in Arduino on my EByte 52840 module and in specs for that module there is no info about UART connectivity.
Maybe you know how can I re-assign TX&RX pins in Arduino? Then I can solder wires to assigned TX&RX pins and connect them to USB-UART. What I've found is in Forth language ... -
Does anyone know what settings I need to use for this development board with arduino ide?
Ebyte E104-BT5032A-TB
https://a.aliexpress.com/_dT5dMb8It has a cp2102 on board which I have the driver for. I've installed the arduino ide nrf52 board, but I can't find a programmer, board, or any other settings which will let me flash it without a Java exception or a timeout. Maybe I need to set the jumpers differently but there's no documentation on that.
OTA works fine though. -
Does anyone know what settings I need to use for this development board with arduino ide?
Ebyte E104-BT5032A-TB
https://a.aliexpress.com/_dT5dMb8It has a cp2102 on board which I have the driver for. I've installed the arduino ide nrf52 board, but I can't find a programmer, board, or any other settings which will let me flash it without a Java exception or a timeout. Maybe I need to set the jumpers differently but there's no documentation on that.
OTA works fine though.@idanronen this is a UART to BT module, and from what I understand in the documentation the CP2102 is only here to give you access to the serial port of the module, but not to program it ?
To program it you will have to use the SWDIO/SWDCLK pins I suppose, and I'm interested to know if it can be reprogrammed because that would make a tiny NRF52832 module for boards that don't require many IOs.
-
@idanronen this is a UART to BT module, and from what I understand in the documentation the CP2102 is only here to give you access to the serial port of the module, but not to program it ?
To program it you will have to use the SWDIO/SWDCLK pins I suppose, and I'm interested to know if it can be reprogrammed because that would make a tiny NRF52832 module for boards that don't require many IOs.
@Nca78 I feared that might be the case. my task for today was to dig up my st-link and try that, though I hoped I might have done something wrong and the cp2102 can be used to program and not just debug.
That module is pretty cheap and from what I see with the naked eye, you can disconnect the cp2102 with the jumpers so the power consumption might actually be good enough to use as-is.
I'll report back to let you know once I've succeeded -
I tried flashing MySensors onto my nRF52840 Adafruit Feather board but it fails, I opened an issue on GH about it https://github.com/mysensors/MySensors/issues/1424, maybe someone here has any ideas how to get it running on those boards?
-
@idanronen this is a UART to BT module, and from what I understand in the documentation the CP2102 is only here to give you access to the serial port of the module, but not to program it ?
To program it you will have to use the SWDIO/SWDCLK pins I suppose, and I'm interested to know if it can be reprogrammed because that would make a tiny NRF52832 module for boards that don't require many IOs.
@Nca78 no luck with the st-link v2, though i doubt it is related to the board, but rather my inability. i've tried every option in zadig, installed the st-link driver from their website, and nothing works.
i get this in arduino ide:debug_level: 0 0x4000 adapter speed: 10000 kHz Error: init mode failed (unable to connect to the target) in procedure 'program' in procedure 'init' called at file "embedded:startup.tcl", line 473 in procedure 'ocd_bouncer' ** OpenOCD init failed ** shutdown command invoked the selected serial port does not exist or your board is not connected -
With all the NRF52 modules from EBYTE I've tried, the only way I can flash them is over SWDIO, SWCLK, GND, VCC via JLink clone.
And, before flashing is possible, I have to unlock the module by following these directions: https://github.com/micooke/arduino-nRF5-smartwatches/blob/master/nrf52_disable_read_protection.txt
-
With all the NRF52 modules from EBYTE I've tried, the only way I can flash them is over SWDIO, SWCLK, GND, VCC via JLink clone.
And, before flashing is possible, I have to unlock the module by following these directions: https://github.com/micooke/arduino-nRF5-smartwatches/blob/master/nrf52_disable_read_protection.txt
@ncollins I've been working on turning an stm32f030f4p6 into a blackmagic probe for a few days now. Hit a wall when the compiled firmware came out to 83kb which is over the 64kb on board. Found someone who shrunk it down so it'd fit, and someone claiming it has another 64kb which can be unlocked. I'm just looking for the patience to get back in there, as this whole thing has been a major ordeal
-
Im not sure my flashing with the blackmagic even does anything. The console is unclear:
Sketch uses 3556 bytes (0%) of program storage space. Maximum is 409600 bytes. Remote debugging using \\.\COM11 Target voltage: ABSENT! Available Targets: No. Att Driver 1 Nordic nRF52 M3/M4 2 Nordic nRF52 Access Port Attaching to Remote target 0xfffffffe in ?? () Reading symbols from nrf1.ino.elf...done. Loading section .text, size 0xde4 lma 0x1c000 Loading section .ARM.exidx, size 0x8 lma 0x1cde4 Loading section .data, size 0x78 lma 0x1cdec Start address 0x1c578, load size 3684 Transfer rate: 33 KB/sec, 614 bytes/write. Temporary breakpoint 1 at 0x1cb8c: file C:\Users\....\AppData\Local\Arduino15\packages\sandeepmistry\hardware\nRF5\0.6.0\cores\nRF5\main.cpp, line 28. Starting program: C:\Users\....\AppData\Local\Temp\arduino_build_366086\nrf1.ino.elf Note: automatically using hardware breakpoints for read-only addresses. Program received signal SIGSEGV, Segmentation fault. 0x00000000 in ?? () Program complete!and i dont see any serial debug information