PIC APRS Beacon: Difference between revisions

From AD7ZJ Wiki
Jump to navigation Jump to search
(Created page with "This project was started as a fun experiment to see if an AFSK signal could be generated using only an 8 bit PIC and a resistor ladder network. Since this is now realized, th...")
 
No edit summary
Line 1: Line 1:
This project was started as a fun experiment to see if an AFSK signal could be generated using only an 8 bit PIC and a resistor ladder network.  Since this is now realized, the additional features to make it a fully capable beacon will be implemented.   
This project was started as a fun experiment to see if an AFSK signal could be generated using only an 8 bit PIC and a resistor ladder network.  Since this is now realized, the additional features to make it a fully capable beacon will (hopefully:) be implemented.   


== High Level System Requirements ==
== High Level System Requirements ==
Line 13: Line 13:
* Ability to configure volatile parameters via RS232 console
* Ability to configure volatile parameters via RS232 console
** Call Sign & SSID
** Call Sign & SSID
** Time slotting
** Status string
** Status string


== Hardware ==
== Hardware ==
The hardware started out based around a PIC18F14K22 (?) which is one of the higher end 8 bit PICs.  It's capable of running at up to 64 MHz, or 16 MIPs since each instruction takes 4 clock cycles to execute.  This worked well, but only has 512 bytes of RAM which may get a little thin handling NMEA strings.  The PIC18F2525 would be a second choice if more RAM is necessary. 
== Software ==
The software is written in C and built with the Hitec C compiler.  The AFSK modulator works using a 32 entry lookup table, which produces a single cycle of a sin wave.  AFSK switches between 1200 Hz and 2200 Hz to represent mark and space, with a baud rate of 1200 bps.  The data itself is encoded using NRZI (non-return to zero inverted), meaning zeros cause a state (as in, mark or space) change while 1's cause the state to remain the same.  Bitstuffing is performed to keep 5 or more 1's from ever being sent in a row - this helps keep the receiver's clock synced up. 
Currently the remaining capabilities still need to be implemented:
# Flash memory interface (in progress, partially complete)
# GPS NMEA interface
# RS232 Console interface

Revision as of 23:01, 1 May 2012

This project was started as a fun experiment to see if an AFSK signal could be generated using only an 8 bit PIC and a resistor ladder network. Since this is now realized, the additional features to make it a fully capable beacon will (hopefully:) be implemented.

High Level System Requirements

  • Implementation should be simple and inexpensive
  • AX.25 packet capability for data transmission
  • Interface with a GPS using either ASCII NMEA or a binary protocol
  • On-board landing prediction based on wind data gathered during ascent
  • Logging
    • Data to be stored on on-board flash memory.
    • Board temperature
    • Battery voltage
  • Ability to configure volatile parameters via RS232 console
    • Call Sign & SSID
    • Status string

Hardware

The hardware started out based around a PIC18F14K22 (?) which is one of the higher end 8 bit PICs. It's capable of running at up to 64 MHz, or 16 MIPs since each instruction takes 4 clock cycles to execute. This worked well, but only has 512 bytes of RAM which may get a little thin handling NMEA strings. The PIC18F2525 would be a second choice if more RAM is necessary.

Software

The software is written in C and built with the Hitec C compiler. The AFSK modulator works using a 32 entry lookup table, which produces a single cycle of a sin wave. AFSK switches between 1200 Hz and 2200 Hz to represent mark and space, with a baud rate of 1200 bps. The data itself is encoded using NRZI (non-return to zero inverted), meaning zeros cause a state (as in, mark or space) change while 1's cause the state to remain the same. Bitstuffing is performed to keep 5 or more 1's from ever being sent in a row - this helps keep the receiver's clock synced up.

Currently the remaining capabilities still need to be implemented:

  1. Flash memory interface (in progress, partially complete)
  2. GPS NMEA interface
  3. RS232 Console interface