PIC APRS Beacon: Difference between revisions

From AD7ZJ Wiki
Jump to navigation Jump to search
No edit summary
Line 17: Line 17:
== Hardware ==
== Hardware ==


[[File:Layout.png|thumb|PICTrack board layout]]
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.
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.
[[File:Layout.png|thumb|PICTrack board layout]]


== Software ==
== Software ==

Revision as of 21:55, 1 May 2013

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

PICTrack board layout

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 source code is hosted at github here https://github.com/AD7ZJ/PICAprs

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