Greetings and Salutations!
My name is Thomas Cort.
I live in Gatineau,
Canada with my wife
Bridget. I am currently a student in the
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,
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
The target application of the portable version is a portable tracker.
If you would like to contact me, my e-mail address is
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.
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)
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 CAD File (Proteus ISIS)
Bill of Materials (HTML)
PCB Layout CAD File (Proteus ARES)
Gerber Files (ZIP)
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
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
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,
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.
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.
All source code, design files, and documentation is kept in a
git repository on