TechToys SSD1963 eval kit on a PIC32 I/O Expansion Board

Now that I’ve gotten all the leaks taken care of on my new aquarium I decided I should at least figure out if the new SSD1963 eval kit with 7 inch 800×480 LCD that came from TechToys. com.hk works. Officially it is listed on the site as SSD1963EVK-R3B + 7″ WVGA color TFT with Touch Panel Part #: SSD1963EVK-R3B-TY700TFT and as of July 2011 was listed as a bundle price of $119 USD plus shipping. This includes the LCD, SSD1963 board with a cable between them, and 40 jumper cables.

This kit is intended for a development board created by TechToys that fits the connector perfectly. On that board you can then place a PIC32 starter kit. For my purposes this is not usable because I do not need the devices on that board such as the MP3 player. I also need to add a variety of I2C and SPI devices for sensing environmental conditions. For my project sticking with the PIC32 I/O expansion board is the best bet.

I decided I would leave the original breakout boards attached and wire the LCD and graphics chip on. I removed the Microchip Graphic boards from the side and popped out the riser card. To properly find the wiring you need to use you need to consult both the schematic for the Multimedia Evaluation Kit for Microchip PIC32 Starter Kit and the Evaluation Kit for SSD1963QL9. You are looking at the diagrams for MCU interface and SSD1963 EVK Interface. What you will find is that not all of the pins are diagrammed through to both sides. They need wired through though and the correct connections can be determined elsewhere on the schematic. Wire everything from the SSD1963 EVK Interface diagram and then add onto it the Reset, LE and other pins. Once you do this you end up… with a mess:

Then I began the process of trying to compile the modified MultiApp Demo. I selected one of the hardware profile includes for the 7 inch LCD and SSD1963 that involved a PIC32MX795 and tried to compile it. I’ve read about people potentially having to modify when using a Graphics Library higher than 2.0. Turns out this was not the reason I had errors. Instead I needed to fix the driver file because it mentioned parts I was not using and didnt match the name of the driver. I commented out a few lines and uncommented the lines that matched the actual names from the driver. It reports not having a compatible Controller prior to that and worked fine following that. However, the tech toys modifications stopped other graphic apps from compiling so you need to do a diff comparison to figure out changes necessary to newer libraries.

Once the lines were commented out I compiled, uploaded and launched the app. Success was short. Within a few moments I realized while pressing around on the touch screen calibrating the corners and pressing to save the calibration I noticed that the program didnt continue any further. Stepping through a debug I noticed it was at a point waiting for the EEPROM to respond. That’s when it hit me. TechToys sells a development board which happens to include an Atmel SPI EEProm. On the Microchip boards this is found on the graphics board because they expect you to change graphics boards potentially with your own and they supply it on their graphics board.  For TechToys it’s on their development board and not with the graphics boards.

Upon removing the microchip boards I thus no longer have an EEPROM. Upon playing around I found that pressing in the upper right corner instead of calibrating results in the board eventually skipped the write and reload of the calibration and jumped to the home page though I had issues reproducing this reliably. Ultimately just to test it working I ended up triggering buttons about 2/3 of the way from the bottom to trigger the lower buttons and then gradually moving up until it selected another item.  The various graphical items displayed and I managed to get some of the apps to launch though not be able to control them very well.  All that mattered to me is it technically worked as wired.

From what I can see there is an acceptable write speed to the LCD for setting up a coffee roaster control screen but I will need to test further once I can store the configuration data and switch to the original roaster program on the larger screen. I’m thinking I should actually be able to store this to a file on a SD memory stick instead of an EEPRom. Both are SPI but will require a different process to read/write but there’s been others who have done so without much issue into a config.ini file.

Temperature and the “pause” when pressing Up/Down button on FreshRoast SR500

So as mentioned before there appears to be some sort of temperature sensing device built into the base that interacts with the Atmel processor.  There appears to be potentially power dimming circuits in there as well but I need a multimeter to verify all that which I do not have at the moment.

I’ve mostly been roasting the past few days “by sight, smell and sound”  the various coffees.  I logged some details on some of the coffees I roasted and they turned out ok when I brewed them but without temperature data to go with my timings I figured reporting the results was pretty useless so I stopped mentioning the other beans and what I roasted.

Initially my plan was to roast the coffee and see which ones tasted good or “bad”.  So far the only one that I have had any issues with is not necessarily “bad”…. but just not “really good”… it is only good.  That of course is a horrible horrible crime in the world of coffee.  [/sarcasm].   Even the “only good” coffee will be given a chance to redeem itself after reading the details provide on SweetMaria’s regarding the coffee and seeing if there are any nuances of needing to be darker or lighter or perhaps made into espresso or left for resting for additional days etc before I decide where it belongs in my ordering of new coffee for the “longer term” than the initial sampler.

I have now set up a digital gram scale (sensitivity 1.0g) with a small plastic measuring cup that I “tare” on the scale prior to pouring the beans in.  I’m finding that the amount is sensitive for only a couple beans that seem to roast “weird” compared to the rest where the others do just fine with a higher amount of beans.  These beans that are “weird” have little movement until the last 60-90 seconds of the roast.

The factory suggested amount is 120 grams while Tom @ Sweet Marias suggests 100 as being more realistic.  While I cannot claim to be any sort of coffee snob and certainly not an expert at roasting/cupping etc I’m finding the coffees I listed in my first blog…  by starting them on a completely level surface, and running the fan at 100% with the heat on low until a slighter amber color is achieved will result in pretty decent coffee with no more than one or two dark “spots” beans.  It seems on very small beans that apparently get stuck in the mesh before the fan starts.  They will end up scorching but the rest of them circulate quite well and explain why the “stirring trick” works due to this taking place while the fan is blowing.  Once you stir all the beans free from the screen they begin to free-float in the stream like the larger ones that never got stuck.  Everything else seems to roast gradually and without signs of burning though heavier beans will start to darken faster due to spending more time lower in the chamber.  I believe the roaster being level to be quite important as a result and starting off with a lower temperature and the “cool trick” artificially keeping the temperature low in the startup to help limit any burning.  This would side with people that declare a pre-heat cycle with the FreshRoast to be unnecessary since it would probably burn the beans worse than starting off slowly.  Ultimately a much lower temperature than “low” perhaps by around 100 degrees would be better as a “dry” cycle.

Today I managed to find a temperature probe in the grill section that makes it into the upper 400s Fahrenheit.  Most thermometers stop at 392 degrees or they have a lot of plastic that would prohibit you being able to have them near the heat of a roaster.  It is a BBQ grill thermometer made for Kenmore and was sold at my local Sears store.  It does NOT fit the roasting chamber without some convincing.  Convincing involves some very gradual bends being applied to the thermometer probe to allow it ot sit further down in the chaff collector putting the tip in the middle of the roasting chamber.  To convince it to turn I ended up utilizing the combination of a small gap on the rounded handle on a vise for some MINOR adjustments and the major adjustments being convinced with a large Maglight flashlight.  If you have ever bent metal electrical conduit you will get the idea.  You need to gradually support the pipe as it bends sit that it does not kink.  The temperature probe is actually a hollow shaft with a pointed tip on it.  The hollow shaft contains a set of twisted wiring that is actually a thermocouple.  It connects to the braided wire cover for that wiring which leads to the socket on the display.  You don’t want to kink the probe so it has to be slow bends in the probe to keep it from crimping on the thermocouple and potentially weakening things.

I have not roasted a batch using the new thermometer yet due to the fact some things came up today where I was not in the house and as a result we didnt really drink much coffee today to use the beans we’ve already roasted leaving me nowhere to place the finished roast.  As a result I now have a 2 day rest on most of these beans that are in there.  Today I get to see if the probe will pickup any appropriate temperature readings that match up with what would be expected at First Crack and/or Second Crack or if it is simply not sensitive enough and is actually picking up the roaster air only.

I have already attempted to run the roaster without beans for a brief time to inspect the temperature readings and see if there is any sort of ramp involved.  The temperatures did not seem to pass the mid 300s no matter what the setting while on high. Apparently with that level of airflow (if things are working with the sensor)  the heating elements needs to have back pressure from the beans in the roaster to reach the 400s.  As a result if running too small of a batch it will likely not roast properly thus never reaching a high enough temperature like too much beans could result in too high of a temperature being applied.  With the use of the Atmel processor and that possible NTC Thermistor Diode it probably means that the heater will cut out to not result in an overheat situation temperature wise BUT ultimately the beans in the roaster will probably burn without enough movement.

FYI the Atmel datasheet HERE shows that the processor has interrupt capabilties.  The buttons seem to be wired to two of the pins that have interrupt capabilties.  Due to there not being any chips to buffer the button pressing it would be my guess that the program made any pressing of Up/Downl to be an interrupt to the existing programming.  It seems to be part of the “Analog Comparator” which treats the status of two pins as a logical on/off.  If you press up it counts that button as pressed (1 or on) to the other button (down) as not pressed (0 or off).  It compares the two settings and initiates an interrupt.  As a result whatever signals being received for fan or heat control would be interrupted resulting in a “drop” to a minimum level that we are seeing.  This interrupt stops normal interpretation of the voltage in/out on the other ports and triggers a counter to go up or down.  There is circuitry built in apparently to do limited “debouncing” which is why holding the button does not make it continue to go up or down.  With the use of more expensive complex circuitry the variation in speed that we see would go away but due to cost savings this is a side effect.  The only way to eliminate such a pause is to use a different controller than the Atmel or potentially include extra chips to handle these changes.  The length of the pause is directly related to how quickly you can trigger the button.  I would suspect if you had “two bare wires” instead of the push button and you quickly tapped them together rapidly the up/down reaction would not be noticeable.  Due to the type of button used there is a long “click” in the button that makes the interrupt obvious.  The faster the contact and release of the button the shorter the interrupt allowing the circuit to continue on as programmed.