Arduino Roaster Controller Resource Center

Go Big

Everyone who creates a project with an Arduino has a favorite model.  The Swiss Army Knife of Arduino often tends to be the Uno or Duemilanove.  For me my feeling is to start big and then decide what you can minimize it down to.  With the big development system boards you can keep adding until you run out of space and minimize the times you run out of pins or ports.  In the Arduino world this tends to mean the Mega 2560 or Mega 2560 ADK.  This has benefits but also complicates a few things too.

UPDATE 3/21/2015  [Since I wrote this page a few things have changed in the Arduino world.  While the MEGA is still a good platform to build a robust control system with room for lots of sensors and controls…. a new Arduino has been released that turns this on its head.  There is now the Arduino DUE. 

The DUE is an Arduino that has a 32 bit controller running at 84 MHz compared to the original 16 MHz.  It is NOT a shortened name of the Duemilanove.  The DUE is the same extended size of the Mega while the Duemilanove is the shortened size of the Uno.  The DUE has a much faster processor and has been shown to work with special interfaces that drive a 7 inch 800×480 sized touch screen at reasonable speeds graphing and using graphical buttons and fonts.  Unfortunately with all improvements there is a drawback.  Much of the DIY maker movement operates in 5 volt electronics and sensors.  While many Arduino models work 3.3v and 5v the DUE is ONLY 3.3V.  This becomes a problem driving relays or finding hand solderable versions of some sensor chips since many 3.3V devices are designed to be miniaturized and assembled using expensive equipment but the speed and capability usually outweighs the difficulties for most people.]

Complications to be aware of

If you feel you are up for it or that the hassle might be worth it most Arduino libraries, example code, and projects documented on the internet use the Uno or the Duemilanove but, with converting them to Mega you keep your options open.  Many of the libraries are already Mega compatible but there are a few that you need to modify pin assignments for SPI/I2C, PWM, and interrupt/timer pins.

While using a small Arduino board may be suitable for most projects my feeling is you should give yourself maximum opportunities when developing and then learn to convert downwards at the end.  When you run out of things to add you can quickly assess if you can downsize, optimize, and sometimes shed unnecessary features or change sensors or other electronics to minimize pins and data bus variety.

As mentioned this first becomes a problem is how the Mega has timers on different pins and there are differences in how some of the shields work on a Mega due to different bus pins being used or that they simply don’t use all of the pins from a Mega beyond the normal Uno style footprint.  There are differences in hardware vs software serial buses and amounts of SPI/I2C buses to contend with in the smaller UNO footprint.  Many of the buses can be “bit-banged” (in other words managed in software rather than hardware) but you need to be aware that hardware buses often have buffers and signalling that automate a lot of the tasks helping to keep the code smaller.  A MEGA has a lot more available flash and program memory compared to an UNO so this could become critical later.  [And a DUE has tons more memory.]

For sticking your project in a case at the end of the project if you wish to make it “semi-permanent” there are a lot more boxes made for the UNO sized boards.  For the MEGA you will need to use a “Crib for Arduino” or have a case custom made depending on the height.  You also have to consider that an Arduino is a lot cheaper than a MEGA [or DUE] board if you are not going to eventually convert your project to a dedicated custom made board.

Creating a Coffee Roaster Controller

No matter the board you choose to use when looking to quickly create a roaster controller you need to identify libraries and examples to guide your process.  These can often be found through sites such as Sparkfun.com, Adafruit.com, and of course Arduino.cc.  Occasionally individual authors have published their libraries or example projects on GitHub or their own personal sites separate from the larger corporate or other official channels for Arduino.  Certainly just typing “Arduino Library for reticulating splines” or whatever you’re trying to accomplish can certainly help find a blog or resource that discusses it.

Resources

The following are resources that I’ve found that could be useful in making your own roaster controller.  Some of them I’ve used and others are similar to ones I’ve built on my own or that I’ve found that would have worked better had I known about them before I started!

Libraries and Code:

BMP085 or BMP180 – Barometric Pressure Sensor

http://code.google.com/p/bmp085driver/

DS3234 – Real Time Clock

http://dlnmh9ip6v2uc.cloudfront.net/datasheets/BreakoutBoards/DS3234_Example_Code.pde

MAX6675 – Thermocouple Library

https://github.com/ryanjmclaughlin/MAX6675-Library or
http://github.com/adafruit/MAX6675-library

PID_V1.01

http://arduino.cc/playground/Code/PIDLibrary or https://github.com/br3ttb/Arduino-PID-Library/

SHT1x – Humidity Sensor

http://github.com/practicalarduino/SHT1x

Time – Internal Counter Time Library

http://www.arduino.cc/playground/Code/Time

Useful Projects:

Controls

http://make.larsi.org/DoubleD-PadShield/ or http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1267115381

Thermocouples

http://ryanjmclaughlin.com/ Site has been up and down over the past few years.  In late 2014 it indicated he was looking to start this project up again but all of the PCB files and some code have continued to be available.  The store, however, has remained down.

BMP085

http://www.sparkfun.com/tutorial/Barometric/BMP085_Example_Code.pde

 

Leave a Reply