The majority of the parts arrived. This includes the main parts required for flight from Hobby King as well as boards from Batch PCB. The major items are the speed controller, servos, battery, and charger, as well as a controller.

3 Servos are attached right now, only the tail servo remains. When first binding the Transmitter and Reciever, the Transmitter caused the throttle to go to full, so the tail props got jammed by a near-by blanket. The belt and gears have to be replaced (to be ordered soon). Aside from some limit issues (the Servo is being blocked near the end), everything is in working order.

The weights are working well for with out any props (just fly-bar), but are not sufficient for the blades. I will try again with a tail.

The Batch PCB orders came in, including an ADC breakout (just in case), Drill hole size reference, and most importantly, the IMU shield. Batch PCB even doubled the order (they sometimes make doubles to fill panels).

The boards (shield solder WIP):
boards

The Servos:
servos

The overview:
overview

The shield with some Sensors attached (Gyros hanging over edge):
100_5446

The battery and charger:
battery

Hobby King shipped a faulty battery, and 1 of the cells was bad. Because i was traveling and couldn’t test it the day I got it, they refused to take it back, so I had to remove the 6th cell (luckily it was the end one). The battery is now 5S.

The accelerometer needs the Headers re soldered (right angle to normal)

Swift 16, Shield

I recieved a Century Swift 16 helicopter, but some parts need to be replaced (tail gear, landing gear, tail fin, blades are worn). This is much larger in person, I am not worrying about size as much now. The pictures have the 1W transmitter module for scale.
I designed a shield for the XMOS dev board to add the rest of the electronics. The board contains 2x ADC’s for both 3.3v and 5v devices, and 6 servo ports (A spare port can be used to add up to 6 more). The sensors are mounted on board, with two going off the edge for the correct axis.
I am restructuring the core usage, as shown.
jun_2_2010_A
jun_2_2010_B
Paper PCB mockup:
jun_2_2010_C
jun_2_2010_D
Right now, two cores are used only for processing, which means I will be able to use the smaller package in the final board.

XMOS, camera

I am switching to a XS1-G4 based processing platforms, and XMOS provided some dev kits I can use before designing a final board. The multi-core nature of these processors will provide tons of power, and will allow for the implementation of more processing intensive tasks while maintaining a low latency. A target is a supervised neural network. These do not have any built in hardware besides the basic digital I/O, so a separate ADC is needed. A serial, I2C, SPI, or any other digital communication can be defined in the software (hence the slogan, “Software defined Silicon”).
I found a camera module that I want to implement (for both wireless video and video processing for velocity and altitude calculation, and hopefully landmark recognition later on). The camera puts out both composite video, and video in the YUV format. I configured the I/O on a core of the XMOS for a 8 bit port, for the Y component. This gives me black and white video, another 8 bit port can be added for color. Right now the issue is timing to construct the image.
XMOS w/ camera and wireless modem connected:
100_5256
External ADC breakout (24ld SOIC wide, 30 AWG wrapping wire):
100_5255
Camera (a module from the CMU cam system):
100_5258
System:
100_5257

GCS Progress

The GCS now has Gyro parsing, improved transmitting, changeable options for string parsing (in the options panel), and saves preferences for the bookmarks (soon to be layers to).

New splash screen:
splash2

Also, I managed to move the project into a local SVN repository, which allows me to track and revert changes. This also allows me to use Gource.

Gyro’s

I got my gyros yesterday, so I can start working on the Extended Kalman filter for the roll and pitch axis, the 3 axis magneto sensor should come next week for the yaw axis. A barometric pressure sensor should also come. That will be difficult, if not impossible, to place to keep it away from rotor wash, and messing up the altitude readings.

Gyros (3x ADXRS613 on breakout):
may_16_2010_A

Comm module- Hardware

I cut some garolite sheets to make an antenna mount, and made a (still rather large) module. The Module is 4″ long, 1.5″ wide, and 1″ thick. It provides 1W 900mhz communication, and a 5v 1A PSU from a 7-28 volt input.
100_5220
100_5214

Communications Module

I have gotten the Communications module to work correctly. This module launches a thread to listen on the connected Serial Port (default /dev/ttyS0 on linux, COM1 on windows), reads 1 byte at a time (to sense line terminations, and avoiding partial strings), and stores it in a buffer. The UI thread launches another thread to parse this data. It calls the buffer, clears the buffer, parses it, and adds it to the results. The AWT thread allows for constant UI update.

The Text Area on the top serves as a communications console to send your own character to the serial port, based on KeyTyped events. When you start parsing the input String in this format:

GPS:x.xxxxx x.xxxxx;
ACL:x.xxxx x.xxxx x.xxxx;
ACL:x.xxxx x.xxxx x.xxxx;
...
ACL:x.xxxx x.xxxx x.xxxx;
ACL:x.xxxx x.xxxx x.xxxx;
GPS:x.xxxxx x.xxxxx;

Is broken down to it’s core values, and is added to the respective table.

(Click the picture, and, on flickr, “All Sizes” for a larger version)
May_06_10_1

The area to the right of the “Start Parsing” button serves as a warning area for:
1) Skipped values, if one of the boxes is unchecked
2) Large buffers. Over 1kb of buffer triggers this (1 kb is quite alot of data), and alerts that parsing should be started.
3) Disconnections
4) Unexpected terminations of threads

On another note, the UI’s look and feel (LAF) (What dictates how Swing components look) was changed to sun’s Nimbus LAF. I plan on changing it, but the toolbar is refusing to change color with custom LAFs. Changeable themes will also be included through the Nimrod LAF designer.

GCS Progress

Some more progress on the GCS. I integrated a line builder and line manager. The line builder contains the editor to edit GPS coordinates of the line, as well as options for line thickness and color. The line manager imports these coordinates as a set, and given a name. This clears up the line builder, allowing multiple lines to co-exist.

The Line builder can import a list of GPS coordinates from a text file with the format:

lat lon
lat lon
...

I plan on adding a 3rd dimension, but i don’t yet have a barometric pressure sensor.

This is an example of imported GPS data, with a the OpenStreetMap bike layer. This one contains about 7,500 coordinates.
(Click the picture, and, on flickr, “All Sizes” for a larger version)
May_01_10_1

This is zoomed in to show the MS Virtual Earth map layer. The right panel shows right after the line builder contents have been imported into the line manager (Line1 is the default name).
May_01_10_2

The line appears shifted from the road, but it is really aligned. The line right now is at an elevation of 2500 km, so the shifting is due to the perspective distortion. Any lower, the line disappears into the ground (the globe has elevation data). I need to figure out how to have the line at ground level.

Wireless System

The two wireless modems came yesterday. I was having trouble at first communicating between the two modules, it either did not receive any thing or received random characters (everything from solid bocks to greek letters). I swapped the modules from the TTL carrier board and the packaged module and reset factory defaults, and it works. Factory Default acts as a transparent bridge.
The modules are 1W 900Mhz modules. The link should be solid even as far away as ~10 miles.

(Click the picture, and, on flickr, “All Sizes” for a larger version)
100_5206
100_5201
(Camera flash washed out part of the text)

The text was sent from the PKG module to the airborne module. The PKG has a RS232 interface, which will interface directly with the Ground Control Software.

Software Update

Major progress to the software. I decided to try out Netbeans RCP Platform, and works great. The platform gives a great modular structure, and sophisticated window management. So for i have the core module, a bookmarks module, a GPS module, a geocode module, an output module, and a layers module.

The bookmarks module allows you have have any location and a custom name bookmarked for quick access, and easy navigation. In addition, the bookmarks module uses the Google maps API to geocode any given city, address, postal code, etc. This information is taken and automatically filled in.
The layers module gives access to multiple maps. The default is Blue Marble from NASA, which has a resolution of about 500 meters. In addition, there are also these layers:
The output module, not shown, provides user feedback.

Country Boundaries – Provides the yellow country boundaries
Landsat – medium to high resolution. Good layer, but sometimes very outdated.
OpenStreetMap and OpenStreetMap Bike – an opensource project, this server provided high resolution maps concerning roads and bike trails.
MS Virtual Earth – Used in Microsoft’s Bing maps, these maps are excellent and very high resolution. Downside: the whole US is a over 600 terabytes of data, so alot of navigation requires a large bandwith. WorldWind automatically caches downloaded tiles.
IR View – A view of the US in the infrared spectrum. Kind of useless.
Graticule – Provides a progressivley finer and finer resolution of the lat long grid, down to 1m squares. Sometimes useful, but causes the app to run slow.
Custom Lines – to be integrated, for the future line builder and tracker.
Crosshairs – simply puts a cross hair at the center of the screen.
Annotations – show annotations from the bookmarks.

The GPS module currently just says “GPS”, as the GPS module has not been connected to the computer. This module reads from the virtual console created by the mbed’s port.

Default view with some bookmarks added:
(Click the picture, and, on flickr, “All Sizes” for a larger version)
APRIL_24_10_1

High res MS maps:
APRIL_24_10_2

OpenStreetMap:
APRIL_24_10_3

To be done:
- Integrate Netbean’s default undo-redo actions with the action of adding a bookmark, deleting a bookmark, etc
- Integrate Netbean’s Properties and Options panels (not shown).
- Have a line builder, connected to the bookmark module
- Have a tasks list, or lines with specified attributes such as speed, altitude, etc.
- When available, OSD for live feed, communications through wireless modules, stat, and probably more

Return top