HC-12 433MHz wireless serial communication module configuration


HC-12 are cheap 433MHz wireless serial port communication modules with a range up to 1800m in open space. Each costs about $5 when bought from China, and 2 of them can create wireless UART link that can be used, for example, to transfer telemetry data from UAV. Or drive IoT device. Or connect sensors. Or whatever else one can think of.

HC-12 433MHz wireless serial communication module

It is based on SI4463 RF chip, has build in microcontroller, can be configured using AT commands and allows to use external antenna. Working frequency is divided into 100 channels starting from 433,4MHz up to 473,0MHz with 400kHz channel separation. Maximum output power is 100mW (20dBm) and receiver sensitivity differs from -117dBm to -100dBm, depending on transmission speed. It accepts 3,2V-5,5V power supply and can be used with 3.3V and 5V UART voltage devices (5V safe). Continue reading “HC-12 433MHz wireless serial communication module configuration” »

Read More

Improving cheap radio range

Radio range of my first drone, UDI 829A was pretty pathetic. OK, it was (still is, I only have to finally replace motors) pretty indestructible, quite stable and reasonably priced. But effective radio range as quite short. More less 50 meters. Above that limit strange things started to happen. The reason was pretty simple. Just take a look at this picture.

Antenna too short

Can you see the transmitter antenna? Yeap, that it this short cable. Not only it does not go into “antenna cover” of the receiver, it is also horizontally polarized and when receiver is held in a normal way, pointing into a drone, it emits almost no signal in this direction. This and an additional single whip antenna on the receiver makes it virtually impossible to have a good radio range.

So, I’ve decided to fix that and install external antenna that would work with vertical linear polarization and actually emits some power in drone’s direction.
This tutorial shows how to do it for UDI 829A, but will work almost all cheap drones. Their transmitters are very similar inside and as long as there is antenna pad or connector, it can be done. Continue reading “Improving cheap radio range” »

Read More

10 channels for FlySky FS-i6 radios

This news might be not super fresh, but somehow it missed my attention. There is a good news for all owners of FlySky FS-i6 radios: there is an unofficial firmware that turns this cheap 6 channel radio into 10 channel one. Of course, there is a small catch, or even a few of them:

  • All 10 channels are available as PWM only using FS-ia10 receiver
  • PPM on FS-ia6B is still only 6 channels wide. To have all 10, iBus connection to flight controller or iBus to PPM converter required
  • PPM output still only on FA-ia6B and FS-ia10 receivers. No support for FS-ia6 RX module

FlySky FS-i6 (Turnigy TGY-i6) 6 channel 2.4GHz radio system with FPV mount

New firmware, as well as few additional mods, is available on GitHub. I did not checked that, since I no longer own FS-i6 radio, but I’ve read good oppinions: it is stable and functional. So, who will give it a try?

Read More

VirtualWire support for Raspberry Pi

FS1000A and XY-MK-5V 433MHz RF modules are very often first choice for cheap and dirty Do It Yourself wireless communication. Pair of those , allowing one way radio communication, const less than 3 dollars or euros. So they are really cheap. Limited range and transmission speed limits their real life usage, but simple assembly and extremely easy programming are additional advantage over more complex solutions. Specially in Arduino world, with VirtualWire library. I will not write about it right now, there is enough on the internet already.

FS1000A and XY-MK-5V 433MHz RF modules for Raspberry Pi

Continue reading “VirtualWire support for Raspberry Pi” »

Read More

Is PPM Analog or Digital?

Since I am a huge fan of answering questions when they are asked, here is my answer to “Is PPM Analog or Digita?

The easiest way to determine if electrical signal (and PPM in case of RC usage is electrical) is analog or digital is to check how many voltage levels are used. If signal consists of 2 levels, like 5V and 0V, or 3.3V and 0V it is digital. Two states, HIGH and LOW, 1 and 0, digital.

Is PWM Digital or Analog signal

If, however, number of voltages/levels is bigger, it still does not mean that we are dealing with analog signal. Analog signal should be “smooth”. It’s hard to call signal with 3 levels a smooth one. Computers do not work with analog signals. They do not know how to do it. Signals thay can process are always quantified, represented by countable number of bits. Of course, with enough resultion they will appear analog. I’m pretty sure somewhere in The Internet someone is arguing abouth that the very moment you are reading this sentence. I will not participate. If you want to know more about analog and digital, read this article. Bottom line is: with 2 levels, signal is digital.

So, PPM is digital or analog? In case or RC, PPM is a digital signal (or to be more precise digital modulation) that carries/encodes multiple values (channels). Each value (channel) can vary between around 1000 to around 2000. Value of each channel is encoded as number of microseconds between rising and falling edge in specific timeframe associated with this channel number.

Photo: Wikimedia

Read More

PPM output on FrSky X4R and X4R-SB receivers

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:

  1. 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,
  2. Follow those steps to flash X4R/X4RSB using Taranis built in port,
  3. Put a jumper on signal pins 2 and 3,
  4. Bind receiver with Taranis,
  5. 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.

Read More

PPM signal support for FS-i6 radio

FlySky FS-i6 (or branded Turnigy TGY-i6) is a very decent 6 channel entry level RC radio system. But support for PPM (CPPM) standard is somehow not clear. I have no idea why manufacturer keeps PPM support data so well hidden. Anyway, here it is: how can I enable PPM on i6 radio system?

FlySky FS-i6 (Turnigy TGY-i6) 6 channel 2.4GHz radio system with FPV mount

PPM signal is supported only on FS-iA6B (v2) receiver.

FS-iA6B v2 receiver with PPM and i-Bus

No PPM on FS-iA6 receiver

It is not possible to enable PPM signal on FS-iA6 receiver. So if you have simpler one, you would have to buy iA6B. Also, PPM signal is not enabled by default. To turn it on, you have to change radio settings:

  1. Open Menu and select “System setup” FS-i6 system setup
  2. Enter “RX Setup”FS-i6 RX setup
  3. Navigate to “PPM output”FS-i6 PPM Output
  4. And change it to “On”FS-i6 receiver PPM Output

This is all. From now on, FS-iA6B will output PPM 6 channel signal on port 1 labeled “PPM/CH1”.

You can get FS-iA6B from here here.

Read More

PWM, PPM, and Serial RX explained

When speaking about radio systems for remote controlled models, multirotor, airplanes, gliders, there are some shortcuts that might be unknown for beginners. Those are: PWM, PPM, Serial RX, S.Bus. Today I will explain basic concepts behind them, and when they are used.


PWM, as Pulse Width Modulation, is something a standard for controlling different devices onboard remote controlled model. Almost all servos, ESC, flight controllers and radio receivers can work with PWM signal. There might be some exceptions, but they are so rare, that we can skip them.

Stick (switch, POT) position in PWM signal is encoded as length of signal. Signal that lasts 1000us encodes minimum stick position, and signal of 2000us encodes maximum stick position.

3 PWM channels connected to FlySky FS-iA6BIn PWM, each channel is available as separate port of 3 pins (Ground, +5V, Signal). So, if receiver has 8 channels in PWM mode, that means that it has at least 8 ports of 3 pins. 24 pins, 24 cables, lots of mess. And this was great for airplanes, where each control surface is controlled by separate servo connected directly to the receiver. But is not so great for quadcopters and event airplanes with flight controller. Not only it requires a lot of cables, but also complicates things on flight controller’s end. It requires an interrupt for each channel, takes a lot of space and to be honest, it’s completely not needed. Why? Because we have something better…
Continue reading “PWM, PPM, and Serial RX explained” »

Read More