|
Welcome
My name is Andrew Rich, Amateur radio callsign VK4TEC. My occupation is Airways Technical Officer, RADAR support. I like to experiment with different position reporting technologies, in particular ADS-B and APRS. I have built my own trackers and like chasing the lastest satellites, including the International Space Station. I write programs under the LINUX opearting system and prefer PERL and MySQL. I also program PIC chips in assembly language.
|
 |
TX Rate = 1 Hz
GPS GARMIN 18LVC 5 Volts 4k8 data rate
EasyRadio ETRS-400 434 MHz 10mW 19k2
NMEA update rate 1Hz
Manchester encoded RF
SMT PIC 16F628 20 MHz clock
SMT MAX232 TTL/RS232
LED - Blue (GPS) Red (TX) Green (RX) Yellow (Power)
LM7805 Regulator
Range = 3 kms from glider at 1000 ft
LIPD band, licenced to 25mW (Australia)
Data output, APRS compatible and RAW output
Input power = +12 V DC typical
Construction photos here
VK4TEC-12>APRS,WIDE: <>:=2720.25S/15302.59E'SATS 04
RAW,27202511,S,153025922,E
VK4TEC-12>APRS,WIDE: <>:=2720.25S/15302.59E'SATS 04
RAW,27202510,S,153025920,E
|
 |
|
ADS-B Ground Station
I have put together an SBS-1 ADS-B Ground Station. You can watch planes fly around in browser, or use google earth.
ADS-B station
Open in GoogleEarth
|
Are you interested in sharing your SBS-1 ADS-B data into the ground station ?
What you will need is a static IP address or run a dynamic IP service such as no-ip.org or dyndns.com, and open port 30003 on your router / PC. You can then contribute to the program. You will be able to see planes flying around in GoogleEarth.
email Andrew (vk4tec@tech-software.net) for more info or to setup a script to add your data in the LINUX server.
or

You can run my feeder application sbs1_feeder.exe
You might need to put this in your \Windows\System32 directory MSWINSCK.OCX
If you want to cut down on the number of messages being sent, in the SBS-1 basestation program, under "Settings/Data Settings" tick Ignore Non ADS-B Mode-S Messages
|

Another method: sbs1_targets_remote.exe
Run this program sbs1_targets_remote.exe
|
|
RADAR data formats tutorial
I am in the process of compling the different RADAR and ADS-B formats that are in use.
RADAR tutorial
|
| Requirement | Status |
| Sampling rate of 10 MS/S or better | Done |
| Serial, USB or ethernet | Done |
| Trigger capture on a variable input level | Done |
| Software determine maximum waveform height | Done |
| Software determine max /2 height | Done |
| Capture window must be greater than 120 us | Done |
| Identify DME pulses | Done |
| Extract Classical pulses - either Mode A or Mode C in unsyncronised fruit mode | Done |
| Handle 0 - 3 volts input | Done |
| Detect Mode S preamble | Done |
| Detect DF17 capability (CA) flags | Done |
| Detect downlink format (DF17,DF11,DF00,DF18) | Done |
| Detect 5 bits into 56 bit payload for DF17 for message format type | Done |
| Tell what register is being sent. based on DF17 format type | Done |
| Identify DF17 Format Types 00-31 | Done |
| Decode 24 bit address from DF17 and DF11 packets | Done |
| Extract flight id from ident packet DF17 | Done |
| De-garble | Pending |
| Amplitude tolerancing | Pending |
| Handle multiple signals per capture | Pending |
| Decode Mode S altitude | Pending |
| Decode CPR position formating | Pending |
| Decode velocity messages | Pending |
|
|
1090 MHz
Mode S signals are transmitted on 1090 MHz. The data rate is 1 Mb/s.I am using an SBS-1 ADS-B receiver from Kinetic and using the video out of the receive stage to feed
into my scope for sample and decode by LINUX.
|
|
pre-amble
Mode S signals start with a preamble, which consists of 0.5 us wide pulses, at pulse positions, 0,1,3.5 and 4.5 us. To detect the pre-amble you must look ofr this patte
rn and the data stream starts at 8us from the begining of the waveform.
|
|
Downlink Formats (DF)
There are different downlink formats, these tell us what sort message is being send. The DF is defined as the first 5 bits of the Mode S payload. DF0 is ACAS, DF04 is a
Mode S RADAR reply containing altitude, DF05 is a RADAR reply containing identity (mode A), DF11 is an ALL CALL and can be triggered by a RADAR or simply sent independ
anlty for TCAS. DF17 is what we know as ADS-B. ADS-B is sent independantly of any RADAR. There are 6 messages that DF17 can support. The sixe messages are surface posit
ion, airborne position, velocity information, identity, event drive status,
|
|
Using a Digital Scope to decode Mode S
I bought a GW-Instek GDS-1022 DSO scope. It can sample at 5,10,25,50 and 100 Ms/s. One of the cool things it has is a USB interface. Using a program for LINUX called gd
sh I can capture samples to a csv file and then process it with perl. I have written a perl program that looks at the csv file and looks for a pre-amble within the data
. Once we know were to start, we can start decoding the Mode S data. Each Mode S frame contains the aircraft address.
The scope shows up in LINUX as /dev/ttyACM0.
Larger image
Sample Capture
Sample process
More samples
|
|
perl Mode S decode
The perl program works out the maximum amplitude of the sample, and makes the 50% point the cut off or decision point. We need to know this because a high pulse in the
early half of the sample period is a 1 and a pulse high late in the sample period equals a 0.
|
|
perl GD line graph
It is possible to see the Mode S waveform in a web deliverable png format image, bu using a perl GD package. This allows me to look very closely at what the waveform lo
oks like.
|
|
DME match
It is possible for DME to sneak into the pass band of my 1090 MHz receiver. I have coded perl up to detect DME.
Larger image
|
|
ADS-B example
In this image I have shown the video capture and the data output of a DF17, Format type 11, Airborne position message.
Larger image
|
|
USRP and gnuradio for TX and RX
I am currently learning about the USRP and gnuradio. This is a hardware interface and software defined radio. I am hoping to be able to try some RADAR types things such
as an antenna rotation simulator, Mode S decoder, Multilateration, passive RADAR, mono RADAR. (under LINUX)
Larger image
USRP website
GNUradio website
|
Sample script output
|
**********************************************************************
* *
* Mode S decoder using Digital Scope and perl on openSUSE LINUX *
* Andrew Rich - March 2010 *
* *
**********************************************************************
Sample rate 25MS/s
Action: Finding max value for waveform
Max sample amp 60
Cut off 30
Array is 4014 points
Trigger on point 872
Start count 878 (65ns further on)
Pre-amble Match
DF starts at 1078
DF value is 11
Message ALL CALL
The CA value is 1
Address 7c47c0
Sample rate 25MS/s
Action: Finding max value for waveform
Max sample amp 52
Cut off 26
Array is 4014 points
Trigger on point 889
Start count 895 (65ns further on)
Pre-amble Match
DF starts at 1095
DF value is 17
Message ADS-B squitter
The CA value is 5
Address 7c6c96
FT value is 11
Sample rate 10MS/s
Max sample 71
Cut off 35.5
Array is 4000 points
Trigger on point 1094
Start count 1096
Pre-amble Match
DF starts at 1176
DF value 17
Type ADS-B squitter
Address 75008F
FT value is 11
Type Airborne Position NUC = 7 25 m < HPL < 185.2 m (0.1nm)
|
|
Classical RADAR vs Mode S short
This image shows a classical RADAR response (20.3 us) and a Mode S short reply (8us of preamble + 56 us of data = 64us)
|
|
Mode S short vs Mode S long
This image shows a Mode S short (8+56uS = 64us) and a Mode S long reply (8+112us = 120us)
|
|
Classical RADAR vs Mode S long
This image shows a classical RADAR response (20.3 us) and a Mode S long reply (8us of preamble + 112 us of data = 120us)
|
| PIC 16F628 micro ADS-B generator |
|
PIC 16F628 ADS-B generator
I took a 16F628 PIC micro running at 8 MHz and generated a DF17 format type 4, Identity packet. I then used my digital oscilloscope and perl under LINUX to decode the waveform. The hex address used was 7CABCD and the flight id of VHABC___.
Larger photo
|
|
Track my car
I have a Ham Radio car tracking system in action.
track me
|
|
ADS-B into mysql for stats
ADS-B tracking and coverage mapping
Antenna Build - Quadfillar helix, verticals
Antenna Build - yagi, quads, eggbeaters
PIC uP - serial A/D LOGIC
PIC uP - NMEA GPS PARSE tracking projects
easyradio 434 MHz radio modules
APRS - opentracker, tinytrack
APRS - Kenwood D700,D710 and D7 HT
GPS LCD display
Airborne APRS tracking
Google earth output programming
PERL - serial UDP TCP MySQL GD GPS
PERL - servers SMPP SMTP POP
PHP - Online databases and stats.
PHP - remote control apps
ADS-B into APRS formats
ADS-B into CAT 48 Asterix format
RF - 1090 / 144 / 430 MHz pre-amps
137 MHz weather satellites
Software defined Radio
Passive RADAR
Antenna positioning using hobby motors
Satellite tracking in LINUX
430 MHz power amp - minikits WA
Sent and rx 1296 MHz FM TV
Sent and rx 434 MHz AM TV
Digital experiments - International Space Station
bitScope evalutaion for use as A/D sample.
LINUX talking weather station (festival)
Parrallel port control programs
Worked MIR on a commodore C64 and packet radio
Built satellite robot using Basic Stamp. (PCSAT)
|
Interested in UAV technology
Restored a marine RADAR
Sent 10 GHz signals - door opener modules
Experimented with teleurometers
Hosting ADS-B server for sharing data
Wrote ADS-B feeder application in Visual Basic
PIC 16F628 MODE S synch generator
434 MHz OOK TX / RX
ADS-B onto GPS ($GPWPL)
ASUS eeePC coding
Nokia 6110 tracking
GSM / SMS / GPRS tracking
Horse enduro score system LINUX
Model Rockets
Wicen car rallies - comms and data
Fully auto satellite ground station
Radio Direction Finding - picoDOPP USA
Aircraft Radio Operators Cert
Amateur Radio Licence
Designed PCB's at home - eagle
Manufactured PCB's light exposure method
Fed telemetry from satellites to internet servers.
Wrote a comms package in visual basic 6.
Grandfather ATC, RAAF PILOT and Jackaroo.
Father Army/Civil pilot (instructor,check and test).
Dabbles with photography - Canon 350D.
Active participant APRS/ADS-B groups.
SlowScan TV
HF PSK RTTY PACKET CW
Aviation - VHF / HF NAVAIDS COMMS
RADAR - Secondary / Primary
ADS-B into XASTIR / UI-VIEW
|
|
Sharing SBS-1 ADS-B Data
1090 MHz SBS-1 Youtube videos
ADS-B and AGWTracker
ADS-B and AGWTracker
ADS-B and AGWTracker
LINUX VNC ADS-B
JAVA ADS-B
ADS-B worldwide server
Mode S Data structure
ADS-B and XASTIR
ADS-B and OZI-Explorer (1)
ADS-B and OZI-Explorer (2)
ADS-B and OZI-Explorer (3)
ADS-B Animation
ADS-B Plots
Huey demo Brisbane river
Glider Comp 2007 Dalby
Riverfire comms
Hybrid Surveillance
1090 MHz videos
LINUX and ADS-B
|
ADS-B googlemaps
Basestation screenshot
Planeplotter screenshot
1090 MHz antenna coverage in baseStation
1090 MHz antenna coverage in GoogleEarth
Australian SBS-1 supplier
1090 MHz vertical antenna upgrade
SBS-1 Mode S data explained
1090 MHz Quadfilar Helix
1090MHz YAGI Antenna
1090MHz YAGI vs vertical Antenna
1090 MHz pre-amp
MODE S Formats
VB6 SBS-1 Feeder App
SBS-1 PERL hash table
ADS-B decoding
Uplink pulses
Perl Tk ADS-B
ADS-B on eeepc and scope
Bad ADS-B
|
|
Rob Rich - Helicopter Pilot
My dad, Rob Rich, has been flying most of his life, with most of it spent in the Australian Army. Rob has worked for CASA and emergency services, flying some medium and large helicopters. Rob was the president of the HAA (Helicopter Association of Australia).
Larger photo
|
|
Ronald Rich - Pilot Jackaroo AirTraffic Controller
In this image you can see my grandfather, Ronald Rich, (furtherest away) at the controls of air traffic control back in the 50's. Ron was also a lancaster pilot during WWII.
|
|
Model building
I enjoy building models, and also collecting nice diecast ones as well. This is a picture of a Bell 47 helicopter I made a while back, I also have made an F-111 as well.
Larger photo
|
|
Rocketry
Another hobby of mine is rocketry. The engines are designed to burn for so long, coast and then burn a charge that pops out a parachute. The engines are ignited using a hot wire, which is battery powered. The rockets are made of cardboard and very light.
|
|
ADS-B in 3D in google earth
One of the first things I did when I got my SBS-1 was put the data into MySQL and make it available to google earth. It is quite impressive when you see the path a plane took. Often the updates are every half second.
Larger photo
|
|
ADS-B in UI-VIEW
I wrote a LINUX PERL script to connect to windows port 30003, which is the ADS-B stream from an SBS-1. I then turned it around and coded it for APRS format packets. I sent them to UI-VIEW local server, so I had cars boats and planes on screen.
Larger photo
|
|
Inside an SBS-1
The SBS-1 is 1090 MHz MODE S receiver. It can receive and decode ADS-B and some MODE S signals. The decode consists of a fast ADC and an FPGA to do the decoding. You need to have windows to make any sense of the data.
Larger photo
|
|
Inside an SBS-1 / SBS-1e
The SBS-1 is 1090 MHz MODE S receiver. It can receive and decode ADS-B and some MODE S signals. The decode consists of a fast ADC and an FPGA to do the decoding. You need to have windows to make any sense of the data.
Larger photo
|
|
Inside an SBS-1eR
The SBS-1eR is 1090 MHz MODE S receiver with an inbuilt AM Aviation radio. It can receive and decode ADS-B and some MODE S signals. The decode consists of a fast ADC and an FPGA to do the decoding. You need to have windows to make any sense of the data.
Larger photo
SBS1eR video on DSO
|
|
PERL ADS-B Display
I wanted to learn how to use PERL GD , so I took ADS-B data and plotted planes on a plain background. The data came from a MySQL database, which was being fed positions from a PERL script, which was taking in the ADS-B data from an SBS-1 receiver.
Larger photo
|
|
Marine RADAR
At a hamfest, I spotted a Marine RADAR for sale. I took it home and restored it. I got a few weird looks when I took it down to the seaside and sat it on top of the car for testing. It ended up going to a Marine training school.
More photos
|
|
Standard SBS-1 Antenna plot
One of the cool things you can do with PERL and google earth, is record the maximum distance for a partiulcar azimuth. This is the standard 1090 MHz antenna that comes with the SBS-1 ADS-B receiver. Height is not included, just range.
Larger photo
|
|
1090 MHz vertical antenna
This design has proven itself time and time again. Not very hard to make and gives good results.
Larger photo
End caps
|
|
Planeplotter
Plaenplotter is a program that can team up amateur ADS-B receiver stations and share the data.
Larger photo
|
|
ADS-B MiniNet
Here is an idea I have about sending ADS-B position reports back to small planes for display on a GPS.
Larger photo
|
|
ADS-B on a GARMIN GPS72
I took the data coming from an ADS-B stream and turned it into serial $GPWPL signals for a GPS72. Planes on screens.
Larger photo
|
|
Sample ADS-B data from SBS-1
Like to do some programming for yourself ? Here is some daily logs for you to dabble with.
ADS-B logs
|
|
1090 MHz video
Here you can see DME, SSR and MODE S video captures.
1090 MHz video
|
|
ADS_B on the ground
So how good is ADS-B on the ground ?
ADS-B on the ground
|
|
434 MHz GPS tracker video
434 MHz GPS Tracker (photos)
Nokia 6110 tracking
About
|
Inside a GPS18
GPS and LCD
Simple Tracker System
Pot and 16F877 A/D response
My set-up
Position reporting
ASUS eeepc
|
|
GPS LCD and RADIO
I took a 16F628 with USART, a GPS18 GARMIN GPS and a 20x4 LCD and 433 MHz easy radio module. The GPS data comes into the PIC at 4800 baud, and then the PIC filters out the time, status, lat, lon, and number of satellites. The data is on passed at 19k2 to the easy radio transmitter. The easy radio transmitter takes in the data, adds pre-amble, and encodes the data. At the other end, a receiver does the opposite and sends out reverse TTL logic which goes to a MAX232. Hyperterm is used to watch the output.
Larger photo
|
|
Glider tracker
This project required me to send the position of a glider back to base. The GPS used was an inboard GARMIN. The radio was a 434 MHz easy radio. The signal went about 3 kms. Google earth was used to plot the position. It was pretty cool seeing the glider turn downwind than base and finals with 1 second intervals.
More information
|
|
GPSiiLCD
I wanted a LCD display that would show me some information coming from a GPS module. I programmed up a OLIMEX board and dabbled with both two and four line LCD displays. The LCD displays use a 4 wire bus and som control lines.
More information
|
|
Tracker gets a new board
It was time to make a nice prototype with a more professional PCB. I used eagle and made up a mask. Before that I was using the light exposure method on pre-treated baords to make my own PCB at home.
More Photos
|
|
PIC / 433 MHz Easy Radio Modules
I took a 16F628 and wrote some code to send telemetry using some 433 MHz Easy Radio modules. These little transmitters and receivers can send up to 180 bytes in one burst. They take care of preamble, manchester encoding and checksum.
Larger photo
|
|
PIC ADS-B generator
I took a 16F628 PIC MCU running at 8 MHz, which gave an instruction cycle of 500 ns which is 1/2 of one chip in ADS-B. The CRO capture shows the ADS-B pre-amble and the start of the first data chip.
Larger photo
|
|
PIC / 433 MHz OOK
I took a 16F877 and wrote some code to send telemetry using some 433 MHz OOK AM (On/OFF Keying) radio modules
Larger photo
|
|
400-470 MHz Power Amp
Minikits over in VK5 make some nice gear. I put together one of their power amps for UHF. Up to 30 Watts out (adjustbable).
Larger photo
|
|
Radio Direction Finding
PicoDopp is a doppler radio direction finding kits from the USA. I made one up and tracked a few stations. The display is windows or what ever you like as the data output is serial plain text.
More photos
|
|
Tracking solutions
This is diagram showing mixes of Operating Systems, interfaces and protocols that can be used for tracking.
Larger photo
|
|
Cooby creek tracking station
During the apollo missions, Cooby creek west of Brisbane took part in the comms relay for NASA.
More photos
|
|
APRS and Google Earth
It is possible to take the position derived from APRS (Autmatic Position Reporting System) and feed the data into a MySQL table. A cgi script can then put targets on google earth on demand.
More information
|
|
Satellite Antennae
I have tried a few antenna types over the years, vertical, quads, helix, quadhelix, yagis.
More information
|
|
Radio rack
I have built a few radio enclosures, here is my latest, housing a 23A PSU , 1200/9600 Baud TNC and ICOM 706 MKii. All portable and with voltage and current meters to boot.
Larger photo
|
|
PIC and PCB's
Some photos showing some of the PCB's I have made for the PIC.
More photos
|
|
Satellite status page
This website keeps tracking of data coming from the international space station, and other satellites.
Live feed
|
|
Byonics - APRS kits and trackers
Byon makes some really nice kits and trackers - check out his web site.
Byonics website
|
|
Opentracker - APRS kits and trackers
Some really nice kits and trackers - check out his web site.
Argent data systems website
|
|
137 MHz Weather satellites
I was involved with weather satellites when they where around on 137 MHz. The carrier was AM modulated 2400 Hz.
Larger photo
|
|
Parrallel port interface
Jaycar sell a parrallel port intreface board that is handy for all sorts of projects where you need to control something. In my case, when a satellite was coming over, I switched from battery charger to battery for the duration of the pass and then back onto battery charger. All driven by LINUX.
|
|
PIC 16F877A programming
The 16F877A features comms ports and A/D converters. ADC's are handy for positioning antenna. You run a satellite tracking program under LINUX and then read in where the antenna is and should be, then command the motor to steer that way.
Larger photo
|
|
9600 Baud BISYNC to UDP
One of my current projects is converting 9600 baud serial sync (bisync) to TCP/IP UDP. 16F628 PIC and Ethernet module from futrelec.
More info
|
|
Nokia 6110 tracking
GSM Tracker allows you to send your position to a server using UDP.
Larger photo
|
|
Ultrasonic range finding
I picked up a cheap ultrasonic range finder to see how it worked. I should get a laser system going one of these days.
Larger photo
|
|
GPS and LCD displays
I was learning about NMEA and PIC coding, so i decided to marry them together and make a simple GPS display.
More photos
|
|
434 MHz GPS tracker with LCD Display
I have started work on a 16F628A / MAX232 / GPS18x LVC / 20x4 LCD tracker.
Larger photo
Circuit diagram
|
|
Radio Mobile
Radio mobile is a great program you can use for coverage maps.
Larger photo
|
|
CW / Carrier 16F628 434 MHz TX 10 mW beacon
I put a 16F628 which keys up a little 434MHz TX sends morse and carrier 10mW.
Larger photo
|
|
|