Update SDI-12 USB adapter firmware
April 15, 2016 Leave a comment
I have just released an update to the SDI-12 USB adapter. This update makes the adapter recover from errors in communication so it won’t hang your data logging process in case a sensor is broken while you are logging.
To make the firmware update easy, I wrote a Python script to use avrdude.exe to load the firmware to the adapter. You will run the script just like the data logging script or config script:
- Install Python 3.5 with Pyserial 3.0 (instruction in the manual).
- Unzip the content of the firmware update package in a folder.
- Check the properties of avrdude.exe to make sure that it is not blocked from running.
- Run the script SDI_12_firmware_update.py in Python environment IDLE.
- Select the adapter’s serial port from a list.
- Pick the firmware file, usually SDI_12_translator_v1_x.hex (must be stored in the same folder as the script), then wait for it to complete, which takes less than 30 seconds.
Here is the output from Python:
I had the adapter on COM4.
Once updated, try connect to it using a terminal program and send zI! (zee-EYE!) and you will see the response has version 1.2 in it.
(Updated) This script now works on Windows, Mac OSX, GNU/Linux (64-bit) and Raspberry Pi.