Is it possible to read a program off the Atmega 16

The short answer is no :slight_smile:

Compilation is effectively a one way process. You can't get back the code that was written into the IDE. You could use it to reprogram the arduino with the same code at a push, but you can't get back anything that will look like what went in.