Home Forums Everything about the Tricopter V4 F3FC reports extreme current draw

Viewing 15 posts - 1 through 15 (of 61 total)
  • Author
  • #30563

    I have my (almost) V4 nearly done and ready for test flight. There is just one thing that has me totally baffled; The flight controller’s build in current meter reads crazy high values. Cleanflight reports ~10 Amps current draw just from plugging in the battery. As this is of by a factor of like 16 there is no chance of using the scale setting to remedy the problem. Also, adding current draw by arming the motors does not add to the displayed value at all, but rather lowering the reading somewhat.
    Connecting an external current meter I can see that the actual current draw is ~0.6 Amps armed and ~8 Amps disarmed with motors spinning without props.
    No real fire hazard in other words, only strange readings from the build in current sensor, a problem with TriFlight or me missing something obvious.

    (Perhaps) useful information:
    TriFlight 0.5 Alpha 2
    D4R-II (PPM)
    UART1 – Nothing at the moment (X4R currently somewhere between China and Sweden)
    UART2 – Micro MinimOSD
    UART3 – Ublox GPS w. mag.
    Board camera, RX and OSD connected to 5v BEC on F3FC
    30A KISS ESCs

    Does anyone else have this problem?


    Your armed ampers looks a bit wrong 0.6ampers armed at full throttle depropped vs 8ampers while disarmed….

    The info on tuning is here >

    edit: on re-reading the documentation this seems like this may be the wrong method when you have an actual current sensor (first for me, I’ve always done virtual)

    I strap things down to a bench with props to do it, and I wrote a really simple c++ script for this method that can be dropped into an online compiler such as http://cpp.sh/ to do the math for you.

    using namespace std;
    int main()
    	double imin;
    	double imax;
    	int tmaxin;
    	cout << "please enter the imin value (Ampers):   ";
    	cin >> imin;
    	cout << "now please enter the imax value (Ampers):   ";
    	cin >> imax;
    	cout << "and finally the raw tmax value:   ";
    	cin >> tmaxin;
    	int tmax = tmaxin -1000;
    	cout << "The Current_Meter_Scale is:   " << (imax-imin)*100000/(tmax + (tmax * tmax /50 )) << endl;
    	cout << "The Current_Meter_offset is:  " << imin * 100 << endl;

    Or if you happen to have MSSQL installed you can use

    DECLARE @imin decimal,@imax decimal, @tmax int
    SET @imin = 2.8 --Ampers
    SET @imax = 34.2 -- Ampers
    SET @tmax = 1000 -- max throttle value - 1000
    SELECT CAST((@imax - @imin) * 100000 / (@tmax +(@tmax * @tmax/50)) as decimal(12,1)) [Current_Meter_Scale]
    , @imin * 100 [Current_Meter_Offset]


    Ignore my above :p

    have you tried copying the settings David has in the Triflight setup video



    @maz, I have tried everything I can think of in terms of fiddling with scaling and offset, including setting it to David’s default values. I was hoping for some kind of “coarse” or “basic” tuning that could be done though CLI in order to bring the values into proximity of the actual current draw.

    Anyone? 🙂


    The current sensor on my F3FC board works well. Cleanflight reports 0.16A while unarmed on the bench. I did not need to adjust any settings to get this reading.

    If you’re seeing 10 amps in cleanflight, then you have a hardware problem. Either an incorrect current sensor (perhaps the wrong value current sensing resistor was installed), or you have a short circuit somewhere which is drawing an actual 10amps and the current sensor is freaking out.

    I don’t think that tweaking settings in cleanflight will solve the problem.

    I was running triflight 0.5 beta 3 firmware.


    I just did some more testing and it’s clear that current drawn from the UART’s power connections gets multiplied by a factor of 16 or something like that. I’m pretty sure the GPS does not draw 6 amps. And if it would, the BEC providing power to the UART power connections would not take it for even a second.

    Edit: The VTX is connected directly to the motor soldering pads on the board, it’s not fed from the raw output.

    I’m going to ask David to take a look at this, it must be a hardware problem with the F3FC board.



    I have the same problem. I found that when my OSD is not connected at all and I have my F3FC connected via USB I get a reading of 0.1-0.35A which seems reasonable.

    I power my Micro Minimosd via a seperate 5V Regulator powered via the Balance Port of the Battery.

    I then connect only the Ground from UART2 to the OSD (Serial Port/FTDI side of the Board). Still everything is fine with reported 0.3A.

    Now as soon as I connect RX/TX Pins from UART2 of the FC to the micro minimOSD the Reading in Cleanflight jumps to around 7Amps. Note that I do not connect the Plus from the UART2 to the MicroOSD (In fact if I do it makes no difference).
    I checked the ground and the ground of the OSD, the FC and the Battery are all connected, so it is not a ground issue. It seems weird that the UART2 RX/TX connected cause an 7Amp draw.



    Okay. I played around a little bit more and found that the current meter reading is pretty much totally off.

    The funny thing is that I adjusted it to be more or less acurate when the board is not Armed and when armed with no or little throttle. Until my Hobbyking Powermeter reports around 1.5-2A the reading of cleanflight is the same.
    As soon as I put more throttle in, the current reading in cleanflight starts dropping down to 1.3A where as my HK-Powermeter reports around 4A (no Props ofc).

    The settings I used for the Current Meter adjustments are Offest: 20 and Scale 880.
    With different Offset and scale the readings are off from beginning with 1.3A draw when not armed where my current meter reports 80mA. The decrease in reported draw when throttling up is the same though. At around 70-80% thottle the value starts dopping from 7A (instead of 3A from HK) to 5A (instead of 4A from HK).

    Maybe the current sensor is broken?


    I send David a mail regardig this problem. Because this was the same day that he left for FliteFest, followed by a trip to Pripyat, I only received a breif answer asking me to have a look at the components surrounding the current sensor on the board, checking if any of them might not be properly grounded.
    Since I’m far from qualified dealing with that kind of troubleshooting, and wanting to get the copter flying while on vacation, I decided on ordering another board. The new board was delivered just two days later, but unfortunately it exhibits the exact same behavior.

    Before reading about you discovering that the faulty current measurements shows up from merely connecting the RX/TX my plan was to put all UART peripherals on a separate UBEC. I guess you saved me an hour or two. Thanks! 🙂

    I have submitted a ticket referring to this thread. The ticket number is 129.


    Cool.thank yiu for creating the Ticket. This would have been my next step.

    Maybe I will have time tomorrow to look at the current Sensor circuit and do a few measurements. I also had a look on the Code that I think Deals with calculating the current draw but saw nothing wrong except a probably unnecessary line of Code.

    Doing measurements will be challenging as I don’t know the circuit diagram. But I’ll give it a try.


    Trying to figure out what the common denominator in this case is.

    It’s really really strange as the current sensor isn’t even remotely connected to the UART ports. The only thing they share is the ground and the processor.

    So both of you are using a separate BEC to power the OSD and GPS and such? Does the same thing happen if you power those units through the built in BEC?

    One thing I’m thinking it could be is the OSD’s being terrible designed and “floating” the supply voltage into the RX and TX pins. These pins could be internally connected to the same “bus” as the current measuring pin. Or a weird ground loop, but I think that is less likely.

    Don’t mess about with the current scale. It’s not going to help as something is causing a much larger problem. It should work with 360 or something is not working as it should.

    If you measure the voltage on this side of the resistor (or the cap next to it) what voltage do you get with and without the RX/TX connected?


    Thanks David for the response.

    I will measure as soon as I come home in the evening.

    Do you have an idea what could cause the current reading being off even if no additional devices like OSD are connected?

    When I did the measurements with the HK-Powermeter I had nothing connected except my receiver.
    The basic reading with battery connected, unarmed is 1.3A in the Cleanflight GUI compared to 0.00A of the HK-Powermeter and 80mA using another current meter.

    When arming and throttling up the reported current in the GUI, despite beeing off from the beginning, suddenly drops where as the HK reports increasing current draw as to be expected.


    Ok so I did some measurements between R6 and ground.

    When nothing except the receiver is connected I have a reading of 14-18mV.
    When the motors are set to an ouput Value of:
    1200 -> 83mV (HK: 1.3A)
    1300 -> 123-126mV (HK 2A)
    1700 -> 200mv (HK: 3.5A)
    2000 -> 130mV (HK: 4A)

    So the Voltage on R6 is really droping when more current is drawn.

    Interestingly connecting the OSD RX/TX pins did not result in a change of the AMP reading this time.
    The cleanflight GUI reports the same 0.4-0.7A as when nothing is connected.


    I just found this Thread which seems to have a similar problem but when powering the MinimOSD from the built in BEC.

    MiniTricopter + MinimOSD = wrong mAh


    I did some furter testing and it seems that the problem only occurs when connecting the OSD to UART2:

    OSD on UART3 – powered from UART3: 2A
    OSD on UART3 – powered from separte UBEC: <1A
    OSD on UART2 – powered from UART2: 7.8A
    OSD on UART2 – powered from separate UBEC: 8.5A with beeper sounding while only USB connected
    OSD on UART1 – powered from UART1: 1.5A
    OSD on UART1 – powered from separete UBEC: <1A

    Connecting other things such as GPS to UART2 does not produce the same result, even with OSD connected to UART3.

    Reading the other thread I noticed that the OP is also using UART2 for OSD.
    I’m using this (cheap) OSD: http://www.banggood.com/MICRO-MinimOSD-Minim-OSD-Mini-OSD-W-KV-Team-MOD-For-Naze32-Flight-Controller-p-990556.html

    Drame, what type of OSD are you using, and which UART is it connected to?

Viewing 15 posts - 1 through 15 (of 61 total)
  • The forum ‘Everything about the Tricopter V4’ is closed to new topics and replies.