Crossbow LRS, I’m still doing this wrong…

Only two weeks ago I thought I solved all my major problems with DIY LoRa RC link. I was wrong. I was able to solve one problem (link unstable due to rouge packets messing up with protocol decoding), but an old problem came up again: PPM input from Taranis is no longer stable. At least I know why since this is a second time this is happening.

Current code read bytes from SX1276 buffer inside interrupt callback procedure (ISR). PPM decoding is also done in ISR. How many threads ATmega has? What happens when one ISR is triggered while second is still executed? Problems. The solution is to keep ISRs as simple and fast as possible. My code was not simple and fast enough.

On top of that, it turned out that Arduino LoRa library I’m using is not efficient. It performs 2 SPI transactions to read one byte from SX1276 FIFO buffer. So, 12 bytes of typical data packet equals 24 SPI transaction… Looks like I will have to do some low-level coding I wanted to avoid in the beginning… Oh well…

Read More

3D printed racing drone, part 1

I've been pretty busy last 2 weeks. Among other things, I've started to design 3D printed racing drone frame. I'm fully aware there are plenty designs available on Thingiverse, but almost all of them forgets that plastic filament is not carbon fiber laminate and what works well with carbon, will fail with filament. So, I came up with this:

3D Printed Racing Drone

3D Printed Racing Drone

  • suitable to 220x and 230x motors with 19x16mm hole spacing
  • fits PCB and 36x36mm flight controller (30.5mm hole spacing)
  • size: 220mm motor to motor (diagonal)
  • fits "standard size" FPV camera

It is heavy for sure. It has thick arms and a lot of M3 nuts and bolts connecting all the parts together. I hope it will be enough to survive at least some beating… First flight in a few weeks since I'm still waiting for motors.

Read More

Crossbow LRS, I was doing this wrong…

Last update on Crossbow LRS DIY RC link I'm currently building was 2 weeks ago. Back then, it did not went well: crashed an airplane beyond field repair. Last weekend I was able to do what I planned, but that did not went well as well. This time from completely different reason…

Link was catching failsafe every few minutes, even when RX was only few meters away from TX. To make things worse, link needed few seconds to recover. And twice it got stuck and required RX restart. It took me quite some time to discover what was the reason of that and a way to fix it.

To give you a full picture:

  • Link is build using LoRa32u4 II Arduino compatible boards that utilizes HPD13 868MHz LoRa radio module. HPD13 uses Semtech SX1276 radio chipset
  • SX1276 has 256 bytes of memory is divided equally for RX and TX FIFO queue
  • I was testing in LoRa rich environment
  • To reduce the probability of race conditions on SPI access and ISR locking, radio RX fifo was read in main loop. Radio interrupt was only setting a flag that data is present

The reason for hanging link was a combination of all points above: From time to time, when radio received a rouge long LoRa packet (by long I mean longer than 128 bytes), both RX and TX were stuck processing it and as a result buffer was never fully emptied and protocol state set to IDLE. In theory, there was a air protocol reset routine, but since SX1276 FIFO was overloaded, it was not working like I expected.

The solution (or at least I hope it will solve the problem) is as follows:

  • Radio interrupt checks if received packet size is a probable air protocol packet. Since its between 7 and 12 bytes, everything else is rejected
  • When probable packet is detected (size between 7 and 12 bytes), it is copied to temporary buffer, read and decoded in main loop
  • Radio buffers are flushed after each packet (put SX1276 in sleep and wake again)

Right now, link is up and running on a bench with other LoRa stations talking around for 2 hours. Not a single failsafe or any other problem so far. Look good. Unfortunately it is raining, so not further live testing this weekend I'm afraid.

By the way, there were good things during my last test too. At 500m distance link still had around 80dB of link budget left. That means I should be able to reach my goal: 5km range is within reach!

Read More

Project Dualcopter – worklog #4

More than a year after staring this damn project, I finally decided what goes where. And on top of that, short description how Dualcopters works (or at least should work).

  1. There are two counter rotating propellers on top. They are responsible for thrust and YAW control
  2. When both props turns faster, dualcopter gains altitude
  3. When clockwise propeller turns faster, whole design starts to rotate counter-clockwise. When counter-clockwise propeller turns faster, it rotates clockwise
  4. Roll and Pitch axis control is archived by two flaps at the bottom of the design moved by two servos
  5. Since propellers are always rotating, there is almost always enoughair passing through flaps to have enough force for stability control and maneuvers
  6. To generate enough torque, center of gravity should be far above flaps. This way, even relatively small force on an end of long lever, there is always enough torque for roll and pitch stability

Dualcopter working principle

Keeping above in mind, it will look like this:

Dualcopter what goes where

What is still missing? Place to put battery in and electronics. Next update as soon as I will have any update 😉

Read More

QuadMeUp Crossbow LRS: introduction

Few days ago I mentioned that I'm working on my own DIY long range radio system (LRS) that I named QuadMeUp Crossbow LRS. Today I will share some more details about it.

First of all, I'm not creating anything new or "amazing". There are plenty of "DIY" or OpenSource LRS systems. OpenLRS for example. Or QCZEK LRS that is made from almost nothing at all. And amazing commercial systems like TBS Crossfire.

Is there a place for something else? I think there is. For example, I was so pissed of by complexity of OpenLRS. So many options, so hard to understand. Or do you know how much micro RX for Crossfire costs? And that you do not need 2W of power to fly up to 5km? And most of pilots owning Crossfire never flied > 2km?

This is why, my idea for DIY LRS is:

Continue reading “QuadMeUp Crossbow LRS: introduction” »

Read More

Project Dualcopter – worklog #3

It's been exactly one year since my last update on Project Dualcopter. On 20th of October 2016 I've posted that there was a progress. Now, 12 months later, I once gain report, that there was a progress…. That was slow….

3d printed dualcopter aka flying bucket

servos for 3d printed dualcopter

  • I've finally installed control surfaces and servos
  • I've finally decided where LiPo will go: to the top of the whole stack. I want CoG as far from control surfaces as possible. They will not generate much force, so I need as much torque as possible. So, long lever FTW
  • My daughter called it Flying Bucket. Makes sense, right?
  • Plans for next week: battery mount

Read More

Very custom FPV quadcopter for my daughter

When few months ago my older daughter (10 years old) started to express interest in FPV quadcopters, I was both happy and concerned. Happy, since I would have someone to fly with. Concerned, since she has no idea how to fly, I do not have a quadcopter for her and there is a big chance she will get bored fast. So, instead of getting her a brand new, cheap, standard off-the-shelf drone, I checked my repository of “spare” parts and drones, purchased this and that and week later “Omlette du fromage” came to life…

Scarab Knife 200 cartoon sticker bomb

Continue reading “Very custom FPV quadcopter for my daughter” »

Read More

Project “Dropship glider” – failure #1

I’ve described my Dropship Glider Project here. Previous weekend I finally tested its ability to glide when dropped from a drone 50m above the ground. And well… to be honest, I failed hard this time. Just see this short video from FPV camera:

Dropship survived two drops. After second one, AIO camera/transmitter combo got damaged. Continue reading “Project “Dropship glider” – failure #1” »

Read More

Project “Dropship glider” – introduction

When I saw this video from rctestflight I knew I will build something like that for myself. A voila, few months later it is done. Here is Dropship Glider.

Dropship glider - depron FPV delta glider

It is 29cm long with 20cm wingspan. Weights 97g AUW and has 21g/dm^2 wing loading. So, in theory, should glide. Somehow… If I got center of gravity right. And did not made ailerons too big. Or…

Dropship glider - depron FPV delta glider

Delta 6mm Depron "wing" is attached to 6mm carbon fiber rod and has some quite big dihedral: 15 degrees.

Dropship glider - depron FPV delta glider

The biggest problem was radio link and mixer for ailerons. I could not use my Taranis: I need that for a carrier and only radio control link I had was EM-16 with PPM output only and no way to setup any kind of mixer. The radio just has no "features" like that…

So, took one Arduino Pro Mini and wrote short program that acts as PPM decoder and mixer for ailerons.

Dropship glider - depron FPV delta glider Arduino

  • power is supplied by 1S LiPo taken from my Tiny Whoop
  • FPV AIO Eachine TX02 also taken from my Tine Whoop
  • 5V is supplied from cheap, regulated, step-up converter
  • 3rd servo is to release tether

First flight, or rather drop, tomorrow. There will be a video from the event of course…

Read More

GPS Racer: worklog #9 – double rangefinder setup

My GPS Racer is less and less fun project. For last few weeks it acts as sensor platform for my attempts to bring rangefinders and terrain following modes back to INAV. This time in a way that will work.

Two weeks ago it was carrying HC-SR04 sonar (crappy device). Week ago it was carrying US-100 (much better device). This week it is carrying both US-100 sonar and VL53L0X lidar!

INAV with US-100 Sonar and VL53L0X Lidar

DigitalEntity apparently had too much spare time and he finally wrote (ported) a driver for VL53L0X and starting from version 1.8 (probably) INAV will be able to use this cheap lidar.

INAV with VL53L0X Lidar

Yes, VL53L0X is cheap and that means it's not state-of-the art device. First of all, it has limited range. 2m is all it can do in a room. No idea how it will behave in sunlight. Hard to guess, but I'm afraid that 1m will be all it will able to do in real life conditions… But we will see in a next few days.

Read More