Uploads dont work anymore (RedBoard Artemis)

After using the RedBoard Artemis many times to upload sketches to an ESP-01 it cant upload sketches to itself anymore.

I now get this error message every time I try to upload a sketch to the Artemis:

Artemis SVL Bootloader
Script version 1.7

Phase: Setup
Cleared startup blip
Failed to enter bootload phase

Phase: Setup
Cleared startup blip
Failed to enter bootload phase

Phase: Setup
Cleared startup blip
Failed to enter bootload phase
Target failed to enter bootload mode. Verify the right COM port is selected and that your board has the SVL bootloader.

So I tried to burn the bootloader several times with the instructions from the ARTEMIS SVL BOOTLOADER “UNKNOWN ERROR” thread but it always leads to this error message:

java.lang.NullPointerException
at cc.arduino.packages.uploaders.SerialUploader.burnBootloader(SerialUploader.java:329)
at processing.app.Editor.lambda$handleBurnBootloader$61(Editor.java:2366)
at java.lang.Thread.run(Thread.java:748)
Fehler beim Brennen des Bootloaders.

I also reinstalled the Arduino IDE and Java SE but it didnt help.

Any ideas? Or is there other ways to burn the bootloader? :frowning:

Hi - thanks for reporting your trouble. Let’s see what we can do about it.

The first thing I usually would suggest is to update the SVL bootloader - so good idea there. Now it would seem that Arduino is having trouble starting up the ASB bootloader tool. I was able to produce a similar error message when I tried to use the bootloader without an Apollo3 board selected in the tools menu. I also got an error when trying to burn the bootloader without a serial port selected.

Ensure that you have an Apollo3 board selected (choosing the correct board should also ensure that baud rates are correct) and that you have a serial port selected. (All in the “Tools” menu)

If that does not work I will need a little more information. For example: what version of the Apollo3 Arduino core are you using?

P.s. uploading sketches to an ESP-01 sounds like a really cool use case. Would you consider writing a short post about that in the [Designing with Artemis forum? At least personally I’d love to see what you did.](https://forum.sparkfun.com/viewforum.php?f=170)

Hello,

The uploading for the ESP-01 I just found easier through the RedBoard Artemis than with an FTDI, but it requires soldering pins to TX0/RX0. Im not sure what to write about it.

The use case I have is communicating over wifi between two Artemis boards, one functioning as a webserver.

Apollo3 Arduino core: I used version 1.0.30 but also tried the newest version 1.1.0.

wjulian@t-online.de:
So I tried to burn the bootloader several times with the instructions from the ARTEMIS SVL BOOTLOADER “UNKNOWN ERROR” thread but it always leads to this error message:

java.lang.NullPointerException

at cc.arduino.packages.uploaders.SerialUploader.burnBootloader(SerialUploader.java:329)
at processing.app.Editor.lambda$handleBurnBootloader$61(Editor.java:2366)
at java.lang.Thread.run(Thread.java:748)
Fehler beim Brennen des Bootloaders.




I also reinstalled the Arduino IDE and Java SE but it didnt help.

Any ideas? Or is there other ways to burn the bootloader? :(

EDIT: This is the actual error message when having chosen Ambiq Secure Bootloader under Programmer (instead of under Bootloader) for burning:

C:\Users\LAB\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\1.0.30/tools/ambiq/windows/ambiq_bin2board.exe --bin C:\Users\LAB\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\1.0.30/bootloaders/artemis/artemis_svl.bin --load-address-blob 0x20000 --magic-num 0xCB -o C:\Users\LAB\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\1.0.30/bootloaders/artemis/artemis_svl --version 0x0 --load-address-wired 0xC000 -i 6 --options 0x1 -b 115200 -port COM3 -r 2 -v 
Header Size =  0x80
original app_size  0x3290 ( 12944 )
load_address  0xc000 ( 49152 )
app_size  0x3290 ( 12944 )
w0 = 0xcb003310
Security Value  0x10
w2 =  0x10008080
addrWord =  0xc000
versionKeyWord =  0x0
child0/feature =  0xffffffff
child1 =  0xffffffff
crc =   0x826a7429
Writing to file  C:\Users\LAB\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\1.0.30/bootloaders/artemis/artemis_svl_OTA_blob.bin
testing: C:\Users\LAB\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\1.0.30/bootloaders/artemis/artemis_svl_OTA_blob.bin
Header Size =  0x60
app_size  0x3310 ( 13072 )
Writing to file  C:\Users\LAB\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\1.0.30/bootloaders/artemis/artemis_svl_Wired_OTA_blob.bin
Image from  0x0  to  0x3310  will be loaded at 0x20000
Connecting over serial port COM3...
Sending Hello.
No response for command 0x00000000
Failed to respond
Fail
Sending Hello.
No response for command 0x00000000
Failed to respond
Fail
Sending Hello.
No response for command 0x00000000
Failed to respond
Fail
Tries = 3
Upload failed
C:\Users\LAB\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\1.0.30/tools/ambiq/windows/ambiq_bin2board.exe --bin C:\Users\LAB\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\1.0.30/bootloaders/artemis/artemis_svl.bin --load-address-blob 0x20000 --magic-num 0xCB -o C:\Users\LAB\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\1.0.30/bootloaders/artemis/artemis_svl --version 0x0 --load-address-wired 0xC000 -i 6 --options 0x1 -b 115200 -port COM3 -r 2 -v 
Header Size =  0x80
original app_size  0x3290 ( 12944 )
load_address  0xc000 ( 49152 )
app_size  0x3290 ( 12944 )
w0 = 0xcb003310
Security Value  0x10
w2 =  0x10008080
addrWord =  0xc000
versionKeyWord =  0x0
child0/feature =  0xffffffff
child1 =  0xffffffff
crc =   0x826a7429
Writing to file  C:\Users\LAB\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\1.0.30/bootloaders/artemis/artemis_svl_OTA_blob.bin
testing: C:\Users\LAB\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\1.0.30/bootloaders/artemis/artemis_svl_OTA_blob.bin
Header Size =  0x60
app_size  0x3310 ( 13072 )
Writing to file  C:\Users\LAB\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\1.0.30/bootloaders/artemis/artemis_svl_Wired_OTA_blob.bin
Image from  0x0  to  0x3310  will be loaded at 0x20000
Connecting over serial port COM3...
Sending Hello.
No response for command 0x00000000
Failed to respond
Fail
Sending Hello.
No response for command 0x00000000
Failed to respond
Fail
Sending Hello.
No response for command 0x00000000
Failed to respond
Fail
Tries = 3
Upload failed

wjulian - please keep your posts on one thread. I am worried about missing information that was posted elsewhere and wasting time trying to find where to respond. It is okay to put links to this thread on other threads.

Ahh, okay we are making some progress here.

Have you been able to upload using the ASB before? What host platform are you on (windows, linux, mac?) This error is one i usually see from Linux computers trying to upload to an Edge board (which uses a 921600 baud rate instead of the more stable 115200 baud rate for the ASB)

I guess the posts on the other thread can be deleted then, my bad.

I havent tried uploading via ASB before it stopped working as I always used SVL. But my second Artemis Redboard (ATP) can upload with ASB and SVL, I just verified.

Regarding to my “broke” Artemis board:

Speeds I tried 921600, 115200 and some others for uploading and burning but none of them work.

Im on Windows. What else can I try to get the bootloader working? I dont want to buy a new board…

You could try re-flashing with a debug probe but that is an advanced skill and requires another tool. Maybe one of our experienced TS members will be able to help diagnose this issue.

Could you invite the TS members to this topic?

Hello wjulian@t-online.de,

I have sent you a direct message. There should be a notification in the upper right hand corner on your avatar picture to indicate that you’ve received a message. I hope to hear from you soon.

Hello,

i had the same problem , i used to use SVL , but when i tried to use ASB i could not program the microcontroller via USB anymore and i got error message like yours

actually i have JLINK , and i still able to use IAR Embedded workbench to program the microcontroller .

but i still have problem because the board does not run at all after reset, und i cannot use IAR to program TFlite,

i tried to erase the microcontroller using SEGGER-JFlash , but i could not and i have the error :

Unexpected core ID. (Found: 0x00000000, Expected: 0x2BA00477, Mask: 0x0F000FFF)

did you solved the problem ?

or you had bought a new board

I had to get me a new board. Somehow the bootloader got physically damaged is what i guess.

Glad it ended up working out for you :slight_smile:

Usually the bootloader should be well-protected. It is unlikely that this should happen to you again.