This post is only a short update for SmartPort inverter for F4 flight controllers. Here is alternative SmartPort inverter circuit using bipolar BC547 instead of unipolar 2N7000. All other aspects of operations are the same like in MOSFET version.
While STM32F4 family processors installed in newest flight controllers are superior to STM32F3 (and F1 of course) in terms of raw speed, they are inferior to F3 family in terms of IO handling capabilities. For example, F4 family is not equipped with UART port inverters. And that creates a series of problems when it comes to connecting various serial RX receivers and telemetry systems.
The most popular FrSky (Futaba) S.Bus serial RX protocol and FrSky SmartPort telemetry require inverted UART signal. If there is no hardware inverter on hardware UART port, they will not work. While S.Bus requires only one data line, external inverter is not a big issue. Some time ago I’ve published The Simplest Harware Inverter. One MOSFET transistor, one resistor and that’s all.
In case of SmartPort, it’s slightly more complicated. Not only signal is inverted, SmartPort also combines TX and RX UART line into single wire. That means the following:
- More complicated inverter is required
- Software has to support this case and fallback to unidirectional UART mode
Last weekend I had a brief opportunity to take a look at new radio from FrSky: X12S Horus. One thing is sure, this thing is quite impressive. For me it is slightly too big and too expensive. Plain old Taranis suits all my needs. Owner seems too be quite happy with his X12S Horus, and here are his main thought about it:
- Big and heavy with a stiff frame. As long as you do not have to carry it attached to your neck for a longer period of time, it is completely fine
- LCD screen is nicely visible in daylight
- Nice Hall effect gimbals!
- Rubber bumpers allows to put Horus on a car’s roof or hood without the risk of scratching it
- Shipped with FrSky software, that is not as good as OpenTx
- External antenna connector with a VSWR
Last week I’ve been finally able to put my new mini quad into the air. It’s based on Reptile XR4 220 frame. Looks like I’ve succeeded with my build this time, since there were no major problems. Few minor, yes, but no major.
My Reptile X4R 220 mini quad has following specification:
- Motors: EMAX RS2205 2300KV
- ESC: FVT LettleBee 20A
- Propellers: DAL 5040
- Flight controller: SPRacingF3 clone running INAV with asynchronous gyroscope and accelerometer. I’ve already written few words about async gyro updates here
- Radio RC link: ***FrSky X4R-SB***
- Camera: Runcam Swift
- VTX: TS5823S 200mW
- Matek PDB-XT60
- Micro MinimOSD with MW-OSD 1.5
Here is short, uncut, video from maiden flight:
The only problem I’ve encountered, was with OSD. It stops overlaying data on aggressive maneuvers for a second and then OSD comes back again. Probably it’s because of voltage drop/noise. MAX7456 is extremely voltage quality sensitive. I will try to fix that with additional capacitor on 5V line this weekend.
With their latest transmitters and receivers FrSky changed telemetry protocol. XJT module, Taranis radios, X8R, X4R and X4RSB are using SmartPort telemetry protocol. And that creates few problems. First of all, SmartPort is a serial protocol. That means, flight controller has to have free serial port to connect S.Port device. Second of all, TX and RX lines shares the same wire. The work in half-duplex mode. Third of all, SmartPort signal levels are inverted: logical 0 is in HIGH state, logical 1 is in high state. All of that combined, connecting SmartPort receiver to flight controller and sending telemetry data is not so easy to archive. Specially on FCs without hardware inverters. That applies to most popular STM32F1 devices like Naze32 and Flip32. Not only numer of UARTs there is limited, but also they lack hardare inverters. Of curse, everything is possible and hardware solution for Cleanflight, Naze32 and SmartPort telemetry can be found here.
Luckily, there is simpler solution for Cleanflight that uses SoftSerial and does not require any hardware hacks besides special wire. Requirements:
- Cleanflight capable flight controller (STM32F1 or STM32F3),
- SmartPort enabled receiver: FrSky X8R, X6R, X4R, X4RSB,
- Possibility to enable SoftSerial. Depending on FC type, different fetures like Parallel PWM, Sonar, LED Strip or Current Meter collides with SoftSerial functionality. Check documentation first. In case of Naze32/Flip32 WS2812b LED strips and Parallel PWM can not be used.
FrSky sells 2 small Taranis compatible receivers: X4R and X4RSB. By default, they offer only PWM signal. 4 channels on X4R and 3 channels plus S.Bus (16 channels over S.Bus) on X4RSB. And that is problematic. Many flight controllers does not support S.Bus very well (no inverters) or just does not offer enough UART ports. When speaking of small multirotors, PPM signal is often the best choice. That made X4R almost useless. For X4RSB additional S.Bus-PPM conversion cable had to be used.
Luckily, this has changed, since FrSky started offering custom X4R/X4RSB firmware that allows 8 channel PPM signal on receivers port 1. The only thing you have to do is to flash you receiver. And those are the steps to do it:
- Download CPPM firmware from this site. Remember that you need proper EU/non-EU version. It all depends if your Taranis and it’s built in XJT module has EU or non-EU firmware. How to determine EU/non-EU Taranis? If you are living outside EU you probably have non-EU firmware. If you are living in EU but bought from non-EU country (China probably) you have non-EU. Also, if in menu you can select D8 or LR12 internal radio mode, you have non-EU firmware. EU firmware allows only D16 mode,
- Follow those steps to flash X4R/X4RSB using Taranis built in port,
- Put a jumper on signal pins 2 and 3,
- Bind receiver with Taranis,
- Remove jumper.
From now on, pin 1 outputs PPM channels 1-8, pin 2 outputs PWM CH9, pin 3 outputs PWM CH 10, and pin 4 outputs either PWM CH11 in X4R or S.Bus on X4RSB. If you want to go back to non-PPM mode, bind receiver again, without jumper on pins 2 and 3.
FrSky X9D is an excellent radio. There is a variety of receivers that can work with it. And each of receivers is a small computer itself. With its own firmware that can be changed. Why? For example to enable CPPM mode, or allow receiver to bind with EU or non-EU Taranis (I will write on both topic in different posts). FsSky is selling cables to flash different modules, but Taranis is cool enough to flash S.Port receiver modules by iself. Cool, right? How to do it? Simple:
- You will need OpenTX 2.1 Taranis software or never. If you are using older one, upgrade with Companion app,
- You will need S.Port cable. Different receivers might have different plugs, so you will need right type. Luckily receivers usually comes with proper cable (checked with X4R and X4RSB), and X8R bundled with Taranis has standard servo pulg for S.Port,
- Taranis has “hidden” connector that allows for flash S.Port modules. It is behind JR module cover.