Modern replacement for the HC-12

Hello guys.

So I have this homemade remote and receiver for my RC plane what is based on a pair of HC-12, one driven by an Arduino Nano (Transmitter) and other driven by an Arduino Micro (Receiver). At the time I built it (2017), I had to chose a Micro for the receiver due to its native UART support, Serial1, witch would of course allow me to drive the servos without conflict, as I would expect if I had to use a Software Serial UART.

It works pretty well up to a distante of 700m. My model (at the moment) is one of those generic Skywalker with a wingspan of 1500cm, tho in the past I had this setup going with several different models. As a matter of fact after I built this system, I never touched my other radios anymore.

If you ask both HC-12s for their configuration, I'd get this:

OK+B19200
OK+RC002
OK+FU3
OK+RP:+20dBm

They both are at full power on channel 2, with a baud rate of 19.2kbps, witch sacrifices some range (if you know something about the HC-12...), but also guarantees no lags on servo movements for instance. Sensitivity at this speed is -107dBm. It's possible to operate it at 9.6kbps (-112dBm), but the controls are not as smooth, specially when you are operating outside, with RF interference, payloads will most definitely be lost, and the servos would go jittery. Less than that becomes not very practical.

The HC-12 at the controller only transmits inside the loop(), and the one at the receiver only receives and parses the data, and then, set the servos to their positions. Really simple piece of software. At the receiver I use the standard HC-12 coil antenna, and at the transmitter a 15.6-Inch Whip Nagoya NA-771 (144/430Mhz).

So far so good, however, I'd like to take the next step with this project. I want more range out of it, and I also wouldn't mind receiving every second or so some data from the plane, like battery status, current being pulled, altitude, heading, and stuff like that. I'm preparing myself for FPV, so I would get in a situation where no visual contact with the model is to be expected. I've already designed an auto-stabilized mode (like a fly-by-wire), and a RTL (Return to Launch), they are both still in test phase.

So, I'd like suggestions for a next step, a departure from the venerable HC-12, towards something that can give me more range and bandwidth. I'd be interested in something that would work as a drop-in replacement, something that interfaces with the Arduinos via UART, as the HC-12 does. Regarding output power, something between 500mW and 1W would be great, more than that and current management will start to become a problem.

I'd like something between the 433Mhz-923MHz(please, no more, no less) bands, anything within this range is considered OK where I live, plus, I already have that nice Nagoya antenna... Software control of output power would be a plus, that way I can avoid operating illegally, which in my country, really depends on where you are, like city or middle of nowhere.

I'm sure you guys understand that to require servo control, such system has to have minimal latency, like the HC-12. I don't much care about modulation, Lora, ASK, OOK, etc. I believe the HC-12 itself is pretty basic regarding that. Regarding security, right now I do it in code, and its quite simple and effective, so I wouldn't mind too much about it.

Price is really a concern, I've seen literally hundreds of solution on AliExpress, some are as expensive as $200 per node. That is too much, specially if you compare it to the old HC-12, and as I said before, I just want a more modern replacement for it.

So, what would you guys recommend me?

Everything is mixed up...
You don't need a native UART to control the servos, they have nothing in common. And the SoftwareSerial has nothing to do with it, because to work with HC-12 one Serial is enough, and it is on any Arduino board.
You can used a Nano on your receiver the same as Micro or Pro mini

Well, you didn't get it quite right. NMF. You're aware of issues(at least that was the way things were in 2017) while trying to use software serial and the servo lib at the same time, right? Use your Serial on the Nano/Uno, and lose your ability to interact with the software and do basic debugging, not to say, alter the config on the HC-12s directly. The smart move was do adopt a board with native/hardware Serial1. BTW, any kid knows UART and Servo Control have nothing to do with one another. Anyways, out of topic.

Replace that coil with a 1/4 wave straight wire or whip, and the range will improve.

Adafruit has a great line of very powerful Arduino-compatible microcontrollers with good transceivers built in, which also feature LiPo battery connectors and built in chargers. Check out the Feather Lora modules, which should give range of a few km, with clear line of sight.

Thanks for the suggestion man! I already played around with various types of homemade antennas on the receiver side, it got me very little improvement over that coil, so I kept it, as the others were too clumsy for the model(keeping the vertical polarization, of course). It seems to me the HC-12 is already at its peak, and will be difficult to get more out of it. If you consider it's rated for 1000m, at the lowest possible baud rate, and I'm doing 700m at 19.2kbps(or at least something close to it)!! The simplicity and efficiency of this little board is mind-blowing. Even the fake ones can be fixed and will work fine thereafter. I wanted something as simple as it, however with 5x to 10x the power output, so I could have a better range and set the baud rate a little higher, in order to implement queries to the receiver on the model plane and get my answer back as fast as possible.

I've just checked, indeed they come with powerful MCUs, however, their radios operating at the same range of the HC-12, 100mW or less, all of them.

Output power is one of several factors that determine range, and others are much more important.

The LoRa modules have ranges measured in km, clear line of sight. The record is over 800 km for balloon flights.

See Adafruit Feather M0 with RFM95 LoRa Radio - 900MHz [RadioFruit] : ID 3178 : $34.95 : Adafruit Industries, Unique & fun DIY electronics and kits

Typically a LoRa module will have circa 10 times the range of a FSK module (such as HC-12) when based on the same air rate and power output.

However,its important to check the allowed power outputs, duty rates, signal bandwidths and allowed frequencies for your part of the World.

For a lot of the World a circa 1km range is the maximum you can use for RC planes since your not allowed to fly a model beyond unaided sight.

OK, but what about latency, wich is of great concern to me? (Given the scenario of a RC model remote control). With the HC-12, I'm operating like something akin to UDP, I send the package/payload (a line containing 24 chars if I remember correctly), and don't care very much if a line or two, or even three get lost on their way, coz the next one is coming quite fast right after them.

Too short to easily measure, and irrelevant for the project you have described. You seem to be inventing issues to avoid making a decision, rather than accept recommendations and experiment.

1 Like

I disagree. Latency is one of the keys to it all. Or is it not?

Other than the time taken for packet transmission (a function of the bit rate and other radio settings), the "latency" in single packet reception is for practical purposes instantaneous.

A packet is either received and accepted within a few dozen microseconds, or if it has errors, it is not. The HC-12 is no different than any of the radios mentioned.

I tire of this, so good luck with your project.

Thank you.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.