As you all might know racerstar cloned my opensource tinyFISH FC and tinyPEPPER 4in1 ESC, claiming it is their very own invention. Sadly they messed things up…
There are lots of reports of not all motors spinning when you arm the FC with a fully charged Lipo battery. The symptoms fade away once your battery voltage drops a bit. This only happens when you use the combination of the tinyFISH FC (F3D8) and the tinyPEPPER ESC (STAR4).
This is a known bug of the old revision of my tinyFISH FC design. Reacerstar did not clone the newest, fixed version v0.2b, they used a previous version with the wrong voltage regulator.
In short: They took the old design that used a 2.8V regulator. The new one uses a 3.1V regulator. The obvious fix is to replace the regulator with the correct one (scroll to the bottom for the fix).
Cause
This all has do to with the way I designed the tinyPEPPER ESC: When I started with the design, it was never meant to be manufactured, it was a hack for me to play with. After I built the first prototype I was surprised how well the 1S pepperF1SH quadcopter performed.
In order to keep the ESC design simple with a small footprint I did not use a voltage regulator on it. This way the EFM8 processors is directly connected to the LiPo battery instead of running on a fixed voltage such as 3.3V. In the past, several BLHeli 1S ESCs used this hack in the as well and it worked fine. However, this is not best practice and you should probably not do this for several reasons! The LiPo voltage is not stabilized and exceeds the safe operating voltage of the processor. The efm8bb10 processor datasheet lists 4.2V as an absolute maximum voltage the processor can survive, but this is not recommended for use. This is just what the processor will survive, not more. I had some efm8 processors accidentally connected to 5V and they survived, but I might have been lucky. Some people fly the ESC with HV Lipos that can be charged up to 4.35V which seems to work fine as well. But again, this is not recommended and might shorten the lifetime of the processor — In the worst case the processor will survive only fractions of a millisecond before releasing all its magic smoke…
Being close to the absolute limits the processor can take is not the direct cause of the problem, it is more complicated: Each ESC processor is connected to an I/O pin of the flight controller that sends speed commandsΒ to the ESC. Let’s assume the FC processor is powered by a 2.8V regulator. Any signal sent by the FC, no matter if it is DSHOT, PWM, or OneShot, consists of series of 0V and 2.8V voltage levels. The ESC will now read these levels and convert it to a command. Inside of all digital logic chips there is a circuit that converts voltage levels to discrete, binary levels. Every logic device has a specified voltage range that will be interpreted as low = 0 and high = 1, respectively. After this discretization we end up with a series of binary values zero and one. The exact voltage level that ends up as zero or one is not a sharp border, it depends on the logic family type, is implementation specific, can vary from device to device, and is oftern temperature dependent.
So let’s have a look at the EFM8BB1 datasheet: Page 26 lists the voltage levels the efm8 processor will safely detect as high and low. The safe low voltage is as VIL = 0.6V — this is fine for us. However, the safe high voltage is listed as Vdd – 0.6V, which in our case (on a fully charged battery) translates to 4.2V – 0.6V = 3.6V — ooops… This means in order to have a design that will always work, no matter if it is -40Β°C or +85Β°C, we should send a low voltage level of no more than 0.6V (which we have), and a high voltage level of at least 3.6V to the efm8. This is guaranteed and safe, however in practice it was tested to be sufficient to have 3.0V high levels (and yes, you are right, this is a hack).
The newer revisions of my FC design run on 3.1V in order to be safe. The previous version used 2.8V which works for some efm8, but just not for all. This is why you end up with some motors spinning and some don’t. Once the Lipo voltage drops, the safe high level of the efm8, running on lipo voltage, will drop as well. This is why the easy fix is to wait for the voltage to drop before you arm (and yes, it is annoying).
You might be wondering why I did choose not to use a voltage regulator in this design when it has this disadvantage? Despite some saved space because of the missing regulator the major reason was that it simplifies the gate driving circuit for the mosfets a lot! So this design used fewer components and again, uses less board space. When I started with the design I was not expecting the 1S pepperF1SH copter to fly that well and I never expected that design to be manufactured and sold by so many people… I also wrote a warning in the release notes that this is a dirty hack and should not be sold as a product.
Before you ask, the new 1-2S design of the ESC uses a proper voltage regulator and mosfet drivers. That one will be fine with FC voltages of as low as 2.7V. So you might keep your 2.8V tinyFISH fc clone and wait for the release of the new ESC design — or you might try to fix it:
Fix your F3D8
There is an “easy” fix for the problem: Replace the F3D8 2.8V voltage regulator with a low drop 3.1V one.
I used a LP2985AIM5-3.1 (you can buy it e.g. ar farnell or mouser). Make sure to use the right type with a low dropout voltage and do not use higher output voltage levels. You want to keep the processor voltage as low as possible. Remember, you build a 1S quadcopter and your Lipo voltage will drop during flight: A linear voltage regulator always needs some voltage margin to operate (this is the dropout voltage). For the low dropout regulator I used this voltage is approximately 0.1V. This means this 3.1V regulator can safely operate as long as the input voltage is at least 3.1V + 0.1V = 3.2V. If you use a 3.3V regulator this will not work properly on 1S as your LiPo will most likely drop to less than 3.4V during flight.
How do I fix it?
Unfortunately the voltage regulator comes in a small SOT23-5 package and is not that easy to replace. But there are some tricks that might help you. There is a technique to desolder this chip without fancy tools or a hot air station: Take a soldering tip that is around 2-3mm thick and add a small blob of solder to it. Now place this solder ball directly on the plastic package of the voltage regulator. Yes, I am really talking about the plastic package, you do not need to touch the metal pins. Hold the soldering iron in place for some seconds, you should be able to pick up the device with some tweezers once the heat was spread properly. Do not worry that the “plastic” will melt, it is designed to withstand similar temperature during reflow soldering. The internals of the chip might get damaged during this procedure, so better do not use this technique on chips you want to re-use. You will have to throw away the old regulator.
There are two parts in the SOT23-5 on the PCB: an operational amplifier for the current sensor and the voltage regulator. You want to replace the part with the blue circle around it in the picture above. After you removed the old regularot solder in a 3.1V regulator. Use some flux and make sure to remove any shorts using soldering wick before you power up the flight controller.
Another option could be to buy a tinyFISH fc from a seller that ships with the proper voltage regulator, see my compilation of vendors.
Hi!
I have a problem, that my x9d saying after 1min flight telemetry list, telemetry recovered… And its saying again and again. This part change is could fix my problem or its something else?
Thanks
Please check the antenna on the fc. Is it soldered properly? Is it free in the air and not hidden inside a stack?
Remember this rx does not have an LNA/PA so the range is limited (<100m). Expect a similar performance to the vd5m.
Antena soldered well, but i have 2 fc and they have different antenna lenght. π What is the correct lenght? Im flying only in my room, and the controlling is working well, only telemetry is poor…and my transmitters killing me with lost/recovered sound π
You can experiment with lambda/4 or lambda/2 antenna length (lambda for 2.4GHz). You could also switch off telemetry warning sounds. Your transmitter has a PA and amplifies the transmitted signal. This results in a longer range for TX -> FC than the other way around π
Sorry for my ignorance, but “lambda” is tells me nothing. π I have taranis x9d, if you can tell me a length is mm i will be grateful π
How can i turn off telemetry? I didnt fine it.
Anyway i ordered higher c batteries, maybe mine is too weak, thats why its happening (low voltage). But after telemetry warning, the quad is flying well more 1 min or more (if i can stand the warning sound π ).
Oh sorry I was in a hurry. Lambda is the wavelength. You can calculate it by lambda = speed_of_light / frequency = 0.125m for 2.4Ghz
So lambda/2 is 6.25cm and lambda/4 is around 3.125cm π
With the 3.1 reg the flight times will get smaller right? Because the lipo will never discharge below 3.2v?
Could be. Most likely the fc will still work at voltages below. The vreg will no longer output 3.1V but Vlipo-0.1V (dropout voltage). This will end up in undefined behaviour of the uc/rx but might work down to a certain threshold.
So if I am reading this correctly after making the switch the the new regulator I can safely use HV lipos?
4.2 is the absolute maximum rating for the efm8 microcontroller. The tinypepper 1S esc design has the efm8 connected to the lipo voltage. LIHV might kill it or it might work, try it on your own risk π
Hi I cant find the 3.1v at a reasonable price, but plenty of 3.3v very cheap, will the 3.3v regs work?
No, a 3.3V regulator will not work. Your battery will drop close to that during flight and you will get random resets and bad receiption. Where are you from? If you are from germany I could send you a a spare.
Wow, that is very nice, but I am in New Zealand, but thank you for the offer, I can usually get individual components cheaply, usually only a dollar shipped on eBay but there is only one listing for this LP2985AIM5-3.1 for$11 USD for five, i will buy it if I cant find any cheaper.
There is a chance I may have one on some old pcbs I have here, what in the way of identification should I look for?
It’s hard to say. Every vreg manufacturer uses their own codes for that π
I just got a boldclash b05, and have been having the lost telemetry signal issue that many have reported, and loss of radio signal under heavy load, or after a minute or two of flight. So I checked, and the voltage regulator is a 3.3V regulator! Marking is LORA.
That’s a pitty, a 3.3V regulator is not the best choice for that. Sorry to hear that.
Hi Fishpepper, thank you very much for this great piece of engineering.
I want to share a workaround to this problem of “Not all motors spinning on full battery with F3D8 + Star 4 ESC”.
I solved this problem by switching wires of Motor 1 and Motor 4.
Without that switch, Motor 4 was not spinning and Motor 1 made strange noise (Motor 2+3 are working normal).
After switching wires, I flipped resources in Betaflight and now all motors are spinning perfectly.
But instead, I have another problem: I can’t activate the buzzer π
When I power on, I hear the regular beep-beep sequence, so I know the buzzer is soldered correct.
AND very strange, when I switch into AirMode, the buzzer starts beeping.
But I can’t activate the buzzer via any AUX channel of my receiver.
Do you know a solution to that phenomenon?
Any ideas appreciated.
See this for your buzzer issues π
https://fishpepper.de/2017/07/19/tinyfish-fc-f3d8-buzzer-not-working-in-betaflight-3-1-7-fix/
Awesome!
You made my day π
I having this same issue, first time i sent the stack back to getfpv.com now with this stack the same thing is happening. ive tried resoldering them on multiple times. instead its motor #1 that is the issue. it just jerks back and forth. ive swapped motors, still same issue. any help is appreciated.
What kind of motor do you use?
They are 0705 Reacerstar and boldclash ones 10k kV But itβs weird bc when I go into bl heli suite and spin them one by one, that motor spins (most of the time) but doesnβt when I do all 4.. screws are not hitting the windings and Iβve swapped out motors twice.
All those 070x motors are really bad. Some do not start up properly at all on 1S. Looks like the ESC does not get the sync correctly when all 4 start at once. Maybe due to some interference or voltage spikes? Hard to say :-\
Thanks! I did this fix a few months ago and have been flying great ever since. Now I know why this worked! But at least I got an extra FC out of Banggood for their shoddy cloning! Haha now I have 2 tinyfish and one 1s ESC and your 2s on pre-order from furious! This quad is so fun to fly around my yard in town and has allowed me to get some needed flying practice. Can’t wait for 2s
Great writeup, Simon! Thanks for continuing to educate and inspire us in spite of the cloners!