Penguin

Differences between current version and predecessor to the previous major change of HowToCoffee.

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 5 Last edited on Thursday, October 21, 2004 5:24:44 pm by AristotlePagaltzis
Older page: version 4 Last edited on Monday, March 8, 2004 9:20:54 am by MattBlocker Revert
@@ -1,807 +1 @@
-  
-COFFEE-HOWTO  
-  
-  
-  
-----  
-  
-!!!COFFEE-HOWTO  
-  
-!!Fotis Georgatos, <gef@hellug.gr> Annie Pinder, <ajp@leguin.org.uk>  
-!!v0.8, 30 November 2000  
-  
-  
-----  
-''One of the most memorable comments about software I have ever heard, is whether this or that can make coffee.  
-Coffee is a world commodity that is second only to oil.  
-Linux DOES make coffee. And it tastes good, as well! ''  
-----  
-  
-  
-For a long time, humanity was wondering how could a computer  
-make coffee...  
-People need coffee wake up and stay awake  
-in front of the computer for a long time.  
-Everyone knows that coding is better at night...  
-  
-  
-  
-  
-  
-The main problem is how to manage the coffee machine with  
-the computer, so that it will be controlled by software.  
-This generally means an ON/OFF switch implemented  
-as a circuit which controls the coffee-machine's power supply.  
-  
-  
-This HOWTO has turned out in a public project, look at  
-http://coffee.sourceforge.net/,  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!!1. Menu  
-  
-  
-*1.1 French  
-  
-*1.2 Nescafe  
-  
-*1.3 Frappe  
-  
-*1.4 Freddo  
-  
-*1.5 Espresso  
-  
-*1.6 Cappuccino  
-  
-  
-  
-  
-  
-!!2. Electronic circuit  
-  
-  
-*2.1 Driving voltage -5V from the computer  
-  
-*2.2 Controlling with a Relay  
-  
-*2.3 Controlling with TRIAC #1  
-  
-*2.4 Controlling with TRIAC #2  
-  
-  
-  
-  
-  
-!!3. Software  
-  
-  
-*3.1 Software  
-  
-*3.2 Device driver  
-  
-*3.3 Connecting with the Internet  
-  
-  
-  
-  
-  
-!!4. Overdose symptoms  
-  
-  
-  
-  
-!!5. Expansions  
-  
-  
-  
-  
-!!6. References  
-  
-  
-  
-  
-!!7. etc  
-  
-  
-*7.1 preface  
-  
-*7.2 Authorship and maintenance  
-  
-*7.3 Copyrights  
-  
-*7.4 Credits  
-  
-----  
-  
-!!1. Menu  
-  
-!!1.1 French  
-  
-  
-  
-Popular coffee among programmers because doesn't need a lot of care;  
-like commercial software.  
-Its exciting taste has inspired thousands of programmers  
-in writing incredible software, written in the very first ours of a day.  
-Windows for example was written at 5:00 o'clock in the morning,  
-Due to coffee! A result is guaranteed.  
-  
-  
-  
-  
-!!1.2 Nescafe  
-  
-  
-  
- Nescafe is a rather strong coffee, made by pouring hot water  
-in a mixture of coffee, sugar and some water.  
-You usually take 1 spoon of coffee and 1 spoon of sugar with just  
-a bit of water, to mix it. In the meantime you should have the water  
-boiling. As soon as the water is hot enough, you mix them all together  
-and preferably add milk.  
-Although you can use something simpler than a coffee-machine to  
-boil the water, I have seen this done many times...  
-  
-  
-  
-  
-!!1.3 Frappe  
-  
-  
-  
-A popular variation of the above mentioned coffee.  
-Actually, it doesn't need a coffee-machine, rather a refrigerator for  
-cold water and ice-cubes.  
-  
-  
-  
-  
-!!1.4 Freddo  
-  
-  
-  
-This is a difficult one, read coffee-faq (see references)  
-  
-  
-  
-  
-!!1.5 Espresso  
-  
-  
-  
-Espresso is a very strong, italian sort of coffee. You serve it in  
-small cups (You ask why? See chapter: Overdose Symptomes) with on  
-or to pieces of lump sugar.  
-To produce a good espresso you need fresh grinded coffee beans,  
-water, lump sugar and a special machine. These machines boil the water  
-and press the very hot steam through the grinded coffee beans. You can  
-buy a super-duper-automatic machine for a lot of money. But a low  
-cost machine is useable, too.  
-  
-  
-OK., lets start. Fill water in your machine. Let it become hot. In the  
-meantime fill about 1 teespoon of coffeepowder in the filterhandle of  
-your machine. Press the coffeepowder down. Not too much. Now the water  
-is at the right temperature. Attach the filterhandle to the machine  
-and let the machine work. After about 30 seconds you can serve a  
-delicate, hot espresso. It is fine after a good meal. You feel good  
-and can code for a few more hours.  
-  
-  
-  
-  
-  
-  
-  
-!!1.6 Cappuccino  
-  
-  
-  
-(See also chapter: Espresso)  
-If you have a more profi-like machine, you can use it, to froth milk  
-with it. You need this feature to make a creamy sort of coffee. It is  
-easy to prepare. Put some frothed milk in a coffee pot and fill it up  
-with espresso. Then decorade with some chokolade flakes. That?s it.  
-  
-  
-  
-----  
-  
-!!2. Electronic circuit  
-  
-  
-A general diagram is like this:  
-  
-  
-  
-  
-  
---------- -5V --------- ~220V ----------------  
-| PC |===>===|Circuit|========|Coffee-Machine|  
---------- --------- ----------------  
-  
-  
-  
-  
-  
-  
-  
-The concept is that we take a controling voltage from the computer,  
-which drives an electrically isolated circuit with a Relay or Triac.  
-  
-  
-  
-  
-  
-You must choose a Relay circuit, if you have a coffee-machine  
-greater than 200W. You can use a triac-based one if your coffee machine isn't high power.  
-  
-  
-All circuits presented are tested, but the results are  
-YOUR RESPONSIBILITY.  
-If you have no experience with electronics you should NOT try  
-these, otherwise you may get a bad one...  
-  
-  
-  
-  
-  
-You should be very careful while experimenting with 220V, and using an appropriate fuse is advisable.  
-  
-  
-  
-  
-!!2.1 Driving voltage -5V from the computer  
-  
-  
-  
-Here is a simple example to get a voltage -5V from the parallel  
-port of the computer.  
-  
-  
-  
-  
-  
-Back View ----- Pin 10 - ACK  
-Male DB-25 | | Pin 9 - D7  
-Connector | | Pin 2 - D0  
-v v v Pin 1 -  
-~Strobe  
-____________________________________________________________  
-/ \  
-\ 13 12 11 10 9 8 7 6 5 4 3 2 1 /  
-\ /  
-\ 25 24 23 22 21 20 19 18 17 16 15 14 /  
-\______________________________________________________/  
-  
-  
-  
-  
-  
-  
-  
-Pin 1 is Strobe (inverse logic)  
-  
-  
-Pins 2-9 is DATA BUS's signals, exactly what was written to the  
-parallel port's latches with an OUTB command.  
-  
-  
-Pin 10 is the acknowledge signal (ACK), controlled by you, so that you can  
-produce an interrupt to the CPU.  
-  
-  
-Pins 18-25 are short-circuited and this is the ground (GND).  
-  
-  
-  
-  
-  
-In detail:  
-  
-  
-<= in DB25 Cent Name of Reg  
-=> out pin pin Signal Bit Function Notes  
------- ---- ---- -------- --- -----------------------------  
-=> 1 1 -Strobe C0- Set Low pulse >.5 us to send  
-=> 2 2 Data 0 D0 Set to least significant data  
-=> 3 3 Data 1 D1 ...  
-=> 4 4 Data 2 D2 ...  
-=> 5 5 Data 3 D3 ...  
-=> 6 6 Data 4 D4 ...  
-=> 7 7 Data 5 D5 ...  
-=> 8 8 Data 6 D6 ...  
-=> 9 9 Data 7 D7 Set to most significant data  
-<= 10 10 -Ack S6+ IRQ Low Pulse ~ 5 uS, after accept  
-<= 11 11 +Busy S7- High for Busy/Offline/Error  
-<= 12 12 +!PaperEnd S5+ High for out of paper  
-<= 13 13 +!SelectIn S4+ High for printer selected  
-=> 14 14 -!AutoFd C1- Set Low to autofeed one line  
-<= 15 32 -Error S3+ Low for Error/Offline/!PaperEnd  
-=> 16 31 -Init C2+ Set Low pulse > 50uS to init  
-=> 17 36 -Select C3- Set Low to select printer  
-== 18-25 19-30, Ground  
-  
-  
-  
-  
-  
-  
-!!2.2 Controlling with a Relay  
-  
-  
-  
-  
-  
-  
-The simplest circuit that one can build is:  
-  
-  
-Vcc  
-|  
-+------+  
-| __|__  
-Relay /^\ Diode 1N4002  
-Coil /---\  
-| |  
-+------+  
-|  
-| /  
-4.7K B |/ C  
-parallel port >-\/\/\/\/---| NPN Transistor: BC547A or 2N2222A  
-data pi |\ E  
-| V  
-|  
-parallel port >--------------+  
-ground pin |  
-Ground  
-  
-  
-Connect Vcc with the same voltage as the relay type (usually 5 or 12V).  
-Obviously, the relay's specifications should be scaled for your  
-coffee-machine.  
-  
-  
-Barmen, tend to put the relay AFTER the transistor, at the  
-emitter (E) pin instead of the collector (C) pin. This is bad practice  
-because it biases the transistor badly, and may result in bad coffee :-).  
-Diode 1N4002 is useful to protect the transistor from the relay's currents.  
-If you don't use it the transistor will become dark and smelly...  
-  
-  
-  
-  
-!!2.3 Controlling with TRIAC #1  
-  
-  
-  
-If you only want a simple circuit, you can use Motorola's  
-triac driver MOC301 [[012 ], together with a general purpose TRIAC like SC141D.  
-This method has the advantage that you don't need an extra power supply.  
-  
-  
-  
-  
-  
-For non-inductive loads, this is the circuitry:  
-  
-  
-270 1 +-------+ 6 180  
-+5v -VAVAVA-----+ +----VAVAVA-----+-------------- Line Hot  
-2 | MOC | |  
-TTL in ---------+ 3012 +nc VA SC141D  
-| | 4 / |  
-nc+ +------------/ |  
-+-------+ +----\/\/\/---- Line Neutral  
-LOAD  
-  
-  
-  
-  
-If you are going to work with 220V, try to obtain a 3021.  
-Inductive loads should be used in conjuction with bypass capacitors,  
-see ''Motorola Application Note AN-780''.  
-Coffee-machines are mainly resistive loads and not inductive (like a motor),  
-but who knows what yours is!  
-  
-  
-  
-  
-!!2.4 Controlling with TRIAC #2  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-+5VDC  
-| 180 180 2.2k  
-+---/\/\/\----+-----+ +----/\/\/-+--/\/\/\---+-------> 120V  
-| 1| |6 | | Hot  
-| +=====+ | | MT1  
-| | MC | TRIAC | +-+  
-| | 3032| Driver | G | | TRIAC  
-| +=====+ | /| |  
-\ 2| |4 | / +-+  
-2N3904 |----+ | | | | MT2  
-/ | +--------- | -------+ |  
-V \ | | |  
-| / | \ |  
-| \ 43 .01u --- 10k / |  
-| / 500V --- \ |  
-| | | / |  
-+------+ | | | Neutral  
-| +--------+--+---o o--> 120V  
-/ load  
->-/\/\--| 2N3904  
-\  
-V  
-|  
----  
-///  
-You should change resistors accordingly for 220V.  
-  
-  
-  
-  
-Circuit description:  
-  
-  
-The MC3032 is an optoisolator TRIAC driver.  
-The 180-ohm resistor sets the current for the LED emitter in the optoisolator.  
-Change the value of this resistor - if necessary - to get a reasonable current  
-(e.g., 15 mA).  
-  
-  
-Note that you cannot test this circuit without a load.  
-The TRIAC will not switch unless connected to an AC  
-voltage source, so you can't test it for simple switching without applying AC  
-and a load. Note the 500V rating on the .01 cap.  
-  
-  
-  
-----  
-  
-!!3. Software  
-  
-  
-  
-  
-  
-  
-  
-!!3.1 Software  
-  
-  
-  
-You will have to build an executable that will work like this:  
-  
-  
-*Get permission to use I/O address space, by calling kernel, with  
-the command __ioperm__: eg ''ioperm( BASE, range ,1); ''  
-*  
-  
-*Perform an out request instruction, to set the -5V voltage to the  
-parallel port, eg ''outb( 1, BASE );''  
-*  
-  
-*Wait enough time so the coffee is made. It would be nice  
-if that time is read by looking at the command line.  
-*  
-  
-*Then it will turn off the coffee-machine: outb( 0 , BASE );  
-*  
-  
-*Before ending it should give back the parallel port with a ''ioperm( BASE, range, );''  
-*  
-  
-Change BASE = 0x3bc for /dev/lp0, 0x378 for /dev/lp1, and 0x278  
-for /dev/lp2, range=8.  
-  
-  
-  
-  
-  
-It would be useful if you had that program setuid,  
-so that everybody can drink coffee!  
-  
-  
-  
-  
-!!3.2 Device driver  
-  
-  
-  
-  
-  
-  
-Just read  
-kernel hacker's guide,  
-implement a device driver (it could even be user space I think).  
-Please compile it as a module, so that we won't need a  
-kernel compile in every update.  
-Then write:  
-  
-  
-  
-  
-echo cappuccino >/dev/coffee  
-  
-  
-  
-And you will have a hot cup of coffee in minutes!  
-Remember to give the right permission to /dev/coffee,  
-depending on whether you want only root making coffee or not.  
-  
-  
-  
-  
-  
-The advantage of this method is that it supports feedback  
-from the coffee-machine by using the ACK of parallel port,  
-so that smart coffee-machines could produce an interrupt.  
-  
-  
-  
-  
-  
-Do it as homework.  
-  
-  
-  
-  
-!!3.3 Connecting with the Internet  
-  
-  
-  
-If you have implemented the C program (see above),  
-you just have to write a simple CGI script to turn ON and OFF  
-the coffee-machine.  
-You should write some nice webpages, explaining how to make coffee,  
-and put them on an __apache__ web server...  
-  
-  
-  
-----  
-  
-!!4. Overdose symptoms  
-  
-  
-  
-  
-  
-*excitement  
-*  
-  
-*nervousness  
-*  
-  
-*insomnia  
-*  
-  
-*tachycardia or cardiac arhythmia  
-*  
-  
-*restlessness  
-*  
-  
-*Hypersensibility to light  
-*  
-  
-*Annoyance in respect with various audio stimuli  
-*  
-  
-*gastrointestinal disturbance  
-*  
-  
-  
-  
-  
-----  
-  
-!!5. Expansions  
-  
-  
-These are our ideas:  
-  
-  
-*All hardware and software described here, can be expanded so that  
-it will support toast, beaf, applepies, etc.  
-*  
-  
-*Cluster with 8 coffee-machines. This will let you have coffee  
-even when the first one gets off. Of course there will be a perfomance hit.  
-*  
-  
-*Parallel vector coffee-machine will be a future release.  
-*  
-  
-*If you want the maximum automation you'll need more circuits and  
-sensors, so that you can control water flow, temperature, coffee  
-quantity etc.  
-*  
-  
-*In the near future we will implement SNMP features.  
-*  
-  
-*Serial coffee-machine at 115Kbps.  
-*  
-  
-  
-  
-  
-----  
-  
-!!6. References  
-  
-  
-  
-  
-  
-*  
-http://daisy.uwaterloo.ca/~alopez-o/caffaq.html  
-This is most known Internet's __Coffee-FAQ__  
-*  
-  
-*  
-http://faculty.washington.edu/chudler/caff.html  
-Caffeine and effects of on the Nervous System  
-*  
-  
-*  
-http://www.gardfoods.com/coffee/coffee.coffee.htm  
-A pretty comprehensive, if informal, history of humans' interaction  
-with the coffee plant. People have been chewing coffee berries in  
-Africa for 100,000 years or so. Coffee was definitely growing in  
-Yemen, where it is not native (so must have been planted), in 525 AD.  
-*  
-  
-*  
-http://www.faqs.org/rfcs/rfc2324.html  
-RFC2324: Hyper Text Coffee Pot Control Protocol (HTCPCP/1.)  
-*  
-  
-*  
-http://www.faqs.org/rfcs/rfc2325.html  
-RFC2325: Definitions of Managed Objects for  
-Drip-Type Heated Beverage Hardware Devices using SMIv2  
-*  
-  
-*  
-http://sunsite.unc.edu/LDP/HOWTO/mini/IO-Port-Programming  
-Programming of I/O ports under popular operating system Linux.  
-*  
-  
-*  
-http://lonestar.texas.net/~andrew/f_pc_.htm  
-A lot of circuits in ASCII. Some of them are for parallel port.  
-*  
-  
-*  
-http://shell.rmi.net/~hisys/parport.html  
-Whatever you wanted to learn about a parallel port and didn't dare to ask.  
-*  
-  
-*  
-http://www.redhat.com:8080/!HyperNews/get/khg.html  
-How to write your own device drivers. Come on, go ahead!  
-*  
-  
-*  
-http://www.hut.fi/Misc/Electronics/circuits/parallel_output.html  
-Tomi Engdahl's web page is a *must see* for everyone who enjoys electronics.  
-*  
-  
-*  
-http://dir.yahoo.com/Computers_and_Internet/Internet/ Devices_Connected_to_the_Internet/Coffee_Machines/  
-Coffee-machines on-line. Unfortunatelly, there are no tests.  
-*  
-  
-*  
-http://www.cs.su.oz.au/~bob/coffee.html  
-This coffee-machine offers only cappuccino. It has to be upgraded.  
-*  
-  
-*  
-http://einstein.et.tudelft.nl/~janssen/  
-Hot coffee from Netherlands.  
-*  
-  
-*  
-http://www.cl.cam.ac.uk/coffee/coffee.html  
-*  
-  
-*  
-http://www.cs.su.oz.au/~bob/Coffee/index.html  
-*  
-  
-*  
-http://www.menet.umn.edu/coffeecam/  
-*  
-  
-  
-  
-  
-----  
-  
-!!7. etc  
-  
-!!7.1 preface  
-  
-  
-  
-This document was initially written as part of  
-a small debate in the linux-greek-users list ,  
-whether linux can make coffee or not.  
-It has been an article in our beautiful online magazine  
-about Linux called  
-magaz.  
-Remember, that magaz is greek it will look like that to you.  
-  
-  
-  
-  
-!!7.2 Authorship and maintenance  
-  
-  
-  
-My name is  
-Fotis Georgatos  
-and I have also been in the past busy with the greek documentation and wwwpages maintainance.  
-I welcome submissions to this HOWTO, as long as you're not anxious about the changes.  
-  
-  
-I'm Annie Pinder and a coffee fan. I live in England. I made the language changes on this document.  
-I'm currently in the English equivalent of High School, in my final compulsory year.  
-  
-  
-  
-  
-!!7.3 Copyrights  
-  
-  
-  
-The casual copyright with everything you get with linux...  
-To find it, you'll have to read all of HOWTOs and average out the most common.  
-Otherwise, no, you cannot copy it.  
-  
-  
-  
-  
-!!7.4 Credits  
-  
-  
-  
-  
-  
-  
-*Ethiopia: Identified as the originating country of coffee.  
-As many people corrected, coffee did not originally come from America  
-nor was brought by Christofer Colombus. It was popular in the Middle East long  
-before America was discovered. Still, we can remember  
-Cristobal Colon, as the person who brought tobacco and chocolate in Europe.  
-*  
-  
-* Kostas Lialiambis is the one who dared saying that he can't make  
-coffee with his Linux box.  
-*  
-  
-* Panagiotis Vrionis, Yannakopoulos Haralambos, for giving me  
-interesting and humorous notes.  
-*  
-  
-* NUMEROUS people on the internet with additions and remarks .  
-*  
-  
-----  
+Describe [HowToCoffee ] here.