Revolution firmware
« on: December 31, 2021, 09:32:19 pm »
I installed Ardupilot BL and Firmware in the Revolution board, it was running OK. Now I want to return to Librepilot, I can use df_utils to load the bl_revolution.bin and the ef_revolution.bin, but when connect to librepilot it doesn't recognize the board. I tried to Rescue and to "Upgrade and Erase", but then I connect the board, it seems to run OK, but the librepilot software tell me a timeout. How can I recover the board to use in Librepilot? Thank you in advance.

Re: Revolution firmware
« Reply #1 on: December 31, 2021, 11:37:56 pm »
"Manual Method" on this page should work.  Be careful to do exactly as said.  Disconnect, then click button, then connect.  Maybe even do this with "erase settings" before "upgrade".
https://librepilot.atlassian.net/wiki/spaces/LPDOC/pages/5669026/Firmware+Tab#FirmwareTab-Manualmethod

Re: Revolution firmware
« Reply #2 on: January 01, 2022, 09:29:31 am »
One other point to make.  ef_revolution.bin is "entire flash", so bootloader and firmware.  Once you flash this, the board should boot up and LEDs flash like normal; if not, then there was something wrong with the flashing and you should figure that out first.

Re: Revolution firmware
« Reply #3 on: January 01, 2022, 07:26:42 pm »
That is the problem, the manual method should work, but it doesn't. I select Rescue or Upgrade and Erase, but the board is not detected by the GCS, with the message "Timed out while waiting for a board to be connected!".

The current status of the board when I connect the USB cable is:
- In the device driver administrator, it appears the USB device "Revolution". No COM port appears.
- The leds when connect the USB cable: solid green +
(1) solid blue, for about 5 seconds
(2) slow blink blue and orange by about 3 seconds
(3) fast blink blue and orange by about 10 seconds
(4) slow blink blue and orange until the USB cable is disconnected.

I have followed exactly the instructions to flash the bl and fw with the dfu_flash script. The board worked properly with arducopter firmware, the probvlem is that the GCS doesn't found the board. I guess if it could be something related to windows drivers and windows 11?

Re: Revolution firmware
« Reply #4 on: January 02, 2022, 03:43:25 am »
Some things to try or think about.

Do those LED flashes look like Arducopter or LibrePilot to you?  The slow fade on off blue is what a bootloader does when it does not have firmware to run.

Have you tried the ef_revolution.bin?  That should make the Revo completely bootable and able to connect to whatever version of LibrePilot GCS matches the ef_*.bin

Did you do "manual mode" erase settings?  I would do that.

Be aware that there is a big difference between bl_* and bu_* bootloaders.

Just wondering if you built these firmwares and bootloaders yourself or if you have tried something from librepilot.org?  :)

You might try flashing the BL_revolution.hex using Arducopter GCS.

Have you tried a different USB cable?  A PC with a known working LibrePilot GCS?

Re: Revolution firmware
« Reply #5 on: January 02, 2022, 06:56:08 pm »
I tried the ef and bl bin files, and the rescue and upgrade annd erase options, in no case the GCS recognizes the board.
I didn't build the FW by myself, I tried using the exxisting 15.09 and 16.09 versions.  I tried as well a different USB cable and port. With my PC I used the LP CGS properly with the same board before I flashed the Arducopter firmware. After that, it is unable to connect the board to the LP CGS, but still works well with Arducopter.

"You might try flashing the BL_revolution.hex using Arducopter GCS". I have flashed the "arducopter_with_bl.hex" file, and I am running arducopter good. Is there aa hex file for librepilot bl?

I have no more ideas, so I guess the board must have some HW failure preventing the connection to LP GCS, however it is working with Arducopter and QGS. Anyway, thank you for your support. By the moment, I'll keep running Arducopter.

Re: Revolution firmware
« Reply #6 on: January 02, 2022, 10:50:09 pm »
As I recall, 15.09 has a different bootloader than 16.09 (and higher).  This could be confusing things.  I suggest that you use 16.09 (everything: bl, firmware, GCS) exclusively.

You have a regular, OpenPilot Revolution (or Revo Mini with external oplink connection), correct?  Not Revo Nano.

First, I suggest that you look for a way to erase settings, flight logs, etc. flash memory from ArduCopter GCS, then here is a 16.09 bl_revolution.hex that I built for you to try to flash with your Arducopter GCS.  Let me know if Arducopter can flash it.

Then you will need to do the manual method with 16.09 GCS to flash the firmware after putting this on the Revo.  Use the firmware built into the "upgrade and erase", not a download version.  You probably do this anyway.  I'm just being complete.

I recall that user KarlA has experience with ArduCopter/ArduPilot.  You could Private Message him for advice, but please talk about it here on the forum so others can benefit from the answers.  :)
« Last Edit: January 02, 2022, 11:14:34 pm by TheOtherCliff »

Re: Revolution firmware
« Reply #7 on: January 05, 2022, 01:52:59 pm »
Yes, I have the OP Revolution board. I tried both, bl 15.09 and 16.09, without success.

I flashed without problems the attached hex bl with the STM32CubeProgramer tool, then the board shows slow fading blue led, I guess this is a correct BL without FW. However it doesn't connect to LP, so I cannot flash the FW with "upgrade and erese" neither with "rescue". Then I flashed BL and FW with DFU utils, the board doesn't connect to LP as well.

So I have no way to connect the board to LP, I assume I have either a HW problem or a windows 11/drivers problem. However the board is working properly with Arducopter.  :-\

Thank you for your kindly support and answers. I'll post again if I find a solution.

Re: Revolution firmware
« Reply #8 on: January 05, 2022, 05:01:40 pm »
Once you have slow fading blue LED, you carefully follow exact instructions from Manual upgrade:
- Disconnect Revo from USB leaving the board unpowered
- Do not plug Revo into USB until told to
- Click "Upgrade and Erase"
- Now it tells you you have 20 seconds to plug Revo in to USB
- Plug Revo into USB
- Wait for firmware to be flashed / follow the instructions on GCS

Re: Revolution firmware
« Reply #9 on: January 05, 2022, 05:17:32 pm »
Yes, I followed the instructions step by step. After connecting the USB, the board is recognized by the PC device driver admin., but not by LP, it goes to timeout everytime.

Re: Revolution firmware
« Reply #10 on: January 06, 2022, 08:30:52 am »
Are you using 16.09 GCS?

Could be a Windows driver problem.
https://librepilot.atlassian.net/wiki/spaces/LPDOC/pages/12812343/Troubleshooting

Do you or a friend have a PC where it is known to work that you can try?

Re: Revolution firmware
« Reply #11 on: January 18, 2022, 11:39:29 pm »
I am using GCS 16.09. It is supposed that when I connect the board to the USB port, a new "USB composite device" must appear in the Device Driver administrator, but it doesn't appears, only appears  "Revolution" in the "USB Devices" section . The board beeps every 5 seconds, the blue led goes out for a second, and and the DD window refresh, it seems that it is trying to connect but it doesn't, the beep repeats every 5 seconds, forever...

My next step is to replace Windows 11 with a fresh windows 10 install, I'll keep you informed of the result.

Re: Revolution firmware
« Reply #12 on: January 19, 2022, 07:01:18 am »
The board beeps every 5 seconds,

the blue led goes out for a second, and and the DD window refresh, it seems that it is trying to connect but it doesn't, the beep repeats every 5 seconds, forever...

Revolution boards don't have a beeper, so I guess you mean that everything is connected to the board and that the motors are beeping via the ESCs.  I mention this in the unlikely case: if the board has a beeper, it is not a Revo.

Blue LED goes out every 5 (to 7) seconds is a sign that the code has locked up and the watchdog has rebooted it.  In my personal experience, this is usually caused by invalid/conflicting settings, or incorrect wiring.

Just some info: I would not think it likely that Windows 11 would cause a Revo lockup (and thus the 5 second boot loop).  I have not heard of anyone trying Windows 11, so it is possible that it doesn't work, at least without some setting in Windows.  I recall that some previous versions of Windows had some backward compatibility (previous Windows versions) mode settings.

With problems like this it sometimes helps to try a different USB cable or to completely uninstall and reinstall GCS.  Also the wiki has some troubleshooting steps to remove the driver.  I know you have tried some of this already...

Try the following and report back:
- disconnect absolutely everything from the Revo leaving it unpowered and no USB connection
- do not plug in Revo USB until told to
- run GCS and go to Firmware tab
- press Rescue and follow the instructions to plug in Revo USB
- after a few seconds (say less than 10 seconds), some of the grayed out buttons become active
- press Safe Boot and see if that lets it connect

Did Safe Boot become active or did Revo continue to do blue LED 5 second boot loop?  Did Safe Mode allow you to connect normally with GCS?

Re: Revolution firmware [SOLVED]
« Reply #13 on: January 19, 2022, 06:09:01 pm »
The beeps I menctioned are not caming from the board, but from Windows when the board is connected/disconnected. And the Safe Boot didn't become active before. But...

Finally, I got the board connected to the CGS and working under Windows 11 !!!

What I did was: a clean install of Windows 10. Then I instaled LP CGS 16.09, and the board was successfully connected to the CGS. The BL was v6 and the FW was v15.09. I upgraded the FW to 16.09 with no problem. Just to be sure, I made a new DFU installation of BL and FW with LP DFU Flash, and then upgraded again the FW to v16.09.

After that, I made a new clean installation of W11, and installed LP, now the board is connected to the CGS and it seems to be working properly.

I guess that the problem could be with the device drivers: when I installed W11 by the first time, it was not a clean installation, but a migration from W10, and maybe that some drivers in W11 were inherited from W10 and not installed properly or get corrupted; then when I connected the board, I didn't had a COM port and a USB composite device. Now with the clean W11 installation, the board is recognized and working fine,  and those COM and USB devices appears in the DD Admin.

So, thank you for all your hints and support, it may be in the future some guys can benefit from this experience. My conclusion: I recommend a clean installation of W11 over a migration from W10.