tech-software.net
About
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.
GPS / 434 MHz Tracker
  • 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
    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 Tutorial
    RADAR data formats tutorial
    I am in the process of compling the different RADAR and ADS-B formats that are in use.
    RADAR tutorial
    Mode S decode project
    RequirementStatus
    Sampling rate of 10 MS/S or betterDone
    Serial, USB or ethernetDone
    Trigger capture on a variable input levelDone
    Software determine maximum waveform heightDone
    Software determine max /2 heightDone
    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 modeDone
    Handle 0 - 3 volts inputDone
    Detect Mode S preambleDone
    Detect DF17 capability (CA) flagsDone
    Detect downlink format (DF17,DF11,DF00,DF18)Done
    Detect 5 bits into 56 bit payload for DF17 for message format typeDone
    Tell what register is being sent. based on DF17 format typeDone
    Identify DF17 Format Types 00-31Done
    Decode 24 bit address from DF17 and DF11 packetsDone
    Extract flight id from ident packet DF17Done
    De-garblePending
    Amplitude tolerancingPending
    Handle multiple signals per capturePending
    Decode Mode S altitudePending
    Decode CPR position formatingPending
    Decode velocity messagesPending
    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)
    1090 MHz Video
    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
    Track my car
    I have a Ham Radio car tracking system in action.
    track me
    Project/Interests
  • 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
  • Aviation
  • 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
    Electronics
  • 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