28 September, 2016 at 00:42 #33602sscottParticipant
I mentioned the cause of the problem a few posts back, but I realize now that it may not have been clear enough. The problem is that the micro minimOSD is simply not compatible with the F3FC board. This is because the UART on the minimOSD runs at 5V, while the UART on the F3FC runs at 3.3V. While David did mention that the STM32F chip on the F3FC board are 5V tolerant, this is not true when the internal pull-up or pull-down resistors are enabled. For UART operation, internal pull-up/down resistors are enabled, and so the STM32F chip cannot handle the 5V from the UART on the minimOSD.
I don’t know exactly what is happening, but my guess is that the 5V from the minimOSD TX signal is running through the internal pullup on the STM32F, and pulling the chip’s internal supply rails to a higher voltage than they should be at. If the on-chip ADC is used, the this is probably messing with the ADC’s supply and reference voltages, causing it to read incorrect current values.
To correctly interface the minimOSD with the F3FC, you will need some electrical know-how, but one of the following approaches may work. If you don’t have much electronics experience, I would recommend buying a 3.3V OSD instead.
1.) Disable the internal pull-up or pull-down resistors on the UART port on the F3FC by modifying the firmware (and add an external pull-up resistor to 5V, if necessary).
2.) OR: Connect the TX signal on the minimOSD through a voltage level translator to step the 5V signal down to 3.3V, before connecting to RX pin on the F3FC. You can buy dedicated chips to do this, or build your own circuit with a transistor or two.
3.) OR: As a hack, you might be able to get something working using a resistor voltage divider. Connect the TX signal from the minimOSD through two resistors to ground. Connect the center of the two resistors to the RX pin on the F3FC. You will need to be careful, as you need to take into account the internal pull-up resistor on the STM32F, and make sure you don’t draw too much current from the minimOSD.
EDIT: DISCLAIMER: I don’t actually have a minimOSD with which to test out any of these fixes, but all evidence seems to point to this being the cause.28 September, 2016 at 04:05 #33606SamParticipant
It’s not incompatible, it just doesn’t work on UART2, apparently. I haven’t tested this personally. It works fine on UART3 for me. (last post I said I had it on UART1, my mistake) Angle, horizon, altitude, etc, all display fine for me.
With my personal problem, it’s just the current consumed not displaying correctly on video (counting up too fast,) yet fine on Cleanflight. I’m still convinced it’s a calibration issue and struggling to find info about it.28 September, 2016 at 05:30 #33607DaveLParticipant
I came across this Logic Level Shifter today, just a couple of dollars (small rcexplorer dude not included).28 September, 2016 at 07:54 #33612
OK understand the 5v-3.3v idea, but why does it only affect current draw? I’m using an external ADC on my PDB wired to minim OSD and then onto the F3FC.. voltage is displayed in OSD and via smartport on my radio at exactly the levels shown in clean flight, If I enable horizon etc all are displayed correctly. just current sensor seems screwed up. surely the voltage problem should screw up ALL data being sent to and from the FC and the OSD?
level convertor like this http://www.ti.com/product/txs0102 ?28 September, 2016 at 08:42 #33614drameParticipant
It’s not about that the data is screwed up. The transmitted data via UART between the OSD and the FC is just fine.
The problem is that the UART2 is on the same sort of “logical” or internally connected pin group of the FC as the current sensor input pin. That means that the voltage level on the pin used to read the current sensor (which is in fact a voltage on an analog-digital-converter of the FC) is raised by the voltage of the OSD.28 September, 2016 at 08:50 #33615
OK , just sat down and had a think about this and realized , in my case anyway, that it’s nothing to do with the minim OSD at all 5v or 3.3v.. The OSD in my case is correctly displaying exactly what cleanflight.triflight is sending to it.. Voltage is correct, timer is correct, and the current readings are also correct. Garbage but they are the same as displayed in cleanflight . My ADC current sensor isn’t connected to the minim and then to F3FC via uart, it’s wired to the current Isense pad on the FC itself, so the issue is there NOT with the UART. might still be a 5v ADC connected to a 3.3V port but as far as I can see the ADC connects DIRECT to F3FC and I’m getting garbage readings into cleanflight/triflight from there.. the fact that it’s then sending these garbage readings to the OSD to be displayed is irrelevant.28 September, 2016 at 09:04 #33616
First off I have the OSD on UART1 not 2 .. does this still hold true? secondly you are saying if I just remove the TX/RX of minim temporarily I should get correct current readings into cleanflight configurator yes?
and sorry our posts crossed above28 September, 2016 at 09:09 #33618
in either case then as I have no need for cleanflight to get current readings directly at all I ONLY want them displayed in the OSD I should just wire ADC current sensor to the minim direct and play with the offset etc in ITS settings until it reads right. If I do it that way can I still send the current data from the OSD to FC via uart1 and out to my radio via the smartport on uart3? Not that I really need to just wondering28 September, 2016 at 09:09 #33619drameParticipant
it’s wired to the current Isense pad on the FC itself, so the issue is there NOT with the UART. might still be a 5v ADC connected to a 3.3V port but as far as I can see the ADC connects DIRECT to F3FC and I’m getting garbage readings into cleanflight/triflight from there..
Well that’s exactly what every body else is experiencing. Nobody has a problem with the data beeing incorrectly transmitted.
The problem is that he F3FC current readings are wrong when connecting the OSD and fine when disconnecting. And that is caused by simply connecting the OSD regardless of the data beeing sent.
So you are experiencing the same problem as all the others in this thread. Are your current readings in Cleanflight correct if you disconnect the OSD? If so, did you try connecting the OSD to another UART (1 or 3).
Please keep in mind what David wrote about disconnecting the OSD when powered, killing the F3FC.28 September, 2016 at 09:20 #33620
OK we keep crossing posts but I misunderstood how connecting the minim was messing up input via the Isense pin.. I refer you to the two following posts ..and I’ve ONLY tried UART1 for the minim. I have smartport on uart2 and sbus on uart3 I think. so everyone is having issues on uart2. I’m having issues on uart1 maybe could try uart3 or just wire it to OSD direct will solve it all3 October, 2016 at 08:46 #33747
OK I’m going to try wiring the osd to uart3 and if that doesn’t solve it i’ll wire current sensor direct to minim OSD… anyone know if with the two way communication between minim and FC if I’ll still be able to send current data to radio over smartport ie
it’s not tragic not to have it so long as it reads correctly on the screen via OSD but would be nice.4 October, 2016 at 16:36 #33765wynnsquadParticipant
Has anyone tried the logic level shifter yet? If not, I’d like to give it a try. I don’t know, does the community still think that could possibly solve the issue, or does it seem really unlikely?4 October, 2016 at 20:43 #33772
ok well I wired the OSD to uart3 to try it.. the 360/0 settings won’t work but after some trial and error with 167 offset and 480 scale I’m showing 0.25A idle, 0.45A armed and from then on the current values mostly follow what my current analyzer says.. seems a little non linear bizarrely, reads a bit low up to 4A then high after that. I’ll fly a few packs tomorrow and note mAh from OSD summary and what the charger puts back in and see how close it is. Otherwise my next test will be to just wire the current sensor to the OSD direct.13 October, 2016 at 02:26 #33989LitterBugParticipant
I can confirm that moving my OSD from UART2 to UART1 did in fact fix the current measurement problem on my Baby Tricopter/ F3FC Racing / Baby PDB build. Thanks to all that contributed to this thread for an easy fix for me!
Should the Documentation be updated for the F3FC to state that UART2 should only be used for 3.3V IO? Should it also recommend that Spektrum recievers be connected to UART2 since they are also 3.3V?
LitterBug15 October, 2016 at 19:45 #34081billydParticipant
I had to change the current sensor scale setting in cleaflight for my stock baby tri to 544 (default 360) in order to get the correct battery usage (FUEL mah) in my telemetry on my 9xd tx and x4rsb rx
- You must be logged in to reply to this topic.