So here are the highlights of what I've been doing since I last posted:
I completed the emulator for the coach side of the thermostat. It has led's for heat, ac, high and low fan in the two zones as well as a button to indicate the zone is shedding. There is a nice metal power connector on top providing the important 12V to run the communication line which is connected over BNC. The choice to use BNC has made it look so good. Maybe too good because my roommate insists I take it as carry on at the closest airport, I disagree.
Changes to code:
- Abandoned the use of the SD card. While communication with the card worked great, endian issues with open source FAT implementations made it not worthwhile with time constraints. Images are now stored in the ROM.
- Implemented libpng. We emulate files using a library and use the custom IO functionality in libpng to make it all work. A simple malloc/free setup was also added.
- Not really changed. We are using the wrong toolchain, I tried several more times to get the newlib toolchain to work as desired in cygwin with no success. Gave up.
- Struggled with interrupt oddity. The A/D interrupt input wasn't latched and at random would violate setup times on the OR1200 causing undefined (The return address would get corrupted) to occur. This is now latched on negative edge.
- Struggled with odd interrupt clearing behavior. Turns out I misread the OR1200 spec and was doing it as described in OR1000.
- Implemented some of the touchscreen code.
- De-bounce touchscreen. This was Dependant on the interrupt bugs which I resolved today.
- Implement user interface buttons
- Make main screen of UI
- Make set time screen of UI
- Time Permitting: Make schedule screen of UI
- Get it checked off
- Do paperwork
- Throw in closet & forget about it
- Pull out of closet fight with SD card more.
As always code is at: