A convenient UPDI programmer with automatic UART / UPDI mode switching
Designed by MCUdude in Norway
Buy with confidence.
Our Tindie Guarantee protects your purchase from fraud. Learn More
What is it? The MCUdude SerialUPDI programmer is a tiny programmer for use with any AVR that has a UPDI programming interface. It can also be used as a standard USB to serial adapter for easy serial …
Read More…The MCUdude SerialUPDI programmer is a tiny programmer for use with any AVR that has a UPDI programming interface. It can also be used as a standard USB to serial adapter for easy serial debugging.
I made this board because there doesn't exist a SerialUPDI-based programmer that can automatically switch between UART and UPDI mode. It's also very convenient that the board can supply either 3.3V or 5V to the target. Unlike the microUPDI programmer, this programmer supports the AVR-DA, AVR-DB, AVR-DD, AVR-EA and AVR-EB series as well. It's also significantly faster than the microUPDI.
When the programmer is set to AUTO, it is the RTS handshake line that determines the mode. This means that the upload tool has to set this to active (low level) for the programmer to switch over to UPDI mode. On the other side, the serial monitor program has to set the RTS line to inactive (high level) for the programmer to switch over to UART mode. Avrdude and Pymcuprog set the RTS line active when programming, but serial monitors aren't that consistent. If the upload tool or serial monitor doesn't do anything with the RTS line, the RTS line would do whatever the default behavior is, depending on the OS driver.
SerialUPDI AUTO mode | Windows | MacOS | Linux |
---|---|---|---|
Uploading | Works | Works | Works |
Arduino serial monitor | Works | Works usually | Not tested |
Platformio serial monitor | Works | Works | Works |
When using the SerialUPDI programmer with the PlatformIO serial monitor, please add the following snippet to your platformio.ini file. (I have no idea why their serial monitor, Miniterm, believes the RTS pin actually is DTR, but it works!)
monitor_dtr = 0
SerialUPDI | microUPDI | |
---|---|---|
Supported targets | All AVRs with UPDI | ATtiny and ATmega's with UPDI |
Fully assembled | Yes * | No (Pro Micro not included) |
Debug support | No | Yes |
Programming speed | Fast | Moderate |
Microchip Studio and MPLAB X support | No | Yes |
USB to serial/UART | Yes (native) | Yes (emulated, limited baud rate) |
Target power | 5V / 3.3V / none | 5V / 3.3V / none |
* 6-pin programming connector not soldered
The SerialUPDI programmer is designed to be used with Avrdude 7 or newer, but can also be used with Pymcuprog.
A compatible version of Avrdude is automatically installed when you install MegaCoreX, but you can also compile your own. Pre-built, static binaries for your favorite system can be downloaded from the Arduino Avrdude-packaging repo. For more information on how to use Avrdude, see the official documentation.
For the programmer to behave consistently in AUTO mode, the -x rtsdtr=high
flag needs to be present.
Write to flash and EEPROM:
avrdude.exe -C /path/to/avrdude.conf -c serialUPDI -P COMx -x rtsdtr=high -U flash:w:my_program.hex:i -U eeprom:w:my_program.eep:i
Read flash and EEPROM, and write the content to flash_content.hex and eeprom.hex:
avrdude.exe -C /path/to/avrdude.conf -c serialUPDI -P COMx -x rtsdtr=high -U flash:r:flash_content.hex:i -U eeprom:r:ee_content.hex:i
Write SYSCFG0 fuse:
avrdude.exe -C /path/to/avrdude.conf -c serialUPDI -P COMx -x rtsdtr=high -U syscfg0:w:0xC9:m
Note that there are a few optional flags you can add:
-C path/to/avrdude.conf
flag is not needed if the avrdude.conf and avrdude executable are located in the same folder -b [baudrate]
sets the upload speed. Defaults to 115200 if not specified-v
, -vv
, -vvv
or -vvvv
sets the verbosity level to 1, 2, 3 or 4-qq
mutes all output.-t
enters terminal mode, where all memories can be read and written to at a byte level1x SerialUPDI board, assembled 1x 6-pin female header 1x 6-pin male header
No country selected, please select your country to see shipping options.
No rates are available for shipping to .
Enter your email address if you'd like to be notified when SerialUPDI programmer can be shipped to you:
Thanks! We'll let you know when the seller adds shipping rates for your country.
Shipping Rate | Tracked | Ships From | First Item | Additional Items |
---|---|---|---|---|
:
|
Product: (4.86)
Documentation: (4.29)
Shipping: (4.71)
Communication: (4.86)
Jarosław | July 20, 2024
Jonathan | July 7, 2024
Stefan | May 27, 2024
Taylor | March 31, 2024
Stanislav | Oct. 10, 2023
Honver | May 10, 2023
Chris | March 23, 2023
Buy with confidence.
Our Tindie Guarantee protects your purchase from fraud. Learn More
$6.00
Free Shipping!
$35.00
Free Shipping!
$9.90
Free Shipping!
$43.99
Free Shipping!
By clicking Register, you confirm that you accept our Terms & Conditions
We recognize our top users by making them a Tindarian. Tindarians have access to secret & unreleased features.
We look for the most active & best members of the Tindie community, and invite them to join. There isn't a selection process or form to fill out. The only way to become a Tindarian is by being a nice & active member of the Tindie community!