View Full Version : Build Log my FPV instrument panel
nagyizee
Aug 25, 2008, 09:45 AM
Hi,
This is my FPV Instrument Panel project (still under construction), and I thought to share the project with those guys who want to build something similar and have some experience in building electronic circuits.
The reason I build this device:
I needed some more realism in my FPV flights; flying an RC glider with video goggles the altimeter and variometer are needed gadgets, and it is also important to know the indicated airspeed (GPS can provide only the ground speed which is useless in wind).
OSDs are formidable devices, but they are expensive to buy, and they don't have the cockpit feeling what real instruments give. An other thing is that analog indicators can be read easier than numeric indicators, and there is also the fact that I am looking at the instruments when I want, in the rest of time I have undisturbed image of the landscape - no need for turn the OSD on/off; vario has audio feedback so I don't need to see it.
This panel can measure the followings:
- indicated airspeed (analog) using differential pressure sensor with Pitot tube
- altitude (analog/numeric) using absolute pressure sensor
- variometer (led/sound) using the amplified difference signal from the altitude sensor
- main battery current (lcd analog)
- main battery voltage (lcd analog)
- power consumption in mAh (numeric)
- rpm (numeric) using an optical sensor on the shaft of the motor
- camera battery voltage
The panel is not at scale, and it doesn't respect any standard; the design and functionality is only from my imagination.
The two analog instruments are done with two pico sized servo. The numeric indications are done by a 2x16 alphanumeric display. The hardware is done using SMD component to save space and weight. The panel has only 24grams.
Follows: some pictures; technical details; projects; how to do it; how to configure it
Regards,
Arpad
Ron W3FJW
Aug 25, 2008, 04:07 PM
Now that looks like a project well worth pursuing....
Chippie
Aug 25, 2008, 04:36 PM
Looks kewl......very impressed!
Hope it all works out for you.. :cool:
nagyizee
Aug 26, 2008, 08:39 AM
Thanks guys;
Now I follow with some technical details:
There are (will be) 4 main modules:
- the actual instrument panel containing the microcontroller, display, servos for analog gauges. I have chosen the ATMega8 microcontroller. (status: ready)
- power board - this does the power distribution providing power for ESC, instrument panel, BEC, sensor boards. It does also the signal conditioning for current and battery voltage measurements. Current is measured by an ACS712 30A single chip current sensor. (status: ready)
- altitude/vario sensor board - this will provide the analog signals for altitude and vario, using an MPXA6115A absolute pressure sensor. I will set the signal conditioning circuit to provide 0 - 5V for a 0 - 4000m range. (under construction)
- airspeed sensor board - this will provide the analog signal for airspeed measured by an MPX2010 differential pressure sensor. (under construction)
All the analog signals are processed by the instrument panel. The panel has a 10k by 10k resistive divider for each analog input at the ADC. I used the 2.51V internal reference of the microcontroller so the input voltage on each channel should be betveen 0 - 5V for maximum resolution.
The digital resolution and measurement limmitation for each input is the following:
- airspeed: 10bit measurement, calculated value is 8bit, calculation is done using a 7 point user programmable approximation curve. (airspeed measurement is non linear). 255 point resolution for analog gauge servo (unit doesn't matter).
- altitude: 10bit measurement, calculated value is 16bit, calculation is done using a 4 point user programmable approximation curve. Indicated values: 0-9999 (unit doesn't matter).
The analog gauge will indicate the relative altitude (base measured at power on), the numeric display will indicate the absolute altitude.
- variometer: 8bit measurement. The signal need to have a ~2.5V offset for steady state. Any variation up or down will be indicated by flashing the corresponding LED on the panel and generating the characteristic vario sound on audio output.
The offset is sampled at power on. Maximum resolution is 126 steps up or down. The sensitivity is dependent of the vario sensor board's design.
- battery voltage: 8bit measurement, no calculation. It is indicated by a 20pixel bar graph on the LCD display. I set up mine to indicate minimum and maximum between 9.6V and 12.6V. (min and max are user setable parameters)
- camera battery voltage: 8bit measurement, no calculation. It isn't yet indicated on the LCD (I am thinking on it where to display) but it can generate alarm.
- current: 10bit measurement, calculated value is 16bit (used also at consumption measurement), units are mA, so maximum 65,5A can be measured. Indication is done on a 20pixel bar graph; I set up mine to have 0-18A limits. (note: resolution in mA decreases with higher current measurement limit)
- consumption: using a 32bit summator it samples the current from the above calculated value, sampling is done at 50Hz. Maximum indicated value is 9999mAh.
- rpm: 16bit calculation. minimum detectable rotation is 1000rpm. Displaying is done on 3digits in RMP x100, so it can display max 65500rpm.
The servos for the two analog gauges are controlled at 50Hz, the min/max values for pulse width can be set by the user, this way we can use the maximum constructive range of the servo. My 60deg. servos have 180deg. maximum range. (note: out of constructive range values can burn out the servo)
There are 27 setable parameters, I tried to design the firmware to be configurable at maximum without reprogramming so to be adaptable for any plane/hardware, the only limitations to be those from abowe.
Measured raw data can be read also, It is used for parameter setup and calibration.
The configuration can be done in command line stile using any serial terminal (like HyperTerminal from Windows, Minicom from Linux) configured to 9600bps 8N1, using a serial cable. All the configurations are stored in the microcontroller's EEPROM memory.
The firmware is also updateable trough the serial cable, using the AVRProg from AVRStudio (free). Special programming hardware is needed only at first programming when the bootloader needs to be uploaded. I am using PonyProg for that (free).
Follows: schematics and pcb design for the main instrument panel, after that software stuff and the other desigs.
Some pictures about my build, and a schematic drawing about the cabling of the modules in the plane:
nagyizee
Aug 26, 2008, 04:09 PM
I did the first test flight with the panel powered. It measured only the current, voltage and consumption. It looked well, amperage and voltage were correctly indicated. The panel indicated 1610mAh after five flights, and the battery was used before only shortly at bench test (arround 50mAh). After charging the charger indicated 1690mAh, so the panel is pretty accurate :D
This is the video I recorded at the first test flight:
http://www.youtube.com/watch?v=i5icPdf45lk
Watch it from youtube to be able to see in high quality
:D :D :D
nagyizee
Aug 27, 2008, 11:22 AM
Schemes and firmware of the instrument panel:
1. Some informations:
The main components of the panel are the ATmega8 with TQFP package (DIP doesn't have the ADC6 and ADC7 pins); a 2x16 chr alphanumeric LCD display with the standard 14pin interface; two small sized servos.
I recommend to use a reset generator device in place of R1 resistor. The EEPROM memory can be corrupted when power supply for the microcontroller is unstable - in this case the default parameters from the firmware will be enforced.
There is no need to respect the PCB layout I did. Anybody can design his own layout, the only thing is to take care of the analog routes, and design a ground plane underneath them to eliminate noise. Same precaution needed for AVCC/L1/C12 net.
The values of the sound output's resistors and capacitors are not mandatory, it is important only to have 1Vpp (pulse to pulse voltage) and to obtain some kind of sinus or triangle signal, can be tuned with an oscilloscope. (Board need to be functional for this phase, vario can be simulated by an adjustable input signal between 0 - 5V).
Servo1 is the airspeed gauge servo and Servo2 is the altitude gauge servo.
For LEDs D1, D2, D3 use some high luminosity narrow angle low power LEDs. D1 is "vario down", D2 is "vario up" and D3 is the "alert" LED. Do not connect LED D3 until uploading the bootloader (first programming) - it disturbs the PonyProg's interface.
The jumpers J6-J9 are testpoint like pads on PCB for first programming (uploading the bootloader) using the ISP feature of the microcontroller. I used PhonyProg to do that. Easy to do programmer schemes can be found on PonyProg's webpage.
At the Display connect the R/W pin and the D0-D3 pins to ground (I left D0-D3 in air - it is working this way also).
2. First programming: ( In case of PonyProg )
After the PCB is completed, components mounted, carefully check each connection, make connection from J6-J9 with the Ponyprog's interface (Mosi, Miso, SC, Reset pins) and power up the board from the same power source that Ponyprog's interface has (5V).
!! Do not connect the power for servos !!
NOTE: PonyProg serial interface isn't working with USB-Serial adapters.
a. Fuse bits (Security and Configuration bits) need to be set to:
- Internal RC oscillator with 8MHz: configuration on CKSEL = 0100 which means CKSEL3(on) CKSEL2(off) CKSEL1(on) CKSEL0(on)
- Bootloader activated: BOOTRST(on)
- Bootloader size: 512word which means: BOOTSZ1(on), BOOTSZ0(off)
Write these configurations in the microcontroller
b. Download the bootloader from http://www.dl5neg.de/bootloader/bootloader.html and modify in the Bootloader_Mega8.asm the line 219 from .equ UBR = 23 to .equ UBR = 25 - this is the communication speed 19.2kbps on 8MHz needed for serial programming. Rebuild the .asm file in AVRstudio and write the newly generated .hex binary in the microcontroller using the PonyProg.
c. Disconnect the J6-J9, power up the board (do not power the servos). If everything was done ok then the "vario down" led need to flash 10 times.
d. Connect the LED D3; if the bootloader was properly uploaded and fuse bits configured then there is no more need for PonyProg interface.
The serial interface (UART port J4) of this board is with 5V TTL levels. For connecting it with PC need to do an adapter circuit with a MAX232 chip. Various schemes can be found on Internet. You can get power for this circuit on J4 port.
3. Uploading the firmware using the serial interface:
Check if the bootloader is working properly: Start a serial terminal program (Hyperterminal or minicom ), set to 19.2kbps 8N1; connect the board to the PC, power it up, and when the "vario down" LED flashes press "ESC" immediately - a message should appear from the bootloader.
Close the serial terminal program, start AVRProg from AVRStudio and write the provided firmware binary file. If everything is ok then it should be done in ~30sec.
NOTE: AVRprog can use only COM1 to COM4 ports. USB-Serial adapters can have bigger values, try other USB ports. I have on my PC two USB ports which are working as COM3 and COM4 - the AVRProg can be used only with those.
Restart the board, the LED flashes 10 times (~8sec) then it should start up (values displayed on the LCD screen). Because servos can be different, if they are doing noise then disconnect their power immediately to prevent burning out. Default values in the firmware are for the servos I use.
Comming: Set up parameters from servo limits, list of parameters.
darkith
Aug 27, 2008, 12:31 PM
That is awesome. Can't wait for video with the servo gauges working.
D.
nagyizee
Aug 27, 2008, 01:43 PM
Me too :)
unfortunately there is lot to work with those sensor boards, analog signals are complicated stuff, vario is the worst.
lazy-b
Sep 01, 2008, 02:33 AM
Nagyizee, Very Impressive works.....plan to make one for my Gasser Helicopter.
Here is another Panel but using cheaper material, its not mine, but I am amazed its creativity:
http://www.youtube.com/watch?v=Df8uC5B8DoE
Ron W3FJW
Sep 01, 2008, 03:13 AM
Boy! That sure adds another dimension to FPVing.... Looks terrific..
nagyizee
Sep 01, 2008, 03:20 AM
Nagyizee, Very Impressive works.....plan to make one for my Gasser Helicopter.
Here is another Panel but using cheaper material, its not mine, but I am amazed its creativity:
http://www.youtube.com/watch?v=Df8uC5B8DoE
Yes, I have seen that one a couple of mounts ago, and that inspired me to build an instrument panel
:)
RENATOA
Dec 14, 2008, 11:41 AM
"OSDs are formidable devices, but they are expensive to buy"
Did you seen the BlackStork OSD, what they offer for 120 Euro?
Ron W3FJW
Dec 14, 2008, 01:15 PM
Eagletree has a nice one for $45US but have to use it with their system although with a bit of brainstorming could probably be used with other equipment..
RENATOA
Dec 14, 2008, 02:03 PM
Th $45 piece do nothing alone.
Same functions of BlackStork costs more done with EagleTree, not counting the transport to Europe and customs, which are zero for BlackStork.
nagyizee
Dec 14, 2008, 02:40 PM
That BlackStork looks good, need to get one for my heli.
But the basic idea of the panel was not the price reduction. For the plane I will remain with this. Currently I am waiting for some SMD resistors and high sensitivity opamps to finish the sensor boards.
I am planing to build also a Piper scale FPV plane, and want to do a more scale-like cockpit for it.
sneasle
Dec 15, 2008, 05:23 PM
This. Looks. AWESOME!
I was just wondering earlier today if someone had tried this before.
nagyizee
Feb 13, 2009, 10:10 AM
Ok, I succeeded to work a bit on this project also. The altimeter/vario/speed sensor board is ready, I am doing the measurements and working on my glider to fit all the stuff.
Results are promising, hope I will have a video soon with all the gadgets working.
Meantime I did a description how to set up the instrument panel and corrected some bugs in it's firmware.
I will upload soon also my power distribution board and sensor board schematics with some explanation.
Cheers
clicky
Feb 13, 2009, 11:08 AM
Will wait for onboard video - this project of your is so inspirational :)
nagyizee
Mar 08, 2009, 03:02 PM
Slowly I finished all the components, now I need to do some calibrations and wait for good weather to try it out.
Let me continue the thread by presenting my auxiliary circuits / solutions.
The power distribution board:
I designed it to work with 3S LiPo batteries and 18A ESC. The circuit can be redesigned to any other power configuration.
It's main role is power distribution and filtering but it contains circuitry for measuring volts and amperes.
The current measurement is done with a ACS712 Hall effect current sensor, the signal then is conditioned for ~0 - ~5V levels by an LM324 op amp. For measuring higher or lower amperage the R2 and R3 resistors need to be recalculated.
The voltage is measured as a high impedance signal (using also the internal 10k by 10k divider from the instrument panel). I used 30k resistor to bring the voltage down to 2.51v for 12.6V on the uC. For other voltages the R8/R9/R10 resistors need to be recalculated.
Note that any other design will work if the inputted signals are conditioned correctly for the instrument panel.
nagyizee
Mar 08, 2009, 04:00 PM
The sensor board
I designed my board to handle altitude range 0 - 4000m, vertical speed 0 - 10mps (variable sensitivity) and speeds - well this is a tough one - it depends :confused:
The altitude and vertical speed is measured by an MPXA6115 absolute pressure sensor. It outputs 0.2V - 4.7V for the 15kPa - 115kPa. For 0 - 4000m we need 101.3 - 61.6kPa so the signal need to be conditioned (amplified, offsetted and inverted) to have 0 - 5V for ~-100m --> ~4000m. Precise calculations will be done in the instrument panel using the 4point approx. curve.
I used a 300nF capacitor also to create a low pass filter ~20Hz.
The vertical speed measurement is done by the next stages of amplifications:
There is a 2x non inverting amplifier also with a ~20Hz low pass filter whose output is connected to a 3x100nF capacitor. This makes the differentiation.
To have +/- variation I used a 5V offset introduced by a 1MOhm resistor.
In this phase we need a huge amount of precise, low noise amplification - for this purpose I used an INA128 instrumental amplifier which does a 417x amplification with the 120Ohm resistor. This gives ~0.25V / 1mps (tested in an elevator :D )
The next level of amplification is a variable one from 0.3x - 3x.
The variometer in this project is not a precise instrument - it generates only variable pitch/period sound.
The airspeed measurement is done by the MPX2010 differential pressure sensor and a Pitot tube.
I made my Pitot tube from a telescopic antenna :)
The MPX2010 has no internal amplifier - it is only a temperature compensated resistive bridge so the INA128 is the ideal circuit for amplification.
We need also a second stage of amp. which acts also as an ~5Hz low pass filter because the signal is really noisy when airspeed is measured because of the small turbulence formed at the Pitot tube.
I need to do some experiments with the tube mounted on my car and doing GPS speed readings in a wind calm day to adjust the final amplification and to trace down the approximation curve for this signal.
So, that would be the technical and engineering part of this project - now comes the fun part - flying with working instruments on board :cool:
Cheers
sneasle
Mar 08, 2009, 05:00 PM
very nice details you've posted. Good to know how you've put this together. Makes for some very good reading.
nagyizee
Mar 09, 2009, 08:50 AM
:D :D :D
I tried to give all the indications for those who want to make one or similar
There is still the calibration part, some stuffs to do to transmit the audio from the vario trough the FPV gear, and it is "ready to fly"
AndyKunz
Mar 09, 2009, 01:47 PM
What filters are you using to eliminate audio noise?
Andy
SouthPawPaul
Mar 09, 2009, 02:56 PM
This is possibly one of the most beautifully crafted pieces of DIY instrumentation I have seen.
Very well done and thanks for sharing.
nagyizee
Mar 09, 2009, 03:42 PM
Thanks for the compliments, I am glad that you like it :)
Andy,
I haven't thought about filtering the audio noise. For sure there will be white noise when signal weakens due to distance.
Any recommendation for a good solution is welcomed
Cheers
AndyKunz
Mar 09, 2009, 05:47 PM
I would be concerned because there will be pulses in the altitude and speed in the audio spectrum at least, and the amplitude will be quite significant vs. ambient barometric pressures. You're going to need a low-pass filter, and it suspect you'll need to change the frequency response after some testing.
It might be helpful to record the audio from the plane, time-stamped to match the reported values. You might be just fine using a simple averaging filter of the previous N samples. Then again, you might be needing a complex LPF.
I was asking in hopes you had already tested and learned something there.
Andy
nagyizee
Mar 16, 2009, 06:53 AM
Hi Andy,
There is no data transmitted in audio spectrum, there are only "beeps" - like in the real gliders - which can be heard through the FPV goggle's earphone
:)
Unfortunately the weather isn't cooperant in our region to try the stuff out.
nagyizee
Mar 22, 2009, 05:06 PM
Today I had good weather to try out my glider.
Altimeter is set up according to mathematical calculations, so I can hope only that it indicates the correct values. The thing is that the absolute altitude is dependent to the current barometric pressure, but relative altitude can be OK.
There is a design fault, the offset was a bit low at the first amp. level so the minimum altitude is 29m.
Variometer sensitivity is good, but it is a bit noisy and can not be set a consistent offset for it, I need to include some more RC filters.
Audio isn't linked yet to the FPV stuff, so the beeps can not be heard.
The Speed indicator is not set up yet, it indicates the raw measured values, but it lacks precision for low speeds, and this is because the sensor is for +/-10kPa domain. The 100km/h speed produces ~0.48kPa dynamic pressure, this way strong amplification is needed which breaks the signal/noise ratio.
I recommend to use a +/-1kPa sensor.
The weather was windy, occasionally with very strong gusts, it can be seen on the speed indicator also.
So this is the video with the today's bumpy ride:
http://www.youtube.com/watch?v=qGnIJVRIekY
sneasle
Mar 22, 2009, 05:33 PM
Looks good. I'm glad it is coming together for you.
clicky
Mar 23, 2009, 04:11 AM
Looks really great! :D
nagyizee
Mar 23, 2009, 05:40 AM
Thanks,
There are still some stuff to do:
- calibrating the IAS (making the approx. curve)
- audio link through the FPV gear for the vario
- some low-pass filters for vario signal
- better vario offsetting in the firmware
- rpm sensor for the motor
And a smoother flight with more gliding in a wind-calm day :)
oscillator
Mar 30, 2009, 08:41 PM
Very Cool! I was just looking at the eagle tree OSD pro and thinking about the same thing. I like what you did with the servos moving the gauges! I wonder if it would help to put window film on your canopy to reduce glare on the instrument panel?
nagyizee
Mar 30, 2009, 09:13 PM
Thanks,
I need to try out some screening, the only thing is that I don't want to block more the front view.
The main problem is that in our country the sun is really low in winter period.
BTW. I am also in San Jose for 2 weeks :)
nagyizee
Jun 22, 2009, 07:31 AM
A new FPV video:
Here we have sound also from the variometer
http://www.youtube.com/watch?v=D-RhzV8H8o4
New firmware attached:
-fix for variometer sound
-better sw filtering for vario signal
-extended offsetting time
-preventing EEPROM memory corruption (hope it works)
LFLoTiTo
Jun 23, 2009, 10:28 PM
Nagyizee,
This is simply the coolest FPV dashboard I have ever seen. Congrats!
I also feel that 'analog' indicators enhance the immersion experience, beyond the digitalized/numeric look of OSDs.
Regarding sun reflections, I would suggest you to print the dashboard with an inkjet on paper or cardboard. Perhaps not photo quality as you have today, but surely more readable in the sun.
Cheers and keep it up!
Luiz
nagyizee
Jun 24, 2009, 05:30 AM
Thanks :D
I will try to print on a mate support next time when I crash my plane and need to repair the board ;)
-It happened with version 1.0 - an aileron servo burned out, produced a big fat short circuit and the whole plane remained without power and plunged into the earth nose-first with camera/videoTX/dashboard.
Fortunately the damage was only for some servos, the plane body, and broke the display on the dashboard.
This video is done with version 1.2 with the new Arcus
Now I am working on version 2 for my new Condor EVO4, this will have analog gauge for VSI (vario) also.
vBulletin® Copyright ©2000-2009, Jelsoft Enterprises Ltd.