Archive for the ‘FPV’ Category

DIY Remote shutter release for Samsung NX-series cameras

30/04/2013 213 comments

I’m using Samsung NX1000 for aerial photography. The camera has a nifty feature of using smartphone as a remote viewfinder and shutter release but unfortunately the good idea is watered by buggy and limited program and the feature freezes the whole camera all too often. Fortunately there is a simple way of triggering the shutter via cameras usb-port. The trick is to have 68K resistor between ID and GND pins. After this USB data lines can be used to trigger camera focus and shutter.



Tip: If you have spare micro-usb cables, it’s easy to source a connector from the cable that came with the camera. Just squeeze black plastic around the connector with a pliers and the plastic casing will crack open exposing the connector. The connector on the cable has a small pcb, which makes it easy to solder the required resistor in place. If you use smd resistor, the casing can even be reassembled.

The cable described above works fine for manual use, but to use the camera for aerial photography some interface for rc receiver is needed. Fortunately this is easily achieved with a small arduino program, which reads pwm value from receiver servo port and then pulls either shutter or focus line low based on channel value. The compiled code size is under two kilobytes, so it’s possible to use small and inexpensive microcontroller like AtTiny2313.


RC interface for camera

The schematics and sources can be found at:

Compatible with (at least) following models: NX20, NX210, NX1000, NX1100 and NX2000

Update: If you don’t want to make your own, I’m selling these ready made. Just drop me a message.

Shutter PCB's

Shutter PCB’s


Showing APM telemetry data on Hitec Aurora’s screen (3rd edition)

28/02/2013 31 comments

This is the latest iteration of ArdupilotMega to Hitec telemetry adapter. This version does not require changes to APM code anymore, but instead functions as a standalone device. Displayed information has been changed a little bit, here’s the current mapping:

RPM 1 Distance to home
RPM 2 Airspeed
TEMP 1 Battery remaining (%)
TEMP 2 Throttle position
TEMP 3 Variometer (climb / sink rate)
TEMP 4 Armed status (1 = Armed)

It’s possible to rename the fields in Aurora like this:

Fixed fields (sat count, speed, altitude etc.) function as expected. Only thing that does not work is the date and time. Sadly it’s not possible any more to display “mAh used”, since as far as I can see there is not way to subscribe to that information in APM. I wonder if anybody opposes if I’d add MAVLINK message for that. Of course if you always use same capacity batteries this is not a problem, because you can check battery remaining reading from TEMP1, but since I have many different types of batteries, I’d need to change battery capacity parameter before each flight.

It’s possible to customize displayed data by airframe type, for example airspeed and variometer are probably not interesting to copter users, whereas Armed and heading might be. If you have suggestions, please tell me!

The adapter itself is simple and small. I designed PCB this time with SMD components this time to make it smaller. SAMSUNG CSCThe adapter connects to APM telemetry port and has a pass through to radio. When the adapter is powered up, it sends messages to APM to subscribe data feeds. When APM starts to send all the requested streams, adapter turns it’s UART off to avoid disturbing telemetry communication. There’s a place to mount fet on the top side of board to connect video transmitter power after adapter detects GPS fix. I added this feature since if I have my video tx on, getting GPS fix takes for ages.

I tried to save few euros by choosing ATMega168p as a processor since the code takes only 11KB, but I quickly found out that MAVLINK message handling uses a good amount of ram, so I changed MCU type to ATMega328p to schematic. It’s still possible to use 168, if you define MAVLINK_MAX_PAYLOAD_LEN to 35. Any smaller makes it impossible to receive position message and any larger crashed the program. Compile with 8MHz clock speed and when programming, check that “Divide clock by 8” fuse on low fuse word is not programmed.



Sources and Eagle files are uploaded to Github:

Now if I only could get my hands on some different brand radios (Spectrum, Futaba, Graupner…) I could try to make this adapter universal!

Have fun and tell me what you think!

Edit 1: I think I know now how to get the same system to work with Spektrum, but the problem is that I only have Hitec system. If somebody want’s to borrow me Spektrum radio, I can participate to costs.

Update: I have now professionally made PCB’s available if you want to buy these from me ready made

APM adapter

APM adapter

Categories: Electronics, FPV Tags: , , , ,

Display mount for Hitec Aurora

21/12/2012 2 comments
Monitor mount for Aurora

Monitor mount for Aurora

My usual setup when flying FPV is to have laptop running mission planner with image capture running. This works quite well, but forces me to stand in one place to see the picture, so I wanted something more mobile. I came across Procaster DTV-007 digital TV which at 45 € price is a real bargain. I wondered how to mount it with the controller, and my father came up with an idea to machine a mounting piece that would have a slot for the controller handle.

I drew the mount as two parts, first has a slot for Auroras handle and the second has t-slot for the display. Parts fix to each other with two screws. The part was machined in G-Tronic, where they optimized the part to a single piece. Overall, I’m happy with the results, the mount is very compact and stable in use.

Since there’s now machining files for this part, the design can be replicated easily if someone should need similar part.



Side view

The part itself

The part itself

Cad files:

Categories: FPV, RC Planes Tags: , ,

Showing APM telemetry data on Hitec Aurora’s screen (revisited)

10/05/2012 53 comments

In my previous post I described building adapter which converts APM telemetry data to be shown on Hitec Auroras screen. Since then APM2 hardware has been released and some code changes made previous version unusable. I updated the hardware and software to support also APM2. I couldn’t get SPI transfer to work in APM2, but fortunately it has a spare serial port to use. The good thing is that now only three wires need to be connected to APM2 and nothing needs to be soldered.

APM1 is still supported, wiring instructions are in the previous post. When using with APM1, USE_SPI must be defined in main.cpp.

This version also includes support for showing GPS coordinates. Previously I thought it’s not really useful feature, but I changed my mind after searching for crashed plane in wintery forest in the light of the setting sun for a long time. Coordinates would have been useful after all. Time and Date are still unsupported since APM internal date format is yet to be decided.


Updated schematic

Connecting to APM2. Only three wires are needed.

Sources are uploaded to github:

Update 5.1.2013 – Error in schematic corrected. Added fet to power video transmitter after GPS lock has been acquired.

Update 7.1.2013 – Kind of a long shot, but if somebody wants to borrow me a Spectrum or Graupner system, I could modify the device to support different telemetry protocols.

UAV Drone slideset

23/11/2011 7 comments

Example slide

A while ago I was asked to keep a small presentation about my plane in the workplace event. Here’s the slide set that I made for the presentation. Pictures can be borrowed to other uses, as long as you credit me.

Categories: FPV, RC Planes Tags:

Making of XBee-pro 868 based r/c controller

27/08/2010 13 comments

I thought to gather here few of my experiences while making my own transmitter / receiver. The project started after I finally moved to 2.4 GHz technology by purchasing Hitec Aurora transmitter. One near crash later I learned that 2.4 GHz controller and 2.4 GHz video transmitter don’t play well together. Since here in Finland 2.4 GHz band is just about the only band available for video without amateur radio license, I thought to replace Aurora’s transmitter with something different.

XBee-pro 868 module

After a little bit of googling I bought development kit XBee-PRO 868 RF-modules. They are a near perfect fit with 80 km range and data rate of 24 kbps. The kit was very complete to get started, it contained two modules, one with “rubber duck” antenna and one with wire antenna. Two interface boards were also included, one with serial interface and the other with USB. To save some time I decided to use USB-board on my ground station.

The modules have few quirks though. Receiver on the modules gets saturated easily, so during takeoff and landing, TX power must be lowered. This can be done in command mode, but unfortunately while in command mode, it’s not possible to send data. I don’t find this a problem in level flight since changing the power takes less than half a second. Another thing to note is that duty cycle of transmitter is limited to 10 %. This means that if data is transmitted faster than 2400 bps, after certain amount of time, transmitter is shut down for a while. Fortunately this can be circumvented by resetting the module periodically. Initially I reseted the module by issuing reset command, but I found this problematic since entering the command mode and issuing reset takes again about half a second. While it’s not much it can be very annoying while flying. I found that much faster way is to make micro-controller on both rx and tx side pull module reset line low briefly. This way the reset takes only about 100 ms.

Since the XBee module is quite small, it would be easy to fit it to Aurora’s module slot. Instead I decided to fit all the parts in my ”ground station” to a single box to minimize number of wires and components that can be forgotten to home when heading to airfield.

Groundstation components

The components in the box are show in the diagram above. Stick positions are received from controller via student port and decoded by micro-controller and send to PC to be processed. Two of the available channels are used to toggle tx power and video recording and they are not being sent to save bandwidth. There is also some threshold so that insignificant position changes are not sent. PC encodes stick positions to packets and sends the packets to XBee modem.


Video received from the plane is splitted to video glasses and to video capture device connected to PC. On the PC side, live video is displayed on-screen and optionally recorded. Various data can be overlaid to video. Currently only battery voltages are show, but I’m planning to add gps to the receiver and implement location tracking to get rid of EzOSD I’m currently using.

Receiver before adding the switching regulator

The receiver itself is pretty simple. Atmel AVR micro-controller interfaces with XBee-module and decodes transmitted packets and creates signals to drive servos. Pushbutton on the receiver can be used to save failsafe servo positions. Currently three of five ADC channels are in use. They monitor signal strength, main battery and camera battery. During one of the range tests I noticed that ESC on the plane could not reliably provide enough power for the receiver, so I added switching regulator to draw power from the main battery.

All parts stuffed into Twin Star II for testing

The completed system works well enough to start adding features to PC program. The frame rate is certainly not comparable to commercial radio control systems, but fast enough for stable plane like the Twin Star that I’m using. On the plus side, transmitter has more than enough range and the whole system is quite simple and could be build very cheaply if one would omit PC and video capturing.

Categories: FPV Tags: ,