easypiezi/docs/tutorials/firmware-update/beta-unit-firmware-update.md

4.4 KiB

Pyr0-piezo Beta Unit Firmware Update Procedure

Utilizing the Pyr0-Piezo AVR Programming Jig

Physical Construction of the Jig

The AVR Programming jig consists of several components:

  • A PCB with USB-UART bridge (or a TTL header)
  • A second PCB with ICSP header and Diag Headers installed
  • 5MM 3D Printed Standoffs between the two boards
  • 0.65mm Diameter Pogo Pins that span the two PCB's
  • The three main body components of the jig
  • The hinge joints, and clamp
  • Hardware:
    • 4x M3 16mm Bolts
    • 5x M3 22mm Bolts

Assembly animation:


Uploading Firmware Without a Jig

Uploading firmware without a Pyr0-Piezo AVR Programming Jig requires soldering to the test pads on the bottom of the Sensor's PCB:

EasyPiezi UART Wiring

To utilize the UART's in-built auto-reset function, a 10k resistor and a small capacitor must be added to the reset wire in the configuration below:


Firmware Upload Procedure

The firmware for this project can be updated using one of three methods: VS Code, Arduino IDE, or avrdude.

Please be sure you've already wired up your sensor's UART port or used the programmig jig described earlier in this page.


VS Code (Preferred Application)

Installing dependencies

  1. Install VS Code from Micosoft's official page
  2. Use the "Extensions" menu to install PlatformIO.
  3. (Optional) Install extra plugins to assist in development:
    • GitLens
    • markdownlint
    • Markdown Preview Enhanced
    • C/C++
    • C++ Intellisense
    • Python

Configuration

  1. In PIO Home, open the firmware folder:
    • ~/pyr0piezo/firmware/AVR-Source/Pyr0_Piezo_sensor_v2.x.x
  2. Make certain you're on the latest develop branch
    • In GitLense, under the "Repositories" menu, expand the "Branches" menu
    • Right click on develop and select "Switch to Branch"
    • Back at the top of the "Repositories" menu, hover the mouse over Pyr0_Piezo_Sensor_v2.x.x and click first on fetch, then on pull

Upload

  1. Make any desired adjustments to default values in src/pP_config.h
  2. Click the "PlatformIO: Upload" button found in the bottom bar of the VS Code window
  3. Verify Serial connection by opening the Serial Monitor and typing CONFIG or STATE. You should get a response.

Arduino IDE

  1. Install Arduino IDE from Arduino's official page
  2. Under File > Preferences > Additional Board Manager URL's, Add:
    • https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json

AVRDUDESS

Windows (Only)

AVRDUDESS is a GUI version of the avrdude application used for flashing firmware to AVR based MCU's, and can be found here

After installing AVRDUDESS, and opening it, follow the image below with the settings here:

  • A. Choose the COM port of your UART programmer from the pulldown menu
  • B. Ensure "Erase Flash and EEPROM" is checked
  • C. From the MCU Pulldown, select "Atmega328PB"
  • D. Set the Fuse Bits to E2, DF, F9 respectively. Leave LB blank
  • E. Click the Flash button to begin the upload process


avrdude

Windows

  1. Install a bash-like terminal. Choose from a number of options:
    • [Windows Subsystem for Linux]
    • [CygWin]
    • [Mingw64]
    • [Git Bash (Comes bundled with Git for Windows)]
  2. Download the [avrdude binaries]
  3. Extract the binaries somewhere your terminal can find them

Linux

Ubuntu/Debian Distro's
sudo apt update && sudo apt install -y avrdude
Fedora/RHEL/CentOS Distros
sudo yum install -y avrdude