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

So last night I received an email from a Ponoko staff member mentioning that I should be prepared that my laser cutting job is not going to be pretty.  After looking at the objects he mentioned being messed up I’m realizing it’s going to be pretty ugly all over.

Almost every place that there happens to be a circle there are between 10 and 20 duplicates.  The staff guessed that the layout had been imported from another program before getting finished in the layout software I used.  Their guess is that conversion added all the extra elements.

The good news is that I can systematically go through and delete elements until there are none left and then undo the deletion on time to get a single object back.  Due to being in a rush to meet the deadline for the voucher giveaway I didn’t test for dupes / double lines as well as I should have and missed all the circles and a couple spots on some of the vector text because I was more focused on all the connections of the various pieces touching each other.

The good news is the making cost is going to be 1/10th to 1/20th the original cost at this rate!  The bad news is I’m going to have to wait another two weeks probably….

So why did this happen?  Originally this was designed for a CNC process against a piece of metal.  When I converted to trying to make this using Ponoko’s laser cutting service it needed adjustments when I imported the data file.  My assumption is fr a CNC machine this would start in one location, mill around the edge of the circle and then drop .1 mm I guess.  It would then mill around the edge again and drop again and again and again until it made it all the way through the material.  The software used that process and generated a dxf file with those paths in it.  When it came into the software I had to use to finalize it for use @ Ponoko many of the shapes I replaced.  I didn’t replace the circles and one area of vector text.

At this rate it might be worth upgrading to the Prime account this month to submit the replacement file to get fast turn around and lower per minute costs on the laser for the prototype.  Then when I get it back and review the results I can make some adjustments and remake or finish the remaining parts and another project quickly and get it all done in the same month cheaper.

After several hours of deleting duplicate circles I’ve chopped 1/2 of the making cost off.  I’ve still got a bunch more work ahead of me but it’s getting to a point where I will likely want to go through the full “pre-flight” check in illustrator trying to delete pieces one at a time and then search for random anchors and duplicate curves.  From everything I’ve seen all of the dupes are curves while the straight lines are fine.

 

Ordered some circuit boards today.

So I’ve been looking at making a circuit board for some of the roaster project for quite some time.  As the shape/size of the enclosure has started to become real I started trying to figure out what exactly would fit inside the case options.  Some of the items I figured I could prototype/etch myself and others I’d need to send out to get made.

The first board that seemed likely to be something I could make on my own was what I call the “button board”.  It turned out that I decided to send this one off rather than try it myself because I had already made one using Radio Shack parts for an early microswitch version.  The circuit worked great and I happened to be finishing the Laser Cut Roaster Controller case.  The spacing is kind of tight for what I want and rather than trying to drill it manually and the fact that it will ultimately be a pretty permanent part of the project until I switch to version 2 that won’t only use a single analog pin and instead goes entirely digital with a group of pins or I do away with the button pad entirely… so I decided to have it made too.

I wanted it to use 2×5 shrouded pin sockets and some single row pin headers in addition to the MultiMec 3F switches, 1V “Arrow” key caps, some round ones, and some square ones.  I started where I laid out all the buttons and then had some left over pins after allowing for all of the bi color internal lighting LEDs.  I then added some connections for the Fan and the Heat potentiometers that were to the left and right as well as the LEDs on each side.  The wiring harness for each side will had the GND/Voltage and Potentiometer  wires in one bundle and the LED Cathode/Anode wires in the other all connected to a 5 pin connector on their respective sides.

Once I had the design figured out and checked all the spacing and sliced out a paper template with an knife and slid the cover over the buttons and the holes lined up etc I started looking at how much it would cost to get a board made.

One of the first places I looked was BatchPCB.  Once it figured out the whole CAM/Gerber/whatever process and zipped up my files I uploaded the board to the site and a few minutes later it reported it was ready to add to my cart and would cost me $18.83.  I figured I needed at least 2 because I was going to make a second controller at the same time I was making the first one so I always had a “test” one and a “now that I made the first one funky I’m “in the zone” now and can make the second one prettier/better.

So I started thinking I need to double that and maybe a third one wouldn’t be bad since I might use the button pad pattern on this other project I was thinking about.  So two of them is $37.66.  Wow… that’s starting to get kinda spendy for a button pad I’ll probably stop using eventually and need to redo.  PLUS the buttons are horribly expensive too!

I started looking for cheaper options and came across iTeadStudio, SeeedStudio, and DorkbotPDX as some of the more recommended ones.  All would give me 3+ boards and iTeadStudio and SeeedStudio would do around 5 to 10 boards depending on some of the options selected.  A few people reported damaged boards coming back on one of them but usually had replacements to “cover” it but the occasional issues and the frequency of damaged boards showing up seemed a little too weird for me.  Further one of my board has really wide dimensions compared to the height.  This immediately bumped me into a cost structure that made a stack of boards run $70-80+ instead of the 30s.  Additionally since I’m making a prototype that had limited utility and I intend to use hard for a while I figured I’d stick with either BatchPCB or the Dorkbot option since the boards seemed nicer.  For projects that are a little more generic that I could make a lot of a really small boards for mounting certain chips or other devices I’d come back to Seeed or iTead someday.

As mentioned since two boards from BatchPCB cost so much I looked over at Dorkbot PCB Order and realized Laen had launched a new website – OSHPark.com to act as the front end for the PCB ordering.  It automatically reviews the files, renders a bunch of images and then calculates the dimensions and gives you a price and collects money via PayPal or Google Checkout!  One of the big problems with the sites other than BatchPCB was that they all made you email your files to someone who looked them over and then emailed you a price later.  I’m soooo instant gratification when it comes to buying stuff and needing to know the price.  I was VERY tempted to go BatchPCB just to get it in the queue and have a price even if it was high until I saw OSHPark.

When I saw it actually render the images out in such a decent quality and large size it totally stomped BatchPCB.  BatchPCB has HORRIBLE renderings and the price per single board is really pretty awful compared to OSHPark/Laen/Dorkbot.  BatchPCB wants $37.66 for two button boards plus the $10 handling fee per order.  Three of them from OSHPark is $37.70.  So this afternoon at lunch I uploaded my button board AND my interface board.  More on that at the bottom.

Button Board v1.0

RoastGeek Button Pad v1.0 Top

RoastGeek Button Pad v1.0 Bottom

Interface Board v1.0

RoastGeek Interface Board v1.0 Top

RoastGeek Interface Board v1.0 Bottom

As you can see there are numerous connectors on this board.  There are a few resistors and two DB25 connectors.  I’m using the DB25 to connect from the Arduino over to the other boards that will be mounted inside the Roaster Controller Case.  Each one will be attached using a short header pin extension or plugged in directly.  Most of the boards are SparkFun breakouts with a few odd balls.  The connectors marked F_PAD and H_PAD are the ones that go up to the Button Pad V1.0 board and are serviced by that left side DB25.  Most of the other headers and connections go to the other DB25.

The interface board is insanely tight for the routing.  It absolutely will test the software and manufacturing of the manufacturer and will test my selection of screws and stand offs when I try to connect it.  I believe I may have to dig out the plastic stand offs that have “spring clips” instead of screws that I had laying around in storage if it turns out to be too bad.

Like the Laser Cut Case I need to “hurry up and wait” for this one too.  I will be adding comments as I have communication about status and receive the items etc.  I’ve got a LARGE amount of 0603 resistors loaded into a shopping cart at Mouser and DigiKey right now and am trying to figure out the various parts that I need and the back order state/cost/estimated time to ship/etc to decide what I’m going to do.  The biggest problem is finding 330 ohm 0603 resistors.  Apparently nobody sells the damn things in stock.  I have to back order them even though they’ll sell for the same price as the in stock ones in any quantity… they’re just not stocked right now.  I also need to order 2 short 3 foot or so DB 25 cables.

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

So I’ll be the first to admit I have no idea what I’m doing.  Assuming I benefit from a miracle I will eventually be in possession of a laser cut case and it will actually look acceptable.

Ponoko had a spend at least $50 and get a $50 voucher promotion.  I’ve spent days moving lines around and changing colors and thickness and deleting stray bits out of it until I couldnt see straight.  Tonight I finished a 31 x 15 sized panel.  For giggles I put two cases on one panel since it seemed to be the most efficient way of dealing with this.  On one panel I used vector engraving for the labels.  On the other I used vector engraving with a raster fill for fancier looking fonts.  I’m curious how both look and intend to try to fill them with paint to see if they look ok with the various sizes represented.

I’ve thrown together paper models trying to confirm spacing and suitable sizes/dimension and had wanted to try to create a model using some paper coated foam board but I ran out of time.  The promotion ended tonight and I was running out of hours and decided to just give up and hope all my calculations and re-calculations and CAD drawings and everything else I’ve tried were correct.  The order only covers part of the case and I still need to generate a left side panel in addition to the right side one.  The front, bottom, top, and rear are all covered already.  I have a second project I was going to include in the excess space but I figure I should wait for the first order to come in and see how it turned out.  If anything is horribly wrong I’ll try to get it made again using the voucher but otherwise I’ll just continue on if it came out ok.

First laser cut job sent to Ponoko

The top left is the raster filled engraved layout.  The next one to the right is the non filled one.  Next, the bottom piece.  The two items on the bottom right are “inserts” for the LCD area.  I sized them out for the 7 inch touch screen with the two panels able to be “popped in” to the opening to hold a 4×20 New Haven Display mounted into the piece.

Supposedly if you make a rectangle at say 50mm and then make a second rectangle somewhere else at 50.2mm this .2mm is referred to as “kerf” or something.  This sizing allows you to friction hold a plastic piece in an opening….  I figured I’d try it out to see how well that works/doesnt.

Continuing to the left on the bottom there is a cut rear piece on the bottom with a slotted front plate above it to allow air to be pulled through to the fan opening cut into the rear.  Next are two right side pieces.  One has a position cut out for a termocouple connection and then the other does not have one.  Finally on the far left bottom is a second rear with no cut outs and a front panel with the slots cut into it.

Once I decide if I totally botched this I will either redo the job or continue with the right side plate and any adjustments for other sides that I think I need.  Then I will find some acrylic square “rod” to glue into the corners.  Some of the positions will be drilled for mounting the top/bottom/rear and the others will just be glued.  I intend to be able to unscrew the bottom, rear, and/or top while the other edges will be glued in place.  I just went this route since I wasn’t sure on the screws I’d end up using and wanted to see how well things turned out before I would go back and laser cut any of the pieces with more holes in them or whatever else I want to do to it.

 

Adventures in Custom Cases

The more I look at my project and the fact that it TECHNICALLY does in fact roast coffee now… and the more I think about it the more I feel I need to work on a better project enclosure for my project.  While the Radio Shack case is fine I have concerns with the layout I had to use for the in-progress prototype plain taking up too much space.  I feel like I need to move on to building something that is (at least on the outside) more permanent.

When I look at the schematics and all the wiring involved I keep seeing situations where I need to shrink it all down onto a custom made board.  The more I think about a board (as rendered a few weeks ago in a previous post) I realize I need a box that it will go in figured out.  Once I know the box shape the better I can layout a board since I will finally have “internal dimensions” to try to squeeze it all into.  How to build a case, however, is not entirely easy.

Sure there are blogs all over about people building cases for their projects but most of them assume a standard rectangular box.  The sides all interlock together and you anchor it with some slots cut into the box and a set of bolts/nuts for each corner/side/whatever.  Outside of those sort of cases there are very few options as a DIY case unless you have welding capabilities or other more advanced tools at home like a mini-CNC or something like that.

There are plenty of sites that offer to fabricate stuff for you.  Ponoko tends to one of the more popular ones.  There are also other more “professional” ones that allow much more advanced cases to be built.  These sites include those such as Protocase and Front Panel Express.  Both of those offer free software that you can use to design a case.  Protocase offered a pretty interesting tool that actually creates a 3D case made from various metals and are quite impressive.  The issue is they are also VERY impressively expensive.  The deal is, however, that they do offer “console” type cases that are customizable quite a bit and will allow you to see a complete all around view of the case.  The problem is that you cannot do anything with the file they give you other than to send it in and buy it from them.

Front Panel Express offered a much more open proprietary tool.  This tool you can export the completed panel to a DXF file which can be imported into many other software packages, including those used on the suggested list for Ponoko.  While they don’t really want you to use their software to build a panel at another vendor, of course, it DOES actually work out.

Another issue with the Front Panel Express is that it only allow you to design one panel at a time.  Each side Left/Right/Rear, Front, and Back in addition to your Top control area needs to be built separately.  They make a lot of their panels out of aluminum or steel and have quite a lot of capability to build most anything you want.

The issue?  The following:

At the cheapest this seems to run around $65 for only this panel.  You can save a bunch of money by drilling your own holes for the countersunk screws and the round holes and instead just having them marked using an engraving to help center your drill bit.  I’m not against paying $65 for it BUT I feel that I need something cheap so I can confirm the layout REALLY is good even if I’ve rendered it in 3D.  I need to mount everything in the holes and confirm that yes it DOES fit properly and there are no heat issues or anything else to make me need to move anything.

Enter Ponoko.  When I import the DXF into Google Sketchup it does all sorts of weird things with the text and a few other things depending on the design.  When I try to raise/lower the material it does some odd things as well because of some of the lines etc.  What works better?  I dug out CorelDraw and found I could tweak the Front Panel Express file in there quite well, export it, and load it into Ponoko’s system.  It appears to look ok in there and allows you to use wood, cardboard, plastic, and a variety of other items.

I took the outside dimensions of the FPE designed panel as well as the other measurements from some of the cut outs and dropped them into a few shapes in Google Sketchup.  I then rotated the “rough” panel up 30 degrees since that seemed like a good amount and then attempted to measure the size of the effective foot print.  I then threw together a small 1 inch base and then raised the top edge up the two sides up 30 degrees as well.  I then slid them together and came up with this rough case package.

Using the exported DXF for Ponoko in Acrylic after modifying a few items to make it compatible to Ponoko the front panel ended up around $15.  At this time I haven’t purchased it since I need to make sure all the measurements are correct.  Additionally I need to add the sides now that I’ve gotten measurements confirmed in Sketchup to a layout.  I’m expecting the entire thing to run around $45 at Ponoko for the initial testing versions.

The version in the rendering of course isnt entirely right.  The LCD is actually slid up a little bit and the buttons go up as well.  Each button ACTUALLY is supposed to be rounded on one of the sides and the two round holes on the left and right are for the potentiometers that should have an LED above them.  The top needs an LED and there needs to be screw holes in a variety of places as well as some engraving to label things.

At this time I intend to figure out the distances to the LCD edges and adjust the base width as needed when I find the ACTUAL dimensions of the LCD panel that will be used with a mount designed to secure it.  I will then come up with a back panel and then start having this made.  I will have plastic panels made by Ponoko and when I’m certain that I am pleased with the dimensions/shape and fit I will have FPE build an anodized aluminum case for whatever it costs.

Due to the 30 degree angle and the fact I did not want to use tabs to lock it together I wanted to be sure of my decades old “trig” knowledge when calculating triangles.  The Sketchup Layout works well to see if the dimensions look good.  As long as it all fits together a Ponoko build will let me see a physical model for final confirmation and showing it off before I get a permanent case made.

Anyway I’m thinking for the buttons I’m going to use some MultiMec 1V16 white buttons for the directions, The middle button is currently planned as the 1T type buttons for an “OK/Select”.  I’m don’t think I can get them pre-labeled though so I might have to switch to a different button or do without labeling.  Then the two at the top that are round would be for some sort of Escape/Cancel and perhaps a dedicated stop/end/cool/whatever.  I need to confirm out which buttons to use so I can get whatever I need labeled well enough.

In the position of the potentiometers I might switch them out for rotary encoders to help setup things a different way.  Where the LCD is I will start with a panel that will fit in place of the full sized LCD using a smaller 4 line LCD until I start building the PIC32 system into it.  Once I get to that stage I need to mount the LCD panel onto a backer that screws in place.

If I could scrape together enough cash I’d get some sort of mini CNC machine and perhaps etch some buttons with ESC / OK / COOL or something like that as well as arrows and then infill them with some black.  Totally way involved for a few buttons but would probably look pretty impressive.  If I could make my own panels that would certainly negate the need for another vendor making the final panels.  Too bad those machines are so spendy.

I had ordered some motor controllers from a company in China back at the very beginning of the month.  They shipped from the seller after some Chinese holiday or something.  Apparently they went to some company that handles shipping things to the US or something before it went to their post office.  It left China about a week ago and arrived in the international mail portion of some facility in Los Angeles a few days ago.  It appears today it made it to the REGULAR Los Angeles post office sort facility.  It should probably arrive in one of the Northern California sort facilities tomorrow and MAY make it my local post office.  As I’ve come to expect anything coming from China seems to require a signature 9 times out of 10 so I will probably need to go to the post office on Monday to sign for it.  So we’re around 20 days from when it was ordered.  I’m trying to see if I can control the fan motors differently in some way that would make it more stable and give me a few options for actually building my own roaster later on using much larger blower fans and some other motors for opening/closing vents.

Ordered more stuff – headaches and new replacement stuff

I had a “Chromalyte” LCD screen that came from EIO.  I needed some sort of cable for another thing going on at home and EIO came up having it in some google search.  It was cheap and the price for a similar cable from darn near anywhere else on the planet was about 5 times higher plus obscene shipping on top of that for something that ultimately ends up in a padded envelope and has $2 of postage on it.  Anyway this LCD was supposed to do 20 characters by 4 lines.  Currently I’ve been using a 20 by 2 lines LCD by Newhaven.  The Newhaven works great.  The Chromalyte?  Not so much.

I googled Chromalyte looking for a data sheet and figuring there may be some info somewhere on the internet about it and maybe using it on an Arduino project or something like that.  I noticed I kept finding pages for EIO.  I looked the product over and kept trying to find some sort of marking on it.  I looked at the data sheet found on EIO and it was pretty basic.

It mentioned using some sort of software available for download from Chromalyte’s website to test it from your Windows PC.  I figured maybe I could try that and tried harder looking for some sort of Chromalyte website.  I threw Incorporated into the search and still kept coming up with EIO.  I really started to wonder at this point and went to Archive.org looking for historical websites that were named Chromalyte.  What I discovered?  EVEN YEARS AGO Chromalyte dot com pointed to EIO’s sales pages.  Today?  It’s current contents?  It’s a GoDaddy “is this your website” listing.  But with the history seeming to always be EIO they don’t even seem to be a real company and are instead just a propped up brand name for EIO.

What made me look into Chromalyte so much that I was having problems with?  Newhaven LCD I can serial.print and serial.write decimal or hex codes to it all day long…. move the cursor around on the screen, clear the screen, put text anywhere etc.  Chromalyte? I print serial to it and nothing happens.  I throw in slash n and r to see if that helps and it doesn’t.  I try sending hex codes for all sorts of thing and nothing.  If I serial.write a clear screen it wipes the screen.  If I serial write movement commands and turn on the cursor I can watch the cursor dance around all over the screen.  I print more serial to it and nothing happens.  I serial.println to it? I get a white box IN FRONT OF the text and the line that I want anywhere I tell it to move the cursor to.

Is there anything about this in the data sheet?  Nope.  Anyone used one on an Arduino?  Not that I can find…. Heck if it wasn’t for EIO listings all over the place I don’t think anything comes back about Chromalyte at all.  I’d have to format some search keywords to force it to drop out EIO responses just to see if I could find anything else because when I searched for that name every entry for pages and pages came back as EIO.

The codes it uses are really bizarre compared to most other LCD brands available.  I think I found someone’s code ONCE that actually used a similar command structure for clearing the screen and moving the cursor but all of the other codes were different.  I’m not a stranger to writing to serial driven LCD as well as using parallel, SPI, and I2C to write to text and graphic LCDs.  This thing is just plain weird.

Sure I could probably email EIO and bitch about it but if this thing is this weird it’s just not worth it to me.  It was cheap enough compared to the hundreds and hundreds of dollars I’ve spent on all the other hardware to build a coffee roaster that it’s but a blip.  I just don’t see myself buying another one, ever.

If anyone out there can send me an Arduino program that DOES indeed work on a Chromalyte labeled as a c420a that simply clears the screen, writes Line 1 to line 1, Line 2 to line 2 and so on I’ll be amazed.  If such a thing does occur I’ll permanently install the screen in a project I’ll be doing later to read a flow meter and open/close a water valve on my reverse osmosis water system so that I can punch up a 1/2/5 gallon fill without needing to watch it.  I’m hoping to have it monitor my total water into the system and the output into a bottle and then monitor TDS sensors to gauge water purity.  Then have it alert me to change the filters and keep track of water input purity throughout the year.

To my girlfriend:  Yes I am too lazy to set a timer to track how long I’ve been adding water to a water bottle.  Instead I will design a circuit, solder up a board, write software for a microcontroller, and then mount the thing in a case so that I don’t have to set a timer so I don’t overflow the water bottle.  I know my limitations.  Building a system to turn the water off by itself is FAR easier for me to do.

So anyway today arrived a Newhaven NHD-0420D3Z-NSW-BBW as well as a pair of PCB solderable DB25 connectors, a bag of 100 B3F-1000 type Omron buttons and a few Maxim MAX31855 thermocouple ADC chips.  I figure I’ll make a board up that does 4 inputs at some point so I got enough to do that plus a couple spares.  I still need the sockets though.  Nobody seems to sell those except for Ryan McLaughlin.  After the MAX31855 that he switched to from the MAX6675 became scarce he shut down his store.  Hopefully he will pop back up sometime soon since his boards were really well made and I think he’d be a great resource for DIY’ers building smoker controllers and coffee roasters and other such things.

Anyway this weekend I will be doing my taxes and then spending the rest of time soldering pins to the Newhaven display and connecting it to the roaster controller.  This past two weeks I converted the entire roaster program over to Arduino 1.0 and updated all of the Libraries that I was using to the latest versions.  I few I had to modify slightly due to them not being 1.0 updated but the majority of them were available on the internet updated already.

The conversion to 1.0 made me make a note of all of the libraries I had used and begin to create a list.  If you look at the menu bar you will see “Resources” up top.  This allows you to pick an Arduino link and then get links that go to sites to download the current libraries if you are looking to build your own project.  I’ll be adding a few more projects and libraries that seem useful to DIY Coffee Roasters (and controllers) over the coming weeks too.

Hey you…Yes you…This is what I’m building…

I’m focused on building a Roast Controller GUI to automate and track my coffee roaster.  I wanted to document my progress and share as much as possible.  For several months I seemed to spend a LOT of time trying to deal with blog spammers instead.  It’s sort of weird having all these bells and whistles for the blog software.  I’ve got all sorts of filtering tools installed to stop the blog spammers from even SEEING the blog.  Then for the ones that don’t get stopped looking at the blog there’s yet another array of tools to stop known spammers from registering accounts and commenting.  Pretty much on a DAILY BASIS the system automatically kills upwards of over 150 unique IPs trying to spam this thing.  This leaves the rest of you that stop by here and look things over.  I like you guys.  Every so often I get a comment or an email from one or two of you so I at least know some of you come back regularly and a few have even started following on Twitter.  I know some of you are curious what exactly I’m trying to do as my “target” roaster.

If you’ve been around enough to read the older blogs and/or looked in the forum you might have seen some of the parts lists that I’ve purchased on my path to automation.  I’ve mentioned a few tools I’ve used to develop various pieces and I figured I’d show you some of what I’ve been up to… First of all I need to build a “development board” for coffee roasting automation that will be migrated from Arduino to PIC32 eventually.  I’ve had some renderings made of portions of my current “board layout” I’ve been slowly cobbling together.

View showing dual TRIACs and Heat Sink w/ High Voltage Terminal connections.

Low Voltage pins, position for DB-25 interface to a micro controller wire harness and the control panel socket.

Finally is my favorite piece that I’m eager to get to.  When I can finally get my PIC32 project back up and running I have a GUI mostly built that I need to replace the smaller one with.  I used a tool called VGDD by a guy named Fabio.  His website was found here: http://virtualfab.it/mediawiki/index.php/VGDD:Visual_Graphics_Display_Designer

This product is used to design GUIs for Microchip brand processors.  These include (mostly) the PIC18, PIC24, and PIC32 that can use the Graphics Object Library (GOL).  The Microchip provided tool is pretty much a very crude tool that yields complicated junk that needs a LOT of effort to integrate.  Fabio’s product instead turns the entire process into something pretty simple, allows you to actually write code quicker to control the screen transitions by pressing the buttons and then simulate it (AND send it to other people to review) without ever having to compile it.  It makes the Microchip system quite attractive to create a GUI on.

The great part is with the new GOL 3.0 and some new graphics chips you can create higher resolution GUIs and this development tool doesn’t seem to mind one bit.  One of the screens I built for watching the roast will look like this on the 7″ touch screen.  I cropped a roast curve from one of the logged roasts I made a few weeks ago into the blank space for the graph.  At this time VGDD does not appear to have the chart/graph function included into it.  I’m thinking there’s a way to allocate the space for it in the system but I haven’t really concentrated on it.

Simulated Auto Roasting screen prototype from VGDD.

I figured I needed to clue more of you in as to what was going on and hopefully this helps explain it!

Some of the buttons/controls will change slightly as time goes on but I figured I needed to start allocating space for things as I came up with the ideas and see if it made sense.  As you can see from the date on the GUI mockup there’s been a long time since I started working on that screen.  With the recent Arduino progress I’m feeling like I’ll be getting back to the fancier GUI that will sit on top of the Arduino back end in the coming months.  Eventually I’ll convert some more functions BACK to the PIC32 system since it seems to run faster and can do more of the math faster.  Then I can free the Arduino up to just responding to commands.

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.

Roast controller now at full power.

So I’ve played around with the PID settings.  I haven’t officially sat down and tried to do a “real” tuning since the processing app I’m using right now lets you play with different numbers and feed it back to the Arduino to tweak it.  As a result I came up with a few numbers that flattened out a lot more than it did previously.

First roast with crudely adjusted PID

Next I will need to take it more seriously I wipe out the configurations, dump some junk beans in, and fire up the roaster and calibrate until I can’t stand it anymore and then roast some coffee again.

In regards to the button controller I have figured out a layout that I will likely use but I’m trying to keep this accurate on the schematic system I’m working with to build a real PCB later.  For whatever reason the part in the system appears to not match every other part I’ve seen out there and what I’m currently working with.  I also need to go back to radioshack and buy a resistor I’m going to need because the big multi-pack I have doesn’t include that one resistor that I need to make the math work.

The last couple roasts with this new controller turned out decent enough.  After 3-4 days rest they had extremely good smells (but tasted only “pretty good”.)  Today’s two tests are MUCH closer to ideal roasting the way they worked out and the smells (and the smoke detector) agreed at the right times.  I’ve got two batches waiting that will get consumed over the next several days and we’ll see how it’s going as they rest.  I’ve got a single serve coffee brewer that’s working out better than some of the other ones so it will take me some time to work through all of the beans.

Ahh the smell of progress… roasting coffee!

So as I mentioned yesterday I roasted some coffee.  This time (except for manual control of the fan) the roaster did it all by itself.  I had given it a handicap of limiting power to the heater only to 85% of the capacity but it appears to have worked ok.  The Arduino roaster controller worked well enough considering the state it is in.  Power control from the Arduino worked for manual potentiometer signaling the fan speed and a data array of settings for the heat controlled the roast automatically trying to maintain the temperature.

I’m going to increase the power again to 90%.  The room temperature was around 45-50 degrees since I roasted it out in my garage so I think it did pretty well getting to temperature.  I’ve also bumped the fan up slightly to a higher maximum.

I will need to get a button controller going soon so that I can force the system from automatic into manual mode so I can quickly shut down heat if necessary without having the laptop connected while letting the fan continue to run.  I’ve got a CAD type design of a PCB going that has a button controller but I haven’t ACTUALLY prototyped it out on some RadioShack boards.  I do have some etch-able boards here to try a toner transfer to build out some controls.  I still need some carbide drill bits though for drilling the through hole parts and the jumper connectors.  If I had SMD header pins I think I actually have all the parts I’d need to build a 6 or 7 button analog pin matrix.  I may need a couple more resistors though to pull that off.  I’m pretty sure I could get at least 4 buttons though.

The power control system had started to get out of control with the heat sinks so I had to beef it up some.  Before anyone says it I know the large heat sink is on upside down.  I didn’t want to drill the board before I was sure it was going to work so those bottom pins are sticking out the top.  I’ll probably run it like this for a little while until I make a permanent board though.

So for those of you keeping track… I went from this:

First working prototype in Radioshack Project Case

To this:

This is MUCH better for the following reason…heat sinks got out of control and all the wires were getting obnoxious:

Next Steps?

  1. Increase allowed power to heater
  2. Make button control pad.
  3. Tune PID.
  4. Improve CSV log system.
  5. Add automation to the Fan control.  Use mild PID triggered adjustments to the fan.  Coarse heat changes by heater.  Minor heat changes (a few degrees) by Fan.
  6. Add current sensor to judge wattage to the heater.
  7. Get profiles loading from SD memory using button pad to select them.
  8. Begin creating circuit to connect my original PIC32 project to the arduino over serial / rx/tx or other communication method.
  9. Complete 7 inch touch screen (I have a screen designed but it’s not entirely stable yet… the backlight flickers occasionally and the image stutters here and there but it’s there…)  I’ll upload a bitmap from the layout tool soon.
  10. Migrate most functions to PIC32 eventually.
  11. Build a final PCB.
  12. Get a case made for it.
  13. Roast lots of coffee.
  14. Brew it.
  15. Drink it.

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 ZPMEspresso.com 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