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.
In 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
Usually I have absolutely nothing against buying cheap stuff from China. OK, maybe quality will not always be as expected, but usually it’s not worth paying extra 100% in price for 10% of extra quality. Usually, with some exceptions. Exception number one are mechanical parts like motors. Exception number two are FPV cameras. And the second one is new one. I’ve put it in place after using FPV 1/4 CMOS HD Color Camera Module 600TVL 120 Degree Wide Angle from Banggood for one month.
For 5.8GHz FPV systems, there are 4 main bands divided into 8 channels each. That gives 32 channels free to use. So, in theory, 32 pilots should be able to fly FPV at the same time. Unfortunately, this is not true.
First of all, there are transmitters, and there are transmitters. Better, properly tuned, will broadcast in narrow frequency range. Cheaper, or just not properly tuned, will broadcast on much wider frequency range. The same goes for receivers. They can listen “only” to their frequency, but also to others. The result is, that a transmitter can pollute other channels. This is why, general rule is then 2 pilots should not fly on adjacent channels. If pilot A is using CH1, pilot B should use CH3 and so on.
Channel frequency for band (MHz)
Second of all, frequencies assigned to channels can overlap with channels in different bands. Just look at the chart below.
Not only frequency separation between bands B and F is smaller than expected, there might me overlaps, channel 4 is crowded and band E jumps high and low. Nightmare that concludes: you should not fly CH4 on bands A and F. Also better not to use CH4 in band B. Just to be on safe side. On the other hand, band E (FR3) is not overlapping with other bands. Also band A is quite safe as long as you are not using CH4.
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.
Since I was lacking some power in my Reptile 500 quadcopter, I was considering switching my Turnigy MT2213 935KV motors to something more powerful. Last previous weekend kind of forced me to make that switch: I destroyed one motor while trying to replace bearings. Being forced with lack of motors I’ve decided to stay with 3S LiPo, AfroESC and 10″ APC propellers and buy motors that would deliver more power while being compatible with rest of my setup. So I have chosen EMAX GT2218/09 1100KV.
Why them? Mainly because they were meeting my requirements and being actually available and within reasonable price.
Max power: 312W,
1380g on APC 11×3.8,
1290 on APC 10×4.7
With long shaft at the bottom, so can be mounted in front and behind an firewall,
GT series (Grand Turbo, woot woot) for “hi-tec” and “pro” models (such a nice name…),
I know, I know… posting PID values for one multirotor is not very useful after all. The same frame with different motors, props and battery might require totally different PID values. But.. At least they can be used as starting point for customized tuning. So, here is my configuration for Reptile 500 and frame and following configuration:
Battery: 5000mAh Turnigy 3S,
FC: Flip32 running Cleanflight 1.10,
Motors: Turnigy Multistar MT2213 935KV
Props: APC 10×4.5 MR
ESC: AfroESC 20A running OneShot125 and BLHeli 14
Weight: 1300g with battery
So, if you have somehow similar configuration, you might try my values. And they are:
PID Controller: LuxFloat (BTW, as far as I can read C code (last time I was programming with C about 20 years ago) and know smth about PIDs, this is the only controller implemented into Cleanflight that actually is written in a proper way. The way I see it, all the other works only by mistake, specially on D part. Who thought that substracting D term is actually a good idea?)
PID and gyro filtering enabled via CLI with following commands (BTW again, those filters are he best thing that came in Cleanflight 1.10. Everything is much smoother with them. Good job on those):
set dterm_cut_hz = 16
set pterm_cut_hz = 32
set gyro_cut_hz = 64
Important note for 2015-11-22
PID values from above has been determined as main source of extensive high frequency vibrations causing jello effect. Specially high D, even with LP filter, was causing jello effect. Read this post for improved PID settings for Reptile 500 frame and Cleanflight.
In my last post I’ve showed how to disable internal MHC5883L compass on Flip32+ (10DOF) flight controller board. Now it’s time to fix what we’ve broken last time, and connect external MHC5883L compass with I2C bus.
In my case I used very popular setup: u-blox NEO-6M GPS module with integrated MHC5883L compass. So you have both GPS and magnetometer in one case. Pretty nice. I’ve described how to connect NEO-6M GPS few weeks ago, so that part should be covered. The only new thing is compass itself. And hardware setup for it is very simple. In addition to GND and +5V lines you only have to connect SDA and SCL lines to bottom line of connectors right to USB port on Flip32. SDA to SDA, SCL to SCL. In case of I2C we do not have swap lines or do any other kinds of voodoo. Continue reading How to add external compass to Flip32
Build in HMC5883L compass/magnetometer is very nice feature of Flip32+ flight controller. Too bad it’s not always working like expected and there is a time, when one have to replace it by external device, positioned as far away from power cables as possible.
I’ve encountered that specific problem two weeks ago when I’ve discovered the reason (or at least I think I discovered) why Position Hold and Return To Home GPS assisted flight modes on my Flip32 and Cleanflight were not working. Or rather were working only sometimes, usually when quadcopter was positioned to the north, north east. On any other case, huge overshoots, going in totally different direction than expected. GPS was more less useless. Finally, during one one flight I kept attention to compass heading displayed on OSD. On the ground, heading was correct. After take off, it was drifting to east. Always east. With that data I’ve concluded: Flip32+ built in compass is too close to power cables and when motors are running magnetic field makes compass readings unreliable. Solution: move compass further away from power cables. But with compass already on PCB it was rather impossible. So the only real solution is: disable internal compass and use external HMC5883L connected over I2C bus.
Learning to fly FPV is not easy. I have no problems with big quad. It is heavy enough no to try any aggressive flying. Small 250 is completely different story. Aggressive flying is just more fun. Flips, rolls, flying close to trees… Just take a look:
Finally I mastered that pass. It only took like 7 propellers and one camera hold 🙂
Hey, don't leave yet, there is more!
Do you know that there is a YouTube channel with awesome, drone and FPV related video? Why don't you give it a try?