Cheap FOCer 3 (Open-source, Low-cost, VESC 6 based ESC) (In Development)

There are two ways to go, and each has their pros and cons. The simplest way is to simply make a Y-cable for the PPM signal that comes from your receiver. One branch of the Y will need power, ground, and signal. The other one needs only ground and signal. Do NOT bring a power line to both CFOC’s. Now your receiver plugs into both units.

Alternatively, you can control one CFOC with your receiver and control the other over the CAN bus. If you use the CAN bus, both CFOC’s have to be on the same power supply and come up together. Also, make sure and run ONLY the two data wires of the CAN bus. Do not run the CAN power and Gnd leads.
If you use CAN bus, you’ll also have to configure the CFOC’s accordingly.

@ziploc Could you clarify some of the pros/cons of dual wiring the remote vs CAN bus? If we’re using a UART based receiver do you have to use CAN bus or could we dual wire just the receiver UART TX? Is losing sync over CAN bus a common issue?

The upside to making a Y cable is that it’s simple, and in some ways more robust. If you have one CFOC fail, you can still limp home on the other (although you would have to swap the ends of the Y in the worst case depending on which one fails and whether you have to pull its power). One downside to the Y-cable is that you can occasionally end up in a situation where one is braking and one is in reverse if you’re using the reverse feature. Another downside is that you can’t do fancy things like traction control.

I’ve run both ways pretty extensively. I’ve blown enough stuff that I’ve decided to go low-tech for now and use the Y-cable. My board is an off-road board, and I carry a backpack with spares. The list of spares keeps growing. I’ve got nuts, bolts, bearings, chain links, tools, inner-tubes, and now I even carry a spare CFOC.

1 Like

@ziploc Interesting I found this at VESC Project while trying to find out more about Y-wiring vs using CAN bus between twin ESCs.

Never connect a receiver or other devices to multiple VESCs (e.g. Y-PPM). Use CAN-Bus instead.

Only connect CANH and CANL In the CAN connector. 5V and GND should be left unconnected.

Failing to follow these instructions may damage your VESC (s) permanently.

I assume the concern is creating a Ground Loop between the two VESC’s if the battery ground and the receiver ground aren’t the same. Although I could also see how without a solid ground between the ESC’s you could also experience loss of sync.

Yes, I think you want a common ground for battery, receiver, and both VESC’s. And my recollection (I don’t recall where I read it), is that both VESC’s should effectively be hardwired together for both power and Gnd. You don’t want one coming up before the other. Presumably, you could potentially push a ton of current through the CAN bus or the Y-connector otherwise.

without a solid ground between the ESC’s you could also experience loss of sync

I’m not sure what you mean by “loss of sync”.

@shaman I’m curious would a single microcontroller with two gate drivers instead of twin VESCs result in a significantly cheaper/smaller BOM/build for most, excluding one wheel applications?

@ziploc I’m coming from pre-built Boosted and Summerboard, so I’m still learning about DIY esk8 and VESCs. I saw this from @SpeedDemon and I’m not sure how common of an issue it is, but he had to swap out twin MakerX Go-Foc Minis for a dual Xenith due to CAN bus issues.

Having the two independent vescs turned out to be a bad idea. I kept getting CAN related issues where one esc would stop being detected and I’d have to do a firmware reflash to fix it.

3 Likes

I’m certainly no expert on CAN bus, but following best practices (both VESC’s share ground, power up together, lift power and ground on the CAN bus), mine always seemed to work fine. One thing I never did get worked out is reading data from one VESC through the UART of the other. But I imagine I just had the commands wrong. In the end, that was a big part of why I went back to a Y-cable for the PPM.

1 Like

It’s possible to use a single controller to run 2 motors in a dual config. The stormcore does this. However the particular variant of the STM32 MCU that is used for this is very expensive right now. I haven’t seen it offered at a reasonable price anywhere. So no it’s not currently cheaper to go that route

1 Like

I had issues with this particular setup. The lack or reliability wasn’t worth my time to fix. Switching to a dual unit esc turned out to me more reliable and far more compact. Just cuz I couldn’t make it reliable doesn’t mean that it’s impossible. If you really want separate escs over CAN then I’d suggest looking up other people’s builds that use separate escs over can then copying their setup. Or consult someone that’s done a 4WD build.

@shaman is it possible to buy an early unit or become a beta tester at this point, my fs75100 is not behaving well with the external imu and it started having other issues. I would like to install cheap foccer in my onewheel pint build, but my cfoc2 can not take the 15s voltage.

I would like to get something reliable.

1 Like

:face_with_raised_eyebrow: :face_with_raised_eyebrow:

5 Likes

Make sure you are using a bmi160. If you leave it powered and not in use for too long the imu will begin to drift. You have to disconnect power until its completely dead. Give it a few minutes. Then you can power the vesc back up. Should be back to normal and will continue to be until you leave it powered while not in use. Hope this helps.

1 Like

I did a troubleshooting session yesterday, it turns out that for some reason starting the i2c via a lisp command on startup fixes it :man_facepalming:. Not sure why, but it might be related to the fs75100. Interestingly, i don’t get get any noticeable drift. Anyway, i will swap to cfoc in the future, just for the relliability.

1 Like

Yeah I dont get a degree of drift unless I let the board sit powered for 20+ minutes. Then the imu begins to walk hundreds of degrees back and forth. Sometimes going up into 1000s of degrees. Its really odd behavior. The other imu’s I get drift just from powering up at times. Bmi160 has been the best. I dont understand what you mean about the lisp command. I havent messed with any of that. Ive read a little bit about it.

Noted, i will try to get my hand on a vesc with internal imu or bmi160.

@shaman Thanks for the insight on the dual config costs and for your work on CFOCer! Looking forward to CFOCer3!

@ziploc @SpeedDemon I’ll plan on trying twin ESCs w/ CAN bus first and fallback to Y-PPM if there are issues. Thanks!

3 Likes

@shaman any update on how your production models are coming alone dude?

And thanks for your hard work! :grin:

2 Likes

Are there any updates on this?
Seems a bit odd to hold back on this at this point

2 Likes

Apparently the mpu 6000 doesnt drift at all. Even when left powered. Its not on the list of compatible imu’s but its close enough to the 6050 that it just works and very well.

1 Like

I was checking this thread every day at one point expecting the release to be imminent… very disappointed every time I come here.

2 Likes