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

I love everything about this. Thank you @shaman for the work you’re doing.

The fact that the Cheap FOCer is still a continuing project speaks volumes of not only your skill, but steadfastness in the industry. Cheers sir.


There are not other providers? I was asking for that for the Little Focer v3.1 too… is much better than just soldered cables

1 Like

The project is centered around JLCPCB and what it can do.


Sure, but I was talking about little focer, flagship model, expecting the best :wink:

The noise for the current sense signals is coming from the 5V buck converter inductor. I routed some signals just a tad too close to it. Looking at the waveforms and seeing the 150khz noise that matched the switching freq of the 5V buck converter was pretty much a dead give away. I also replaced the 5V supply with an LDO to verify. The noise disappeared. I wanna keep the 5V supply as a buck converter though since people want 1A+ from it. An LDO will burn up under that load with a 15V input voltage.

I can fix this in the design by rerouting some stuff and maybe switching to a higher frequency buck converter. The prototypes can be fixed by some typical bodges and PCB surgery.


So I was able to boost the drive strength for turnoff and get what I wanted. I added a PNP transistor to assist turnoff similar to the schematic below.

I did this in the CFOC2 but not effectively. I used it with the intent to mitigate parasitic miller self turnon but it turned out to be too aggressive. Here though I’ve done a much better job implementing it and dialing in it’s strength.


If you’re working on small tweaks like this ATM is it mostly in simulation or are you paying for fast shipping from JLC or what’s the workflow like? Just curiosity for us playing along at home


No simulation. Real deal prototyping with hardware. Simulation is ok for small portions of a complete design but i’ve found to be lacking when trying to account for all elements of the total design. Parasitics, EMF noise, and other non-ideal qualities are generally hard to account for in simulation. So I just go for a quick batch of prototypes from JLCPCB and start analyzing them in the land of the real.

Right now the prototype unit I’m working on is fraught with all kinds of stuff I’ve done to it so far. But I’m knocking out one challenge after another. Still able to apply these changes to the other units and move on with beta testing when ready.


Could you snap a quick picture of this prototype just to see how it looks like? I’m also very curious, as that’s what scares me the most about HW prototyping. What I do (but my projects are basically toys in comparison!) is jerry rig discrete components and mutilate my PCBs beyond recognition.

Also doesn’t help that my day job is software. Just soooo much easier and I’m spoiled :joy:


Why can a logic output from a microcontroller not do that?

  • Not fast enough?
  • Not enough current?
  • High side switching?
  • Something else?



I got a little bit carried away answering this so there’s a longass video coming in a minute when youtube cooperates


There’s a couple of slips in there and no obligation to sit through it, the effort went into reading and not to my presentation skills. Corrections very much encouraged


Fantastic explanation! Really enjoyed your presentation.


Yeah here’s this Frankenstein’s monster. The through-hole resistors aren’t actually needed but was part of the process of tracking down the noise in the current sense signals. Some of the other bodges also aren’t actually needed and will mean that the other prototypes will be cleaner.


I don’t have time to listen to all of it but not bad for the amount I heard. You definitely have a better understanding of it than I did as a student.


I’ll give a quick response here on top of @mr.shiteside’s explanation.

Correct. The STM32 can’t source/sink enough current to turn on/off the MOSFETs in a reasonable amount of time.

Correct. see answer above

The STM32 can’t do high side switching. The high side MOSFET’s source reference is the motor phase which is going between ground and battery voltage. You need at least 10V (Vgs) to fully turn on the MOSFET which means the high side mosfet is being turned on with Vbatt + 10V in relation to ground. So yeah you have to have something that can manage that i.e. gate driver w/ bootstrap.

Yes. The STM32 can only source 3.3V. Not enough to fully turn on the MOSFETs which need at least 10V at the gate to be considered fully on. Again the STM32 can only source voltage in reference to ground so it would be limited to low side switching only.


Cheers, yeah as I said I’m perfectly fine if folks don’t have 25 minutes to kill

I goofed on this part a bit, I used the threshold voltage where it starts to conduct because there was a clear number given in the datasheet. Didn’t account for the full turnon even though that was the main point


I got a 16 hour car ride tomorrow :sunglasses: added to the queue


Very good project, any idea when it will be available?


No eta yet.


I’m back to do what I do best - ask stupid questions!

With the DRVless design, I sort of assume that means you have to design your own DRV, or at least something that buffers the switching and switches both high and low, from discreet components. Is that right? If so, will it be more robust than the DRV8301?

Is the reason to go DRVless primarily to get around the supply chain issue, or does it make a better ESC? Would this be easier to trouble-shoot if one or more of the discreet components fail?

One thing I always kind of wish the older designs (e.g. CFOC2) had was a daughter board for the DRV8301. That way, when the DRV fails, you just unplug the daughter board and risk only the daughter board when going to town with the hot air station.