FLIPSKY new 20s 100A tiny controller (vesc based)

Yeah.. as a buyer of such devices..

My Spintend is great and worked out of the box.. well designed.
My Flipsky had weak wires and some tore off while i was playing with it, and i can't get it to work at all.. bad build quality..
On this basis.. i'd shy away from flipsky.. add me to the list of persons burned by the company :p
 
That's a weird issue, could be caused by accidentally changing the firmware (the latest android app has some bugs from the new release but you would probably know if that was the cause), some setting was marginal but something else changed, IE voltage limits where on the edge and something drifted from the VESC hardware or some other hardware. Or the firmware got corrupted somehow which would be from bad hardware design or perhaps using knockoff chips.

As far as I or anybody else can tell flipsky has no idea what they are doing. For instance the 75200 pro V2 uses the firmware from a trampa controller because they couldn't be bothered or don't know how to make a version for their hardware. But the Trampa uses phase shunts which if well designed are better and the 75200 uses low side shunts often found on cheaper controllers but this means there are features that the firmware thinks it has that aren't really there, a dangerous combo. This is just one example of numerous.

If you look at the inside of a Flipsky and a Trampa the difference is crazy. The Flipsky is inelegant, just stuff thrown where ever, parts missing that costs cents and are important (ceramic caps for instance). Sure it has a metal PCB but it's so warped it's only contact with the case is a mm thick layer of goop. Meanwhile the Trampa looks like a work of art, the circuit paths are maybe 1/10th as long with everything well thought out and high quality components.

Reliability is mostly down to hardware design, component quality, and elemental damage (water and corrosion).

The VESC firmware itself is quite good, are the occasionally bugs, yes but they are mostly edge case or with new versions. But that's what you get with an actively developed firmware. Most other options see almost no development because they are closed source. Pros and cons.

I just wish there were more waterproof options so I don't have to keep designing waterproof cases....
 
Its the flipsky vesc's above 48v seem to be main offender's running hall mode mind all can have issues, ive been fairly lucky with the 6,# versions but met motors that refuse to run and stall harshly making metallic sounds not healthy at all and wasted alot of cash and walked away the loser so refuse to use them on anything over 1kw for its purpose its great but can be out of depth on an ebike with larger inductance motors.

Ultimately if whats wanted high power id go for something ebike related or surron etc the vesc is mainly used around the skateboard platform and decent enough for that range.
 
I'm glad to hear the VESC platform is not crap. Makes me feel a little better about trying a larger one from another manufacturer. That Trampa STR500 looks badass for a full size motorcycle but based solely on the experience with the Flipsky there was no way I would consider spending more than a couple hundred bucks on another VESC without lots of glowing accounts from other users.

This Maker X G300 looks like something I'd consider trying. Not a bad price if it puts out the stated power.

The flipsky was a cheap amazon purchase just to try one. Im also annoyed by the lack of sealed enclosures. Not trying to build a submarine but some basic splash protection would be nice for a bike. The tiny delicate wires and exposed connections are a bummer as well. After hearing lots of complaints about the poor heat shedding on the 75100 enclosed version I opted to try the more traditional ESC style PRO. I think it will end up on my kids' scooter.
 
Never seen the makers series vesc, the 300 looks good, nice terminals and harness connector far better approach than the any of flipskys efforts and if it runs a mxus 3k that make it the best vesc for price, Interesting.
 
From what I've seen every brand of VESC is to better than Flipsky and Markerbase (not to be confused with MakerX) (which are often just copying each other for some reason). How much better does seem to depend.

I think the dynamic goes like this. Cheaper hardware has more noise and worse sampling due to poor board design, cheap components and lack of components. This becomes more and more of an issue at higher power levels. If you aren't careful this can also lead to controller failure as instability causes currents and voltages to rise very fast in an unstable manner. If you do a lot of tuning you can tune around these issues (my flipsky 75200 pro V2 is pushing 9Kw peak into my leaf) but it takes way way more effort and understanding to do it and the result will still never be as good as if you didn't have to deal with it. Combined with by default I think VESC often requires a bit more tuning than controllers that are designed to run a specific type of motor well enough from the factory you get a wide gulf of user experience. New users with little VESC experience buying cheap flipsky controllers and having tons of issues and on the other end you have experienced users buying high quality hardware and getting amazing results.

It's open source so you can't stop them from making shit hardware but on the opposite side you have companies using or stealing VESC (depending on how they do it) to run their application specific controllers (Surron controllers for instance) because if they give it good hardware and they do the tuning themselves they can get great results.

If anybody is interested I can write a quick layout on how I've been tuning these flipskys, some parts will be applicable to all VESC, some to work around their issues.
 
I would absolutely love to see a tuning thread. I was just going to ask what is involved in that.

I have one of the older small SPM motors from a clearance sale LMX was doing. FOC controllers seem to hate it. It would be nice to see a more systematic approach to tuning rather than my normal approach of randomly changing PID, observer, flux leakage, etc. without any idea what those things are.
 
Last edited:
Never seen the makers series vesc, the 300 looks good, nice terminals and harness connector far better approach than the any of flipskys efforts and if it runs a mxus 3k that make it the best vesc for price, Interesting.


I first heard about the makerX G300 on this guy's youtube channel. He has about 400 videos where he breaks down controllers and reviews the construction and board layouts. He seems to be extremely critical of almost everything as well as extremely confident in his own expertise. I could see where that might make it hard to watch for some. But its a good way to get a peek inside of lots of different controllers with some explanation of which ones he thinks are garbage.

He had lots of praise for the Maker X but didnt like the ineffective waterproofing of the 25pin connector. Its a 3 part video and the waterproofing is covered in the other vids. Seems like it could be easily fixed with a rubber gasket or some silicone calk.
 
Yeah I've watched a number of his teardowns, I do think he knows what he's talking about but probably not as much as he thinks or acts like if that makes sense. Some things are very easy to see what is good or not good so just seeing inside a controller can help a lot in determining it's quality. Short current paths are good, ceramic caps (the little orange ones) close to the fets is good or any at all since flipsky for some reason thinks these are optional, I mean they must save a whole dollar per controller to omit them and all it does is make them noisy as shit and unstable.

If I have some time I'll work on a tuning thread, I'm by no means an expert but somebody has to start I guess. Here are some quick tips though.

6.05 has some features that help with these cheap controllers.

Set phase current low and absolute 10-20% above, yes it will warm to increase it and you can when your are done but we want it to overcurrent fault before things get too out of hand.

Start with most of the default settings and detected values.

Ideally connect tablet or laptop to vesc (I made a mount to put a tablet on my handlebars).

Do full throttle pull with realtime data on, if no OC (overcurrent fault) and the current looks stable, up the current 10A. Have sampled data on fault set (the bug one). Which if you don't have a laptop connected you'll have to do the sample but not send and then plug in and conenct, honestly laptop is best.

When you get to the point it OCs the sampled data will probably show the current waveforms get weird and the phase line have a skip or a spike. The skip is when the obsever lost track of where the motor was.

Top of screen button Terminal > print faults > write down what RPM the fault occured. Basically as speed increases in your full throttle pull so does duty cycle and at some point things get unstable.

Check where that RPM was, FOC > hall sensors will tell you when it starts and ends it's transision from hall to sensorless. Ideally you want it above the transision point. If it's below the start something else is probably wrong or you have terrible hall sensor noise. If it's in the transision range it's probably still the observers fault and you should carry on with the tuning.

Next lower the ZVF a bit, can start by lowering it by 2khz but I've found around 15-20khz makes these flipskys much more stable probably, not wise to go much below that. Retest > if OC fault check the RPM, if it's higher good if it's lower bad do more of what made it higher (this is most of the tuning), no fault? > great > bump the current. Also there may be a sweet spot here so even if say 26khz was worse than 30 still may be worth trying 22.

Next thing is on the FOC general page change the time constant lower, start by lowering it by like 200us and hitting calc apply old. This makes the current controller more aggressive in keeping the current where it's set and is generally better in most cases but you don't want to go lower than around 500-600 unless you understand it because it will reach instability also based on the ZVF. Now here is a weird issue, on my leaf, lower time constant combined with the noise so that the motor ran well but phase current would start to drop at too low of an RPM, basically the noise that started around 0.5 duty cycle fed into the current controller and start limiting the current early. You can see this in the realtime graph as the phase current will fall when duty cycle is only at like 0.5-0.6 when it in theory should start falling at a higher duty cycle. This requires increasing the time constant but try to do that only if you have to as it will probably make the current more unstable in ampitude and OC. The lower time constant makes the current more noisy but the amplitude of the noise is smaller, we don't need 100A current swings in here.

Dont touch the resistance or flux linkage, chances are these are correct as the autodetect is very good at these. (I checked mine manually). Inductance it can be a bit off so if you're going to play with anything play with those, mostly the motor inducatnace.

Next up, FOC > adv > current sample mode > all sensors combined. This helps with the noise a good bit, can lead to instability at high duty cycles but if you have a noisy controller that needs it chances are you won't get that high before you get trouble.

If and ONLY IF you have an IPM motor > MPTA > I've used target since I'm assuming measured may get weird due to noise.

You can try playing around with the observer gain but since you're using Mxlemming_lamba comp it won't do much. The no Lamba comp version can sometimes be better but try to use the lamba and tune the observer gain first.

You can try some other observers but I've found that one to be the best, I haven't played a lot with the Ortega mostly because I've heard the Mx one is better in general more efficient so you may get more current in with the ortega but it may not be in the right place sometimes (simplification there)

Current sample mode V0 and V7 interpolated can also help on the noise front but don't use V0 and V7 because some flipskys have the wrong firmware and if you turn that on bad things will happen. Basically it thinks it has phase shunts but it doesn't.

If you know you are pushing the motor hard, the saturation compensation can help a bit, try both options if using factor go up 2% at a time and see if it improves. If this seems to work really well and you aren't actually pushing much current chances are your inducatance or flux linkage is wrong and probably too high as this basically just reduces those at high currents.

Again the whole time watch the realtime and look for weirdness, the duty cycle will probably be real noisy at about 0.5 but if that noise gets better that's a good sign. Keep increasing the current and tweak setting to get the OC fault at higher rpm and duty cycles.

If you just can't get anything to work at all there is a good chance detection totally failed. If you can, check the motor params manually, here is a wonderful guide from owhite: https://github.com/badgineer/MP2-ESC/blob/main/docs/MOTOR_PARAM.md

Also if things just don't work at all check your offsets, if any are way different that's not good. Should be around 2048 and all around 0V.

Current controller decouple can help a sometimes.

At some point you will probably have to just increse the absolute current, ideally though the sampled capute should look OKish before you do this. If the observer looses track it can spike that current very high very quick.

If you notice a grinding feeling chances are this is you feeling that current noise, the controller is having a hard time keeping the current constant because it's being fed bad data from the noisy controller so the current is bouncing around.

"?" tool tips are your friend.

Never use slow ABS current, this is how you blow up controllers.

You may need to go back and try settings you tuned before as you increase the current, a setting may be more helpful at a different setting when the current much higher.

Does all of this sound like a pain in the ass? Well that's because it is. While I think that all applies to a less noisy controller you probably won't have to do as much or any of it with one of those.

And yes the handlebar tablet sound crazy but man is it nice to use.

Did I say quick tips? I meant a wall of quickly written tips.
 
Wow!!

Thanks. That process should be a stickied or in the tech reference somewhere easy to find.

Thanks!

Does drive home the earlier point about these cheap controllers not being worth people's time. Could be countless hours to dial that in vs working some overtime hours and buying a less noisy controller.

At any time after the hours of tuning the flipsky could still just cool itself.

I like the learning process though. I'll have to get a setup running and start tinkering again. Been bench running things while my broken foot heals.
 
Did I say quick tips? I meant a wall of quickly written tips.
Very nice write up.

I've been collecting vesc tuning tidbits for quite a few years, and this has got to be one of the better concise step by step ones I found so far.

With the new endless sphere wiki that got funded a couple months ago, I/we, are planning a section devoted to all things vesc.

I'd like to put together a bullet-proof(resistant?) tuning guide from all the different bits and pieces I found on the web, and I'd like to use some of the tips you've provided here, with your permission.
 
Very nice write up.

I've been collecting vesc tuning tidbits for quite a few years, and this has got to be one of the better concise step by step ones I found so far.

With the new endless sphere wiki that got funded a couple months ago, I/we, are planning a section devoted to all things vesc.

I'd like to put together a bullet-proof(resistant?) tuning guide from all the different bits and pieces I found on the web, and I'd like to use some of the tips you've provided here, with your permission.
Yeah I was thinking the same thing, I'll probably just add them to the wiki myself, hopefully a little better written and with some examples (but feel free if I don't get around to it). I too have been searching for as much VESC tuning and understanding as I could, online but a lot on the discord which has more info. And using all of that understanding I applied it to tuning. Some of the methodology is just from watching Vedder's videos on tuning difficult motors. I still feel like I have much to learn on motor control theory which would help me understand better how the controller works but I'm getting there. Frankly if baffles me how there isn't already a much better made VESC tuning guide that would probably quickly solve 90% of beginner issues.

Also much of what I listed I've found useful and tried based on my understanding of how they work is specifically for low quality controllers. In general most of the motors we use here are not particularly hard to drive unless you run them right at their limits so I would expect a good quality controller to need almost no tuning, something I will hopefully test out soon once I find an excuse to upgrade a controller or start a new project.

I do have a motor that will probably be much more difficult to drive (a large drone motor) so that will probably be a different tuning experience at some point when I find something to use it for.

Also weirdly now that I think about it, the flipsky 75100 dual on my fatbike required no tuning at all that I recall, although that may be just the current is not set very high and because with the test battery there was so much sag when pushing the power up that it was probably starting to limit the current right around where the high duty cycle starts to cause issues. Or maybe just lower battery voltage also helps, that was at 52v while the others are 72v. Guess I'll find out when I finish the new battery. But kind of is an example of how these controllers can work at lower power levels but still.
 
@mxlemming designed/built/tested controller boards himself and certainly seems to understand some of the motor control theory as well as specc'ing the right components to reduce noise/ringing/etc.
Perhaps he can help connect a few dots from software settings to the physical behavior of the control boards/motors
 
@mxlemming designed/built/tested controller boards himself and certainly seems to understand some of the motor control theory as well as specc'ing the right components to reduce noise/ringing/etc.
Perhaps he can help connect a few dots from software settings to the physical behavior of the control boards/motors


One day, I intend to make a video on tuning motors. I will outline my methodology in limited detail... I think it is kind of important because the common internet folklore about it is garbage/dangerous.

DO NOT:
1) use slow abs max, EVER
2) blindly increase limits to make errors go away
These are two commonly cited suggestions. This is akin to ignoring problems.

When I set up a new motor/controller, I roughly follow this order:
1) plug in controller (preferably to current limiting PSU, 18V or the lowest it will turn on at and 0.2A), check FOC offets on current sensors are sensible (typically 2048+/-150 counts).
2) Set the general current to like 10A and 20A abs max
Set the voltage limits to be sensible... I tend to use 10-15% above battery max voltage but always at least 5V off the FET rating. Under voltage I just put at a level where going lower would result in the controller turning off (typically 20V)
Take care that the battery current and voltage cut off limits are sensible to avoid power rollback and wondering why you have no power. Or blowing your battery.
3) press the bandbrake button, measure the phase voltage with scope or multimeter - scope = 50% duty (might recently have changed to all low FETs on...) multimeter = vbus/2 (might now be 0V).

Now connect a motor.
4) repeat 3), watch out for overcurrents. At this stage, if you get overcurrents, you probably have bad hardware or shorts somewhere.
5) Set currents to like half what your motor/ESC should be capable of, abs max like 50A over.
6) FOC page... run detection RL and lambda, with PSU set to half your battery voltage and maybe 5-10A... Many people have not got a PSU and so this becomes a lithium battery and YOLO. Check the results are sensible!
Flux linkages for EVs are usually:
10-20mWb region for in-runners,
20-40mWb for hubs.
2-10mWb for smaller outrunners can be down in the region...
higher kV implies lower flux linkage, more PP implies lower flux linkage.
R and L... quite variable.
big inrunners are in the 2-10mohm, 20-100uH region
outrunners can belike 5-100mohm, inductance is hugely variable,
hubs maybe 10-300mohm and 20-300uH

It is usually best to decrease the time constant to 400us. I have not seen a case where higher time constants helped except with broken hardware, where it can mask really bad current sensor readings.

If you get values much outside this, check it is really correct. Without correct values, there is little point proceding.

7) Run hall/encoder detection - remember if doing encoder you need to manually enter the encoder counts and pole pairs in the General Sensors tab before doing the setup in FOC Encoder... It can be really tricky to guess what the real counts are given motor datasheets since there are counts, transitions, steps... many factors of 2 and 4 between the naming.

Remember to apply and write the values using the Mdown button on the right...

At this point, your motor should spin and if you are lucky you are done and just need to set up a throttle.

However, if you are pushing a motor to the limit, or running a highly salient motor you usually need to go further.
8) Engage MTPA if your Ldq difference is more than maybe 20% of the L value. Use IQ measured, always, otherwise you can get extreme amounts of unintended field weakening.
9) Now we get to the painful world of observers. If you have an encoder... and it works... just set the erpm limit in the FOC encoder tab to be higher than your max erpm and it should just be better that way without effort.
If you have not... then you just need to try various things. Different motors respond better to different observers.
Generally, highly salient motors run best with ortega original and a very low gain whereas a lot of problematic motors which have rapid saturation and high pole count (like Tmotor U15) run much better with mxlemming observer.

My findings with running Ortega back to back with an encoder has been that the lower the gain, the better it tracks... right up until it becomes unstable and stops working atall. If you run a higher gain, you can easily push more more more amps... btu the tracking angle is bad and the power output drops off so you create much more heat for not much benefit.
The flux linkage observer uses the same gain factor as the main observer, which means you cannot tune them independently - this causes trouble, and has led to some dislike of the flux linkage observer.
If running Mxlemming observer, you can use the gain factor independently for the flux linkage... if using Ortega... cannot. Frequent comment from scooters has been that Mxlemming observer gets more torque, but Ortega more amps. I have verified this, BUT if you sit and mess with gain and inductance tuning, eventually you get the best result with Ortega original in many cases.
Other tips for getting higher current under sensorless:
Use the FOC Sensorless Saturation Compensation Mode... use factor. Higher current = more saturation. Maybe start with like 30%. Maybe reduce the L or Ldq by 30%, this often improves stability but sometimes at the expense of efficiency.
I have never seen cross coupling help in an EV application. Turn it off, it is for things like servo drives with huge inductance and rapidly changing setpoints, not throttle twisting and accellerating.

The key thing is to identify the real source of your problem. This is done using the "trigger sampled at fault" option, and inducing the fault while connected (USB, BLE, wifi...) to a proper computer. Nothing else is much use. NOTHING.
1726752459417.png
This is a very nice looking trace, 500A, 60% duty cycle, 20s battery... But it was on low side shunts. Therefore, you start to get current sensing anomolies at high duty and current (dinks at the bottom of the sin). Perfectly useable though.
1726752591302.png
Same thing but 80% duty. This starts to be a problem, there is not much you can do about this, it is a hardware limitation this device still pushed like 20kW though so meh)
1726752727885.png
This is an example of unstable observer. The tracking goes off and therefore the currents go haywire. Need to fiddle the gain/inductance/saturation comp.

1726752830149.png
Here is an example of a small motor running field weakening on an ESC with 600A current meaurement range. It looks rough, but it is fine. The blue line is inverting because it cannot decide if it is breaking or accellerating - free spin. There is some evidence of low side shunt abbheration but it is minor.
1726753037795.png
The dinks in this are due to dead time abherration (ignore the first 0.02s, that is where it locks the rotor into synch). Not much you can do about it. Hardware limitation imposed by the maker. This is running on a phase current sensor board I had with very nice sensing but needed power stage tuning.

1726753225393.png
This looks horrid but is actually nice. Board was 1800A sensors, running 20A. Be aware of the noise floor.

Annoyingly, I cannot find an example of the typical unstable observer behaviour. That looks like a pulsating sin wave, with fault triggering when the pulsation goes above the abs max. If I find an example, or next time I experience it... I will post.

Field weakening:
the only setting I ever use on VESC is 200ms, 80-85% start duty. Ramp up the amps to taste... bear in mind infinite speed is when L*id = lambda.
 
Last edited:
Daaaang -- just gonna hire you for a video call tuning session someday ;D
Haha, I occasionally do that, but it rarely works out great value for me because there's always "and another thing" and a 1h payment becomes 3h of work... Also, I cannot tune out bad wiring or broken hardware over video link... Mainly I design hardware for people these days.

Electric Fox is better than me at the routine stuff for setting up VESC and most tuning, and has made it his business, but when it gets weird, some bizarre new hardware fault or something... he calls me or Benjamin :p
 
Is there a resource where I can go to that will give me an overview of the functional differences between a VESC and a "conventional" motor controller? Pros vs. Cons, etc.
 
Those tuning tips should be in a separate "vesc tuning" thred :bigthumb:
They shouldnt get lost in some flipsky thread..
@mxlemming or @j bjork , great idea, you should start one. Feel free to copy/paste the in-depth post #592 from above
 
Back
Top