Skip to content

tmiw/ezDV

Repository files navigation

ezDV

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:

User's guide

See here for the latest copy of the user manual for ezDV, which describes its general use and operation.

Building the firmware

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

Flashing the firmware

Using ESP-IDF

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.

Using ESP Flash Tool

On Windows, you can use the ESP Flash Tool to flash ezDV. This does not require installation of ESP-IDF.

  1. Download the ESP Flash Tool from https://www.espressif.com/en/support/download/other-tools.
  2. Decompress all of the files in the ZIP file and execute flash_download_tool_3.9.3.exe.
  3. Select "ESP32-S3" for "ChipType", "Develop" for "WorkMode" and "USB" for "LoadMode" as shown below:

ESP Flash Tool step 3

  1. 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:

ESP Flash Tool step 4

  1. Set "SPI SPEED" to "80 MHz" and "SPI MODE" to "DIO".

  2. 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.

  3. (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.

  4. 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.

  5. 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.

Using esptool

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

Recovering from a bad flash

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.

Contributing to ezDV

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.

License

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).