Please correct me if there's a flaw in my understanding. The way I currently see the code works is that all Instinct skills are written to the I2C EEPROM and the Newbility skills (currently only stair) is written to the onboard EEPROM. The onboard EEPROM writing happens during the call to assignSkillAddressToOnboardEeprom(). This currently happens every time the Nybble boots - it's in the setup() function of Nybble.ino. Is there a reason for this? We should only need to do it once when we update the skills from WriteInstinct.ino. Also, why did you decide to store stair in the onboard memory instead of offboard? Side note: Your comment about why is the IR key printed twice is because you have two calls to translateIR() on lines 407 & 408.