|
Introduction
Greetings and Salutations!
My name is Thomas Cort.
I live in Gatineau,
Quebec,
Canada with my wife
Bridget. I am currently a student in the
Electronics Technology
program at Heritage College.
I'm in the final year of my studies, and I created this
website to share my final year project with the world.
The project incorporates one of my favourite hobbies,
Amateur Radio.
The goal is to design and build a Terminal Node Controller
(i.e. a modem that uses radio to transfer data between two devices).
Additionally, I'm going to be making a portable version with an integrated
GPS receiver.
The target application of the portable version is a portable tracker.
If you would like to contact me, my e-mail address is
linuxgeek@gmail.com.
Current Status
As you can see by the picture in the upper right, I've completed the
hardware; the printed circuit board I designed exists and is populated
with parts. I've done the initial testing and first pass of the firmware.
I've got two of these modems talking to each other. The PC software is also
up and running. It can be used to configure the modems, send and receive
data, and display location reports received on a map. The last remaining
tasks are further testing and refinement, and documentation. Expect more
activity on the website as the project nears completion.
Documentation
Important documentation will be posted here. Currently,
I have posted a detailed project proposal document outlining the
scope of the project, the project goals, the preliminary design,
and an implementation plan. In the future, I will be
posting the end of semester report in this section.
Project Proposal (PDF)
Hardware
At the heart of the project is an Atmel ATMega1284p
microcontroller running at 14.7456MHz. Connected to it
are sub-circuits that interface with a radio, a
computer, and optionally a GPS. The computer interface
is USB (Mini B connector) using an FTDI FT232RL chip which
will enable it to work out of the box on many systems
while providing the convenience of USB. The
radio is interfaced with a DIN5 connector, somewhat
common among TNCs, to send/receive audio signals and key
the radio. Power is provided via a 2.1mm barrel
connector. Below is the schematic, bill of materials,
and printed circuit board artwork.
Schematic (PDF)
Schematic CAD File (Proteus ISIS)
Bill of Materials (HTML)
PCB Layout CAD File (Proteus ARES)
Gerber Files (ZIP)
Firmware
The firmware handles all of the modulating and demodulating of the AFSK signals,
it can key a radio's push to talk button, it encodes and decodes signals using NRZI,
and talks to the computer and GPSr (if attached). The NMEA GPS data is decoded
and beaconed at periodic intervals. The device implements CSMA/CA to help
avoid collisions. It also can store settings in EEPROM.
Firmware Source Code
Software
The graphical user interface uses Qt to
provide users with a console, map of recent received beacons, and a configuration
panel. The map is based on the free wiki world map, Open Street Map.
Software Source Code
License
One of the goals of this project is to create a free and open terminal
node controller with associated software that respects your freedom. The
licenses were chosen accordingly.
Source code (i.e. software and firmware) is licensed
under the terms of the
GNU General Public License
as published by the
Free Software Foundation, either
version 3 of the License,
or (at your option) any later version.
Documentation (i.e. text documents, manuals, websites, etc) is
licensed under the terms of the
GNU Free Documentation License,
Version 1.3
or any later version published by the
Free Software Foundation.
Design files (i.e. schematic CAD files, PCB layout, etc)
are licensed under
the Creative Commons
Attribution-ShareAlike 3.0 Unported
(CC BY-SA 3.0) license.
Disclaimer
The project files are distributed in the hope that they will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Download
All source code, design files, and documentation is kept in a
git repository on
github.
https://github.com/tcort/va2epr-tnc
|