Atmel (recently bought by Microchip) has been producing a large family of 8-bit microcontrollers, the tinyAVR and megaAVR series for quite some time. Actually the first Atmel 8-bit AVR was introduced back in 1997. You will probably find AVR's in many household devices throughout your house, from microwaves to coffee machines and some home automation devices.
Like most microcontrollers, they have many I/O options and are quite flexible. Memory however, especially on the ATTiny (tinyAVR) devices, is rather scarce. So I started to write some low-level assembler routines with minimal footprint to do basic stuff for the programs I want to develop, like queueing data, send and receiving serial data, allocating memory, reporting errors, writing EEPROM memory, etc.
In the first article on low speed serial communications for 8-but microcontrollers, we looked primarily at the design principles and message structure. In this second, long overdue, article, we take a closer look at handling a message.
I am designing a simple, robust protocol for universal serial communications between low-level devices and sensors with very limited resources, whether it is over an RS485 bus, Wi-Fi, PLC or otherwise.
For my (home) automation and other planned projects I am looking for simple means of communication between various device nodes, sensors and actuators. These will mostly be based on small microcontrollers (like Atmel's 8-bit AVR, ARM Cortex or similar MCU's) with a small amount of memory. More details on these MCU-driven nodes (or should I say 'IoT' devices) will follow as I start digging into the details of these microcontrollers and do some designing and building along the way. But for now I want to have a simple communication protocol for tiny devices with as little as a few KB of memory, and connected through different wired or RF links.