SparkFun Forums 

Where electronics enthusiasts find answers.

Tips, tricks, & best best practices using Artemis with your board designs.
User avatar
By brandensws
#245608
We have created 3 boards that utilize the Artemis and admit I am new to this and have lots to learn. We are developing in the Arduino IDE. One of the boards we have has been routinely been getting an error when uploading.

"Artemis SVL Bootloader
Target failed to enter bootload mode. Verify the right COM port is selected and that your board has the SVL bootloader."

This error comes after anywhere from 5 to 30 successful uploads on a fresh prototype board.

We have tried all the standard things like new cords, rebooting the computer, double checking the com port..... and we can still program to other boards.
We have tried re burning the SVL bootloader per, https://github.com/sparkfun/Apollo3_Uploader_SVL the board would not accept a new bootloader
We have also manually pulled the boot pin high while attempting to upload as recommended by friend. no luck
We have slowed the upload speed to the slowest option. no luck

We are using a SparkFun CH340 Programmer. This most recent failure happened when power to the board was only provided by the CH340 programmer, 3.3v. We were using the serial monitor to verify the code being sent via BLE from our other board. The board that failed was freshly soldered today had 20-30 successful uploads and was working perfectly in all other aspects.

Our projects consist of 2 boards. Both are Artemis Powered. One consist of a 3.3v Buck converter with the recommended capacitors and resistors, a joystick and the Artemis Module. The Board that keeps failing uses the same 3.3v buck power circuit, 2 push buttons, and connectors to send data two 3 motor drivers, 2 are censored BLDC motors, and one motor is a small traditional brushed DC motor, each are on a separate power circuit. I thought that maybe we didn't have appropriate capacitors on the leads of the brushed DC motor because 2 of the previous failures accrued while tuning the PID controller for that motor. But today the failure accrued with out that board ever being connected to a motor and as I said earlier it had only been connected to the CH340 during the failure.

The other odd thing to note is the program that was last uploaded still works per that upload and we can still get serial data from the Artemis through the serial monitor and CH340 but we cannot upload with out getting the SVL Bootloader error..... this is true for every board that has failed. About 5 times. It now feels like Russian Roulette every time we upload.



In the end we have never revived a Artemis module once we get that error. We then resort to soldering together a new board . This has greatly slowed our development and we hope to resolve the issue.

Attached is the Ki CAD Files of the failing board. Sorry in advanced I am new to making boards so I hope everything is clear enough in the schematic.

Thanks
You do not have the required permissions to view the files attached to this post.
User avatar
By PaulZC
#245610
Hi,

I've taken a quick look at your schematic and board. A couple of things jump out at me.

Ideally, you want the tracks to Y1 (crystal), C17 and C18 to be as short as possible. And with a short connection from the capacitor GND pads back to pin 22 on the Artemis.

It looks like your GND paths are very obscure and convoluted. I think the board would have benefitted from more GND vias to tie the top and bottom ground 'coastlines' together. The route from the C17 and C18 GND pads goes right round the houses... You could try adding a jumper wire from C5 GND to C6/C13/C14 GND to shorten the path.

L1 looks small for a buck regulator. It that a part and circuit you've used before? I'd recommend looking at your 3.3V rail with an oscilloscope. How noisy is it? The ground path from pin 4 of U6 to the grounds on C6/C13/C14 isn't great. Ideally that would be a lot shorter.

Your board is very compact. But it would have been nice to break out the SWD debug lines (D20 and D21 plus D33 and RST) so you could attach a debugger / programmer if needed.

If something is genuinely failing, have you thought about back-EMF from your motors? Could the motor circuit be putting a nasty big spike back through the Artemis?

Sorry, that's all I've got time for...

I hope this helps,
Paul
User avatar
By CharlotteFilemdar
#245818
Based on your detailed description, here are some suggestions for further troubleshooting:

Hardware:

Power supply:
Double-check the 3.3V power supply provided by the CH340 programmer. Verify its stability and adequate current output.
Analyze the 3.3V buck converter on the failing board. Ensure proper component values and circuit layout. Consider oscilloscope measurements to visualize power integrity.
Connections:
Investigate the CH340 programmer connection to the failing board. Ensure secure and clean connections on the programming pads.
Review the Boot pin handling. Confirm proper pull-up resistor value and connection stability.
Software:

Bootloader:
Try flashing the SVL bootloader using different tools like the Mbed CLI or other programmers besides the SparkFun CH340.
Consider verifying the downloaded bootloader file integrity before burning it.
Code uploads:
Attempt uploading smaller code chunks instead of the entire program at once.
Check the baud rate settings in both the Arduino IDE and bootloader configuration.
Further analysis:

Serial monitor observations: Monitor the serial output before and during the upload attempt. Look for any unusual messages or errors from the bootloader.
Logic analyzer trace: If possible, capture a logic analyzer trace of the programming signals during the upload attempt. This might reveal communication issues or timing problems.
User avatar
By ReahaTaul
#245941
Based on the information provided, it appears that the issue might be related to the power supply circuitry on the failing board. The repeated occurrences of the "Artemis SVL Bootloader" error after successful uploads, the fact that the board was working fine when it was only connected to the CH340 programmer, and the inability to revive the board once the error occurs suggest that there might be a power-related problem.

Here are some potential causes of the issue:

Power Supply Instability: The 3.3V buck converter may not be providing a stable power supply to the Artemis module, causing it to enter an unstable state and preventing it from entering bootloader mode.
Power Surges: If the brushed DC motor is drawing large currents, it could be causing voltage spikes or transients that are disrupting the power supply to the Artemis module.
Power Supply Isolation: The separate power circuits for the motor drivers and the Artemis module might not be properly isolated, allowing noise or voltage fluctuations from one circuit to affect the other.
To troubleshoot the issue, you can try the following steps:

Check Power Supply Stability: Use a multimeter to measure the voltage and ripple on the 3.3V rail of the buck converter. Ensure that the voltage is stable and within the recommended range for the Artemis module.

Isolate Motor Driver Circuits: Connect each motor driver circuit to separate power sources to eliminate the possibility of crosstalk or interference.

Add Capacitors: Add decoupling capacitors to the power rails of both the motor drivers and the Artemis module to help filter out noise and transients.

Bypass Motor Driver PWM Signals: If the motor drivers are using PWM signals, consider bypassing them with capacitors or diodes to prevent high-frequency noise from affecting the power supply.

Try Different Power Supplies: Use a different power koows supply source to rule out any issues with the current power supply unit.

If the issue persists even after trying these steps, it might be necessary to further investigate the hardware or consider using a different bootloader or programmer.
User avatar
By CharlotteFilemdar
#247306
Your Artemis board issue sounds complex! While I can't pinpoint the exact cause, let's focus on hardware and software checks:

Hardware: Double-check connections, especially power and motor driver sections. Isolate the motor temporarily. Consider trying a different programmer.

Software: Upload a basic blink sketch and reflash the firmware if possible. Share details and KiCAD files on forums for expert insights. Finally, contacting SparkFun support with your specific scenario might be the best next step. Good luck!
SparkFun Artemis RedBoard forum: https://learn.sparkfun.com/tutorials/re ... kup-guide/online2yu/all
 Topic permissions

You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum