Great info above - many thanks. I have been using a pair of flipsky 75100’s in our 250kg rover mower and they have been excellent. I’ve used the “PPM” aka PWM connections from the FC to the ESC’s and no drama. I have read ive greated a potential ground loop, but again no drama so far.
A new pair of 75100’s just arrived for a new project, so im looking to connect via CANBUS, as chaining the ESC’s wil resolve the potential groundloop issue.
Anyone got canbus working with these ? I may need to update the ESC firmware from v5.2 (per doco) to something more recent to fix eRPM and maybe reverse issue. Any pointers appreciated.
I use these for my deck motors on my mowers and I control them (forward only) with CAN. Pixhawk 6C + Ardurover. Fixed my groundloop issues! Given that yours are from the same shop, I suspect yours will work.
For my traction motors I use these 1x VESC 6/75 - £250 each and I also control them with CAN, including reverse.
Incidentally I also have a waveshare CAN hat on my raspberry Pi companion computer to permit the companion computer to receive the status messages those controllers publish.
Thanks for your answer Chris - perfect timing.
I put 2x new 75100 VESC’s onto our newer bigger (sadly slower) mower, configured them up (sensorless) using PPM and got some poor behaviour. Not sure why but the skid steer mower would circle instead of track straight sometimes. Wiring, or motor config, groundloop - i dont think so, even though i have 2 ground paths via the two ppms-controller-motor pairs but all at low 28v max. Anyways - to save debuggng pwm / groundloop im diving into Vesc uavcan ↔ ardupilot dronecan configuration.
Finding Vesc - Ardupilot documentation is a little challenging, however
Connecting 2 pin Vesc Can connector pins CAN-H and CAN-L to my Zealot’s 4 pin can hub ports
(noting 30+ volts across the can-l and can-h pins into the FC - could end badly … )
Setting mission planner CAN_P1_DRIVER 1 and CAN_D1_DRIVER 1 CAN_P1_BITRATE 500000
setting VESC to UAVCAN protocol - scan canbus shows no traffic none in devtools either
Mission Planner DroneCan inspector now shows bus traffic - Node 47, so i added CAN_D1_NODE 47
In mission planner after a bit of mucking about - now getting CAN data (joy)
Update : Seems it was all working - i just didnt have the safety switch available, my disabling hw savefty’s wasnt good enough. Once i connected the safety switch, i now have full ESC control for skid steer
esc1_voltage
esc1_current
esc1_temperature
esc1_rpm - which only reads in the forwards direction. Reverse rpms are always 0. No biggie.
Forwards and Reverse control
I’ve wired up a Y cable for the canbus - tomorrow i’ll map up the 2nd VESC over canbus, then mow baby mow.
and for the sake of documentation -
Ardurover is now 100% for skidsteer with 2x Flipsky 75100 Vesc’s. Forwards/Reverse and turning.
canbus with Y Cable linking 2x VESC to “CAN splitter board” and into the CAN port of th Zealot FC
notes
always ensure Filters are turned off in the FOC tab - magic smoke problems elsewise
set canbus speeds to match - 500K baud eveyrwhere for me
set Vesc protocol to UAVCAN - there is no dronecan.
set Vesc can ID to the servo/motor channel to use as ESC i used ID 0 and ID 1 Update: Dont use can Id 0 : telemetry worked initally then stopped - changed to ID 1 and ID2
set Vesc ESC index to the ESCn numbers in ardupilot i used 0 and 1
i set the VESC canbus throttle mode to “Duty Cycle” - it seemed to work well
Im away from the mower - so Mission Planner can_ parameters from memory
CAN_P1_PROTOCOL 1 (dronecan)
CAN_P1_DRIVER 1 (driver 1 assigned to port 1)
CAN_D1_UC_NODE bitmask - selecting 0 and 1 as ESC’s Update: Dont use Id 0 : telemetry worked initally then stopped - changed to ID 1 and ID2
CAN_D1_UC_ESC_BM bitmask 0 and 1 from memory
CAN_D1_UC_ESC_RM bitmask 0 and 1
SERVO1_FUNCTION to 73 (Throttle Left)
SERVO2_FUNCTION to 74 (Throttle Right)
hints and observations.
I couldnt find much doco around - but setting the canbus ID to 0 and 1 made servo channels 1 and 2 start to work. I spent a bit of time trying how to map ESC1 to Vesc node 47, but thats not how it works. Update : As above Dont use Can Id 0 as the telemetry stopped working on it for me. I moved to ID 1 and ID 2 and now both telemetry and control work fine.
SLCAN ate and flooded my telemetry bandwidth. Setting it from 1 to 0 restored things.
Definately have your rover off the ground. I had an uncommanded full throttle. On a 300kg mower it would have been a problem if it was on the ground. This is how i found the Vesc’s ESC index is 0 based.
zero RPM is correct for ch1out 1500 - mid throttle.
I had odd behaviour with servo (pwm) range extended 950-2050 with 1500 midpoint. Direction of track reversed at full throttle. >2000 . Reset to standard 1000-2000 and all good.
@KiwiPaul - I am following yourself and @Christopher_Milner using the flipsky’s and trampa equipment. This is also my first time wiring up, using CAN. I am trying not to blow ports before I even start
Question on CAN wiring harness. I am joining the CAN1 port on the pixhawk to the 2 x Flipsky’s. I am only using the CAN-H and CAN-L cables (Not using ground and positive cables). I have wired all of the CAN-H’s together and I have wired all of the CAN-L’s together. Do I need to join the CAN-H branch to the CAN-L branch using a 120ohm resistor.
Thanks in advance.
I connected 3 flipskys (controlling my deck motors), 2 vescs (traction motors), 1 pixhawk and 1 waveshare can hat on a single CAN bus (i.e. all CANHs connected together and all CANLs connected together) and didn’t need another 120 ohm resistor and it worked fine. I have my can configured at 1mbps. If I were you I’d measure resistance from CANH to CANL using an ohm meter and assuming you measure somewhere less than 100 ohm or so I wouldn’t add another resistor. Also the presence/absence of that terminating resistor is quite unlikely, in my experience, to fry your equipment. The presence/absence of that resistor may affect the data transmission, so, if you’re seeing dropped data or packets, then, perhaps try it and see if it helps.
I am using exact same setup for my project. Thanks to @kiwiPaul I can control my rover motors with two independent VESC75100s. However, when I power up pixhawk and VESCs, as soon as boot up, motor starts spinning automatically. Once I arm the pixhawk then motor stops and move only on the manual input. Did anyone face this issue before? It is confusing. Please help.
Thanks in advance!
hello, I would like to use this type of ESC on my mower, can you confirm that it works correctly via canbus and pwm, I have a pixhawk 5x.
I’m starting from a small chassis (yardforce SA900eco) so the weight here is really light 10kg max. There are already motors with gearboxes installed but I’m only missing the ESCs and I’ve been looking for something for a long time, the VESCs look really good for this type of use.
Hi, I have been in this stage, and now I’m using Flipsky Vesc in my rover project. And it’s working well. I’m using Pixhawk Cube Orange + PPM interface in VESC. and also reading data from VESC to my CPU using Python, check out this video, it was helpful for me. @Pepeuch it supports CAN and PPM as well.