This repository contains both the hardware and firmware for a portable battery-powered device that can (de)modulate FreeDV from an attached radio. The board is centered around the following components:
- Espressif ESP32-S3
- TLV320 digital audio codec chip produced by Texas Instruments (application notes).
See here for the latest copy of the user manual for ezDV, which describes its general use and operation.
Install ESP-IDF v5.3 and then run the following:
. /path/to/esp-idf/export.sh
git submodule update --init --checkout --recursive
cd firmware
idf.py build
Turn on ezDV (see below) and plug it into your computer's USB port, then run the following:
idf.py -p /dev/ttyxxx0 flash monitor
Where /dev/ttyxxx0
(or COMx:
on Windows) is the serial port created by your operating system after plugging ezDV in.
On Windows, you can use the ESP Flash Tool to flash ezDV. This does not require installation of ESP-IDF.
- Download the ESP Flash Tool from https://www.espressif.com/en/support/download/other-tools.
- Decompress all of the files in the ZIP file and execute flash_download_tool_3.9.3.exe.
- Select "ESP32-S3" for "ChipType", "Develop" for "WorkMode" and "USB" for "LoadMode" as shown below:
- Add rows for each of the .bin files in the resulting screen:
File Name | Offset |
---|---|
bootloader.bin | 0x0 |
partition-table.bin | 0x8000 |
ota_data_initial.bin | 0xF000 |
ezdv.bin | 0x20000 |
http_0.bin | 0x7F8000 |
Additionally, check each of the checkboxes to the left of the file name. It should look something like this, with each of the rows having a green background:
-
Set "SPI SPEED" to "80 MHz" and "SPI MODE" to "DIO".
-
Plug ezDV into your computer using a USB-C cable and turn it on by holding down the Mode button for a few seconds. Device Manager should show a new COM port named "USB/JTAG serial debug unit" or similar. Enter this COM port into the "COM" field in the application.
-
(Optional) Push the ERASE button. This will show a green "SYNC" indicator for a bit followed by "Download" and then "FINISH" as per the above screenshot. Note: There will be no firmware installed on the board once this step finishes. You will need to reconfigure ezDV after new firmware has been flashed.
-
Push the START button. This will go through the same indicators as step 1 but this time will also have a progress bar indicating how far it's gotten in flashing the new software.
-
Push the STOP button and then close the application. Open the ezDV enclosure and briefly push/release the "Reset" button on the right hand side of the board. If everything went well, you'll see the four LEDs light up for a few seconds indicating that ezDV is booting normally.
You can also use esptool. For example:
esptool esp32s3 -p /dev/cu.usbmodem14101 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 80m --flash_size detect 0x0 bootloader.bin 0x20000 ezdv.bin 0x8000 partition_table/partition-table.bin 0xf000 ota_data_initial.bin 0x7f8000 http_0.bin
If the flash process fails (or you are flashing for the first time), you can manually place ezDV into flash mode by holding down the "GPIO0/Flash" button while pushing the "Reset" button on the board. Hold "GPIO0/Flash" for a second or so after releasing Reset, then release. You can then use ESP-IDF, the ESP Flash Tool or esptool to flash ezDV with working firmware.
Pleae read the Theory of Operation document for more information about the general hardware and software architecture, along with information about how to contribute changes to ezDV.
This project is subject to the terms of the TAPR Open Hardware License v1.0 (schematics, other hardware documentation) and GNU General Public License v3.0 (firmware).