ESP8266 and DS18B20 – wireless ThingSpeak sensor

Here is another small project of mine: battery operated ESP8266 ESP-01 WiFi thermometer using DS18B20 and ThingSpeak API to collect data.

Before we proceed, you should:

esp8266 ds18b20 thingspeak sensor

Continue reading “ESP8266 and DS18B20 – wireless ThingSpeak sensor” »

Read More

3D Printed 433MHz Moxon Antenna With Arm And Snap Mount

It’s still middle of winter here in northern hemisphere, but I’m slowly preparing for next flying season. One of my goals is to push my DIY HC-12 Telelemetry System to a next level. In both range and quality. For quality I’m planning small hardware LTM decoder with LCD. For range, I want to reach at least 1.5km with 9600bps FU3 mode and 2.5km with 1200bps FU4 mode.

Continue reading “3D Printed 433MHz Moxon Antenna With Arm And Snap Mount” »

Read More

SmartPort inverter for F4 flight controllers

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:

  1. More complicated inverter is required
  2. Software has to support this case and fallback to unidirectional UART mode

Hardware

Continue reading “SmartPort inverter for F4 flight controllers” »

Read More

Project Dualcopter – worklog #2

3 weeks after my first post on Project Dualcopter, it's time for small update. The plan was to install servos and control surfaces. Instead, I've done:

  • Basic electrical wiring for motors and ESCs. They have power now and are ready to be connected to flight controller
  • To level shelf (above propellers) designed to hold flight controller and radio receiver
  • Think for a moment about landing gear. Yeap, there will be some sort of shock absorbers
  • Think for a moment where battery will be placed: as low as possible to keep center of gravity below center of thrust
  • Decide which propeller should run clockwise and which should run counterclockwise: top should go clockwise, bottom should go counterclockwise

dualcopter esc soldering

dualcopter esc

Read More

Project Dualcopter – worklog #1

Flying season 2016 is slowly coming to an end on northern hemisphere. That means less time spent on an airfield and more time spent behind a desk. For this autumn I've found a very interesting, small project: Dualcopter.

Dualcopter is an UAV with two coaxial contra-rotating propellers and 2 control surfaces driven by servos. Lift and yaw are controlled by propellers, while pitch and roll by ailerons placed below motors. This video illustrates how it looks like:

My Dualcopter will be slightly different. Instead of foam and wood I will use 3D printed parts connected together CA glue and zip ties. Maybe it will not be super strong and probably will not survive any crash, but should be enough to make it fly for a minute or so. Almost all parts would be either 3D printed or taken from spare box. I'm not planning any new purchases.

Planned specs:

  • Motors: Turnigy MT2213 935KV
  • Props: APC 1045 MR
  • ESC: Afro 20A
  • FC: Flip32 probably with INAV inside
  • Battery: 1300mAh 3S
  • Weight: around 800g with battery

dualcopter 1

So far, after 2 evenings I have this:

dualcopter 2

Two motors mounted on a frame.

Next step would be to build bottom section with ailerons and battery compartment.

Read More

Marabou Stork: FPV airplane maiden flight

For the last few week I’ve been little busy building my next fixed wing UAV: “Marabou Stork” Depron/Carbon/3D Printed airplane with pusher prop build for FPV. It’s improved version of “Red Cruiser” model from last year.

marabou stork depron airplane

marabou stork depron airplane 2

It’s equipped with KFm-2 wing, Turnigy D2826-6 2200KV motor, APC-E 7×4″ propeller, 2700mAh Lipo battery, FPV setup with MinimOSD and RunCam PZ0420H camera. And Flip32 running INAV for stabilization and navigation (no GPS yet).

As you can see on a video above, it flies. Even pretty well. It needs some tuning, but have big potential. Unfortunately elevator malfunction grounded it after few minutes in the air.

Read More

DIY wireless telemetry link for UAV

Telemetry link between UAV (drone, airplane, boat) and laptop/mobile/ground station device can be very useful. Not only to get current drone position, altitude or battery level, but also, when wireless link provides such a possibility, to update drone parameters in-flight. Some radio links, like OpenLRS provides such a possibility out of the box. They include transparent serial bridge and almost any kind of device can use it to communicate with flight controller. Unfortunately, most RC radio systems lacks this functionality and additional telemetry links have to be used. Like SiK Telemetry Radio or 3DR commercial version of it.

One can buy or one can build something by his own. Some time ago I’ve chosen the second way and decided to build my own wireless serial link to archive 2 way communication between drone and ground station software. My objectives were:

  • 433MHz since it is legal in my country
  • has to allow to use my phone with EZ-GUI, since I do not like to carry my notebook to an airfield
  • as cheap as possible

To satisfy those objectives I’ve decided as follows:

Continue reading “DIY wireless telemetry link for UAV” »

Read More

Generate PPM signal with Arduino

In the beginning of this year I’ve written a short tutorial how to read PWM signals from RC radio with Arduino. While it is can be useful when building own RC equipment, it does not help much when one has to deal with PPM (CPPM) signal. Let’s be honest, PPM is much more useful than PWM: all RC channels are sent over single wire. On one side, it simplifies electrical design. On the other, it makes software part more “complicated”, since there is a need to encode multiple PWM channels into single PPM line in transmitter, and then decode PPM signal into multiple PWMs in receiver. And there are very little “ready and working out of the box” solutions in Arduino world.

In this short article I will show how to generate PPM (CPPM) signal using solution prepared few years ago by David Hasko. Originally it was posted of Google Code. But Google Code is not closed and who knows for how long it still will be available. So, let’s not let the knowledge got lost.

Code is relatively simple, and almost all work is done inside ISR(TIMER1_COMPA_vect) that is executed in the background by timer . Everything user has to do, is to put desired values to ppm array inside loop function. This code can generate both positive and negative signal. It can be easily ported to almost any project, as long as TIME1 is free to use.

Slightly more advanced example is available on GitHub.

Read More