Thanks for the reply. I was thinking that if the bootloader can write to flash, then so could I. However, after some more reading, it seems like it is not something I want to try to tackle. It looks like I will need to find a way to shrink the info I'm storing, or have some kind of extra storage. Any recommendations on what I could use to store the codes? It doesn't need to be particularly fast, as I can read it into memory before sending. Or how I could shrink the codes to fit a reasonable number into eeprom? If I give up some resolution on the times, I can scale them down before storing and then scale them up again after reading back and before transmitting. The biggest delay I've seen in a code is at the end, before the code repeats. It was about 40mS. So I think about 60,000uS is the longest thing I would need to store to be safe. The variation I've seen in times for a remote code pulse is about 25uS. If I divide my times which currently have 1uS resolution by 15 to get 15uS resolution, I think that would still be close enough to work. So doing that, I could get away with storing my times as 12 bit numbers [15 * (2^12 - 1) = 61425] instead of 32 bit numbers. Anyone know how to store 12 bit numbers in an array? Or do i have to combine them somehow and disassemble them again later to store in another data type? But that would still take up 12 * 68 / 8 = 102 bytes per code, so I could only save 10 codes. Any ideas how to shrink it more, without having to know the protocol being used? Or recommendations for some kind of external storage to use?