Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added Assets/pictures/brew.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Assets/pictures/calibration_L.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Assets/pictures/calibration_P.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Assets/pictures/grind_L.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Assets/pictures/grind_P.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Assets/pictures/scaleDirect_L.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Assets/pictures/scaleDirect_P.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Assets/pictures/timeWeightDirect.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Assets/pictures/timeWeightDirect_L.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Assets/pictures/timemode_L.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Assets/pictures/timemode_P.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Assets/schematic.pdf
Binary file not shown.
Binary file added Assets/schematic_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Assets/schematic_darktmode.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Assets/turnoffdarkmode.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
108 changes: 73 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,61 +1,99 @@
# MillControl
##Arduino Coffee Grinder Control
## Arduino Coffee Grinder Control

###THIS DESCRIPTION IS A BIT OUT OF DATE I WILL UPDATE IT WHEN I GET TO IT.
### THIS DESCRIPTION IS A BIT OUT OF DATE I WILL UPDATE IT WHEN I GET TO IT.
If you speak german please refer to:
https://www.kaffee-netz.de/threads/millcontrol-arduino-muehlensteuerung-mit-timer-gewichtsautomatik-und-brew-timer.95553/

This was designed to build a timer controlled coffe grinder out of any regular machine. It was developed to be used with a Graef CM 70 but it should work fine with any brand or model.
This was designed to build a time controlled coffee grinder out of any regular machine. It was developed to be used with a Graef CM 70 but it should work fine with any brand or model.

###Requirements
### Requirements
- Runs on Arduino Pro Mini & compatible systems (should be most arduino machines having a ATmega328 or better CPU, needs 32k of storage space).
- Needs a rotary encoder with a switch and an optional second switch (mill switch). If you only have one switch comment out the define in UI.h
- Output is to a 128*64 graphics display, comment out the orientation define in UI.h

###Dependencies:
- ClickButton - https://code.google.com/p/clickbutton/
- Encoder (v1.2) - http://www.pjrc.com/teensy/td_libs_Encoder.html
### Dependencies:
- Encoder (v1.4) - http://www.pjrc.com/teensy/td_libs_Encoder.html
- TimerOne (v1.1) - https://github.com/PaulStoffregen/TimerOne
- U8Glib - https://github.com/olikraus/u8glib

###User Interface
####Select a Time Mode
You can select from up to 20 timer modes with different timeings for a single click, double click and long click of the mill button. Modes can be timed, start/ stop (starting the mill on a click and stopping it at the next) and hold (_with extra mill button only_).
### User Interface
#### Select a Time Mode
You can select from up to 20 timer modes with settings fr time or weight.
There are two different time modes: multi selection and single selection (FLAT_MODE in UI.h).

_If there is no mill button then you can only choose from single and double click. Long click is then bound to the edit menu_
##### multi selection
For every mode there are timeings for a single click, double click (or mill switch 2, if available) and long click.
For a click mode you can set a time / weight or "start/stop" (start mill with click start and stopping it at the next) or hold (longer click, only if more buttons are available).
If there is no mill button then you can only choose from single and double click. Long click is then bound to the edit menu.

#####Portrait mode
![Select](https://raw.githubusercontent.com/romanseidl/MillControl/gh-pages/pictures/hoch_select.JPG)
![Select Direct](https://github.com/romanseidl/MillControl/blob/gh-pages/pictures/hoch_select_direct.JPG)
#####Landscape Mode
![Select Landscape](https://raw.githubusercontent.com/romanseidl/MillControl/gh-pages/pictures/quer_select.JPG)
![Select Direct Landscape](https://raw.githubusercontent.com/romanseidl/MillControl/gh-pages/pictures/quer_select_d.JPG)
###### Portrait mode
![SelectTimeWeightDirect](./Assets/pictures/timeWeightDirect.png)

####Edit a Time Mode
There is an extensive editor allowing you to add (+), delete (x), move (<>) and edit time modes. For a time mode the respective times and the title are editable.
###### Landscape Mode
![SelectTimeWeightDirect](./Assets/pictures/timeWeightDirect_L.png)

#####Portrait mode
![Editor](https://raw.githubusercontent.com/romanseidl/MillControl/gh-pages/pictures/hoch_edit_sp.JPG)
![Char Editor](https://raw.githubusercontent.com/romanseidl/MillControl/gh-pages/pictures/hoch_edit_char.JPG)
#####Landscape Mode
![Landscape Editor](https://raw.githubusercontent.com/romanseidl/MillControl/gh-pages/pictures/quer_editor.JPG)
##### single selection
Every time / weight has it own side. With one click will this site be startet. In the direct mode ("start") will one click start the mill until anothe click stopps the mill, hold (the hold function also does something. But not clear what.).

####Run!!
Finally the idea of the timer ist to run. So there is a run mode... It is started from select mode as explained above. In a timed run there is a progress bar at the bottom of the screen.
###### Portrait mode
![SelectTimeWeightDirect](./Assets/pictures/scaleDirect_P.png)

A run can be stopped any time by pressing the button used to start the run. For 5 seconds the run will pause and if you re-click it can be continued.
###### Landscape Mode
![SelectTimeWeightDirect](./Assets/pictures/scaleDirect_L.png)

#####Portrait mode
![Run Mode](https://raw.githubusercontent.com/romanseidl/MillControl/gh-pages/pictures/hoch_run.JPG)
![Direct Run Mode](https://raw.githubusercontent.com/romanseidl/MillControl/gh-pages/pictures/hoch_run_direct.JPG)
#####Landscape mode
![Landscape Run Mode](https://github.com/romanseidl/MillControl/blob/gh-pages/pictures/quer_run.JPG)
#### Settings
There is an extensive editor allowing you to change the mode (g + w), add a page (+), delete (x) and move (<>).
Basically there are two modes: time and weights mode

###Schematic
##### time mode
For a time mode the respective times and the title are editable.

###### Portrait mode
![Portrait Editor](./Assets/pictures/timemode_P.png)

###### Landscape Mode
![Landscape Editor](./Assets/pictures/timemode_L.png)

##### weight mode
Alternativly ther is a "weight mode automation". A grinde speed will be set in sec/gramms (which is basically also grind duration) and additional some weights. The titel of the page can also beedit.

###### automatic calibration
If you push the mill button inside the editor (or long pressthe encoder button if there is no mill button) the the calibration will be startet.

- in order to start the calibration you should measure the amount of the cup to which you are going to grind the coffee. This will be used to train the scale.
- if the calibration is started the mill runs until the button is released ( or if the button is pushed again, e.g. if you have only one button). You should grind at least one normal portion. More would be more accurate.
- after that the automatic will ask for the weight which was ground. Therefore you will need to measure it, select the weight on the menu and confirm with the encode button.
- After that the grind-speed will be set automatically

###### Portrait mode
![Portrait Editor](./Assets/pictures/calibration_P.png)

###### Landscape Mode
![Landscape Editor](./Assets/pictures/calibration_L.png)

#### Grind!
The grinding will be started from the coresponding site with the correct button. If there is a programmed grind time or a weight, there will be a progress bar.
A grinding can be cancled any time by pushing the button which was used to start the grinding. If there is a programmed grindtime, the process will be stoped for 5 secounds and can be resumed with a new button push.
During the grind process the user can change the grind time by turning the turining button. This change will not be saved.

##### Portrait mode
![Grind Mode Portrait](./Assets/pictures/grind_P.png)
##### Landscape mode
![Grind Mode Landscape](./Assets/pictures/grind_L.png)

### Brew-Timer
If you set on A0 a "taster" (don't know the english word) you can get a brew-timer. The timer will be cancled by any interaction and cannot be started during the milling process.

![Brewing](./Assets/pictures/brew.png)

### Schematic
I prefer a old school schmatic style over those fanzy fritzing pictures. Still I added them below in case you prefer them.
[![Schematic](https://raw.githubusercontent.com/romanseidl/MillControl/gh-pages/sketch/schematic.png)](https://raw.githubusercontent.com/romanseidl/MillControl/gh-pages/sketch/schematic.pdf)

###(c) 2015 by Roman Seidl
[![Schematic](./Assets/schematic_2.png)](./Assets/schematic.pdf#gh-light-mode-only)
![Schematic](./Assets/schematic_darktmode.png#gh-dark-mode-only)

### (c) 2015 by Roman Seidl

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand Down