Artemis - Unable to bootload

Hi, everyone, I’ve been trying to upload code to the Artemis, with no success. This is what I’ve tried so far:

  • 2 Blackboard Artemis Nano and 1 Blackboard Artemis Uno

  • Tested in 3 computers with Ubuntu 18 and one computer with Windows 10

  • Versions of Arduino 1.8.9 and 1.8.10

  • Drivers for the CH340 have been updated; module ch34x loaded, and ch341 unloaded.

  • Several USB-C cables, some of them known to be working with SSD disks.

  • Board definitions for the Sparkfun boards installed and up to date

  • Upload baudrate set to 115200 in the IDE and in the Makefile from https://github.com/sparkfun/SparkFun_Ap … Suite_BSPs

  • Permissions and groups are OK
  • Using the Arduino IDE and the SVL bootloader, this is the error:

    [10896] Failed to execute script artemis_svl
    
    Traceback (most recent call last):
    Artemis SVL Bootloader
      File "artemis_svl.py", line 393, in <module>
    
      File "artemis_svl.py", line 331, in main
    phase:	setup
      File "artemis_svl.py", line 176, in phase_setup
    	cleared startup blip
    
      File "artemis_svl.py", line 132, in wait_for_packet
    phase:	bootload
    IndexError: index out of range
    	have 7464 bytes to send in 4 frames
    
    	error receiving packet
    {'len': 0, 'cmd': 0, 'data': 0, 'crc': 1, 'timeout': 1}
    
    unknown error
    	sending frame #0, length: 0
    
    	 Upload failed
    
    phase:	setup
    	cleared startup blip
    el puerto seleccionado 	cleared startup blip
     no existe o tu placa no esta conectada
    

    The last error lines mean “The selected port cleared startup blip does not exist or the board is not connected.”

    When using the Makefile to load the sketch the infamous port-is-currently-open error appears:

    Artemis SVL Bootloader                                                                                                
                                                                                                                          
    phase:  setup                                                                                                         
            cleared startup blip                                                                                          
                                                                                                                          
    phase:  bootload                                                                                                      
            have 13240 bytes to send in 7 frames                                                                          
                                                                                                                          
            error receiving packet                                                                                        
    {'len': 0, 'cmd': 0, 'data': 0, 'crc': 1, 'timeout': 1}                                                               
                                                                                                                          
                                                                                                                          
    unknown error                                                                                                         
            sending frame #0, length: 0                                                                                   
                                                                                                                          
            Upload failed                                                                                                 
                                                                                                                          
    phase:  setup                                                                                                         
            cleared startup blip                                                                                          
    /dev/ttyUSB0 is currently open. Please close any other terminal programs that may be using /dev/ttyUSB0 and try again.
    

    If using bootloader_asb, the errors are:

    Arduino IDE

    [18321] Failed to execute script ambiq_bin2board
    Traceback (most recent call last):
      File "ambiq_bin2board.py", line 24, in <module>
    ModuleNotFoundError: No module named 'am_defines'
    ModuleNotFoundError: No module named 'am_defines'
    

    Makefile

    Makefile:126: warning: you have not defined SDKPATH so will continue assuming that the SDK root is at ../../../../..
    Makefile:134: warning: you have not defined COMMONPATH so will continue assuming that the COMMON root is at ../../../../common
    Makefile:142: warning: you have not defined BOARDPATH so will continue assuming that the BOARD root is at ../../..
    Makefile:150: warning: you have not defined PROJECTPATH so will continue assuming that the PROJECT root is at ..
    /usr/bin/python3 ../../../../common/tools_sfe/ambiq/ambiq_bin2board.py --bin bin/example_asb.bin --load-address-blob 0x20000 --magic-num 0xCB -o bin/example --version 0x0 --load-address-wired 0xC000 -i 6 --options 0x1 -b 115200 -port /dev/ttyUSB0 -r 2 -v 
    Header Size =  0x80
    original app_size  0x33b8 ( 13240 )
    load_address  0xc000 ( 49152 )
    app_size  0x33b8 ( 13240 )
    w0 = 0xcb003438
    Security Value  0x10
    w2 =  0x10008080
    addrWord =  0xc000
    versionKeyWord =  0x0
    child0/feature =  0xffffffff
    child1 =  0xffffffff
    crc =   0x944f7ce5
    Writing to file  bin/example_OTA_blob.bin
    testing: bin/example_OTA_blob.bin
    Header Size =  0x60
    app_size  0x3438 ( 13368 )
    Writing to file  bin/example_Wired_OTA_blob.bin
    Image from  0x0  to  0x3438  will be loaded at 0x20000
    Connecting over serial port /dev/ttyUSB0...
    Sending Hello.
    Received response for Hello
    Received Unknown Message
    msgType = 0x0
    Length = 0x0
    ['0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0']
    Fail
    Sending Hello.
    Received response for Hello
    Received Unknown Message
    msgType = 0x0
    Length = 0x0
    ['0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0']
    Fail
    Sending Hello.
    Received response for Hello
    Received Unknown Message
    msgType = 0x0
    Length = 0x0
    ['0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0']
    Fail
    Tries = 3
    Upload failed
    

    I’ve tested everything I found in forums and webs for days, and anything seems to work.

    Also, I find strange that the result varies depending on the method. I’ll keep investigating.

    In anyone could help, I’d be really grateful :slight_smile:

    Cheers,

    David.

    Finally I decided to try with the Redboard model. Everything works fine from the beginning.

    I understand the Blackboard are development boards and changes will appear in the final product but, as the Blackboard and Redboard share documentation and tutorials, I think the differences should be documented. It can be really frustrating spending lots of hours trying to make it work with no success.

    Cheers,

    David.

    David,

    Did you ever noodle out how to use the Blackboard products with Arduino?

    Thanks,

    Randy

    Hi, I finally bought the Redboard version, which works perfectly.

    I’m in the process of returning the Blackboard ones.

    Cheers,

    David.