Freefly ARC200 Testing and ESC Shootoff

The guys over at Freefly were kind enough to send me a Freefly ARC200 to test on my foil (Fedex shipping was SUPER quick). I thought I would dedicate this thread to it and also throw in some comparisons with some other ESC’s I have knocking about (some havent been tested yet either).
Here are some pics of the unboxing of the ARC200:

Great simple packaging.

ESC is well protected, USB cable and a Power adaptor cable underneath.

All the goodies…

ESC Size Comparison: Swordfish Pro X 300A, Freefly ARC200 and HK YEP 120A with custom heatsink.

As you will be able to see, the ARC200 will need to attach to a larger heatsink in order to dissipate the heat for our power requirements. I will probably opt for something with some watercooling.

Next up is putting the software on the ESC and just spinning up the motors…stay tuned…


First test with the ARC200 has been successful!

Motor: 6384 PG direct drive
Prop: Custom Design (I have no clue what the actual specs are but it works well)
ESC: Freefly ARC200

Here’s a little video:

The setup of the ESC I found pretty simple when I followed the Freefly video on youtube. I’m not too sure why the E-skate community has been struggling.

I found the ARC200 starts up the motor a lot better than my old Yep 120 HV and has much better control. You can also set up custom temperature and voltage protection which is fantastic and perfect for our needs.

Unfortunately I am about to go on leave and the airlines will not let me drag my batteries with me, so there will be a gap before I can get it on the board.

If anyone has questions, please feel free to fire them away!


I just ordered an Arc200 too. I expect a lot from it. Unfortunately shipping to Germany takes its time :smile:

Edit: Actually, shipping was amazing quick :grin:

@Jezza I can’t open your Video, but i’m glad you guys are testing this ESC. It sounds really promising and I’m thinking of buying it for my project, too.
How are you cooling the ESC ? Water-cooled Heatsink ?

And has anyone of you two been able to have a deeper look into the configuration ? I read that it supports UART and CAN (via its own Protocol??), but i’m unsure what kind of values the ESC measures and is able to “send” to an Arduino for example. Not sure if you guys are using this at all, but this feature would be one thing I’m looking for in an ESC, that’s why I’m asking :))

Looking forward to your “test-results”

I didn’t test it yet, but it should be no problem to send and receive QX messages via UART with an arduino. You can research here what commands you can send and what telemetry packets you can receive. Those include e.g. phase currents, throttle input and temps. So all you really need (and much more that I didn’t yet look into detailed). There should also be a C library available for parsing and generating the messages to send and receive.

@Jasey the video keeps expiring because my Instagram is private. If you would like to see it, give me a follow @surferjelliott.
There are two options for heatsink. If you go just for no watercooling, you will need to have the heatsink exposed to air or attached to the mast. I am going to be designing my own watercooled heatsink.
If you want to know about the protocols, maybe ask @CNCaddict for some advice there.

Does anyone have any updates on the ARC200? How’s the temperature when drawing high amps, etc.
I’ll most likely order one soon and spread my experience here, just thought I’d ask again in case anyone has some new information.

Also thinking of ordering one once I have finished glassing my compartment and foil mounting system.

Interested to know peoples experiences of using this with a 12s lipo set up

Sorry about lack of action in this thread, I have been sick and am also awaiting my new board. The old one is now in a different country.

I can’t comment on the temperature when drawing high amps, but I do know that you will need an extra heatsink. This heatsink can either be air coiled or water cooled. The ESC itself also has a temperature cut-off which you can set!
I can say that the ESC makes the motor start better and run a lot quieter than other ESC’s I have!

Was planning on putting into something like this

Don’t think I can really use water cooling in my design

I believe cooling is the main issue with most ESCs, or the reason why so many have burnt ESCs. I decided to go with water cooling for sure. I don’t want to spend 300$ on an ESC and then burn it, just because I was too lazy to put in a 20$ water pump.
I’ll go direct drive, so maybe for me it’s even less critical as I won’t be drawing more than 80A. For those using a gearbox and drawing up to 150A, it’s even more important to have a proper cooling.
@Jezza thanks for your input. Don’t feel obliged to answer if you don’t have the time.
Are you planning on using the ARC200 in your setup from now on? or are you sticking to your old ESC ?
@RamsUK I would just recommend putting a temperature sensor on the ESC (the Mosfets) to measure the temperature constantly while running it, in case the internal Temp. Cut-off doesn’t work properly.
In case I get one, I can try to do some experiments with it, where I purposely try to reach and go beyond the Cut-off Temp and measure with an external temp. Sensor as well, just to validate the function of the ESC.
If anyone has tried that, btw. feel free to share your experience:
Does the ESC cut off the power completely or just reduce the power, etc… ?

Yes I am indeed, provided it lasts. The ESC has much better options for setting the config up. You can control temp cutoff, max current, max motor RPM. It really gives you the fine control you want for efoil.
Hopefully I will have my board back soon so that I can get it on the water and really put it through its paces!

1 Like

The Arc200 has two thermal parameters, one is a cutoff temperature and one is a foldback-start temperature. For example you might set the cutoff to 80C and the foldback-start to 60C. Below 60C you’d have full torque. Above 80C it’d completely shut off the motor and enter a fault state. Between 60 and 80C, the available torque would linearly decrease from the configured max to zero as you approach 80C, so in concept if the system is working, then you’ll never actually hit that 80C fault state (unless there is some external source of heat).

Just read the forum ARC200 Hydrofoil Testing | Freefly Forum

“As for the throttle having delay, this is speed mode correct? If so I think what’s going on is let’s say the motor’s max speed given the power supply voltage is 5,000RPM, but the drive is configured for a max speed of 10,000RPM. It seems you have a fairly slow speed slew-rate, let’s say it’s 2,500RPM/s. In that case, the drive’s internal speed-command will ramp up to 10,000RPM while the motor is only spinning 5,000RPM due to voltage limitations. When you then zero the throttle, it takes 2 seconds for the internal command to get down to 5,000RPM again due to the slew rate limit, during which point you won’t be noticing anything changing. The real fix here would then be to reduce the drive’s max command RPM to match what the motor is actually capable of on the supply voltage so that the internal command doesn’t saturate. You also probably wouldn’t really notice this if the slew rate was higher since the delay would be much shorter, although that would just mask the issue in reality.”

This is not a good control strategy. If you have a PI or PID control loop there is a simple strategy called “anti-windup” to limit the Integral part in such way, you do not need such long time to empty the error which was integrated over longer time.

Output= P+I+D;
if (Output > 100%){ I=Output - P - D ; Output = 100%;}

One should use such Integrator limitation in every control loop (containing an Integrator). There are of course other more advanced techniques, but this is the most basic one, i have always used it with great sucess.

In the case you described above, where the control error is rather high, already the P part would be above 100%, so the I part would always stay 0%. This makes sense because the I part is needed to eliminate small errors which cannot be fully eliminated by the P part alone. I part often does not need to be very quick, so it does not matter if it is held down during strong errors which can be controlled by P part alone.


There actually is no integral loop on the speed loop at all by default, it has an integral term implemented but by default it’s zero and just a pure proportional controller (most applications don’t really need an integral term on the speed controller since there’s usually some outer loop such as a flight controller, human-in-the-loop, etc. so some proportional error is not a relevant problem). This problem still exists even when the integrator is disabled. All the integrators do have wind-up protection.

In this case, it’s the slew-rate limited input command request that gets saturated beyond the motor’s max speed which is a feed-forward calculation not an integral control loop. There are possible solutions to improve this (may look at it some day but not a high priority upgrade), but it’s a bit more tricky than a basic integrator because there’s no easily calculable speed command to limit it to, other than perhaps using motor KV and DC voltage although I like to try to avoid things like that since if the user has a poorly measured or set KV it wouldn’t work right.


Good answer, thank you. It means the parameters were set ridiculous slow for the input signal slew rate. I use to set them on a kelly controller in an electric vehicle below 0.5s for a foot pedal with hall sensor to damp it. Is it possible to make this asymmetrical for control by humans? I like to reduce or shut down the power without further delay after a short qualified filter time and raise the power by a limited slew rate. Especially when the input signal returns to 0.

Yes, the default is extraordinarily slow taking seconds to reach a high motor speed. This is so that there is the highest chance of initial stability during spin-up in the auto-tune wizard. Most users would want to greatly increase the slew rate limits after setting up the motor.

It does have asymmetrical support, the speed loop section has independent slew up and slew down parameters, so you could have it slowly ramp up but very quickly stop when letting off. It also allows speed-dependent slew limits so you can have it slowly increase up to some low speed such as gently starting up to idle then have fast response getting up into the higher throttles.

Is there a freewheel option anywhere?

Are you talking about synchronous rectification? Arc is always synchronous drive on the power stage.

If you mean freewheel as in zero torque, can’t really do that in speed mode since it’s always trying to maintain a particular speed but in torque mode, 0A command is effectively zero torque and the motor would just coast to a stop (or accelerate with no resistance if there’s external forces such as a vehicle going down a hill)

I am now using the ARC200 in my build it replaced the Trampa VESC6 that did not quite have the pop to deliver the power required for lift off.

The ARC200 is working great so far. Not very hot after use (mounted on water cooled bed), silent operation of the motor and some really nice settings options. I especially like the RPM limits settings that let you find kind of a sweet spot for your “top speed”.