Ok, so my test bed worked on a basic level. All my testing was with the bare board, but now I had a nice circuit board to make it pretty. I never even hooked up the switches during testing, just touched the various wires together.
I should explain my idea for the controls of this thing. I wanted it simple, so I decided that I would have only a power switch and three push buttons under the screen – one under thye left side, one under the right, and one in the middle. The bottom line of the LCD would tell you what the function of the button is at this particular time. The functions of each button change with each screen.
The only problem was the two line by 16 character LCD – not enough room for what I needed. It worked, but it could look nicer. So I swapped it for a four line by 20 character backlit LCD. More room and visible at night for those long overnight cooks. I had to make quite a few changes in the software to run the new screen, but it wasn’t too bad. The new screen gives me lots more room to display things, while at the same time, still displaying the button functions on the bottom line.
It was about this time that I added an ‘Easter Egg’ to the program. Well, not really an Easter Egg, but a hidden function. Before this, I wrote a small program that displayed the sampled ADC value from a thermocouple. The I put the thermocouple in a pot of water on the stove and heated it to boiling. At various times, I checked the actual temperature with a known-good thermometer and recorded that value and the ADC value at that point. After I got it to boiling, I had a ‘compensation number’ to use in the program to convert the raw ADC value to degrees F.
The only problem was, it was hard coded. So I decided to write a hidden routine to calibrate the thermocouples. Its entered by holding down the left button on power up, and continuing to hold it through the title screen, and for a further two seconds after the screen blanks. At that point, you are told to release the button and then you can make a choice as to which thermocouple you want to calibrate.
In the calibration routine, you are shown the current adjustment value and the current temperature in degrees F. All you do is put the thermocouple in a known-temperature pot of water (boiling works good) and use the left and right buttons to adjust the displayed temperature to 212F. When you press the right button (enter) the value is written to the on-board EEPROM and is read at startup.
Since I already had ONE easter egg in it, the Hackaday Fubarino Contest (http://hackaday.com/2013/12/03/new-contest-win-one-of-20-microchip-fubarino-boards/) was a natural to add another.
Not that this is much of an Easter Egg, but it exists. On startup, if you follow the same procedure as the calibration routine, only this time holding the middle AND right buttons, the Easter Egg is revealed for 5 seconds. Below is a video of the startup and the Hackaday Easter Egg. Remember, I’m still developing stuff and its not even in a box – heck, there are no buttons yet, just wires to touch together.
Here’s a video of the startup with the middle and right buttons operated:
After this, the next steps are to put it in a box, add the serial logging function, put it in a box, add monitoring of the input voltage with an ADC port and a voltage divider I put on the board, put it in a box, add WiFi functions, and put it in a box.
You might have noticed that this REALLY needs a project box! I getting tired of staring at a bare board, but its SO much easier to work on the way it is now.