I am using a OM Science Dband V2 board (based on nRF525832). Since the board itself does not officially supports programming with Arduino, I decided to flash a customized bootloader following this blog: How to Flash the Arduino Bootloader to a Custom nRF52832 Design | by Eric Pietrowicz | Medium
I have strictly followed the steps in the blog, including editing the DFU_SERIAL_STARTUP_INTERVAL
parameter to 20 seconds, and compiled the edited code under Ubuntu 24.04.2 LTS running on VMWare. Then I flashed the "feather_nrf52832_bootloader-0.9.2-12-ga48e944-dirty_s132_6.1.1.hex" into the board with a JTAG debugger through nRF programmer.
Then I tried to flash the following Arduino code (on PlatformIO):
#include <Arduino.h>
void setup() {
// put your setup code here, to run once:
Serial.setPins(11,12);
Serial.begin(115200);
}
void loop() {
// put your main code here, to run repeatedly:
}
But the flash is unsuccessful, with error message:
Failed to upgrade target. Error is: No data received on serial port. Not able to proceed.
Timed out waiting for acknowledgement from device.
Traceback (most recent call last):
File "C:\Users\Kevin\.platformio\packages\tool-adafruit-nrfutil\site-packages\nordicsemi\__main__.py", line 296, in serial
dfu.dfu_send_images()
File "C:\Users\Kevin\.platformio\packages\tool-adafruit-nrfutil\site-packages\nordicsemi\dfu\dfu.py", line 235, in dfu_send_images
self._dfu_send_image(HexType.APPLICATION, self.manifest.application)
File "C:\Users\Kevin\.platformio\packages\tool-adafruit-nrfutil\site-packages\nordicsemi\dfu\dfu.py", line 199, in _dfu_send_image
self.dfu_transport.send_start_dfu(program_mode, softdevice_size, bootloader_size,
File "C:\Users\Kevin\.platformio\packages\tool-adafruit-nrfutil\site-packages\nordicsemi\dfu\dfu_transport_serial.py", line 179, in send_start_dfu
self.send_packet(packet)
File "C:\Users\Kevin\.platformio\packages\tool-adafruit-nrfutil\site-packages\nordicsemi\dfu\dfu_transport_serial.py", line 243, in send_packet
ack = self.get_ack_nr()
^^^^^^^^^^^^^^^^^
File "C:\Users\Kevin\.platformio\packages\tool-adafruit-nrfutil\site-packages\nordicsemi\dfu\dfu_transport_serial.py", line 282, in get_ack_nr
raise NordicSemiException("No data received on serial port. Not able to proceed.")
nordicsemi.exceptions.NordicSemiException: No data received on serial port. Not able to proceed.
Possible causes:
- Selected Bootloader version does not match the one on Bluefruit device.
Please upgrade the Bootloader or select correct version in Tools->Bootloader.
- Baud rate must be 115200, Flow control must be off.
- Target is not in DFU mode. Ground DFU pin and RESET and release both to enter DFU mode.
I am sure that all edition made on the bootloader source codes are correct.
Development Environment:
CPU: i7-14650HX
RAM: 64GB DDR5
Bootloader compilation: Ubuntu 24.02.2 LTS on VMWare
Arduino development: Windows 11 Pro Workstation
Could anyone please help me?