The hardware project was made by David Fainitski N7DDC and you can find all his work at this url.
I started this repository for the following reasons:
- I would like a fully open source radio with the source code of every components;
- fully remote controllable radio without any external hardware;
- a future proof code that will work for the next decade;
- comprehensive radio documentation;
- maintain an up-to-date gateware (radio firmware) in sync with the Anan 100D;
- learn PIC architecture and FPGA ecosystem (with Verilog HDL in this case).
In this section I expose only software changes that I made to the respect of N7DDC software; you can find these characteristics on pcb/docs folder.
- the programmer is written in C89 and therefore will be available for next decades. The basic commands are fully functional with the N7DDC bootloader;
- MCU is fully open source and documented;
- more agile protocol between MCU and FPGA;
- fully remote control of the bootloader (also remote entering mode);
- display visualizes each stage and all configuration.
For more information you can read each sub-system readme.
The following diagram is an high overview of the radio main components and how they communicate and for which functionalities they are responsible. For a lower level see N7DDC diagram.
Full information about MCU functionalities and FPGA UART protocol can be found in the mcu readme. For the FPGA you can find the bootloader specifications in bootloader readme and the radio details in the radio readme.
To use the radio you need to flash different kind of firmwares. Take the following steps:
- program the MCU with the file mcu-[version].hex via In-Circuit port and the programmer. More information at this page;
- program the bootloader with the gateware bootloader-[version].pof using the Altera Quartus programmer. Read the steps at this page;
- start the radio in the bootloader mode: either connecting both iambic keys to GND or with the programmer software;
- use the programmer to write the odyssey2-[version]_[protocol].rbf in the first slot; refer to the following page for the help.
If you don’t want to use the bootloader you can also build the radio gateware yourself and write the pof directly to the FPGA using the JTAG port. Note that, in this way, you loose many facilities to manage and maintain the radio.
- bootloader : contains the verilog code for the bootloader and can be
programmed with the
programmer
; - mcu : the microcontroller firmware that controller the power of the radio and the display;
- pcb : contains the PCB layout of Odyssey 2 version 1.2 and related BOM/geber provided by David Fainitski N7DDC;
- pcb/docs : contains a few documents published by David Fainitski N7DDC about the hardware board and his software;
- programmer : the bootloader programmer that permit to control and configure from remote the radio;
- radio : contains the readme for the radio firmware since many functionalities are shared between protocol 1 and protocol 2;
- radio/protocol1 : the Angelia radio firmware with protocol version 1;
- radio/protocol2 : the Angelia radio firmware with protocol version 2.
Each project has its license since the FPGA code was derived from openHPSDR. It is generally GPL version 2 or 3. I tried to respect as much as possible each author citing his work on each source file. If you find something wrong or not correctly attributed feel free to open a pull request. Thank you for sharing with the community your code!