This is just a thread where I can talk about the mods to the VESC motor controller required for use with Rover and subsequent robots.
So far the VESC has been a great motor controller. After making my own in 2016 and realizing I needed larger FETs to handle the high currents low speed control needs, I began to look elsewhere.
(Above, my motor controller design from 2016)
As I looked for other designs, I found the ODrive and the VESC. In early 2017 the ODrive was a new product and I backed one of the early batches. I also ordered a VESC to play with. The VESC began to work well for me, and so I have still not reviewed my ODrive board.
I did find however that the VESC needs a capacitor soldered on to it to make Field Oriented Control mode (a high precision high torque control method) work well. In robotics you often need precision low speed control, and while the VESC is used primarily for electric skateboards and ebikes, Benjamin Vedder the VESC creator has a thing for robotics too. Unfortunately FOC seems to have been added after the hardware was designed and the high rate of switching needed to make it work can prematurely drain the tank capacitors used to energize the FETS. This will trigger the dreaded DRV errors many VESC users encounter. There are many things that can cause DRV errors, but depletion of these tank caps below 8 volts is the one I found I needed to fix. It looks like I failed to take photos of the debugging process but after reading the DRV chips data sheet and probing the board, I determined that the voltage at these caps hit 8v before every fault. Adding a 10uf cap eliminated this condition, which I had been triggering on ramp up every time.
The caps c18 and c26 are too low value and adding a 10uF cap capable of above 20 volts or so (I cannot recall the exact cutoff) is important.
See those caps below:
And a modified board here:
Once this cap is added, my constant DRV issues disappeared, and the oscilloscope confirmed that the voltage here no longer dropped below 8 volts.
That’s the only mod my VESCs need. Another mod people online have done is to move some resistors around to use an SPI encoder, but there is another port on the board you can use that is faster (hardware SPI instead of software SPI) and does not require mods - just a change in a header file for the firmware.
That’s all I wanted to share for now! I will try to put my scope on a board in the future to share my findings fully.