====== ZonCoffee PID Controller ====== ZonCoffee is an inexpensive PID controller built around the Atmel ATMEGA32u4. ===== Hardware Setup ===== - Connect your LCD - Serial LCDs are connected to the "LCD" screw terminal - Parallel LCDs are connected through the auxiliary connector - Connect a rotary encoder and switch to the labeled screw terminal - Internal pull-ups are enabled, so the switch should be connected between ground and the ''sw'' pin - If your rotary encoder does not operate correctly with any pin configuration, you may need to try different quadrature sequences in ''/lib/Quadrature/Quadrature.cpp'' - Connect a solid-state relay to the 2-pin SSR screw terminal - Connect your 5v power supply (either USB or screw terminal) ===== Software Setup ===== To get started, [[http://hg.protofusion.org/ZonCoffee/archive/486905a58273.zip|download the ZonCoffee Arduino sketch and libraries]] Your ZonCoffee board comes pre-loaded with the latest firmware. However, you can flash your own custom firmware ==== Arduino IDE ==== Download the latest [[http://arduino.cc/|Arduino IDE]] and make sure that the selected board is Arduino Leonardo. The IDE should function as if the ZonCoffee was a normal Arduino Leonardo. Note: In that zip file, all libraries in the "lib" folder need to be installed to your Arduino IDE. If you haven't done this before, you just need to copy and paste all subfolders of the "lib" directory into the "libraries" folder of your Arduino installation. ==== LCD support ==== The firmware comes pre-configured for the HD44780 parallel LCD display. To use a SparkFun serial LCD, you will need to change a couple configuration options: In the Arduino sketch, browse to ''options.h'' 13 //#define LCDSF // Use SparkFun serial lcd 14 #define LCDHD // Use standard HD44780 lcd or compat. Uncomment the LCDSF line and comment out the LCDHD line. Now your SparkFun LCD should work properly. **There seems to be a bug in the Arduino IDE when switching between LCDs. If you change the selected display in ''options.h'' and get a ton of compilation errors, change the order of these two blocks in zoncoffee.ino (for example):** Change this: 15 // Setup LCD 16 #ifdef LCDHD 17 #include 18 LiquidCrystal lcd(A5,A4,A3,A2,A1,A0); 19 #endif 20 21 #ifdef LCDSF 22 #include 23 SLCD sflcd = SLCD(LCDROWS, LCDCOLS); 24 #endif To this: 15 // Setup LCD 16 #ifdef LCDSF 17 #include 18 SLCD sflcd = SLCD(LCDROWS, LCDCOLS); 19 #endif 20 #ifdef LCDHD 21 #include 22 LiquidCrystal lcd(A5,A4,A3,A2,A1,A0); 23 #endif 24 ...or the other way around.