Since my last update, I've realized that I really need to write a "bootloader" for the AVR so I've been working on that over the last week.
What is a bootloader? It's a small program that is installed at the top of the AVR's program memory and boots up first.
Why do we need one? It's so that I can push out firmware updates through the AVR's serial port instead of requiring an ISP/JTAG programmer (such as the AVR Dragon). This is a must-have feature for the finished Dexter product and I felt like the time was right for me to stop procrastinating on it and just write it now.
Instead of using a pre-existing bootloader, such as the Arduino's, I just wrote mine from scratch with the goal of making it as small as possible. Total program size right now is just under 2k which is not horrible. On Dexter's main microcontroller, this will mean that 2k of the total 64k will be used by the bootloader.
The bootloader make it so that the Raspberry Pi can reprogram Dexter. This means I can release updates from time to time and no one will need to do anything technical to get them onto the Dexter board.