Introduction: IRobot Create: WiFi Optimizer

Gather round and follow this here Instructable to transform your iRobot Create into your very own personal WiFi scanner and optimizer! What the iRobot Create will do is find the best WiFi signal in a given area or room based on discrete sample relative to the iRobot's starting position.

Here's what you need for this project:

~The one used in this project has five LEDs, four green displaying signal strength when signal is available, and one red when no signal is found

Tools needed:
  • Soldering Iron
  • Flux/Soldering Paste
  • Computer

What it does:
  • Takes in WiFi data from four spots, North (up), West (left), South (down), and East (right).
  • Analyzes data, moves towards best wireless direction.
  • Continues to get WiFi data and move towards the best direction.

When the data is found, beeps are transmitted for the signal strength. That is, 1 beep for 1 bar strength, 2 beeps for 2 bars, etc. The beeps also move up octaves for each level of signal. The iRobot will continue its algorithm to infinity, and is based around the gradient descent algorithm.

Please "+" this if you like it!

#Featured on Make:Blog!
& BitShift

Step 1: Crack Open Your Wifi Detector

"If you can't open it, you don't own it." is one of my favorite Makephrases. Take off the back battery panel and then grab a small flathead screwdriver to pry it open. There are clips holding the gadget together at the two ends of the long sides (see pic). Be careful not to scratch or hit the circuit board when opening.

Step 2: Solder the LEDs to the DB9 Connectors

In this step, we will being soldering the LED voltages to DB-9 connectors. The DB-9 connectors will interface with the iRobot Command Module to provide input data to the WiFi detector program. Also, the powering voltage will be soldered to its own DB-9 connector. This will allow the WiFi detector itself to be turned on and off.

To begin, secure the WiFi detector's circuit board in something like the "Helping Hands" set. Then, solder one end of a DIFFERENT color wire to each of the LEDs. We will be soldering to the end of the LED that is NOT connected to the common voltage supply. (See picture)

Left DB9 Connector
The topmost LED (the one soldered sideways instead of up) connects to Pin 1 of the DB9 connector. The next one down connects to Pin 2 of the DB9 connector. A wire is also soldered onto Pin 5 of this DB9 connector, to be connected to Pin 5 on the center DB9 connector.

Center DB9 Connector
The middle LED is soldered onto Pin 1 of the DB9 connector, and the one below it connects to the second Pin of the DB9. The wire from Pin 5 on the left DB9 connector is soldered onto Pin 5 of this DB9.

Right DB9 Connector
A wire is soldered from Pin 4 on the DB9 to the positive end on the WiFi detector. Another wire connects from Pin 9 to the negative end on the WiFi detector.

Step 3: Solder the Jumper Wires

Now, we want the WiFi detector to run just whenever we send power to it. Therefore, we have to bypass the switch on the detector.

Using the multimeter's continuity test (the one with the beep!), it was found that the pins going left to right needed to be soldered together in order to bypass the switch.

We got some shielded wire (don't want to mess up the other components by accident!) and soldered onto the pins. See the picture if you're having trouble understanding.

Step 4: Coding

The iRobot must be coded to accept and utilize the input given from the wifi detector. Since we specified which LED goes to which pin of the DB-9 in the last step, it won't be too difficult to read the data.

Download these files and open "Programmer's Notepad". Go to "File -> New -> Project" and name it what you wish (search in our case). Then, right click search in the left column and hit "Add Files". Then, find where you saved the attached files "search.c", "makefile", and "oi.h". Go to "Tools -> Make All". This compiles the code so the robot can read it. After it completes (look at the output bar on the bottom of the screen), plug in your iRobot Create and turn the Command Module on. Go to "Tools -> Program". This programs the on board microchip in the module. After this finishes, unplug, turn the Command Module off, and then turn it on again and wait. The program will then start.

This program heavily utilizes the demo code provided by the iRobot demo files. A timer and the bump sensor data are based on the SIGNAL interrupt. The rest of the code is divided into various functions which are hopefully not too hard to read. The calculation we used to determine the optimal direction did not use trig functions, but rather, a less intense approximation calculation.

Step 5: Making a Nicer Looking Product

Here, we took the case and filed it down so the wires trailing from the LED's on the circuit board could exit the enclosure when it was snapped shut.

The case was test fitted and marked with a pencil. A straight file was used to make the holes (see pic three). The key part was to make sure no wires were pinching when the case closed. For the top half, we made four rectangular indentions, and for the bottom, we filed it sown in a straight line. See the picture.

Step 6: Final: Video & Pics

Here is the final product! (Video attached.)

Thanks!


The Instructables Book Contest

Participated in the
The Instructables Book Contest