Can't Update Spark Max Firmware

So long as devices are powered and on the same CAN Bus, you should be able to see them in the Network tab, regardless of the firmware they are running (so long as the device you are connected to via USB-C is running firmware v1.5.0 or later). Devices in Recovery Mode will also show up in the Network tab but only when connected over USB-C.

1 Like

Right. Our firmware was from last year (version 1.0.43) so it has to go in recovery mode to update the firmware. I just don’t understand why it went back to the previous firmware version after it said it successfully updated the firmware. We tried it many times, and magically, it works once after doing so for like 20~ times. Is there a better way to improve consistency?

We know the process from going from the oldest firmware is not as smooth as we would like in the new client. It works, but there are some windows driver things that are a challenge. This is something that we are still working to improve, but at the point that everything is at 1.4 of above those issues all go away.

An easy method is to update firmware on the controllers with the old client before you update the client. This is a fool proof method.

The issue is caused by changing the way that we implement the usb connection prior to 1.4, which is related to getting the usb can bridge working.

If you have any issues, you can always reach out to us, and we will continue to work on making the user experience easier.

Greg, do you have a more explicit set of these instructions to use the old client anywhere? I am a befuddled mechanical engineer, trying to bring up spark maxes we bought last year, have the same symptoms and need a little bit more detail then 1 sentence on Chief to figure out what to do. (I also emailed your support yesterday, maybe they have a nice PDF already)

We struggled for a few days with one of our 18 SparkMax controllers trying to get it to the latest firmware. Rev support was fantastic in helping us out.
The bottom line was … the included USB-C cable was flaky!!

Motivated by a post here on CD, I tried a different USB-C cable and had success updating to the latest firmware using the 2.1.1 client on the very first try!!

Sure, no problem (that was the best I could do from my phone).

The version of the firmware you have on your MAX is the oldest one out there, it shipped with the first batch of controllers. Unfortunately this means that each one needs to be updated through DFU mode for each MAX. This video https://www.youtube.com/watch?v=Rqy5ME1NJQk goes through that process step by step. Download the old version of the client here http://www.revrobotics.com/content/sw/max/client/spark-max-client-setup-1.0.0.exe

The only change I would make to this process is to directly install firmware 1.5.1 when you select a firmware file. You can download that firmware from here https://www.revrobotics.com/content/sw/max/firmware/SPARK-MAX-FW-v1.5.1.dfu

You will see a message that it was successfully installed, but the old client won’t be able to connect to them. Once you do all your max, update your client to the latest version and you will be good to go. The new client is here http://www.revrobotics.com/content/sw/max/client/spark-max-client-setup-2.1.1.exe

3 Likes

typo in the url… http://www.revrobotics.com/content/sw/max/client/spark-max-client-setup-1.0.0.exe

3 Likes

All of below has been checked against 3 different USBC cables (stock orange, random grey, Pixel brand. TL;DR :frowning:

Tried following instructions to 1.5.1 using Recovery mode and 1.0 client… still failed.

Pulled the 1.4.0 firmware down by editing the URL myself (couldn’t find a direct link)
https://www.revrobotics.com/content/sw/max/firmware/SPARK-MAX-FW-v1.4.0.dfu

Had to use “Show Hidden Items” in the Windows Explorer in order to move the firmware from my Downloads folder into the folder that the Client 1.0.0 pulls firmware from

(I moved the 1.5.1 back to my Downloads folder, because I don’t know what 1.0 Client will do if it sees multiple firmwares.)
I then restarted the Client so it would grab the 1.4 firmware. But… At this point the 1.0 client stopped recognizing/connecting to the SparkMax. I have re-installed the 1.0 client from the .exe, and tried both USB-C cables. So back to Client 2.1.1. Good news(?), it reconnected.

At least this time it realized it failed?


Attempted from recovery mode directly to 1.5.1

Attempted from “device not configured” to 1.4.0, failed & suggested recovery mode

Attmempted from recovery mode to 1.4.0 on Client 2.1.1 AND THANK THE LORD

1.4.0 to 1.5.1 was… not smooth. I had it at 1.4.0 and, tried the normal device firmware update, then this happened: we’re back to “not configured”


Tried going directly to 1.5.1 from here, using manual recovery mode on the 2.1.1 client.


And we’re back to Device is Not Configured

OK, deep breath. Disconnecting & going back to the 1.0 Client.
Reinstalling 1.0 is painless, but I can’t see the controller. I guess this is a good thing?

Back to 2.1.1 and I can see the controller again. Still “needs configuration”. Doesn’t successfully update to 1.5.1 in standard mode.


Thinks it updates to 1.5.1 in manual DFU recovery mode

Shows “needs configuration” afterwards

Figured I might as well try the 1.0 client again.
Still doesn’t connect, but I found out that even if the device is not showing as “connected” in the top bar, I can still initiate a firmware update to 1.5.1, that the 1.0 Client believes is successful. The client doesn’t connect afterward.

Back to 2.1.1!
Connects (good news), thinks isn’t configured (bad news) :frowning:

1 Like

It took me a bit to realize, not configured just means it still has the default of can id 0. If you go and change the Id of the device to not be 0, it will be configured. I don’t know if that’s on the docs page, but it’s what I was able to figure out.

3 Likes

…that’s rad. Thank you for reading through all my screenshots!
AND IT FREAKIN WORKS
image

1 Like

Yeah, I think it’s confusing that the firmware says not configured in that case. Really needs another tab, or to show that message in the can id window.

2 Likes

Making this more obvious is on our improvement list. It does flag the CAN ID field in the Basic tab, but we should also flag it on the Network list.

@s-neff, apologies that it took so long to get you up and running. Seeing the “not configured” screenshot made it click, @Thad_House beat me to it. Now that you’re up I suspect things will go a lot smoother.

2 Likes

IT SPINS!! :dancer: :dancer:
(The Neo550 has SO MUCH POWER! Love this little beast!!)

Related, I couldn’t update the CAN ID before I updated the firmware (some kind of failed call idk if I got a screenshot), so I didn’t think that it was possible to update the CAN ID and clear the error… until I had the firmware working. Which it didn’t look like, because I was misinterpreting the CAN ID error!

Thank you everyone! Deeply appreciate both Rev’s weekend factory support and Thad chiming in with the bits I missed

EDIT: I think it’s possible I was already at 1.5.1 partway through my first screenshot in the long post, and then when I hit “continue” in the Client 1.0 Firmware Update pane, it couldn’t find the SparkMax anymore and I got sad and went down the rabbit hole immediately - where I could have hopped back into Client 2.1.1 and maybe set the CANID and been done?

Yep. As soon as you updated the firmware the older client couldn’t make a connection to the new firmware USB device.

1 Like

Thx so much for the help!

We had a similar issue today. We just got our SPARKs today and I was attempting to update them from FW version 1.4.0 to 1.5.1. When I tried updating the firmware, it failed and suggested recovery mode. I followed the instructions on the REV website for putting the MC in recovery mode, but the client software never seems to be able to detect the SPARK MAX (the LED indicator isn’t on as expected, and I know the PC has detected the MC). No matter how I push the rescan button it just can’t find any MCs in recovery mode.

I have tried restarting numerous times but I was never able to upload the firmware correctly or detect the device in recovery mode. Also, often the error message “SPARK MAX server network issue: check that the backend server is running or restart the program” just randomly shows up, and restarting the client doesn’t always fix it, so I had to restart my computer to get rid of it.

I will try to do it again with my computer tomorrow, and also try it on a different machine, but meanwhile does anyone know how I can fix it?

I just want add that Power supply noise can also be a possible causes for connection problems over CAN .

I had the same issues with updating firmware as described above, but it got mixed up with another issue of power supply noise.

The OMRON power supply I was using was generating noise on the CAN line and it gave me some problem connecting and disconnecting controllers every few seconds.

I went to a Benchtop LAB powersupply and the problem went away.

Take note that if you’re running the controllers on battery only, you should not have this problem. But on a test bench with a switching power supply, this might be one of your problem.

When you put the device in recovery mode, the LED on the controller will not turn on, even when it is plugged in. To confirm that the device is in recovery mode when it’s connected to a computer, open the Device Manager and look for “STM32 DFU Device” or something similar. The Client will show devices in recovery mode on the Network tab. Can you confirm this is the case with the devices you’ve placed in recovery mode? It’s important to note you cannot update a device in DFU mode over CAN, only USB. That means the device in recovery mode should be directly connected to the computer running the Client.

Since the LED isn’t on when the device is in recovery mode, or when it has corrupted firmware, it can be difficult to know if the device has properly been put in recovery mode. I would also confirm that you’re running Client v2.1.1 and have the correct drivers. If you’re still having issues, I also recommend reaching out to REV support.

Thanks for the help! I tried it again today on a different laptop and after several restarts it magically started working. Still have no idea what was going on last time though. I didn’t check the device manager, but I was sure it was connected to the computer somehow, since the sound for new USB device played when I plugged it in. The client’s network tab never showed anything though. Fortunately I was able to update the F/W on all of them today successfully.

I had more problems today. When I am updating one that needs to go in recovery mode, I tried to set the CAN ID from 0 to something else as @Thad_House said . However, the Client prevents me from doing so by saying “There was an error in the SetParameter call: Invalid parameter access mode” What should I do?