What I have been able to do it write a sketch that uploads via can a new sketch to the lower half of the memory. Using checksum's as its loading and once completed checked for data integrity again.
Once it is loaded and checked, Erase the upper half, copy the lower to the upper, Erase the...