PDA

View Full Version : Idea 802.11G UAV Project


Xnaron
Dec 26, 2005, 08:27 PM
The goal: Create an 802.11G based UAV control system with off-the-shelf components.

The Components:

The Flight Controller:
The ever so hackable Linksys wireless router
Linksys WRT54GS w/Serial port mod (http://www.rwhitby.net/wrt54gs/serial.html)
Serial port mod adds two serial ports. One seems to be linked to a serial console. Would need to investigate whether or not it could be used as a serial port for the gps or control.

running one of these replacement Linux OS
http://www.dd-wrt.com/
http://www.sveasoft.com/

The Servo Control System:
http://www.seetron.com/ssc.htm
Controls 8 servos through serial communication

GPS:
Unit with serial output
http://www.geek.com/hwswrev/palmpilot/randmcngps/
(Without the plastic case it is very light and small) I just happen to have one of these kicking around.

FMA Copilot:
Used to stabilize craft during flight.

Laptop with Wireless G card
Used to program flight and real time flight control.

Theory:
The WRT54G is the brains of the system and has hooked up to its serial ports the Serial Servo Controller (Mini SSCII) and the GPS unit. The WRT54G is running linux. I would dump most of the excess packages and stick with just what is required for running basic wireless connection. This would leave more room for the flight control code.

Features:
- Ability to communicate with the craft via wireless G. This communication would include real time control as well as ability to program the aircraft in flight.
- If the aircraft loses contact with the laptop it would returned to a preprogrammed point and enter a holding pattern. Most likely this would gps coordinates of where the craft took off from. These would be stored in the on board flight computer (WRT54GS)
- Co-pilot used during autonomous and operator controlled flight. In autonomous mode the flight computer would use the rudder only for turns. (I have seen this successfully done by other modellers before). Heading and altitude calculated from GPS data.
- Real-Time control used for take-off and landing. Accomplished with a joystick attached to the laptop.
- Ethernet based web cam for real-time video
- many many more...


Test Bed:
Initial software development and testing would be done with a remote control car. Once control system is ready for flight testing the system would be moved to a larger craft. Something that could carry the weight of the WRT54GS and related components. Not sure what to put it into at this point.

My Background:
I have setup cross compilers before and have developed for other linux based devices such as TIVO. I have experience with electronics and developing custom control software. I am an experienced RC modeller and pilot of both fixed and rotary wing aircraft. Anything I don't know now I'll learn along the way. I am not 100% sure I am going to start this project. I just wanted to throw it out there and get some comments.

Take Care,
Brendin

MX
Dec 26, 2005, 11:28 PM
Interesting. I was thinking of something similar, using an ARM7 based microcontroller board and serial RF modems.

MX

treehog
Dec 27, 2005, 02:36 PM
Hmm basically a mainly in line of sight UAV
with stabilty from airplane dezine and IR auto pilot to keep it level
and use a laptop comms with joy stick to suggest directions and if conntact lost gps kicks in with rudder control to get it back take off zone
correct me if I am wrong

I would opt for plane with high wing possibly parrasole with dihedral and extra diherdal for outboard wings
Also might be an idea to look at tandem types such as 1930's
flea type dezine
as that is reputed to be a non airlon unstallable dezine
the foreplane is a tiltable movable up down wing and rudder control from memory

I have a apple mac g4 and might chose to copy this sysem if its funcional stupid works as all i want is my gliders to come back if rc gets cut off from giong too far with the thermal

Ralf

Xnaron
Dec 27, 2005, 08:18 PM
Hmm basically a mainly in line of sight UAV
with stabilty from airplane dezine and IR auto pilot to keep it level
and use a laptop comms with joy stick to suggest directions and if conntact lost gps kicks in with rudder control to get it back take off zone
correct me if I am wrong

I would opt for plane with high wing possibly parrasole with dihedral and extra diherdal for outboard wings
Also might be an idea to look at tandem types such as 1930's
flea type dezine
as that is reputed to be a non airlon unstallable dezine
the foreplane is a tiltable movable up down wing and rudder control from memory

I have a apple mac g4 and might chose to copy this sysem if its funcional stupid works as all i want is my gliders to come back if rc gets cut off from giong too far with the thermal

Ralf

KISS for sure...I may use a linksys access point wrt54g connected to a gumstix via ethernet. The gumstix would be flight control and the router used for communications via wireless G. With 3rd party firmware it is possible to set the wireless transmission from 28mW to 281mW. This should boost the range. The plan is that while the UAV is in range you can send it a mission which is basically a set of gps coordinates to traverse.

Here are some semi-random thoughts on operation...

Takeoff would be manual and control would be through 802.11g using a joystick and the laptop. Once the unit is in the air the operator would switch to automatic mode. If there is a mission uploaded to the craft it would start flying it. If there wasn't a mission the craft would enter a holding pattern above the operator. The circle would keep it in range of the 802.11g. I believe the range of 802.11g should be quite good when using line of site. Once the mission is complete the craft will return home and enter a holding pattern above the operator. Then the operator will take manual control and land the craft. At any time, at least when in 802.11g range, the operator can take control of the craft. If the craft loses connectivity during manual control it will go into autmatic mode and enter a holding pattern above the operator.

The copilot would be used to keep the craft flying level. I would monitor altitude through the gps. I don't think that the ground speed delivered by the GPS will be too meaningfull in determining whether or not the craft is close to stall speed. I will have to determine which throttle setting allows for a comfortable straight and level flight without loss in altitude. This setting will be the target cruise speed during the mission. If the altitude starts to dip the FCS (Flight Control System) will issue a slight elevator correction coupled with a slight increase in throttle. It will do the opposite when the craft starts gaining alititude. The turns will be rudder only. The copilot will always try and keep the wings level. Basically the FCS will keep issuing the appropriate rudder output until the craft is flying the correct heading as verified by GPS. This should work well as it is a true heading and will allow the craft to deal with the wind by crabbing.


Brendin

treehog
Dec 28, 2005, 10:03 AM
With 3rd party firmware it is possible to set the wireless transmission from 28mW to 281mW.


In lots of eurozone the limit to transmit power is 100mW witout a licence and greater than requires a licence on the 2,4ghz
so to save hassles with bothering to get licence and all that stuff can you also set it in between powers to get 100mW

Ralf

Xnaron
Jan 01, 2006, 10:12 AM
Making progress...

Purchased a WRT54GS version 2. Installed openWRT (www.openwrt.org). Used the cross compiler to compile a hello world app and ran it on the WRT...

I had another idea for connecting serial devices to the WRT. There is a product called site player (www.siteplayer.com) that will interface serial devices with ethernet. In its most basic form it is $29.95. I could use two of these to hook up a gps and the serial servo control board to the WRT.

Brendin

Mr.RC-CAM
Jan 01, 2006, 05:24 PM
This is such a cool hack idea. It would be nice if you can avoid adjunct I/O hardware like the Siteplayer and just utilize the serial ports and hacked internal I/O instead.

One thing to keep in mind is that the RF range can be extended by going to the slowest practical data rates (lower bandwidth). So, if you have that ability, then it would be ideal to take advantage of it. For example, utilizing the 802.11b mode, versus the higher speed 802.11G, will net about +3dB (2X RF power) in the link budget. Operating with lower rates, if possible, will help even more.

Timbo337
Jan 01, 2006, 08:30 PM
You should look into this DIY antenna, if you haven't already, for the base station to get a bit more range http://www.usbwifi.orcon.net.nz/ I've never tried it myself, but it looks like it would work well for this project.

billyzelsnack
Jan 02, 2006, 12:20 AM
Using a siteplayer kinda defeats the purpose of taking advantage of the known modability of the WRT54G. You might as well just buy any old wireless game adapter. They are smaller and cheaper (I bought a WGA11B for $30 shipped from buy.com recently).

btw. Where did you buy your WRT54G to guarantee that it was a version 2?

Xnaron
Jan 02, 2006, 11:09 AM
Using a siteplayer kinda defeats the purpose of taking advantage of the known modability of the WRT54G. You might as well just buy any old wireless game adapter. They are smaller and cheaper (I bought a WGA11B for $30 shipped from buy.com recently).

btw. Where did you buy your WRT54G to guarantee that it was a version 2?

Not really...I will probably have the Flight Control Software run on the WRT54GS instead of a gumstix. I will add the gumstix later if the WRT54GS is unreliable. I will do the serial port mods on the wrt54gs and go from there. On www.linksysinfo.com there is a chart that shows which serial number prefixes correspond to which WRT54 versions. I took the chart to the store (actually several stores) until I found the version I wanted.

Brendin

Xnaron
Jan 02, 2006, 11:18 AM
This is such a cool hack idea. It would be nice if you can avoid adjunct I/O hardware like the Siteplayer and just utilize the serial ports and hacked internal I/O instead.

One thing to keep in mind is that the RF range can be extended by going to the slowest practical data rates (lower bandwidth). So, if you have that ability, then it would be ideal to take advantage of it. For example, utilizing the 802.11b mode, versus the higher speed 802.11G, will net about +3dB (2X RF power) in the link budget. Operating with lower rates, if possible, will help even more.

Thanks...I think you are right. I will add the serial ports to the WRT54GS. I need to remember to try and keep it simple... I have two wireless cards to try. One B only the other a B and G combo. I'll do some line of site range tests in the field by my house.

Brendin

Brendin

Xnaron
Jan 02, 2006, 11:20 AM
You should look into this DIY antenna, if you haven't already, for the base station to get a bit more range http://www.usbwifi.orcon.net.nz/ I've never tried it myself, but it looks like it would work well for this project.

Thanks for the link I'll check them out.

Brendin

Mr.RC-CAM
Jan 02, 2006, 01:24 PM
I have two wireless cards to try. One B only the other a B and G combo. I'll do some line of site range tests in the field by my house. Among the various WiFi cards there are wide variations in Rx sensitivity (perhaps the most important aspect of good range). The test would only be useful if the same WiFi card set was used in both test situations. Just use a pair of G cards and switch them into the B mode for the low speed tests. Assuming the cards are designed well, you should see slightly higher signal levels at lower data rates.

billyzelsnack
Jan 02, 2006, 08:04 PM
Not really...I will probably have the Flight Control Software run on the WRT54GS instead of a gumstix. I will add the gumstix later if the WRT54GS is unreliable. I will do the serial port mods on the wrt54gs and go from there. On www.linksysinfo.com there is a chart that shows which serial number prefixes correspond to which WRT54 versions. I took the chart to the store (actually several stores) until I found the version I wanted.


Keep us updated. I've been wanting to do a WRT54G serial project myself, but the availability has turned me off. Glad to know I can just try a store rather than attempt to outbid the slashdot crowd on ebay.

Xnaron
Jan 02, 2006, 09:24 PM
I just had another idea for getting better range... I will use two access points instead of one access point and a wifi pcmcia card. With OpenWRT I can configure one access point in client mode. The other access point will be on the ground connected to the laptop via ethernet in AP mode. This means I won't have to rely on the weaker PCMCIA wifi card with its crappy antenna and lower RF output.

Brendin

Xnaron
Jan 03, 2006, 12:43 PM
I have confirmed that both serial ports can be made useable on the WRT54GS. I have a version 2 model with 32MB of ram (the new ones have 16MB).

Serial ports are /dev/tts/0 and /dev/tts/1.

/dev/tts/0 is defined as a console port on boot in OpenWRT. It can be disabled after boot by commenting out the last line in /etc/inittab

::sysinit:/etc/init.d/rcS
::shutdown:/sbin/halt
# tts/0::askfirst:/bin/ash --login

This will not stop the console output to tts/0 during boot up. If this is required then a kernel recompile will be required. I will put the GPS on /dev/tts/0 and the mini ssc II on /dev/tts/1. I am pretty sure the GPS will not be effected by any output from /dev/tts/0 on boot up.

I installed a package called setserial using ipkg (ipkg install setserial) before this worked I needed to run ipkg update. You need to be connected to the internet for these commands to work. I also found a couple of utils such as stty in this link http://forum.openwrt.org/viewtopic.php?pid=18235#p18235

Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled
ttyS00 at 0xb8000300 (irq = 3) is a 16550A
ttyS01 at 0xb8000400 (irq = 0) is a 16550A

using stty to set 9600 8n1

stty -F /dev/tts/1 raw speed 9600 -crtscts cs8 -parenb -cstopb

or

stty -F /dev/tts/1 raw speed 9600 -clocal cs8 -parenb -cstopb


I setup the router in client mode using the info from here http://martybugs.net/wireless/openwrt/client.cgi but mostly here http://wiki.openwrt.org/ClientModeHowto

I also installed the wl package (ipkg install wl)

Brendin

clolson
Jan 03, 2006, 08:20 PM
I have confirmed that both serial ports can be made useable on the WRT54GS. I have a version 2 model with 32MB of ram (the new ones have 16MB).

Serial ports are /dev/tts/0 and /dev/tts/1.


How do you physically access the serial ports on this unit. I have one, but I haven't ever popped off the case. What kind of connectors (if any) do they provide?

I bought one of these with a similar uav idea in the back of my head.

What kind of processer do they have? Is it possible to expand their memory?

Thanks,

Curt

billyzelsnack
Jan 04, 2006, 02:27 AM
How do you physically access the serial ports on this unit. I have one, but I haven't ever popped off the case. What kind of connectors (if any) do they provide?

I bought one of these with a similar uav idea in the back of my head.

What kind of processer do they have? Is it possible to expand their memory?

Thanks,

Curt

http://www.rwhitby.net/wrt54gs/serial.html shows the dual port serial mod.

google for "openwrt" and you will find loads of information. However, much of the focus is on fancy networking and less on physical world uses. This thread is definitely useful in the physical world regard. It's good to hear that both serial ports are usuable as DTEs.

Xnaron
Jan 04, 2006, 07:19 PM
How do you physically access the serial ports on this unit. I have one, but I haven't ever popped off the case. What kind of connectors (if any) do they provide?

I bought one of these with a similar uav idea in the back of my head.

What kind of processer do they have? Is it possible to expand their memory?

Thanks,

Curt

Mine is 200mhz...I have seen SD memory expansion hacks out on the net for the wrt54g(s).

Brendin

Xnaron
Jan 04, 2006, 09:01 PM
I have developed a few test programs in C and compiled them against the mips processor in the wrt54gs. I am working on the remote control application. It consists of a listener that runs on the FCS wrt54g. It listens on a specified port for UDP messages. It passes the data directly to the mini ssc II servo controller via serial. I guess you could say its a ethernet to serial relay. It seems to work well. My next steps will be to enhance the sender app to have it translate the joystick movements to servo positions. I wish I hadn't given away my spare USB joystick now :) I think I am going to create a website, like my hovercraft site www.hovercrafters.com, to journal my progress and publish the source code. For now I will keep making entries here to track my progress.

Xnaron
Jan 05, 2006, 08:14 PM
I've finished a basic remote control program. I am using a usb joystick and I have written software that uses the joystick to control the servos. I have two applications. A listener that listens for udp messages and a flight control client that takes input from the joystick and converts the values to mini ssc II compatible input. The data is then sent via udp to the listener. The listener outputs the data via serial to the mini ssc II. It works! Quite well actually. The response I get from the servos is just like what I would get if the unit was hooked up to a receiver and using the transmitter to control them. The UDP is also very robust as it is connectionless. I tried several scenarios of unpowering the ssc II and killing and restarting the client and server. All the tests were positive - recovery is immediate. I am planning to use a usb rc transmitter interface like the one hitec sells. It is pretty simple and emulates a joystick. I am pretty sure I can get it to work under linux. This way I can control the craft with the familiar feel of the RC transmitter.

I have tested listener code above on the WRT and it works well. I can't confirm how well until I get the serial ports operational.

I picked up another WRT54GS unit the other day. I am going to use it for the range tests. First step will be to put the unit on a remote controlled car/truck. I will use this to test range and the gps navigation system which I have yet to write. I think I will use the gpsd package from http://gpsd.berlios.de/ Someone has ported it for OpenWRT as I found here
http://forum.openwrt.org/viewtopic.php?id=2988. I have already installed it. Still waiting for my serial board to get here.

Usefull Links:
http://www.qbik.ch/usb/devices/showdevcat.php?id=3&o=140&w=t&s=v&d=a
http://www.boondog.com/%5Ctutorials%5Cgps%5Cgps.html

Brendin

Xnaron
Jan 05, 2006, 08:26 PM
Here are some pictures of the WRT54GS, my development environment, the joystick I used and the mini ssc II.

Brendin

Xnaron
Jan 05, 2006, 08:47 PM
In lots of eurozone the limit to transmit power is 100mW witout a licence and greater than requires a licence on the 2,4ghz
so to save hassles with bothering to get licence and all that stuff can you also set it in between powers to get 100mW

Ralf


From what I have read there isn't any benefit to cranking up the power...

Mr.RC-CAM
Jan 05, 2006, 11:21 PM
I found a WRT54GS-BP with a CGN30E series S/N. The linksys online version chart says this is a V2.0 with 200Mhz CPU. Should I keep looking, or is this a keeper?

Xnaron
Jan 06, 2006, 10:55 AM
I found a WRT54GS-BP with a CGN30E series S/N. The linksys online version chart says this is a V2.0 with 200Mhz CPU. Should I keep looking, or is this a keeper?

I have two of those. I wanted a version 3 (CGN5xxx) because it has a smaller main board pictured here http://www.linksysinfo.org/modules.php?name=Content&pa=showpage&pid=6 . I couldn't find one anywhere. Stay away from the version 4 (CGN6xxx) as it has half the amount of ram and flash ram.

Brendin

Xnaron
Jan 06, 2006, 11:21 AM
Among the various WiFi cards there are wide variations in Rx sensitivity (perhaps the most important aspect of good range). The test would only be useful if the same WiFi card set was used in both test situations. Just use a pair of G cards and switch them into the B mode for the low speed tests. Assuming the cards are designed well, you should see slightly higher signal levels at lower data rates.

Note:

You can lock a WRT into 802.11b by setting wl0_gmode = 0.

nvram set wl0_gmode=0

Xnaron
Jan 06, 2006, 11:40 AM
Note:

How to monitor signal strength remotely with a tone

http://forum.openwrt.org/viewtopic.php?id=2192

Xnaron
Jan 08, 2006, 05:43 PM
USB transmitter interface.

I picked up one of these http://www.hitecrcd.com/Radios/SIC/SIC.htm It works under Linux and is recognized as a HID compliant device. I plugged it into a parkzone radio from a typhoon I had in hand (they have a JR trainer jack that works) and it worked! I like this device because it is one of the smallest I have seen.

Brendin

Mr.RC-CAM
Jan 08, 2006, 05:57 PM
How to monitor signal strength remotely with a tone.That is a very clever utility. What will they think of next? :)

Xnaron
Jan 09, 2006, 11:02 PM
I took the wrt54GS apart yesterday and weighed various components. The howto for taking the unit apart says to just pop off the blue front from the back of the case. The document is for the wrt54g which apparently doesn't have any screws holding it together. The wrt54gs does have two screws under the rubber feet at the front. Anyhow here are the weights going from memory....

Entire unit arround 454 grams
motherboard bare with no antennas 198 grams
each antenna 28 grams
The case weighs about 200 grams.

Brendin

deh6
Jan 11, 2006, 11:31 PM
I just stumbled on to this thread. Very interesting as a friend and I talked about "flying" a WRT54G about a year ago. The two issues that put it low on the (long) list of interesting projects was the power consumption and communication range issues.

Power could be solved using one of those generators that go behind the prop on the engine to keep a battery pack up.

Solving the range issue is not so clear. Some threads on the '54G lists show connections in the km range, but they use high gain antennas. Keeping a high gain antenna pointed at the plane could be a problem. For example, some years ago I did some amateur satellite communication using the 2.4 Ghz downlink. The antenna was one of those converted MDS antennas. It had to be within a few degrees which would mean some sort of tracking scheme for an airplane. Increasing the power and/or adding a low-noise front end would help, though the increased power is "somewhat illegal" :rolleyes:

Another possiblity is to place '54Gs in a grid pattern and set them up for a mesh network.

I look forward to what you find for range, especially while moving.

As the WRT54G is concerned, I have a bunch of them all with the serial ports and EJTAG header added. One partly finished project is a remote data collector for a Peet weather unit. It's sitting in a cardboard box next to me running; needs weather proofing. Another todo project is uses a Freescale 9S12E128 micro for the sensor/control, and communicating with the '54G via the serial port. I have my 9S12 board working, and the current goal is automatic yaw/pitch control.

Simply more projects than time.

Xnaron
Jan 19, 2006, 10:17 PM
I just stumbled on to this thread. Very interesting as a friend and I talked about "flying" a WRT54G about a year ago. The two issues that put it low on the (long) list of interesting projects was the power consumption and communication range issues.

Power could be solved using one of those generators that go behind the prop on the engine to keep a battery pack up.

Solving the range issue is not so clear. Some threads on the '54G lists show connections in the km range, but they use high gain antennas. Keeping a high gain antenna pointed at the plane could be a problem. For example, some years ago I did some amateur satellite communication using the 2.4 Ghz downlink. The antenna was one of those converted MDS antennas. It had to be within a few degrees which would mean some sort of tracking scheme for an airplane. Increasing the power and/or adding a low-noise front end would help, though the increased power is "somewhat illegal" :rolleyes:

Another possiblity is to place '54Gs in a grid pattern and set them up for a mesh network.

I look forward to what you find for range, especially while moving.

As the WRT54G is concerned, I have a bunch of them all with the serial ports and EJTAG header added. One partly finished project is a remote data collector for a Peet weather unit. It's sitting in a cardboard box next to me running; needs weather proofing. Another todo project is uses a Freescale 9S12E128 micro for the sensor/control, and communicating with the '54G via the serial port. I have my 9S12 board working, and the current goal is automatic yaw/pitch control.

Simply more projects than time.

All I am really hoping for is line of sight range. I'll have two access points talking to each other which should be a lot better than using a PC Card in the laptop. I finally received my parts for adding the serial port to the wrt54gs. I know the feeling of having too many projects and not enough time. :)

Xnaron
Jan 19, 2006, 10:24 PM
I found another linksys device that would make a good on board computer for a UAV. It is the NSLU2 Network attached storage device. The unit is very small and has an xscale processor running on it. It is a 266Mhz processor but linksys is running at at 133Mhz. I removed an SMT pull down resistor and the cpu runs at 266Mhz. This is a posted mod that over 150 people have done and I haven't heard anyone having problems with it. Anyhow the hardware has two USB 2.0 ports along with the possibility of adding serial ports. It also has an ethernet port. The unit runs linux and there is a project called openslug which has a distro that works quite well. This device would be good for a UAV that uses a traditional RC receiver. A cross compiler is available for openslug and I could port my software to it from the wrt54gs uav project.

Brendin

flyhigh555
Feb 15, 2006, 10:58 PM
This plane is going to crash. Hard. Using a router with TCP/IP or whatever protocol will result in your biggest problem being arrival rate of messages. Forget about range and that other stuff since that is immaterial since you will not have real time control. TCP/IP and such are designed for guaranteed message delivery not timely delivery. You will have episodes of sporadic control or significantly lagged messages that will make this impossible to fly. I'd rethink your architecture. You have been warned.

Xnaron
Feb 16, 2006, 12:34 AM
This plane is going to crash. Hard. Using a router with TCP/IP or whatever protocol will result in your biggest problem being arrival rate of messages. Forget about range and that other stuff since that is immaterial since you will not have real time control. TCP/IP and such are designed for guaranteed message delivery not timely delivery. You will have episodes of sporadic control or significantly lagged messages that will make this impossible to fly. I'd rethink your architecture. You have been warned.


I smell a troll but I'll comment anyway... I have tested this and yes it works. I have real time control of eight servos. IP networks can provide real time data transmission. Have you heard of VOIP, and IPTV? These are two applications which require timely delivery of messages. My day job, at a national telecommunications company, involves me developing these types of applications and the networks they run on. At first I wasn't sure if the 802.11 remote control would work either but so far all of my test results are positive. The software I have written functions well on the bench we will see soon how it does in the real world. I will be installing the unit into an rc truck for range testing soon. I'll be sure to post my results here.

Brendin

billyzelsnack
Feb 16, 2006, 01:25 PM
flyhigh555.. It is correct that TCP is designed for reliable delivery and not necessarily low latency. However, because the network we are talking about is only a single hop.. computer to aircraft, that should not be an issue. Of course if you are having TCP latency issues, there is nothing stopping you from using non-reliable UDP for lower latency.

Xnaron
Feb 16, 2006, 01:41 PM
flyhigh555.. It is correct that TCP is designed for reliable delivery and not necessarily low latency. However, because the network we are talking about is only a single hop.. computer to aircraft, that should not be an issue. Of course if you are having TCP latency issues, there is nothing stopping you from using non-reliable UDP for lower latency.

My software uses udp...

Xnaron
Feb 16, 2006, 01:58 PM
I built the serial port kit and added it to the WRT54GS as per Rob Whitbys guide. I had to look up the pinouts for the IC as the ones Ron Provided didn't work for me. Anyhow it is up and running and both serial ports are useable. The software works well and controls the servos smoothly. I'll be putting the unit in an RC Truck soon...

Brendin

flyhigh555
Feb 25, 2006, 10:56 AM
I'd still be careful -- I've seen this tried before with less than stellar results. Just don't risk your blood sweat and tears unnecessarily!

billyzelsnack
Feb 26, 2006, 06:39 PM
Xnaron.. I soon will be able to start in on the fun. Today I finally ordered a 54GL. $33 shipped from http://en.fon.com/ . Hopefully it really is a GL, that's what the peoples in the forums have been getting.

IAmRoko
Mar 21, 2006, 01:04 PM
It's cool to see another Edmontoner interested in UAVs.. Interesting project, good luck!

skratchbilder
Apr 28, 2006, 10:05 PM
Hello all,

I have been re-visiting this thread many times and it seems to have hit a roadblock or something... what happened?

Xnaron : do you have a website documenting this project?

~M.

Garak
Apr 29, 2006, 10:59 AM
I've been thinking about this for the past few weeks and I just discovered this thread. I just read through all the post and here are a few notes I'd like to make:

With atleast 1mbit of bandwidth avaible tcp/ip is as good as realtime without any special changes made. I'm planning on feeding video through my setup so I'll have to do some traffic shaping to get the control surface packets through first.

802.11g will automattically step the datarate down as the signal gets weaker.

I'm looking at using a WAP-54g because it has a smaller board footprint. The challege with these units is that there is limited ram and flash so 3rd party firmwares like openwrt do not supported it.

I'm also looking at some of the Asus wireless routers that will run openwrt. They have usb ports which can be used for webcams and usb serial adapters.

Watch out for Version 5 of the wrt54g and gs, they do not run linux! The have a new gl version which runs linux but I belive it cost alittle more. Try and get the older models.

I'm also looking at the linksys nslu2. It can be connected to an access point via wired ethernet and provides 2 usb ports and a serial port and has a pretty small foot print. It also provides alittle extra onboard processing power.

On the basestation side I'm planning on using a 9dBi vertial and a simple dipole to cover the dead area above the antenna. I'm also considering using a few accesspoints on the ground with highgain antennas, kind of like a cell site but with the antennas tilted up. For take off and landing I'm going to use an xbox type s controller modified for usb. I like the feel of this controler and I've been using it alot in the simulator.

Power is another thing I've been putting alot of thought into. I've been woundering if its possible to build a cheap light weight APU to run all the electronics. I've even been thinking about some sort of hybrid system but I don't think that its pratical.

The idea I'm working with is that take off and landing will be hands on then the wireless router's CPU will take over. The UAV will then fly its mission which will take it out of range of the basestation and then fly back and hold around the landing site untill I'm ready for a hands on landing.

I'm thinking that I might use an nslu2 to compress the video and either stream it while in range or store it to a usb key drive when out of range.

Another idea I have is to use a cellphone as a backup link. Data access on the cellphone network here is expensive. I'd like to find a phone that has serial access to txt messging and get a cheap unlimited messaging package. Its slow both in bandwidth and latency but it could help in finding a lost AUV in the event of a crash. I'd have it programmed to send its gps location periodically. One major problem with this idea is that digital cell access is limited where I'm going to be flying this. I can't be flying an experimental AUV anywhere near civilization.

Just a few random thoughts...
--
Garak

MX
Apr 29, 2006, 12:25 PM
...tcp/ip is as good as realtime without any special changes made. I'm planning on feeding video through my setup so I'll have to do some traffic shaping to get the control surface packets through first.

Wouldn't TCP add unnecessary overhead? Why not use RTP/UDP? You'll get much better realtime. I've implement VoIP that way.

MX

Garak
Jun 06, 2006, 01:11 PM
Over the past few weeks I've installed a serial port on my WAP54g and installed OpenWRT.

There are small images for download on the openwrt site that work but they don't leave any space to work with so I used the image builder tool to create a smaller image.

The PCB in the WAP54g is alot smaller than in the WRT's and weighs less. Both antennas are connected by very thin coax from the PCB to the RP-TNC connectors. The connectors are fairly heavy and if I can find a way to attach a lighter connector or even connect directly to an antenna this will help with the weight alot, maybe even cut the weight in 1/2.

I'm going to pickup an nslu2 when I have money again. I'm finished school next week(hello telecommunications eng. technology diploma) and I'm going right back to work so I'll finaly have some cash again.

The nslu2 will compress video from a usb2.0 webcam and stream it via the WAP54g. With the limited CPU power I won't be able to use much compression. The camera has built in jpeg compression but the video for linux interface dosn't work with compressed video. The kernel module actually decompresses it before sending it along to the video for linux interface. The last project I used this camera with was on a PII 400 /w 256k cache, the CPU load was split between the streaming software and the kernel module, the framerate was pretty low but the latency was not too bad. I gota try and get my head back into programming again and write my own streaming software that dosn't use video for linux.

On the base station side I've been thinking about building a tracking antenna. The mechanics of it are a pain but the software should be pretty simple. With a GPS on the UAV and one on the ground, its strait trig to caculate the angles at which to point the dish. Ofcourse its going to have to be corrected for the delay in the GPS reciver, this should be a simple as factoring in the speed and heading of the UAV(in 3d). The 10 degree beam angle should cover any error. 10 degress at a few 100m is a large area. In close range the UAV will just fallover to an omni directional antenna. Also with this setup its easy to do differiental GPS and get more accurate positioning.

meles meles
Jun 07, 2006, 04:19 PM
Fascinating project 'oomans, and one we'd like to see succeed. However, being a subversive kreecher by nature whose day job can involve turning a network into a notwork, might we sound a note of caution ? 2.4 GHz links are notoriously prone to interference and it wouldn't take much to jam one- even unintentionally ! Even the moisture content of foliage has a significant degrading effect on transmission strength. (Atmospheric moisture content too - a factor made into a benefit in some cases, for example Missile Approach Warning Receivers on aircraft). If, and I accept you probably won't do this, you use the system in an urban area then other users of that frequency could easily swamp your signals. Those other users could be homes with wi-fi networks, surveillance systems triggered by short range radar, automatic door opening systems and many others.

On a more positive note, Buffalo have a number of products on the market that might be useful for the project including some very sensitive, high amplification RX/TX cards. There are also available a number of low cost (Czech) antennae that are highly directional (beamwidth of between 40 to 7 degrees dependent upon model) which can be used to give very significant signal discrimination / amplification. I use one to receive signals from a video camera downlink at ranges out to a mile.