VGDD SSD1963 EVK R3B w/ PIC32 I/O Expansion w/ USB II and TY700TFT800480

As mentioned in my last post VGDD now supports a SSD1963 board.  Unfortunately I have the SSD1963 EVK R3B while VGDD was configured for using the Ultima R4.1 board both made by TechToys in Hong Kong.  I figured with enough time to work on it I’d figure it out.

Over the weekend I wired up the EVK board the same way that the Ultima is wired to the FX10A Hirose connector and use that to find the pins on the PIC32 I/O Expansion board.  The EVK board does not include any eeprom or flash chips on them to store touch screen calibrations so you need to supply your own.  As a result of not having that part programmed in yet I disabled the touch calibration until I can work out the correct adjustments to get it working with some form of memory.  My goal at this time was just to get the display working.

After a minor issue where the screen came up blue-tinted but otherwise generally working I kept playing around with the code in VGDD’s XML files and the resulting output trying to figure out what was going on.  A few times it got worse but for the most part it kept working with some type of issue.

Today after getting a few responses from VirtualFab on their brand new forum I started reading through the SSD1963 file to see what was different.  The owner of TechToys has also registered on the forum and he made a few comments about it as well. Armed with a little bit more information it turns out there is a different initialization command format when the Rev 02 TY700TFT800480 board is initialized vs the Rev 03 board that VirtualFab tested with the Ultima and built the XML files for.  After a minute or two I modified the USE_TY700TFT800480_R3 to not include the _R3 and confirmed that it still had the R2 (non _R3) code.  I then enabled an R2 XML file I created with the slightly different Horizontal and Vertical configurations and linked them to the graphics board, disabled the TouchInitialization, compiled, and my familiar roaster splash screen popped back up just fine.

The main difference between the R2 vs R3 LCD panel is that the R3 uses RGB signals while the R2 uses TTL and they are communicating at slightly different bit rates (at least that’s what I think is going on.)  So with that level of progress I decided it would be easier to order some SST25VF016 memory and wire it in to the project rather than to make it work with other memory since everyone seems to be using that same specific chip in their display boards.  It is possible to modify the files to support a Microchip 25LC256 (since I’ve done it in the past) but I figure it’s easier to just FLASH instead.

I’ve had a few conversations with John @ TechToys and he seemed receptive to some of my suggestions about adding some mounting holes to the EVK board so that it can be anchored more easily in a case if you wish to embed it rather than build your own. He also seemed to be considering at least providing a footprint to solder the flash memory to the board if you have it / need it. Since the board needs flash memory to store the touch screen calibration and it’s generally something you do once this will be helpful if it happens. No guarantees but at least it’ll probably be something he’ll think about with any future new board designs.

To wire up a SSD1963 EVK Rev3B to my PicTail Daughterboard I used the following configuration that mimics the Ultima wiring.

TP_XR RB10 1 2
TP_YD RB11 7 8 OE#
D17 9 10 RD4 WR#
D16 11 12 RD5 RD#
LE 13 14 RB15 CS#
D15 RD7 15 16 RD3 DC
D14 RD6 17 18 RD1 RESET#
 D13 RD13 19 20 RE0 D0
D12 RD12 21 22 RE1 D1
D11 RF0 23 24 RE2 D2
D10 RF1 25 26 RE3 D3
D9 RG1 27 28 RE4 D4
D8 RG0 29 30 RE5 D5
D20 31 32 RE6 D6
D21 33 34 RE7 D7
D22 35 36 RE9 TE
D23 37 38 5V 5V_EXT
D18 39 40 D19

The flash chips and a breakout should be arriving sometime in the next couple days.  The last tracking showed them being in San Francisco and should probably arrive tomorrow.

UPDATE – Flash arrived and I wired it to a generic eeprom/flash board I had made previously using a Radio Shack 276-159B and a SOIC-8 Breakout… wire as follows:

*Note* you may need to wire a 10k resistor to SST25VF016 pin 1/CE#.  Then wire 3.3v to the other side of it.  Mine worked without this done but it should probably be there.  Your mileage may vary.

CE# RD9 1 8 3.3V VDD .1uF Cap GND
SO RC4 2 7 3.3V HOLD#
WP# 3.3V 3 6 RD10 SCK


Video of Test Run of RoastGeek Roaster Controller

After some work mounting circuit boards and creating wiring harnesses to connect everything together I wired up a 5 volt power supply to run a case exhaust fan and fired up the coffee roaster controller for a quick test. The program was not optimized for a new bag of beans I was roasting so it didn’t hit good temperatures at the right times in my opinion but it worked.

At this time I have disconnected all of the FreshRoast SR500 control electronics and replaced everything from the wall to the heater and fan connections with my own boards. I’m using an Arduino Mega 2560 with an Ethernet Board (it gets NTP time to set time and date on the logs by itself and I hope to add some ethernet based communication to collect the log data without popping the microSD memory out). The Arduino is mounted in a Crib for Arduino and connected via wiring harness to a DB25 cable that connects to the back of a Ponoko laser cut case prototype.

I screwed up a few calculations on the Ponoko case but the idea will work and the glues I need to use will allow me to connect all the sides together and mount everything securely when I send it in for “round 2”. Inside the case I’ve got several Sparkfun boards as well as some other manufacturer breakout boards mounted to a “connector board” that links them all together and to the DB25. There is also a 25VAC transformer and my original RadioShack parts power control board. I need to figure out what I need to do to have a suitable AC handling PCB though since most of the easily produced boards would not have thick enough copper to handle the 1500 Watts of AC power to my understanding.

I still need to do a bit more work to get anywhere I’m comfortable with it. I’m intending to get most of the following done before I consider it “more than a rough prototype”:

  • Enable toggle for manual vs automatic controls
  • Replace PID code with a better system that I think I understand better to tune it properly
  • Create menu to setup automatic profiles
  • Allow ability to convert a previous manual run to an automatic profile
  • Fix wiring on a few sensors that didn’t register properly
  • Create a second board to replace the current board that includes many of the sensors directly on board
  • Move the 7 volt to 5 volt power supply inside the case to run the fan and start powering other sensors
  • Update the button matrix and change the way I drive the LEDs on it to minimize pin use.

Ultimately, however, it worked well enough. Once I get it through these items and kick out a new case I’ll start trying to find ways to document more of how this went together to help others figure out how to come up with something similar. After that I’ll begin working more on the PIC32 side trying to convert from Arduino to PIC32 and get my 7 inch touch screen mounted to a front panel and add more functions.

Pretty on the outside and ugly on the inside prototype

So I’ve been busy doing a bunch of computer maintenance and looking into other things I’ve neglected while building the roaster so it’s been a bit slow.  I decided I wanted to start gluing corners together and drilling some holes to see how the case goes together so I can eventually get back to fixing the issues with the roast controller case.  Over the past several weeks I soldered together all of the boards, made wiring harnesses and figured out a bunch of “oops” moves I had made designing things when I got rushed for time.

Turns out I was not able to get stand offs locally in the sizes I had wanted so the heights are all screwed up where I placed holes on the outside surfaces.  I also forgot to specifically allocate power for the exhaust fan in the original design BUT I did have “Spare” pins allocated. The fan I ordered also was not the right size for the hole template I had used (Inside fan dimension vs outside screw / case dimension)… neither of them were actually labeled right the way every other fan I have is sized.

So with everything screwed or harnessed in place this is what I have for the Arduino…

The Arduino wired for Coffee Roaster control

It is a MEGA2560 mounted on a Crib for Arduino.  On top is an Ethernet Shield w/ microSD slot.  Then I used a variety of crimped headers to connect to some of the pins on the MEGA and on the ethernet shield.  I have twenty five lines in the bundle going to the Arduino.  I had some spare 10 strand cables from a project at Halloween and no 25 strand cables to use so I used one of those cable wraps to keep the all together after connecting DB25 to one end and header pins to the other.  Once the lid for the crib for Arduino is in place it then connects to the back of the enclosure.

Wiring Harness connecting to the back of the controller enclosure

As you may notice the sockets I was using for connecting the power out are the type that snap in.  The majority of these will not snap into most laser cut plastic sheets and instead are designed for aluminum cases.  The plug to the right on the other hand screws in.  These work great with a variety of thicker locations.  The fan was originally going to be on the inside with a wire cover on the outside but with the wrong size fan hole in use I had the wrong cover to fit the fans that I had that would fit the hole.

For the DB25 connectors it turned out good that I had decided to use a cut out pattern  that had the holes on the side for the anchoring hex nuts rather than just having them cut out so that I could mount them to the socket and anchor the connector.  Since the stand offs were too short they don’t allow me to anchor the PCBs to the bottom plate.  Instead I had to screw them to the back plate using normal screws and with the burnt circles on the laser cut work I had to use some washers too to keep it sturdy.  This is what the back plate looks like.

Rear Panel of controller

This panel includes – One non-filtered switched 15Amp Power Entry module, 2 snap in 15 amp convenience plugs, 1 5VDC fan, 2 DB-25.  The left one is the main guts for the LCD, TRIAC control, potentiometers, thermocouple, and a variety of other sensors.  The right includes all the non-essential stuff for backlighting all the buttons on the button pad and a few other things including spare wiring.  You cna see just a screw on the right since it was relatively intact and so it won’t block the DB25 plug being used.  The right DB25 has washers and screws in place.  These are primarily used to attached the PCB in place attached to the back side.

Next up is the inside view of the electronics area:

Rear View of the Back Panel

Rear view of the back panel.  I need to shrink up the crimp connectors around the wire  (they shrink like heat shrink tubing but is actually much firmer).  Also the connector on the right side (the switched power entry module) should have the screws more securely fastened with nuts and washers but this is mainly just a test to ensure it all fits together and then allow me to focus on some programming for a while to see if I can get more working and develop menus etc.  The clear acrylic bar is used to anchor the corners better.  I need to change the locations of the screws since I could not find screws the size I wanted without spending way too much for large quantities of them on the internet and having them shipped to me etc.  The thermocouple board on the right had the same issue with the stand offs so it is just floating loose in there right now.  I need to find somewhere to get the Omron thermocouple sockets where I dont need to order them by the 1000s since it looks like Ryan McLaughlin has stopped selling things on his site when they (used to) have problems getting the newer MAXIM thermocouple chip.  They’re all over the place now but he hasn’t restarted his store up so I don’t know the deal there.

Here is the view down into the enclosure from above:

Top view into enclosure

With the cover on:

Front panel installed on enclosure

Front panel running

Front Panel Running

When I send it back out again for a new case I hope to have a different board to install that will be switching the smaller breakout boards being designed onto the circuit board as well as add a power supply and possibly having an arduino board mated on top of the circuit board perhaps to bring more of the electronics inside.  I might want to try to get a Digilent board perhaps to try converting to it as a transition between Arduino and PIC32 before I completely switch to a dedicated PIC32.

I’ve also been looking at possibly creating a dedicated PC application to communicate with it directly via USB and over ethernet.  I am toying around with the “QT/QML” language but havent gotten too far with it.  I may just go back to Processing though.

RoastGeek Button Pad v 1.0

This weekend the final resistor I was waiting for arrived.  As a result I was able to solder the button pad board together and mount all the buttons.  I placed the board on my infrared preheater, applied some solder paste using the syringe dispenser on each of the pads, and then using a pair of Weitus tweezers started placing 0603 resistors from the piece cut from a reel.  I then turned the heater on and let it sit for a bit before turning it up a few more times until I got close to the temperatures I needed.

RoastGeek Button Pad v1.0 on Infrared Pre-Heater with SMD resistors placed.

Without a stencil it’s pretty hard not to goop too much solder paste onto the pads.  In most cases I had a suitable amount but a few it got a bit too much.  For most of the cases I had too much I removed some while it was still liquid-like from the preheater softening the paste.  I used the tweezers with a tiny bit of paper towel to wipe some away on the worst spots.  Solder paste is essentially  a mixture of a type of flux with a fine dust of the solder.  When the temperature gets high enough the flux material starts to liquify and the solder particles flow with the wet flux-like material towards the meeting point of the pads and the item being soldered.  As you apply a final amount of heat the solder particles melt and the flux-like material starts to evaporate/burn up.  To do this I used a hot air rework station to heat up the area near the resistors.  It has a pretty gentle flow that I can adjust with a knob so I didn’t have any issue of the resistors blowing away.  This tends to be a common problem using a hot air rework tool to solder SMD parts.  Once they were all in place I turned down and then a bit later fully off the heaters and allowed it too cool down.

0603 Surface Mount Resistor soldered to the board with an infrared preheater and a hot air rework tool.

Once the surface mount resistors were in place I tested each pad on each side of every resistor and confirmed that the correct resistance was measured.  This was to confirm that I didn’t have any “over gooping” resulting in the resistor being jumped by solder underneath of it.  Everything checked out ok so I continued on to mounting the buttons and header pin connections by hand with a standard iron.

RoastGeek Button Pad v1.0 with buttons, caps, and headers mounted

At this stage I tested the board with an Arduino sketch and was able to measure each button as expected.  This board has a much more accurate number compared to the last board.  Each button previously would measure a number that ranged 3-4 from the highest to lowest reading.  This one is dead on for almost every single button except for 2 of them that vary by 1.

I then mounted the board to the back side of the control panel.  I discovered that the standoffs I am using are about 1-1.5mm too tall so I will need to either grind them down or find a different set of stand offs.  I’m thinking of getting some Nylon or ABS ones that have a self-retaining clip for the circuit board side and a threaded end for accepting a screw from the front panel.  I also need to begin wiring up some wiring harnesses to go between the LEDs and potentiometer over to the new board.

I’ll add a picture of the mounted board  here once that takes place.

PIC32 w/ TechToys SSD1963 EVK R3B + 7 inch display and VirtualFab VGDD

First let me start off by saying…AAAAAIIIIGGGGGGHHHH!  Ok.  I never claimed to be an expert at what I was doing and I’ll have to say this one really made me fight for it.  I have been attempting to get my PIC32MX795F512L USB Starter Kit II attached to a IO Expansion board and then connect that to the TechToys SSD1963 EVK Rev3B board which then connects to the TY700TFT800480 7 inch touch screen.  Then to create my GUI I was using the VGDD software by

I’ve had almost a week now of evenings and several days where I was uninterrupted and able to work on it.  It took a couple of evenings to make sure all the wiring was correct and get all the various parts assembled together for an EEprom to store calibration data to work.  Turns out I needed a bypass capacitor AND NOT to have a pull up resistor on the chip select pin even though it seemed to be used in most examples I found the opposite way.  Once I got past that issue I worked on getting the demo to work which required some tweaking since I was running the demo on a custom configuration that wasn’t a TechToys multimedia board with everything on it.

After finally getting the basic demo working ok I began trying to figure out VGDD’s XML files to add extra Display and Graphics Cards to the software.  I added an entry for each device and then started to customize the individual XML for each part.  After exporting the project and trying to compile it there was of course a LOT of errors.  In a few cases some of the lines got duplicated and in other cases I had to add additional lines or modify the driver slightly to work cleanly in VGDD’s wizard.

I still need to work on a problem where the exported VGDD project has something incorrectly set with the EEprom where the SPI isnt writing so it only shows a single screen and can’t navigate until the touch is calibrated.  Additionally since the SSD1963 is not part of the original MAL (Microchip Application Library) then I likely need to find an alternate place to put some of the files and explicitly map it that way in the VGDD templates.

Due to some previous problems with VGDD (I started using it very close to the beginning of its existence and it has had dozens of releases over several years now) where it seems my files got “scrambled” here and there I would get all sorts of weird issues while trying to compile them.  As a result I’ve started the screens over from printouts and need to figure out how to adjust a few buttons and text as well as add a whole lot more items to many of the menus.

Here’s the awful camera phone photos in a dimly lit room.  Once I get it working better and update the screens more I’ll dig out the better camera. I’m just happy that things are working right now.

PIC32 and SSD1963 board driving a 7 inch touch screen as programmed by VGDD

Test VGDD screen hacked to work on a SSD1963 board with minimal changes.

I’m pretty close to getting the XML worked out so that I don’t need to modify the VGDD code that gets generated but I suspect I’ll need to work on it for a few more evenings before I get it right.

Update 7/24/12 Afternoon – I’ve managed to get the EEprom code to read/write the calibration properly now from the beginning.  I’m seeing an off effect where the OutTextXY functions are not working while all of the static text displays fine and the functions that make it switch screens do not appear to function.  I have one section that defines the touch screen X/Y ADC pins that appears to be a duplicate with something in another section of code that I have to comment out and I have to force it to display a screen since it doesnt seem to happen automatically (may be part of the switching screen problem though).  I’m going to switch to a regular SSD1926 screen and generate code and start comparing because I must have disabled something making the screen objects invalid.  Outside of adding the display a screen command, and commenting out the other code section it does export without a bunch of errors so I am getting further along now.

Update 7/24/12 Evening- I’ve now managed to get straight through compiles to work without having to modify anything.  I had found an issue with the order of the screens where it tried to put one of the “master screens” as the first screen it loads.  For whatever reason this causes it to black out the screen and not show anything.  After switching it to a more appropriate screen it comes up ok.  It also now transitions from one screen to another when I press the buttons as well.  The only issue I’m having is when there is around 30 buttons on the screen it freaks out and stops displaying them.  I’ve been unable to find a notice about there being a 30 button limit but so far I’ve not found a way around it.  The code is all there for all of the buttons but they don’t show up.

PIC32MX795 on a IO Expansion Board connected to a SSD1963 EVK R3B and TY700TFT800480 7 inch touch screen from Tech Toys with GUI created by VGDD.

Preliminary PIC32 roaster GUI created in VGDD on a 7 inch touch screen using a SSD1963 controller.

First order of circuit boards from

If you were following comments in one of the previous blog posts I just received my first order of circuit boards from This order included version 1 of my button board and a preliminary interface board to connect a variety of sensors and some of my other boards to an Arduino Mega 2560.

I got to experience the “joy” of being one of the initial test subjects for the brand spanking new site. It actually worked pretty well and was rather impressive in terms of the graphical response you got from it. It would evaluate the files you uploaded and convert them into a graphical rendering of the finished product. When I ran my boards through the system I did notice that the silkscreen appeared to be NOT the rear/bottom view as the site described but instead it was the “Superman X Ray Vision” view. If you’ve used Eagle and a few other competing PCB CAD programs this is what you normally see when working on your board. Your test will be “reversed” or “mirrored” and the holes will be in the positions they would be in from above. It is thus like you are looking through the layers from above. I mentioned this oddity in my comments on the job but don’t know if they’ve resolved it yet by changing the code or changing the description.

The timeline for my order is as follows:

  • May 21st – Placed Order (T=0)
  • May 25th – Tweet @laen replied by @OSHPark reported that the system is not sending notices yet. Indicates board have been reviewed and panelized. (T+4)
  • May 29th – Received official email that said boards on panel for May 31st.  Notice website reports May 30th as panel date. (T+8)
  • June 7th – Received notice saying boards sent to the fabricator. Probably just an update to the software of the site and the boards were sent prior to this point. (T+17)
  • June 8th – Received notice saying boards received from the fabricator awaiting de-panelization. (T+18)
  • June 15th – Boards apparently processed for postage based on postmark. (T+25)
  • June 18th – Received boards. (T+28)

As mentioned I expect most of the dates to be unreliable other than the fact that it took 28 days start to finish.  The site still has not changed from a status saying my boards are waiting to be de-panelized and nothing about being shipped.  Obviously it is a work in progress.

Here is the collection of boards received

First order from My Button Pad board and the preliminary interface board to connect a variety of sensors to the external Arduino mega.

The spacing seems to be exactly what the CAD said it would be and the holes drilled seem to be very accurate and centered like they should be including some of the very small vias.  I will need to crack off and dremel/sand off the rough spots from the edges where the boards were connected together.

More pics:

Interface board

Button Pad 1.0 with several buttons placed

Button Pad v1.0

Button Pad 1.0 Top

Button Pad 1.0 Rear

At this time I am waiting for 330 ohm 0603 resistors to arrive.  They were on back order and should arrive in a few more weeks.  Once they arrive I need to use my infrared preheater to heat up the boards and then do a quick solder on each of the resistors before connecting all the various through hole parts.  Once that happens I’ll update with a new photo showing the finished boards.

Now the waiting begins… laser cutting a case – Part 3 of 3

As mentioned previously my Ponoko order arrived.

So people tend not to show off their screw ups.  The purpose of my building this site was to share with friends, family, and the internet at large what exactly it takes to create a coffee roaster controller.  The money, the heartaches, and well…. the good… the bad… and the ugly.

Unfortunately, today I give you… the ugly.

The Ugly

You don’t usually get to see what goes wrong with laser cutting jobs but considering how many times the curves overlapped each other I’m surprised it isn’t worse.

Surprised it isn't worse!

Most of what’s wrong with the job is obviously what happened on the bottom where the acrylic came in contact with whatever Ponoko cuts on top of.  It seems that some sections obviously burned and melted/cratered portions of the acrylic.

Some areas are brittle.

In a few places the plastic is brittle but only from the bottom side but that last one looked ok on top but there wasn’t enough to count on it not breaking later.  In some areas pieces burned back into one another!

Some areas burned back into one another

Many of the bad spots would not be an issue for a small one off project that gets covered with some sort of screw or bolt.  Others that appear on the surface would be a huge deal.  A few places I apparently removed too much line near a curve and didn’t fill in the straight line so I need to dremel off some stray plastic.

Oops! Apparently I deleted too many straight lines!

Outside of the too many circles and that stray plastic I did not make the spacing correct on the hole that keeps the fan and heat potentiometers from spinning even though I measured it with a micrometer.  It was VERY close but still off by a small bit.

Close... no cigar

I could totally fix it with the dremel for now but will fix it properly for the next run.  Also it appears that I calculated a reduction in the length of the inner bottom plate wrong.

Sometimes you forget you already subtracted the length off the total.

I had taken the outside measurements and subtracted the thickness of the acrylic twice when I had subtracted the rear once already and then subtracted the front and rear later.  Finally I calculated it into a measurement adding it back twice instead of the one extra time.  As a result it is too short front to back.

For these parts I will be testing the process of infilling the engravings for the test to see how they come out for very narrow and wider text.  I will also (when the tools arrive) test the drilling and countersinking with a few various plastic bits before trying them out on the final plastic pieces.

Every coffee roaster needs ethernet…

Ok… not really but today I decided to see if I could get the Ethernet card talking to the internet.  After experimenting with the NTP demo code as well as some web servers and clients I tried implementing a NTP query while it was booting.  During this process I noticed it needs to have some sort of loop going to check for the UDP data to be made available.  I’m pretty sure it was working getting the Ethernet initialized but it just never gets an NTP response during the first initialization and send.  I think the demo code only works due to the repeated loops over and over and randomly misses 1 response here and there.

I need to work on implementing a time zone calculation, the loop to check for NTP until it either gets one or fails a specific number of times, and then the code to translate the NTP packet buffer contents into a valid time/date setting to go into the RTC.  I also downloaded the libraries to install into Processing to make the graphs work over ethernet. It will take some time creating the buffers that it’ll read but it should work pretty well.  I’m hoping to also get it to list out the SD memory and allow me to download the individual files to the laptop through that connection.

Yesterday I purchased the last of the resistors I needed and managed to get the schematic worked out for the button pad with a decent enough layout on the PCB.  I need to solder them together but haven’t gotten to it yet.  I will have that portion built sometime this week and need to determine how often I need to sample the button presses to detect a forced cool setting at the least before I start building a menu system to set up roasts and start them.

More fun today was that I learned the system won’t compile under Arduino IDE 1.0.  I fixed a series of changes due to BYTE no longer being supported in the Serial.print commands (use Serial.write and then number you are sending).  They changed the name of one of the header files that gets used in almost every add on library out there.   Next I discovered that I2C has a bug in the Wire library that didnt make it into 1.0 that it won’t send a 0 to the I2C bus without a typecast being applied or patching other sections of the code.  Finally I’m getting some sort of illegal conversion from an int to a char or something like that on several lines.  I hope to have the system converted over the Arduino IDE 1.0 before the end of the month but I’m not going to put a lot of effort into it unless I run into a library I need to use that needs 1.0.  I’m not really anticipating that happening but I’ll work on it anyway.

What the? What happened to the website?

So if you’re around when I wrote this you’ll probably see that the theme/layout for the blog has changed.  For whatever reason now I’ve discovered that several of the themes out there in the past week or so eat the direct post links.  If you were linked to a specific post from outside it would pretty much show you a smiley face… and a title.  No more… no less.  I replaced the theme with an original file and it plain did the same thing and didn’t work so at least I ruled out the theme file being tampered with.

As a result I’ve had to switch the theme to what it is now just to be sure people could read it.  I just don’t have time to fix it right now and I’ll have to get back to it.  This will just have to do for now.

I’ve done some more testing with the Arduino based roast computer.  Tonight I actually roasted some coffee with it that I’ll try drinking in the next few days.  The PID for sure needs adjustments.  I’ve got to add some more to the power limits as well.  I modified the layout of the board creating a new space for the larger heat sink.  If I had a fan drawing air across this heat sink it would be significantly cooler.  I swapped out the TRIAC with a model designed for more electric running through it so it should theoretically get less hot.  It seems to be working pretty well right now.

I snapped a photo of the new board as well as grabbed a screen shot of the real time processing graph but I’ll have to upload those later.

That heater (triac) is HOT…

So today at lunch I threw some beans into the roasting chamber and then ran the roast controller to see what it would do. The wild swings were much flatter today and appeared to get “tighter” on the swings as it went but then a short while later ran out of power again due to my self-imposed limit. I’ve got a joint issue on the potentiometer for one of the soldered on wires possibly losing contact causing the fan to jump around. Finally… the heater TRIAC is pretty hot. It’s not enough to burn you but it’s way hotter than it should be right now.

I’ve got a box with some heat sinks in it that I need to dig out. I picked up a lot of odds and ends the last time I was in Sonoma County, California. There’s a surplus parts company down there that I bought lots of wire, connectors, various sockets, heat shrink etc. One of the items I purchased was a small selection of heat sinks in various sizes and shapes that were compatible with the package of the TRIAC I use to run the heater. The heat sink I have installed now is not meant to be used for anything very hot. It’s great for the fan transformer but for 1000+ watts of heater…. no. I’m not certain I can get it to line up very well without possibly needing to remount the other heat sink and then bend it slightly before installing the larger one. I may need to rebuild the power control board or instead focus on building my custom PCB more quickly.

Update: I’ve procured an IR spot thermometer. It appears that the Triac package is hovering around the upper range of the package. It seems to be JUST enough to keep it from overheating by about 10 degrees after I allowed more power in the software right now. I am about 1/4 inch too tight to make the bigger heat sink fit so I will rebuild the board today to see if I can make it work. The PID is actually showing a faster response to flattening the swing and staying flat faster and longer with the extra power but I still need a small amount more power to be ideal and run a full roast. /Update

In other news I couldn’t stand it any more and ended up pre-ordering the Nocturn Espresso machine. Over the next couple hours they have it at a $300 price instead of a $350 price it will be later tonight. Eventually it will go up again to the $400 price it will remain at when they start producing them. I’m such a geek that I HAVE TO have an espresso machine that I can reprogram. I’ve done so much with the Arduino on this coffee roaster I just CAN’T not get one now… especially with a discount!

Guaranteed I WILL be hacking this thing once I get it. They’re doing a great thing the way they’re building it but it’s lacking in a few areas that appeal to the REAL geek that wants to hack it. I already know where I’m going to start… muahahahahahahaaaaaa