Sparkfun apollo3 Edge serial communication failure

Hello, my school bought a Sparkfun Edge card but I have some problems in serial communication.

I use the card with:

  • Arduino IDE 1.8.10

  • Tensorflow Lite 1.15.0-ALPHA

  • Sparkfun Apollo3 Boards 1.0.23

  • SparkFun Serial Basic Breakout - CH340C and USB-C

Through the Arduino serial monitor I have tested the echo of the CH340C and it works regularly.

When I connect Edge, the blue LED flashes, responds to Yes by changing color, the more difficult the No, but the Serial Monitor does not give any message. I can’t even reprogram Edge. I made numerous attempts changing speed, drivers, etc … but without success, Edge and Arduino do not communicate. What can I do?

Thank you

I have tried MANY different drivers for the CH340 on Ubuntu as well as on Windows10. I spend many hours trying reading the many posts about the issue and errors that other people had and trying solutions they found.

BUT I could not get the CH340 to run stable with the 921600 that you must use with the Ambiq secure bootloader. The CH340 runs stable with other boards on a lower speed without problems. I have tried burning the Sparkfun Variable loader, which enables connecting on a lower speed, but then the board was not reacting at all.

I have then bought an Adafruit FTDI Friend + extras. Changed the output VCC on the back of the FTDI from 5V to 3V3 (cutting a link and solder a new one) and that worked from the first moment with the Ambiq secure bootloader on 921600 and is still working without any problems.

… but this edge, has anyone managed to program it or is it cheating?

I’ve been struggling with this too. After hooting and hollering at the Edge guys, I learned that when you program the board, there are multiple resets that can interfere with serial communication. The board is not currently shipped with our upgraded bootloader, but I was given the secret handshake to become part of the Edge Programmer club. I will now share the magic sauce with you. See below:

If you have purchased an Edge board direct from the factory:

Open Arduino

Update to the latest release of the core using the boards manager

Select your Edge board from the boards menu

Ensure the correct port is selected

Ensure the Ambiq Secure Bootloader Baud Rate is correct

In the ‘Tools’ menu select ‘Ambiq Secure Bootloader’ as the ‘programmer’ option

Push “Reset” on the board, and while holding that down, push the “14” button.

Let off the “Reset” button, but keep holing “14”

Click ‘Burn Bootloader’ from the tools menu (still holding the “14” button)

When the bootloader is done burning, you can let go of the “14” button.

NOW! In Tools-> BootLoader, select SparkFun Variable Loader(Enable with Artemis Bootloader)

The Upload feature in Arduino will now work for this and all subsequent Arduino Sketches (no more button pushing!)

madalosso - the Edge was our first foray into the Apollo3 microcontroller and its special bootloader issues. That’s why the Artemis modules are set to use 115200 for the ASB (which is a safer fallback). I bring this up because, if you want, you can actually change the configured baud rate of the ASB on your Edge board. You will need a debug probe such as a J-Link EDU. If you are interested I can provide more detailed instructions.

Paul - good point. More expensive USB-serial bridges may perform better than the CH340C. There is, however, a general consensus against FTDI at SparkFun because of some shady proprietary stuff they did in the past. (Before my time)

Very well ell C, now edge is up and running. The USB baud rate must be set to 9600 baud!

Thanks, you have saved the students!

ell C:
I’ve been struggling with this too. After hooting and hollering at the Edge guys, I learned that when you program the board, there are multiple resets that can interfere with serial communication. The board is not currently shipped with our upgraded bootloader, but I was given the secret handshake to become part of the Edge Programmer club. I will now share the magic sauce with you. See below:

If you have purchased an Edge board direct from the factory:

Open Arduino

Update to the latest release of the core using the boards manager

Select your Edge board from the boards menu

Ensure the correct port is selected

Ensure the Ambiq Secure Bootloader Baud Rate is correct

In the ‘Tools’ menu select ‘Ambiq Secure Bootloader’ as the ‘programmer’ option

Push “Reset” on the board, and while holding that down, push the “14” button.

Let off the “Reset” button, but keep holing “14”

Click ‘Burn Bootloader’ from the tools menu (still holding the “14” button)

When the bootloader is done burning, you can let go of the “14” button.

NOW! In Tools-> BootLoader, select SparkFun Variable Loader(Enable with Artemis Bootloader)

The Upload feature in Arduino will now work for this and all subsequent Arduino Sketches (no more button pushing!)

Thanks for this ell C! I was about ready to give up. This should be included in the Edge/Arduino IDE tutorial, it would eliminate a lot of frustration.