Friday, April 26, 2013

RangeVideo RVJet



RangeVideo released yesterday their new flying wing after a long long wait.

This seems to be a really neat platform for UAV experiment.
Large wings, lot of space for FPV stuff, can handle some interesting payload, and is shipped with a Pan/Tilt module for GoPro & fpv cam.



Full kit with frame, camera gimbal, servos & some accessories cost 249$. That's not bad on the paper.
You'll need to add 99$ for the Powerpack containing motor , 60A esc, spinner & folding props.
Total package for 350$ is still a good deal I think, If quality is there.
 The bad suprise was the shipping rates. 130$ for Florida to France with USPS priority package.

Hope I won't have the custom fees to pay , I'm a bit short those days :)


So what's special with this flying wing.

First it has wings extension you can use depending of the kind of flight & payload you're planning.
Full wing span is 1.95m, without extension it will gives you 1m55 wings, better for fast maneuvers & fun flying.





The second killer feature is the embedded pan/tilt system on the front.
It's suited for Gopro & fpv cam, with a nice protection glass at the front.




I'm not sure I'll put my incoming OpenPilot Revo on it cause I need it on my fpvquad.
Too bad those are rare as diamonds.
So I'll probably try a CC3D with fixed wing nav feature first. Or perhaps it's a good opportunity to try OpenAero32 on the Naze32.

Let's wait for it to cross the Atlantic first before reviewing the precious.



Monday, April 15, 2013

Minimosd hack for OpenPilot


 The problem with OpenPilot project is the really slow process between announced prototypes and released hardware.

They have a really nice OSD board incoming, but there's still no released date anounced yet.
And I need a good OSD now, so let's build a "temporary" solution.

JR63 & Amedee from OpenPilot forum ported the minimosd from Ardupilot to OpenPilot:
http://code.google.com/p/minoposd/
Thanks to them for that work.

Here is a video of what it gives on your video output:



 
On the other side, Team KV made the same thing for Multiwii project:
http://code.google.com/p/rush-osd-development/

But I'll talk only about OpenPilot one for the moment. Things works the same for Multiwii project anyway.

Booth can works on the same board you can buy it at APM store, or some cheap chinese clones that popped around everywhere ( Rctimer, GoodluckBuy, HobbyKing, Ebay )

This is nothing more than an Atmega328P with arduino bootloader & a MAX7456 chip for overlaying text on a video stream.

It doesn't has any current/voltage sensor embedded, and ADC pins are not mapped on the board.

We will need to hack it a bit to suit our needs.

There's many available ADC pins on the Atmega 328P. We just have to wire directly on the chip pins.


We need 3 adc input here. I've choose thoses:
- ADC1 ( pin 24 ) for RSSI
- ADC7 ( pin 22 ) for Current sensor
- ADC6 ( pin 19 ) for Voltage sensor.

To make the thing easier, I choose to use the Attopilot 90A current/voltage sensor.
Like the minimosd, you have the official choice from APM store, Sparkfun one, or some chinese clones ( from rctimer ).

It outputs voltage & current  to a 0-3.3V range.

On MinOPosd wiki, they advice to use some voltage divider to reduce input range to 0-1.1v.
Original code use 1.1v internal atmega voltage reference.

Because I'm lazy, I've decided to use the default 5V voltage reference instead.
We will loose a bit of resolution ( 1024 steps on 0-5v range , so this give us 675 steps for  our 3.3v output. ), but considering the usage, this will be far sufficient.
Just be sure you have a stable 5V input.

Solder 3 wire on the 3 adc pins you want to use.
Don't drink too much coffee before, take a little soldering iron, breathe a bit, and let's go.

 Attopilot already has a 1K resistor on the voltage output, so you don't need to add one ( I've removed it after I took the pic below )
You still should add a low impendance resistor to the current pin. Attopilot already has a capacitor on current output. Adding a resistor will act as an RC filter.
I've added a 470 Ohm resistor to RSSI wire too to limit current.

Here is the board ready with Attopilot sensor:





Attopilot 90A/50v current sensor specs:

 - 63.69 mv/v for voltage sensor
 - 0-3.3v output range for 0-51V input
- 36.6 mv/A for current sensor
- 0-3.3v output range for 0-90A input.


Now we need to change few stuff on minoposd code.

edit the OSD_Config.h to suit your needs :

in my case;
#define FLIGHT_BATT_ON_MINIMOSD
#define ANALOG_RSSI_ON_MINIMOSD  ( I use RangeLink analog rssi output , 0-3.3v range )
#define AH_BETTER_RESOLUTION

FlightBatt.h:

#define VOLTAGE_PIN            6
 #define CURRENT_PIN            7
#define REF_VOLTAGE            5            // DEFAULT: a built-in reference, equal to 5 volts on the ATmega328
#define LOW_VOLTAGE            13.2            // filter start value for 4s LiPo
#define VOLT_DIV_RATIO            15.70            // Attopilot 90A/50v sensor Vref 5V based
 #define CURR_AMP_PER_VOLT        27.32            // Vref 5V based: This is the start value for calibrating a +-90A Current Sensor(AC/DC)Attopilot  Sensitivity: 36.6mV/A
#define CURR_AMPS_OFFSET        0.0000          

FlighBatt.ino:
change analogReference from Internal to Default:

    analogReference(DEFAULT);

AnalogRSSI.h:

#define RSSI_PIN            1           // A1 is pin 24
#define REF_VOLTAGE            5            // DEFAULT: a built-in reference, equal to 5 volts on the ATmega328

AnalogRSSI.ino:
change analogReference from Internal to Default:
    analogReference(DEFAULT);


After that we just have to compile, & load  minimosd with Arduino software.

Now you can follow the minoposd wiki to finish configuration from the software & osd menu.

With just few easy trick we now have a cheap & working well osd

Thursday, April 4, 2013

GhettoStation: hardware build log ( second part )

Almost finished the Ghettostation hardware & software is ready for its first revision. 


What's in the box:

- an old gopro plastic box
- 3 joypad buttons
- an lcd03 I2C 20x4( will add other LCD type later )
- an arduino ( nano or any other )
- 2 standard servos( with 180° capability, most servos of the market )
- an oplink/Xbee/RF433 or any other RF serial link with your UAV.
- a Bluetooth dongle ( for bridging the telemetry to your PC or Android phone for Groundstation software ).
- a 5V ubec 5A
- a 3s lipo 1800mA
- an ImmersionRC 5800 video diversity
- an SDCard video recorder.




The Arduino software I've made can handle any type of mechanic for pan & tilt.
The pathfinder algorithm inside should handle it without problem.

Here we have a 180° pan / 160° tilt capability. I only send it 0-360° pan angle and 0-90° tilt angle, and it will adapt its course like here:




Everything seems to work flawlessly now.
I only have to patiently wait for the week-end  for testing this crap on the field.

To be continued...

GhettoStation: hardware build log ( first part )


When I've started the Ghettostation, I've fixed some few objectives:

Goals:

- only recycled stuff used
- mini antenna tracker & groundstation for 2.4/5.8ghz frequencies that can fit in a backpack.
- host the  wireless video receiver & SDCard video receiver in the box.
- Power all the devices from the same 3S lipo battery ( Arduino, Xbee module, Bluetooth dongle, video receiver & recorder, servos, and the video glasses ( Fatshark ).
- not loosing time on the field with wiring cables, everything needs to be already ready to fly.


I've found this old Go Pro plastic box laying around. Perfect size for my project.

Adding on it 3 joypad buttons and an LCD03 i2c LCD screen showed the potential:



For the Pan axis, I used an old thrust bearing like this.


 I've wanted the whole box paning around, just because it looks cool :).

This will allow free movement without forcing on the servo. All the weight is supported by the bearing.




I already have a big antenna tracker that can move freely at 360° pan. But this won't be really practical for this one. I need to prevent wire twisting mess.
So I choose a 180° pan 180° tilt configuration. This still allows full 360° covering by just inversing Pan & Tilt position when you need to aim backside.


Tilt axis comes from ServoCity.
Ok I've shamelessly bought this one.


It'll covers almost 180° ( 160° ), far sufficient for what I'll do with it. When you fly fpv you rarely go far away on your back.


Now, it's time to assemble all this mess.


GhettoStation : Arduino based groundstation & antenna tracker for Unmanned Aerial Vehicle

Here is my latest project, the Ghettostation.
It's an open source Arduino based groundstation with antenna tracking for UAVs.

For those who don't know, I build and fly multirotors & other toys.
Antenna tracker are usefull when you fly FPV. You need the best video stream possible and pointing reception directional antennas to your UAV is the best way to achieve it.

An antenna tracker grab on the ground your drone GPS coordinates, and move the antenna on pan & tilt axis to aim your vehicle position.


This one get GPS data from your telemetry wireless link.
For now It works with OpenPilot UAVTalk protocol & Multiwii MSP.
I'll add later NMEA , FRSky & MAVLink protocols.



Ghettostation handles any pan/tilt course capabilities. It will find it's path alone depending of your servo liberty of movement.

Current code is available here: http://code.google.com/p/ghettostation/



The software runs on  atmega 328 or more.
Any arduino suits the task.

Arduino ram & flash is almost full, but there's many way to optimise my "dirty?" code for future functionalities.


Manual:



What you need:

- an arduino 328 or more

- a serial wireless link between the tracker and the UAV ( Xbee, Oplink, RF433, etc )

- optional: a bluetooth dongle to bridge telemetry from the tracker to your GCS.

- 2 servos

- 3 push buttons

- an LCD03 I2C panel.




Wiring:

 - plug your pan signal servo wire to pin 6 and tilt to pin 9 ( you can change the pins in the config.h if needed)

 - optional: add a led to pin 13

 - Wire you Xbee/Oplink/whatever Tx pad to arduino Rx pin ( pin 2 ).

If you don't have an osd using the telemetry protocol, or a GCS running on the ground, you'll need to wire the Rx pad of the Xbee/Oplink to the Tx pad of the arduino ( pin 1 )

 - you should add a bluetooth dongle too if you want to use your groundstation software at the same time : Wire bluetooth Tx to Xbee Rx, and BT rx to Xbee Tx.

- wire the 3 buttons from pin 3, 4 , 5 to ground.
LEFT_BUTTON_PIN 4
RIGHT_BUTTON_PIN 3
ENTER_BUTTON_PIN 5


- you'll need an external 5/6v voltage regulator for the servo power. Arduino can't draw too much amp on it's own 5v line.



Scheme:



Forum threads:

Openpilot: http://forums.openpilot.org/topic/20823-ghettostation-mini-antenna-tracker-groundstation/
Multiwii: http://www.multiwii.com/forum/viewtopic.php?f=8&t=3350
 
Credits:

UATalk api from JR63 ( Minoposd : http://code.google.com/p/minoposd/ )
Multiwii MSP api from John Grouse project: http://code.google.com/p/mwp-arduino-antenna-tracker/
Bearing/Azimuth math inspired from : http://www.movable-type.co.uk/scripts/latlong.html

Welcome nerdos

I'm opening this blog today, after 20 years of personal technologic/artistic projects & experiences.
My personal life evolved around various communities , using different virtual identities, and today I feel a bit disappointed not having a central hub of my creative frenzy.

This blog will track down DIY news around UAV ( drones ) , Robotic, Electronics, Domotic, and any other subjects I'm geeking around. And because with help of Internet & DIY, there's really no limit today to accomplish our technological phantasms,  we don't need Nasa...

Guillaume S.