Wifi Robot
August 2008
| Introduction Hardware Software Measurements and Benchmarks Resources |
Introduction
Wifi Robot: A remote control car that can be driven over the internet or with a laptop wirelessly from up to 500m away. It has a live-feed network camera so that it can be driven without line of sight and a horn so that you can honk at people.
A while ago I discovered the Linksys WRT54GL router. It's very hacker-friendly in that it runs Linux and some of the hardware has been reverse engineered. A bunch of alternative firmware versions have been written for this router. The version that this project uses is the customizable Linux firmware Open-WRT. Along with great software for this router, a bunch of hardware hacks are possible. With a cheap, hackable, embedded Linux system at my disposal -- I knew I had to do something cool with it. So the Wifi Robot idea was born.
The goal of this article is to give a high-level overview of the project and provide some implementation details of the software and electronics. It is not meant to be a step-by-step how-to guide, but there should be enough information for someone with motivation and some background knowledge in electronics and software to be able to make their own Wifi Robot. All of the source code is being released under the terms of the GNU GPL v2, so by all means, use the code, and improve it!
Hardware
Car
Adding a network camera, router, heavier batteries, extra circuits, and a whole bunch of wires adds a lot of extra weight that the car wasn't designed for. Because of all of the additions, you'll need to find a pretty large RC car. Thrift stores often sell RC vehicles (without remotes!) for $3-5. I have bought a number of cars this way for taking apart. Vehicles in the 1:10 size ratio or bigger are appropriate; you probably don't want to go any smaller. I bought this car for $5 at Value Village.
I have taken apart about 20 RC cars. Nearly every single one of them used the Realtek RX2/TX2 chips or a pin-compatible alternative. The links are for their respective datasheets. What this means is that it's really easy to interface to the car's existing electronics without having to put in a bunch of our own circuitry. It's possible to hook up a microcontroller directly to these pins (Forward, Backward, Left, Right) and directly control the car. Being able to leverage the car's original circuitry saves a lot of time and effort.
Router
I've modified my WRT54GL to have 2 serial ports and a 1GB SD Card (acts like a 1GB hard drive). The SD card is not used in this project, but one of the serial ports is. One is a console port, the other is TTS/1 which we will be using. For this project I'm using Open-WRT White Russian v0.9. There are more recent versions, but we don't need the latest-and-greatest software features for this project. The software compilation guide (details later) uses this distribution, so that is why I chose it.
Later in the article links and information are given that can help you wire up your serial ports and get them working.
Microcontroller Selection
I evaluated three different microcontrollers for this project. Below is a summary of the evaluation.
Microcontroller |
PIC16F628A |
Arduino (ATmega168) Freeduino MaxSerial |
AVR Butterfly (ATmega169) |
Pros |
price |
very easy to program (C with many built-in libraries) integrated serial pre-packaged development kit, little or no soldering involved |
easier to program than the PIC (C) integrated serial little soldering involved |
Cons |
hard to program (assembly) have to wire up the circuit by hand extra serial hardware required (MAX232A) extra programmer required |
price | bootloader error (see below) integrated peripherals cause weird output voltages price |
I choose the PIC16F628A for a few reasons:
- I had a bunch of them around
- I have quite a bit of experience working with them
- I wanted a board with a small footprint, the PIC was the smallest footprint of all 3 options
- I wanted complete control over what the code was doing and this is very possible with assembly programming
I originally used the AVR Butterfly development board. It was working fine until the batteries ran low one time. There is an error in the AVR butterfly bootloader detailed here that corrupts the code and doesn't let you reprogram it unless you load a new bootloader. To me, I just knew my car was working one day and not the next. It took quite a while to debug the problem and quite a bit of time to fix it so I scrapped that control system. I also found the output voltages to be unpredictable because the outputs are also driving the integrated peripherals like the LCD screen.
Below I have included source code for the PIC and Arduino microcontroller platforms. Both have been tested -- so use whichever you feel most comfortable with. The Arduino (Freeduino MaxSerial) would be the most painless way to get running quickly. I bought this one.
Steering Circuit
I'm actually using two control boards in my car. The reason for this is that I blew the original drive transistors on the board that came with the car. Fortunately I was able to remove them and the RX2 chip (which was also blown) and salvage the steering circuit. Most of these toy RC cars have about 6 wires that go in to the steering motor assembly. This is because inside the assembly there's a metallic wiper that moves with the motor and the extra wires are used to relay which position the motor is in. Each different RC car will have a different setup for this wiper circuit, so it's VERY useful to be able to use the one that came with the car.
I blew the drive transistors because I was trying to drive the circuit at ~16V when the battery that drives the car would nominally be 9.6V. The transistors are rated for 5A, but evidentially I was driving them too hard and they failed in a spectacular plume of smoke. I took a board from another RC car and used its drive transistors. I'm running this circuit at 12V and it hasn't caused any problems. The transistors get quite hot though. Being able to use existing RC car circuits and not having to build your own H-bridges saves a lot of time and money.
Batteries
This project sucks some major battery power. I bought some high-end RC car batteries for about $50+shipping on eBay. They're 3800mAh and came with a 1.8A smart charger. They can be found with this eBay search. Each battery takes about 1.5hrs to charge (from being completely dead). They're 7.2V, however when they're just-charged they're ~8.3V and when they're dead (no longer able to move the car) they measure ~7.1V.
I replaced all of the RC battery connectors with standard ATX power supply Molex connectors. This was so that I could connect them using cheap connectors I already had and so that it would be easy to make a splitter connector for doing power measurements. The batteries are wired in series for about 16V when fully charged.
Power Rails
5V (7805 1A regulator) |
9.2V (from 12V-7812 rail) |
12V (7812 1A regulator) |
12V (LT1083 7.5A Regulator) |
microcontroller |
camera |
wifi router | drive board with motor controller |
The 9.6V rail was powered by putting 4 diodes in series with the 7812 12V rail. A diode takes ~0.7V to turn on. By putting 4 in series, we drop ~2.8V across them and now we have 9V for the devices that need less than 12V. After burning the first bunch of transistors I wanted to run the circuit at a lower voltage. The 7812 regulator is only rated for 1A but the motors would drain considerably more than that. Digikey sells a 7.5A 12V regulator for ~$14 which I bought. I attached it to a heat sink because I thought that it may get pretty hot. After quite a bit of use, it doesn't even get warn, so the heat sink was not required.
I didn't want to risk blowing the steering control circuit, so I put it on the rail closest to the original RC car battery voltage. The camera required 9V and the horn wasn't loud enough when I tried it on the 5V rail, so all of these devices are on the 9.2V rail.
All of the power electronics are on a prototype board and are stored under a project box.
Microcontroller Circuit
Arduino Hookup Guide
Signal |
Arduino Pin |
Forward |
Digital Pin 8 |
Backward |
Digital Pin 9 |
Left |
Digital Pin 10 |
Right |
Digital Pin 11 |
Green LED |
Digital Pin 7 |
Red LED |
Digital Pin 6 |
Horn |
Digital Pin 5 |
The Freeduino MaxSerial serial port can be connected with any standard serial cable to the serial port on the router.
The Freeduino MaxSerial uses serial pin 4 - DTR (data terminal ready) to reset the microcontroller and allow it to download new code. Under normal PC operation this pin is either +10V or -10V depending on whether the serial port is connected or not. However, this pin is grounded on the router serial port and isn't active. When the router serial port starts sending data, the MaxSerial resets. That's no good for us. We are going to pull-up the DTR pin to +9V. With this quick hardware modification, it basically adds a program-locked mode so that new code can't be uploaded and the microcontroller can't be reset by the serial port. If you need to reprogram it, just flip the switch. +9V is a pin with easy access on the Freeduino MaxSerial.
Note: If you're using a usb version of the Arduino, you may be able to just connect the RX & TX pins to a MAX232A and then to the router serial port and may not need this modification. I only have the MaxSerial version, so I can't verify either way.
Camera


(Left Image Source: http://panasonic.co.jp/pcc/products/en/netwkcam/lineup/bl-c1/partnames.html)
One of the coolest aspects of this project is the fact that the car can be driven without line of sight. That is accomplished using a network camera. The one I chose was the Panasonic BL-C1A. It was basically the cheapest wired network camera with good reviews. The software is Windows-only and isn't great, but it's usable. The software is required to get the live streaming view. More expensive models can be had that have pan and tilt capability, but they are considerably more expensive and I didn't need that functionality.
Edit:
As a couple of the commentors have pointed out, the camera actually has a very usable web interface making it not a Windows-specific device. You can view the live feed using the following command:
http://<camera_ip>/ImageViewer?Resolution=320x240?Quality=standard
Available resolutions are 640x480, 320x120, and 160x60. Available quality (compression) settings are precision, standard, and motion.
There's a good summary of the commands and review of the camera at this blog.

(Dimensions Images Source: http://panasonic.co.jp/pcc/products/en/netwkcam/lineup/bl-c1/partnames.html)
The video quality is quite good. However, it will often freeze at a frame for about 1 second and then start streaming again. Even with good connectivity. I'm guessing its controller isn't powerful enough to auto-focus and also keep streaming at times. Overall I'm happy with it.
See the measurements and benchmarks section below for bandwidth requirement measurements.
Looking at the inside of the camera it looks like its running on an ARM processor at 250MHz. According to their parts website, it also includes 64MB of RAM. I wonder how hard it would be to get Linux running on this thing...
Horn
I wanted to add the fun feature of being able to honk at people. It was a pretty simple addition. I bought a $3 buzzer for KW Surplus and hooked it up to the microcontroller using a transistor for greater voltage and current.
Putting it All Together
Only the base of the RC car was used. All decorative and non-functional parts were stripped off. The camera was mounted to the front with only a small modification to the mounting hardware that came with the camera. The circuit boards were bolted to the sides of the front part of the car using plastic nuts and bolts to avoid conductivity issues.
The PIC controller board was also bolted securely to the side of the car. A number of holes were drilled to allow for routing the wires. All wires were intentionally made longer than required so that the pieces could be easily moved around before they were bolted in permanently. After all of the pieces were secured, all of the slack in the wires was collected and zip-tied (see pic in Power section above). There were a lot of wires. Probably around 30 that needed to be routed to/from the front and back of the car, not including the Ethernet cable.
All of the power circuits were housed in the project box on the back of the car, with the exception of the LT1083 7.5A Regulator which is on the bottom of the car. I didn't put it in the project box because it was a late addition to the project (after blowing a board earlier), so it was the easiest place to add it. An LED on the back of the box glows red while the router is booting up. When the router sends an 'alive' message to the microcontroller, the LED turns green and I know that I'll be able to connect with the VB client application. This LED was very helpful when debugging.
All of the electronics were prototyped on a breadboard before being soldered and installed in the car. The batteries were secured using hot-glue and zip-ties. The router was a bit too wide to sit on the car without some extra modifications. I added a couple pieces of plexiglass to make the RC car base wider.
Future [Possible] Additions
There are a couple things I think would be fun to add:
Headlights, just super-bright LEDs. They would be very easy to add to the microcontroller circuit.
Current Sensor that could relay back how much current the car was using and display it in the VB app. The microcontroller could read the sensor and send back the data.
Software
There are three pieces of software that make this project possible. The VB6 Wifi_Robot client application (runs on Windows), the CarServer which is written in C and runs on the router running OpenWRT WhiteRussian v0.9 (Linux), and the microcontroller firmware. I've provided tested firmware for both PIC16F628A microcontroller and the popular Arduino (Freeduino MaxSerial). All software is released under the GNU GPL v2 license.
The following instructions assume you have a Linksys WRT54GL with OpenWRT WhiteRussian v0.9 installed and connected to the internet. See this guide for OpenWRT installation instructions.
Installing CarServer
If you just want to use the software
SSH in to your router then ...
# cd /tmp
# wget http://www.jbprojects.net/projects/wifirobot/carserver_1_mipsel.ipk
# ipkg install ./carserver_1_mipsel.ipk
Compiling and Installing CarServer
If you want to see how it works or modify it yourself
You'll need to download the OpenWRT SDK (Linux Only) and follow this guide for compiling software: Eric Bishop's Writing and Compiling A Simple Program for OpenWRT (just follow Part I)
Makefile place in /OpenWrt-SDK-Linux-i686-1/package/carserver/
Makefile place in /OpenWrt-SDK-Linux-i686-1/package/carserver/src
carserver.c place in /OpenWrt-SDK-Linux-i686-1/package/carserver/src
Your compiled ipkg will show up in /OpenWrt-SDK-Linux-i686-1/bin/packages. Then
# scp carserver_1_mipsel.ipk root@<router_ip>:/tmp/.
to copy it to the router. SSH in and install it.
Great Resource
There seems to a free e-book on the WRT54G series of routers called the Linksys WRT54G Ultimate Hacking. I believe it's meant to be free. Google Books has the whole book viewable. It can also be downloaded here: (password: ____ ) This book outlines how to add a serial port, setup the software, as well as a bunch of other hacks.
Edit: (September 20, 2008)
I've been contacted by one of the authors. It isn't a free e-book. You can view the whole book on Google Books here or for a more convenient format and to support the authors, check it out at Amazon. It's a great book!
Getting the Serial Port Working
We need to use TTS/1, so if you only add one serial port -- make sure its that one. Assuming you have OpenWRT WhiteRussian v0.9 installed, SSH in to the router. The instructions in the book linked above are a bit outdated. Here is the updated version:
# ipkg update
# ipkg install setserial
# cd /usr/sbin
# wget http://www.jbprojects.net/projects/wifirobot/stty.tgz
# tar -zxvf stty.tgz
# chmod 755 stty
Add the following lines to /etc/init.d/custom-user-startup to make the serial port work on start-up and have the CarServer automatically start.
/usr/sbin/setserial /dev/tts/1 irq 3
/usr/sbin/stty -F /dev/tts/1 raw speed 9600
/bin/carserver &
Running Wifi_Robot Client App:

wifi_robot_client.zip
This file contains both the VB6 source code and compiled EXE. You can just extract the wifi_robot_client.exe and config.txt you don't want to deal with the programming stuff. The project will open and compile in VB6 if you'd like to modify it. It's Windows-only, but if anyone wants to make an alternative client app, I'll be happy to post it here and give you credit. This software is just slightly modified from the Computer Controller RC Car project posted a few years back.
Microcontroller Firmware
PIC
You'll need a PIC programmer to burn the firmware. Personally I use a P16PRO40 that I bought on eBay. There are many pic programmers that you can purchase or make yourself for a few dollars worth of parts. You can compile the HEX yourself using Microchip's MPLAB or just download and program the HEX file provided. The PIC asm is based off of this PIC16F628 UART Test guide.
car_pic.asm
car_pic.HEX
Arduino (Freeduino MaxSerial)
You can follow these tutorials to get your Arduino up and running fast. The code can be downloaded to the Freeduino MaxSerial without an extra programmer.
car_arduino.c
If you're using a Freeduino MaxSerial, make sure you complete the small hardware modification that will stop the Freeduino from resetting every time it receives data from the router serial port. See the hardware section above for more technical details of the problem.
Download All Files
wifi_robot_software.zip
This zip-file contains all of the compiled binaries and source code mentioned above.
Disclaimer
I have done my best to ensure to all information above is accurate. If there are any errors, please e-mail at
and I'll make any corrections.
Measurements and Benchmarks
Top Speed
To get the maximum speed I setup to tape lines 3m apart and filmed the car while I made several passes. The camera records at 30fps, so I have +/- 3.3% error from the camera and maybe +/- 1% error from the tape lines.

The car could travel 3m in 0.7 seconds (21 out of 30 frames in 1 second).
Top Speed: 4.3m/s = 15.5km/h = 9.6miles/h

Distance
I took the router in to a big field. I could connect with my laptop up to 500m away (at 1Mb). After that distance, I could no longer connect. The alternative firmware (OpenWRT) allows you to increase the output power. I tried modifying this value, but it made no difference at all to the distance I was able to connect to it. Perhaps my laptop (Dell Inspiron 6000) which has always had good wifi connectivity (better than my friend's 6400), may be the limiting factor.
Data Rates
Control Signals: 3.5KB/s
Camera: 50-190KB/s
The camera used more/less bandwidth depending on how much light was in the image. If there was lots of light, it would use more bandwidth.
If the car was to be driven from very far away, the router would continually negotiate a lower speed until it reached 1Mb (megabit). At this speed, the camera wouldn't be able to send back data, but the control signals would still be working.
Power Measurements
I noticed whenever the current changed during car bootup and noted the time. The measurements were done on the battery side before the voltage was dropped down to whatever voltage the device needed. Measurements were taken when the batteries had been used for about 10 minutes and V=15.3V. Since the current was measured here, the current going in to the device at a lower voltage would be higher. All measurements were completed with a Fluke 187 True RMS Multimeter. The last measurement noted was when the device reached a steady-state.
Camera
Time (seconds) |
Current (mA @ 15.3V) |
Current (mA @ 9.2V) |
Power (W) |
0 |
39 |
65 |
0.6 |
5 |
58 |
96 |
0.9 |
8 |
98 |
163 |
1.5 |
Router
Time (seconds) |
Current (mA @ 15.3V) |
Current (mA @ 12V) |
Power |
0 |
185 |
235 |
2.8 |
23 |
263 |
335 |
4.0 |
30 |
250 |
319 |
3.8 |
Horn
Time (seconds) |
Current (mA @ 15.3V) |
Current (mA @ 9.2V) |
Power |
0 |
40 |
66 |
0.6 |
Car
State |
Current (mA @ 15.3V) |
Current (mA @ 12V) |
Power |
Booting 0 - 23s |
Fluctuates ~400 |
510 |
6.1 |
PIC+LED, Voltage Regulators, 2 control circuit boards (no router or camera) |
102 |
130 |
1.6 |
After Booting, not driving (steady-state) |
479 |
611 |
7.3 |
Driving - Accelerating |
5500 |
7012 |
84.1 |
Driving - Constant Speed |
4000 |
5100 |
61.2 |
Note: The driving measurements aren't as accurate because it's hard to read the multiemeter while holding a laptop to drive the car and running down the street after the car. heh. Those numbers are accurate +/- 0.1A.
Steering takes very little power. Once the wiper circuit detects that the wheels have turned, it stops turning them. This happens in < 1 second.
Its been my experience that the batteries last for about 1.5hrs under normal use.
Temperature / Over Heating
From the above power measurements we can see that the transistors are driving over 7A @ 12V when accelerating. They're rated for 5A, so they get pretty warm.
The transistor temperature after 25 mins of use indoors (hence lots of accelerating from starting and stopping and not going at max speed very often) was 89°C. The motor was also getting pretty warm at 85°C. When running the car outside, it doesn't seem to get near as hot. Probably because you're driving at a constant speed more often than inside. The transistors are rated for up to 150°C, so I think we're ok. I don't have any information on the motor though.
Project Costs
Item |
Cost* |
Car |
6 |
2nd control board (from another car) |
6 |
Router |
73 |
Camera |
115 |
Batteries |
67 |
Horn |
3 |
PIC circuit |
6 |
Misc: nuts, bolts, screws, project box, wires, connectors |
20 |
Total |
296 |
* Costs include sales tax and shipping and are rounded to the nearest dollar. Prices are in Canadian dollars.
Resources
Here are a bunch of related links that I've found informative, helpful, or interesting.
Description |
Link |
| OpenWRT, the Linux distro I'm running on the router (this page tells you how to install) | |
| WRT54G Ultimate Hacking Book | |
| WRT54G hacking site affiliated with the book | |
| Great TCP tutorials in a bunch of different languages | |
| Drive transistor datasheet | |
| 7.5A 12V regulator datasheet LT1083 | |
| Realtek TX2/RX2 Remote Control Car Chipset datasheet | |
| Pin-compatible TX2/RX2 datasheet | |
| Network Camera Information (Panasonic BL-C1) | |
| Eric Bishop's Writing and Compiling A Simple Program for OpenWRT | |
| Similar project to what I've done, but with a larger vehicle and its much slower | |
| Similar project to what I've done, but with self-built H-bridge (it overheats and stops working) | |
| MaxSerial Arduino-compatible Freeduino with a real DB9 serial port | |
| Lots of Arduino Information | |
| How-to for serial communication with the PIC16F628 |
If you liked the project or write-up, add a comment below or send me an e-mail at
.



























Comments
I read Wifi Article i like it very much. I donot have any background in Linux can i do this project. I am not able to understand how to load operating system on WRT54G. Please help me.
Posted by Mudit on 2008-11-19 @ 22:57
hi, i was reading the proyect and it is very amazing what you have done, i was wondering if you can send me more info or help me to built one as yours. may be some electronics diagrams and a little more explanation connecting the router to the pic and the RX2. i have already a linksys WRT54GS V7 and a netgear WGR614V2. i dont undesrtand how you send the data to the router and how the router send it to the pic and then to the rx2. so i will waiting your mail with some help to start building my own wireless car
have a great day and again congratulations
Posted by hector Zarate on 2008-11-19 @ 00:13
hi, i was reading the proyect and it is very amazing what you have done, i was wondering if you can send me more info or help me to built one as yours. may be some electronics diagrams and a little more explanation connecting the router to the pic and the RX2. i have already a linksys WRT54GS V7 and a netgear WGR614V2. i dont undesrtand how you send the data to the router and how the router send it to the pic and then to the rx2. so i will waiting your mail with some help to start building my own wireless car
have a great day and again congratulations
Posted by hector Zarate on 2008-11-19 @ 00:13
Could you post a list of links to each of the components other than the car body and the wireless router? thanks
Posted by Bradley on 2008-10-29 @ 14:31
hey nice work on the car really nice wanted to know if i can send u a car so u can do the same to my car i would love to give this kid who lost his dad in the war. and i would love to give him this toy he loves cars last year i got him a car if u saw what he can do with it it's nuts i make gaming pc and server. let me know if u would like to make one more car for a kid that lost his dad over this war he lives 3 house away from me his name is nick. he looks up to me because me and his dad was great friends let me know email me or u can call me at 9084824165 i dont have alot of money but what ever i can do to make the boy happy ps great work really you out did your sefl!!!!
Posted by Ricardo on 2008-10-27 @ 23:11
@Jessica
Thanks for your comment. In answer to your questions:
1) Yes, the PIC output pins output VCC which is 5V.
2) Yes, the other I/O pins can be used. Note that RB1&RB2 are used for serial communication. Nigel's Pic Tutorials are a good place to learn PIC programming with practical examples (http://www.winpicprog.co.uk/pic_tutorial.htm). There are many other sites on the net that cover basic PIC programming in ASM.
Good luck! E-mail is a better way to reach me if you have more questions.
Posted by Jon on 2008-10-25 @ 16:28
Jon.
I stumbled upon this project while searching for a way to overclock my WRT54GL. Needless to say it will no longer be serving its intended purpose :)
I have a few question regarding your project
1) Does the PIC output the same voltage as VCC (5V) on the pins that are controlling the movement? I am trying to make a custom H-bridge for it since I have a car with a dead control board. I will be using some transistors to switch to a higher current/voltage.
2) Can I use RA4 - RA7 for additional outputs. How about the other outputs starting with RB*? Do you perhaps know of a guide showing an example of how this can be done(if it IS possible)?
Thanks and AWESOME project!
Posted by Jessica on 2008-10-24 @ 15:17
Good work. You know my favourite part? The inbuilt protection mechanism where if you try to go back and forth or left and right at the same time, you can't. That's so exiting!
This is so great. I guess if you've got a hackable linux router, you gotta do something cool with it. Eh?
Posted by Shams Shafiq on 2008-10-24 @ 07:36
i'm going to do a project like this... can we use this process for a vehicle....?
Posted by roman charles on 2008-10-20 @ 04:43
I am interested at your project.Could you kindly e-mail me completed instruction?Many appreciated.
Posted by Jack on 2008-10-16 @ 00:22
@Indu
The camera is a network camera, so it is attached to the router with a normal Ethernet cable.
Posted by Jon on 2008-10-12 @ 23:12
Really nice project!
I think, instead of add ultrabright leds, you most install "near infrared spectrum LEDs" and remove the IR filter from the camera lenses so you could drive the unit even at 0 lux!
Cheers!
Posted by Probo on 2008-10-11 @ 13:32
nice work
Posted by pushkraj on 2008-10-11 @ 11:55
great project dude...
i hav one doubt
sorry if i am stupid...how is the camera connected to the router?
Posted by indu on 2008-10-10 @ 21:52
nice work.
Posted by sam on 2008-10-8 @ 09:55
WoW this is a very nice project ,very good work..
Posted by hex0 on 2008-10-7 @ 17:21
i am interesting in this project and i love it. can you made a car like to me?
if you can how much it will coast me ?
thank you
Posted by sulaim on 2008-10-7 @ 11:02
Make sure your router is connected to the 'net.
Then (as listed in the article) :
SSH in to your router then ...
# cd /tmp
# wget http://www.jbprojects.net/projects/wifirobot/carserver_1_mipsel.ipk
# ipkg install ./carserver_1_mipsel.ipk
Posted by Jon on 2008-10-3 @ 14:53
I have installed in my WRT54GL dd-WRT software and I need how can I install the "carserver_1_mipsel.ipk"
in this operative system. If I execute the "ipkg install ./carserver_1_mipsel.ipk" sentence it show this message:
ERROR: File not found: /jffs/usr/lib/ipkg/lists/whiterussian
You probably want to run `ipkg update'
Thanks and sorry for my english.
Posted by fernando on 2008-10-3 @ 14:34
good project...i want that about compnents/....
Posted by vineet agrawal on 2008-09-26 @ 08:20
Would you make one of these for 350 dollars?
Posted by Evan on 2008-09-24 @ 11:37
Hi, you you post how to wire it all up? and how did you connect the camera to the router I may but the camera and use my router to make it wireless. I have the same one.
Posted by Evan on 2008-09-24 @ 11:29
Hey, nice project!!
For distance you could plug in along the way another router running dd-wrt (of openwrt too) in universal repeater mode. Your signal will be repeated and you will get better coverage. You can also get an external wifi card for your laptop and attach an external router (google pringle can antenna).
Increasing the antenna strength on the router made no difference because your laptop still had its normal low strength and couldn't "talk back" to the router.
If you want to take this to another level you can also hook up a 3G connection (via another openwrt compatible router with a USB port) or via serial, and control your RC car (or RC plane!) via the internet, at that point you can add GPS and what not, hopefully not get arrested.
Cheers!
David
Posted by David on 2008-09-23 @ 15:51
very amazing!
Posted by Ahmad on 2008-09-23 @ 15:45
I'd definitely make you one for $7500, but in general -- I'm not getting in to that business.
Posted by Jon on 2008-09-22 @ 21:23
just wondering how many 0s?
Posted by nils on 2008-09-22 @ 15:47
@nils
Add a couple more 0s onto that figure and we can talk. =P
Posted by Jon on 2008-09-21 @ 23:13
im just wondering if i can buy one of these for $75?
Posted by nils on 2008-09-21 @ 16:48
Hey Jon,
Awesome job, I saw this today over at www.dailywireless.org and now I want to build one! Can you please give some more detailed instructions and schematics on how to put everything together, for anyone into electronics and stuff like this it is pretty straight forward and looks fairly easy but you did not go into much detail or show how the power regulators and the battery wiring is all connected. Could we get a schematic for all of that?
Basically I just don't understand the power connection and the voltages regulators and how t wire all that up, a simple schematic of that and an overall connection diagram would be great.
Mark-
Posted by Mark on 2008-09-21 @ 09:46
Larry,
I was under the impression that the e-book was free. I've updated my links.
Great book!
Jon
Posted by Jon on 2008-09-20 @ 22:07
Jon, cool project!
Only one beef. How about a link to Amazon for the Linksys WRT54G Ultimate Hacking book, instead of a link to a pirated copy to support the authors?
- Larry Pesce (Co-Author Linksys WRT54G Ultimate Hacking)
Posted by Larry Pesce on 2008-09-20 @ 20:31
Neat!
Posted by Tim on 2008-09-20 @ 09:20
Pete:
Yep, check your inbox.
Posted by Jon on 2008-09-13 @ 12:47
Hey Jon,
Did you manage to find the cost, for the chip and postage ?
Many Thanks,
Pete
Posted by Peter James on 2008-09-12 @ 10:37
Way to go dude....
This I like...
:)
// Henke - Sweden
Posted by Henke on 2008-09-9 @ 10:06
Jim:
Thanks for looking in to it. I had forgotten that they're using different voltage levels.
Your voltage divider circuit looks good.
Posted by Jon on 2008-09-7 @ 21:08
Jon,
Checked out the TX/RX pin connections for the arduino.
This should be the perfect solution for all arduino boards (USB/SERIAL). The voltage for the arduino RX/TX pins D0 and D1 are 5v. The WRT TTL TX/RX pins are 3.3v. 3.3v is sufficient to trip the arduino inputs but the 5v maybe too high for the WRT!
So we need to drop the 5v to ~3.3v for the RX of the WRT. This can be done with a simple voltage divider circuit.
So the connection goes something something like this:
ARDUINO RX - WRT TX Directly wired.
ARD GND - 10k Resistor - 10k Resistor - WRT RX
ARD TX - 10k Resistor - WRT RX
This drops the voltage enough so as to not damage the WRT. (ATTENTION: the RX/TX lines should be disconnected from the ARDUINO before connecting it to a PC via USB or it could fry a few since the ARDUINO uses the same lines for USB connection through the FTDI CHIP!!!!!)
This solution may sound more complicated but actually requires fewer parts (I am all about fewer parts!) only three resistors.
Thanks Jon for all your hard work on this project. Around the first of the year hopefully I will have my Project completed and I will return here with a post to the write-up as well as any changes I make to your source code.
Posted by Jim on 2008-09-5 @ 10:44
Jim:
Yes, connecting the RX and TX pins of the Arduino right to the router RX and TX pins should work. I thought about it, but didn't try it. Since I decided against using the Arduino, I added the tested code I posted to the project afterwards because the microcontroller is so popular.
If you connect them directly, you won't be able to easily connect the router to a PC serial port. It was important for me to have this feature while developing to assist in debugging. By all means, try it out and if it works fine let me know and I'll add the info to this article. I don't see any reason why it shouldn't work.
Pete:
It won't cost much to send them there. I'll get an exact figure early next week and e-mail it to you. I would estimate $5 CAD (about 2 pounds). And yes, I do have Paypal.
Jon
Posted by Jon on 2008-09-4 @ 22:36
I have a question. This project is very similiar to one I have been planning for a while. I really like the use of a router for the wireless capabilities of this project (I have now changed the layout of my project based on your work!) Thank you for that.
On to my question. Could you not just directly connect the ttl RX/TX Pins of the router to the Digital Pin 1 and 2 of the Freeduino (which I believe accepts ttl input). I realize you probably used the serial connection because you already had the router hacked for it. For those of us with USB xxxduino boards may find this option easier. That is if the xxxduino board will handle the signals properly.
Sorry for the ramble but you seem to have done quite a few experimentations with openwrt xxxduino control. Just wondered your thoughts.
Posted by Jim on 2008-09-4 @ 19:13
Hey Jon,
Ah many thanks :), btw i'm lovin the project, and hopefully i can build one too haha, i have a little bit of electronics knowledge so hopefully all will go well.
Thumbs up to you tho
How much do you recon it'll cost for the chip and sending it to uk ?
Also do you have paypal ?
Pete
Posted by Peter James on 2008-09-4 @ 09:34
Hi Pete,
I'd be happy to send you a pre-programmed chip. I'll just charge the cost of the chip + cost of shipping.
The MAX232 isn't a programmable chip and can be bought from many major online retailers or as a free sample from http://www.maxim-ic.com/samples/ .
If anyone else wants a pre-programmed chip and the demand isn't too great, I'll be happy to send them for whatever the actual cost is.
Jon
Posted by Jon on 2008-09-4 @ 00:25
Hey there Jon,
I was just wondering if u could sell the chips, PIC16F628A and MAX232A programmed ?
It'll save me time and money buying the programmer for the MAX232A chip ?
Of course i would pay for your labour costs :)
Let me know by email :)
Pete
Posted by Peter James on 2008-09-2 @ 13:01
i thinks its a brilliant idea. Thanks i'll try it
Posted by m4l3_Bug5 on 2008-08-31 @ 09:14
Hi, perhaps you could use a Fonera with freewlan extensions... it's smaller than a Linksys and there are tons of guides to explain how to use the "non used" gpio's on the board to go left/forward/ etc without needing an extra micro controller...
some people allready wrote drivers to controll these gpio's...
an example can be found here :
http://www.youtube.com/watch?v=KACkqpPyNNk
he used the onboard webserver of the fonera
it would be great if one could use a Sony PSP or Nokia Wifi mobile or Nintendo DS to move the car... and have the cam show what's on the road :-)
the webcam can be connected to the "wan" interface of the fonera...
and La fonera could even use an existing wifi station to "uplink" to so it becomes also a wireless mobile accesspoint while you drive it on it's "myplace" interface!
Posted by steven on 2008-08-30 @ 06:27
Too bad Tesla's dream of wireless power was squashed by the powers that be years ago. If we had wireless power now we wouldn't have to worry about battery packs, solar panels, etc... Wireless power is making a comeback though, maybe it'll be the norm within 20 years.
Great job, Jon. I have one of these routers so it may be a project I would like to work on and possibly help extend. Thanks for all the great resources!!!
Posted by Heath on 2008-08-29 @ 10:12
iphone/ipod app is calling
Posted by Rob on 2008-08-29 @ 05:36
Thank you Roger and Greg for pointing me in the direction of figuring out the web streaming options.
There is a way to get the streaming view in a standard browser, so the Windows software is not required.
I've updated the Camera section of the article with the appropriate commands.
Posted by Jon on 2008-08-28 @ 17:30
wow dude u really inspire me to do this project i was thinking into do the same but im thinking into use a bigger car,add joystick control, a gps system to the project, some solar panels and a wifi card from att. wow congrats its awesome
Posted by mokopato on 2008-08-28 @ 16:16
Jon,
I can't help but wonder if there isn't a configuration issue then...I run several of those cams (exact model) for my business and for a few clients...all have good refresh rates, and no problems with motion. The cam I'm looking at right now is getting about 12fps @ the highest res. and quality. Granted all are over a wired network, but I don't think bandwidth is the issue here. Maybe try the latest vs. of Firefox? (much better scripting speeds)
Posted by greg on 2008-08-28 @ 14:43
The Windows-only software is required to get the streaming view. Yes it runs a webserver, but the refresh rate is VERY slow compared to that of using the software.
I'll investigate whether using 'http://192.168.1.253/SnapshotJPEG?Resolution=640X480' as one poster mentioned produces images at an acceptable refresh rate.
With the software I was able to get around 15FPS.
Posted by Jon on 2008-08-28 @ 14:31
Actually, that particular network cam works just fine in Linux...I'm confused by the writer / posters who say it doesn't. Yes, the cam comes w/ a Windows app that lets you view but of course you don't need that. The cam runs a webserver (as most network cams do) and you can connect and view w/ Firefox on both Windows and Linux systems with no problems.
Just resize your browser window so only the image shows..it can be adjusted for size and res. in the settings.
Posted by greg on 2008-08-28 @ 14:24
Very Nice, I am impressed. Bringing wifi+linux to a project for 70$ is amazing.
if only the IP camera worked in linux... then I would have some interesting ideas.
Posted by Colin on 2008-08-28 @ 12:45
Just wanted to say, Great job Jonathan!
I started in on a similar project using a fon and a PSoC MCU last year, currently waiting on a servo to replace the one that came with the truck, as well as getting the motor driver finalized.
PS: My site detailing my version of the project is at http://zarnochwf1.com/?q=node/13
Posted by Walter on 2008-08-28 @ 11:05
Nice! i may try the same thing with a fon, since its much smaller, and runs the same software, i could pack it all into a tiny box :D
Posted by Derek Vance on 2008-08-28 @ 10:33
Great project! There's a better way to use the camera though. That camera will serve up the current frame as a jpeg with the URL >> http://192.168.1.253/SnapshotJPEG?Resolution=640X480 <<. (use your IP obviously.) It's case sensitive and must match exactly. I shell out HTTPGET to read this URL to a JPEG, and when the JPEG arrives stick it in an image control. It's slower than a stream but better on a slow connection because you can control the frame rate. And you can get the actual image data to do processing.
Posted by Roger Williams on 2008-08-28 @ 10:05
wow! thanks for that great write up. this is exactly the project I have been thinking about and am so glad someone did all the hard work. We are looking at using a boat though to do some water quality sampling so should have similar needs. thanks again.
Posted by pithed on 2008-08-28 @ 09:36
I'm speechless. Awesome!
Posted by Kris on 2008-08-28 @ 09:33
Awesome!
Posted by phokur on 2008-08-28 @ 09:06