I’ve tried following every tutorial I can find, but the spark maxes never show up under the network tab in the client. I’ve tried putting the sparks into recovery mode, redownloading the client, and changing computers but nothing seems to work. Does anybody know how to resolve this?
I assume this means you have never been able to connect to a Spark Max from the factory and update the firmware ?
Try this sequence if you haven’t already:
(Don’t skip or wave off any of these steps. Do them all in this order)
- Turn of all robot power to all Spark Max’s
- Disconnect the USB C cable from the Spark Max controller
- Quit the REV SPARK MAX Client
- Restart the REV SPARK MAX Client, wait for it to startup completely (grey window at the top will show “NO DEVICES”)
- Connect the USB c from your PC to a single Spark Max
- Press SYNC (circular arrows next to the grey “NO DEVICES” box at the top left) on the REV SPARK MAX Client
- Does an entry (“ID 0 Spark Max”) appear in the shaded field to the left of the SYNC button replacing “NO DEVICES”(and does the CONNECT button at the top right become active, i.e., turn white)?
- If it does, then click the Connect button and give it time to connect.
- Does the Basic tab get populated with data (and the CONNECT button has changed into a DISCONNECT button)?
It seems like this solution worked (the spark showed up in the network tab), however every time I disconnect the USB and reconnect I have to go through this whole process again, and additionally it seems to disconnect on its own if I leave it too long. Is the client supposed to be this finicky?
Edit: Now I can’t sync to it at all, even after following the steps. When I click sync it loads for about a half second before stopping, without connecting to the spark.
Can you verify you’re using windows 10?
Yes, I’m using Windows 10
Edit: With a lot of unplugging and turning off and on again, I was able to update the firmware on 4 of the 6 sparks, but I can’t connect to the last 2 no matter what I do, even after putting them in recovery mode. It seriously feels like the client is broken, but I don’t know if this is normal or not.
Try using version 1 of their client. You can get it from their github. Their clients are extremely flakey. We had to use the old client to flash two of ours. After flashing, the old client may not be able to see them so you’ll have to go back to the new one.
I have had the same problem all season. the trick is ensuring that all your Sparks are on the same version(and if not update them to 1.5.1). the tricky, part as @Tom_Line stated is with older firmware versions the newer user interface does not interface with the outdated sparks. so if you have a spark on version say 1.4, you will need to update it to version 1.5.1 using the old user interface for updating the sparks.
IMPORTANT: Also note that once the sparks are updated to 1.5.1 they will not show up on the older user interface when you attempt to connect to them.
all in all, your goal should be to get them on the same version(1.5.1) and have all your sparks listed in under the network tab(on the newer user interface when your robot is turned on. all before you even start assigning can IDs. its a pain but I mean c’mon… NEOs are great.
The latest version of the client is capable of installing firmware for older versions. The reason for the change is that firmware versions <1.5.x used a specific serial port driver, and has not performed as well as we had planned, especially when talking to other devices on the CAN bus. Firmware v1.5.x and newer moved to a different driver which relies on a generic (built-in) Windows driver, and can keep up with the requirements to send/receive from the CAN bus at a high rate. This driver is available in the latest Windows 7 updates all the way through Windows 10.
Recovery mode also works with this version of the client, you just have to press the sync button after entering recovery mode to see the device.
There has been some reported issues on certain machines with the old driver that we are working through, that appear to be a regression from the previous client. However recovery mode still works as noted above. In all cases it is expected to be able to see the device in the Windows Device Manager.
If you have devices with ID 1.4, the client can see and update these over CAN to make things easier. To do this you only need one at 1.5.x to act as the ‘bridge’, and on the network tab you can select all devices 1.4.0 and newer to update.
Please forgive my ignorance, but do the controllers need external power and/or be part of an existing CAN system (plugged into the Rio and the PDP for the usb to CAN system to work?
yes. you can also individually plug into sparks to image them without external power and adjust settings for the one you are plugged into.
Powering the SPARK MAX over just USB is enough to use it to ‘see’ and interact with the CAN bus, but not enough to drive a motor with it. So yes, you can update firmware, set parameters etc. as mentioned.
You can create a CAN network without the roboRIO/PDP by adding your own terminating resistor, I had posted an example setup our team used to prototype here REV FRC 2020 Kickoff Updates.
That is so cool. Do you have a fuse inline besides the breaker?
We do not. It would be nice as a backup, but its a number of steps safer than plugging a battery in directly to a CIM or similar.
So do you have any tips for making this work? I’ve managed to get them all updated now (with much difficulty) but I’m trying to get back into a spark to change it from coast to brake and the client can’t find it, even though I’ve connected to it before. I know they’re all using firmware 1.5.1 because I’ve already updated them, yet the best I can do now is connect to the CAN bus for a few seconds before it loses connection on its own.