All You Ever Needed To Know About UPDI, And Then Some!

This entry is part 7 of 7 in the series IMPLEMENTING UPDI FROM SCRATCH

Part VI — The Complete Reference Design, Operating Guide, Troubleshooting Manual, and Resources Updated for the finalized NANO UPDI PROGRAMMER Rev. 1.0.0 hardware We began this series with one deceptively simple question: What is UPDI? Six parts later, the answer is considerably richer than: “It is Microchip’s one-wire programming interface.” UPDI is indeed a one-wire

All You Ever Needed To Know About UPDI, And Then Some!

This entry is part 6 of 7 in the series IMPLEMENTING UPDI FROM SCRATCH

Part VI — The Complete Reference Design, Operating Guide, Troubleshooting Manual, and Resources Updated for the finalized NANO UPDI PROGRAMMER Rev. 1.0.0 hardware We began this series with one deceptively simple question: What is UPDI? Six parts later, the answer is considerably richer than: “It is Microchip’s one-wire programming interface.” UPDI is indeed a one-wire

All You Ever Needed To Know About UPDI, And Then Some!

This entry is part 5 of 7 in the series IMPLEMENTING UPDI FROM SCRATCH

Part V — Using UPDI as an On-Chip Debugger Updated for the finalized NANO UPDI PROGRAMMER Rev. 1.0.0 hardware So far, we have used only half of UPDI’s name. We have built the: Unified Program and Debug Interface into a functioning programmer. Now we turn to the second half: Unified Program and Debug Interface This

All You Ever Needed To Know About UPDI, And Then Some!

This entry is part 4 of 7 in the series IMPLEMENTING UPDI FROM SCRATCH

Part IV — High-Voltage UPDI Activation and Recovery By the end of Part III, our Arduino Nano could do something genuinely useful. It could: That is already a practical programmer. But there remains an awkward problem. What happens if the microcontroller’s UPDI pin is no longer configured as UPDI? Or, on newer devices, what happens

All You Ever Needed To Know About UPDI, And Then Some!

This entry is part 3 of 7 in the series IMPLEMENTING UPDI FROM SCRATCH

Part III — Turning the Arduino Nano into a Real UPDI Programmer Updated for the finalized NANO UPDI PROGRAMMER Rev. 1.0.0 hardware Parts I and II got us across the wire. We now understand enough of UPDI to: That is already a useful communications system. But it is not yet a programmer. Programming begins when

All You Ever Needed To Know About UPDI, And Then Some!

This entry is part 1 of 7 in the series IMPLEMENTING UPDI FROM SCRATCH

Part I — Foundations, Electrical Interface, Protocol, and High-Voltage Activation There was a time when connecting a programmer to an AVR microcontroller could consume a surprisingly large number of pins. Traditional AVR In-System Programming used SPI-like signaling. JTAG used four principal signaling wires plus reset and power references. debugWIRE reduced debugging to essentially one signal,

Developing an Open Hardware Device Programmer

This entry is part 1 of 1 in the series Open Universal Device Programmer

Introduction As an electronics enthusiast with over 50 years of experience, I’ve had the privilege of witnessing the dramatic evolution of computing systems. From the early days of 4 and 8-bit machines with minimal RAM to today’s powerful 64-bit computers with terabytes of storage, the progress has been nothing short of extraordinary. The same transformative

Understanding Unicode: A Deep Dive into Universal Text Encoding

Understanding Unicode: A Deep Dive into Universal Text Encoding

Unicode is a universal encoding standard designed to support every language and symbol in use today. This article provides an in-depth look into how Unicode works in application development, exploring the challenges of string comparison, normalization, and the multiple ways that the same visual character can be represented. Learn how to handle Unicode strings in Python, JavaScript, and C, and discover how normalization can resolve issues when comparing visually identical characters.

An Introduction to C for Arduino Users

Explore the essentials of C programming tailored for Arduino users. This comprehensive guide covers variables, data types, control structures, functions, arrays, and pointers, with practical code examples to help you harness the full potential of the Arduino platform.

Implementing Command Parsers on Arduino Over Serial

Introduction Command parsers are essential in embedded systems for receiving and interpreting commands from a host device, such as a computer or another microcontroller. In this article, we will explore how to implement command parsers on an Arduino over a serial connection, focusing on memory management, text buffer creation and use, string formatting, and handling