GUIDE - NRF5 / NRF51 / NRF52 for beginners
-
Hello
it's a E73 2G4M04S1B from EBYTE
When i switch SWDIO and SWCLK, i can see the led of STLink V2 changing from red to blue, but when i try to uplod empty sketch (MyBoardNRF5), i have this error :C:\Users\Sancho\AppData\Local\Arduino15\packages\sandeepmistry\tools\openocd\0.10.0-dev.nrf5/bin/openocd.exe -d2 -f interface/stlink-v2.cfg -c transport select hla_swd; set WORKAREASIZE 0x4000; -f target/nrf52.cfg -c program {{C:\Users\Sancho\AppData\Local\Temp\arduino_build_432557/MyBoardNRF5.ino.hex}} verify reset; shutdown;
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
0x4000
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
adapter speed: 10000 kHz
Info : Unable to match requested speed 10000 kHz, using 4000 kHz
Info : Unable to match requested speed 10000 kHz, using 4000 kHz
Info : clock speed 4000 kHz
Info : STLINK v2 JTAG v29 API v2 SWIM v7 VID 0x0483 PID 0x3748
Info : using stlink api v2
Info : Target voltage: 3.283200
Info : nrf52.cpu: hardware has 0 breakpoints, 2 watchpoints
Error: timed out while waiting for target halted
TARGET: nrf52.cpu - Not halted
in procedure 'program'
in procedure 'reset' called at file "embedded:startup.tcl", line 478
in procedure 'ocd_bouncer'embedded:startup.tcl:454: Error: ** Unable to reset target **
in procedure 'program'
in procedure 'program_error' called at file "embedded:startup.tcl", line 479
at file "embedded:startup.tcl", line 454
le port série sélectionné at file "embedded:startup.tcl", line 454
n'existe pas ou votre Arduino n'est pas connectée -
Hello
it's a E73 2G4M04S1B from EBYTE
When i switch SWDIO and SWCLK, i can see the led of STLink V2 changing from red to blue, but when i try to uplod empty sketch (MyBoardNRF5), i have this error :C:\Users\Sancho\AppData\Local\Arduino15\packages\sandeepmistry\tools\openocd\0.10.0-dev.nrf5/bin/openocd.exe -d2 -f interface/stlink-v2.cfg -c transport select hla_swd; set WORKAREASIZE 0x4000; -f target/nrf52.cfg -c program {{C:\Users\Sancho\AppData\Local\Temp\arduino_build_432557/MyBoardNRF5.ino.hex}} verify reset; shutdown;
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
0x4000
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
adapter speed: 10000 kHz
Info : Unable to match requested speed 10000 kHz, using 4000 kHz
Info : Unable to match requested speed 10000 kHz, using 4000 kHz
Info : clock speed 4000 kHz
Info : STLINK v2 JTAG v29 API v2 SWIM v7 VID 0x0483 PID 0x3748
Info : using stlink api v2
Info : Target voltage: 3.283200
Info : nrf52.cpu: hardware has 0 breakpoints, 2 watchpoints
Error: timed out while waiting for target halted
TARGET: nrf52.cpu - Not halted
in procedure 'program'
in procedure 'reset' called at file "embedded:startup.tcl", line 478
in procedure 'ocd_bouncer'embedded:startup.tcl:454: Error: ** Unable to reset target **
in procedure 'program'
in procedure 'program_error' called at file "embedded:startup.tcl", line 479
at file "embedded:startup.tcl", line 454
le port série sélectionné at file "embedded:startup.tcl", line 454
n'existe pas ou votre Arduino n'est pas connectée@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 -
@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