Adafruit nRF52832 Feather - CreateProcess error=193, %1 is not a valid Win32 application arduino ide

Arduino IDE v1.8.16

I cannot burn bootloader for Adafruit nRF52832 Feather using USB serial port:

image

It resulted in errors below ( NOTE: the user name is "RICKY GAI" ):

java.io.IOException: Cannot run program "C:\Users\RICKY": CreateProcess error=193, %1 is not a valid Win32 application
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at processing.app.helpers.ProcessUtils.exec(ProcessUtils.java:26)
at cc.arduino.packages.Uploader.executeUploadCommand(Uploader.java:129)
at cc.arduino.packages.uploaders.SerialUploader.runCommand(SerialUploader.java:383)
at cc.arduino.packages.uploaders.SerialUploader.burnBootloader(SerialUploader.java:375)
at processing.app.Editor.lambda$handleBurnBootloader$61(Editor.java:2385)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: CreateProcess error=193, %1 is not a valid Win32 application
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.(ProcessImpl.java:386)
at java.lang.ProcessImpl.start(ProcessImpl.java:137)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 6 more
Error while burning bootloader.

The result I want to update the bootloader because I am unable to upload a simple test sketch as well, it gave errors below:

Sketch uses 23696 bytes (8%) of program storage space. Maximum is 290816 bytes.
Global variables use 3264 bytes (6%) of dynamic memory, leaving 48960 bytes for local variables. Maximum is 52224 bytes.
Upgrading target on COM7 with DFU package C:\Users\RICKY GAI\AppData\Local\Temp\arduino_build_99526\test.ino.zip. Flow control is disabled, Single bank, Touch disabled
Timed out waiting for acknowledgement from device.

Failed to upgrade target. Error is: No data received on serial port. Not able to proceed.
Traceback (most recent call last):
  File "__main__.py", line 296, in serial
  File "dfu\dfu.py", line 235, in dfu_send_images
  File "dfu\dfu.py", line 203, in _dfu_send_image
  File "dfu\dfu_transport_serial.py", line 155, in send_init_packet
  File "dfu\dfu_transport_serial.py", line 243, in send_packet
  File "dfu\dfu_transport_serial.py", line 282, in get_ack_nr
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 also posted similar question to Adafruit Forum at HERE.

Please advise.

I found the solution:

  • The Adafruit Feather nRF52832 bootloader is old version, need to be updated to version S32 6.1.1, but you cannot update to latest version of bootloader using serial COM port yet because the old bootloader is not compatible.

  • So, you have to use J-LINK as shown picture below:

image

  • Now, goto the Arduino IDE > Tools > Programmer: > choose "J-Link for Bluefruit nRF52" then click on the "Burn Bootloader" option, if the bootloader is updated successfully, you should be seeing result picture below:

image

  • From here, you can start to upload sketch and burn new bootloader using either serial COM port or J-LINK, in this case I am going to use serial COM port so you may disconnect the J-LINK.

  • Set the Arduino IDE > Tools > Programmer: to "Bootloader DFU for Bluefruit nRF52" for any new bootloader to burn in the future.

image

  • To upload sketch, click on the upload button, the success process should be like below:

image

  • DONE.

Hopes this help.

1 Like

Hello!
I have the same problem, and I am using the nRF52840 Dongle.
My question is, how did you connect the jlink with the microcontroller!
Kind regards!

hi,

I not sure the question asked, for hardware wise, you need a genuine Segger Jlink EDU/Base hardware programmer and Adafruit JTAG to SWG adapter.

Be very careful not to use the clone J-Link in the market, it burned one of my 52840 MCU due to reason HERE.

To test the link between Nordic 52840 MCU and JLink debugger, you need to download SEGGER J-Link GDB Server. Choose the right 52840 from the list and see if it can establish the connection or not.

I have moved to PlatformIO VSCode IDE to free out all dependencies issues for embedded development.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.