Team Expresso BS 1001 User manual

Team Expresso
BARISTA SCALES
User Guide
Model BS 1001
High precision scales
designed with baristas in mind
Published by
Nishanth Oblirajan, Ho Long Fong, Hauchan Bao and Thomas Sherborne

Contents
1
Welcome
2
2
System Diagram
2
2
Instructions
3
3
Specification
3
4
Circuit Diagram
4
5
Programming and Code
5
!

Welcome
Welcome to your new set of Team Expresso BS 1001 Barista Scales. These
scales are designed to sit under the brew group, fixed to the drip tray, to allow
you to measure the weight of your espresso as it is pours into your cup. It is
also the ideal tool to measure the weight of the ground coffee in a portafilter.
Also included is a timer feature so you can time how long your extraction is
taking, allowing you to perfect your coffee every time. Never again will your
coffee be too bitter or too sour as you can time everything perfectly.
Scale device: place your
cup on here for the scale to
read its weight.
The easy to adjust hinge
means you can tilt the
screen to your preferred
angle.
The grille in the scale lets
water through directly to
the drip tray so your device
doesn’t get wet.
Simply press the black
button to zero the scale
and reset the timer.
System Diagram
Low profile design doesn’t
hog space between the
brew group and drip tray.
Initialise the system using the
red button. A two button
system is easy to use and
speeds up your work.
This screen welcomes you to start
weighing your coffee by placing the
cup onto the scales
This screen will display the weight of
your coffee (excluding the cup), the
time elapsed and the flow rate.

Instructions
Using your BS 1001 Barista Scales could not be easier, just follow these simple
steps and your espresso will be perfected in no time.
1. Wake the scales from sleep mode by pressing the red button on the
screen module.
2. Place your scales on a flat stable surface.
3. Adjust the tilt of the screen to your desired level.
To use scale:
4. Place the cup or vessel on the scale before beginning your extraction
5. Press the black
button to begin the measurement of mass, you may now
begin brewing your espresso into the cup.
6. On the upper line of the screen the mass/weight in grams will be
displayed.
7. Press the red button to reset the device.
To use the timer:
4. When you begin extracting your espresso press the black button to begin
.the timer counting up.
5. On the lower line of the screen the time since you pressed the black
.button will be displayed in seconds.
6. Press the red button to reset the device.
Please note: pressing the black button will both zero the scale and reset the
timer. If you want to measure the weight of extracted espresso and time the
extraction please follow the instructions for using the timer and place your
vessel for the coffee on the scale before you press the black button.
Parameter
Min
Typ
Max
Units
Supply Voltage
3.156
3.161
3.250
V
Weight
00
-
142
g
Timer
00
-
99
s
Battery life when in use
97
110
121
hours
Current drain
19.7
19,9
20.1
mA
Input Impedance
2.993
2.995
2.997
kΩ
!
Specification

Circuit Diagram
Below is the full circuit diagram for your BS 1001 Barista Scales.

Your barista scales are controlled by the TI MSP430G2553 Microcontroller
which is programmed in C using Energia. Find below the code used in your new
scales in case you wish to modify the scales to your personal needs.
#include!<LiquidCrystal.h>!
!
//initalizing!the!variables!
int!s1!=!A7;!
int!u;!
int!y;!
int!x=0;!
int!zval=732;!
int!z1,e1;!
int!eval=772;!
int!z=0;!
int!e=80;!
float!flow;!
int!rt=0;!
const!int!start=7;!
unsigned!long!stime;!
unsigned!long!time;!
unsigned!long!etime;!
!
//initializing!the!liquid!crystal!
LiquidCrystal!lcd(8,9,10,11,12,13);!
!
void!setup()!{!
!!pinMode(start,!INPUT);!
!!lcd.begin(16,!2);!
!!lcd.clear();!
}!
!
!
void!loop()!{!
!!lcd.clear();!
!!lcd.setCursor(4,0);!
!!lcd.print("Expresso");!
!!lcd.setCursor(3,1);!
!!lcd.print("Place!cup");!
!!//if!start!button!is!pressed!
!!if(digitalRead(start)==HIGH)!
!!!!{!!
!!!!while(rt==0)!
!!!!!!{!
!!!!!!etime=millis()/1000;!
!!!!!!rt=1;!
!!!!!!}!
!!!!makezero();!
Programming and Code

}!
!!delay(500);!
}!
!!!!!
//program!to!zero!the!weight!scale!!!!!
void!makezero(){!!!
!!y=analogRead(s1);!
!!u=y_zval;!
!!zval+=u;!
!!eval+=u;!
!!delay(500);!
!!while(1){!
!!weight();!!}!
}!
!
//displaying!the!weight,!time!and!flowrate!
void!weight(){!
!!stime=millis()/1000;!
!!lcd.clear();!
!!y=analogRead(s1);!
!!x=map(y,zval,eval,z,e);!
!!!!lcd.clear();!
!!!!lcd.print("Weight:");!
!!!!if(x<0){!
!!!!!!x=0;!
!!!!}!
!!!!lcd.print(x);!
!!!!lcd.print("g");!
!!!!lcd.setCursor(11,0);!
!!!!time=stime_etime;!
!!!!lcd.print("T:");!
!!!!lcd.print(time);!
!!!!lcd.print("s");!
!!!!space();!
!!!!lcd.setCursor(0,1);!
!!!!lcd.print("Flow:");!
!!!!flow=x/time;!
!!!!lcd.print(flow);!
!!!!lcd.print("ml/s");!
!!!!delay(500);!
!!!
}!
!
//line!space!
void!space(){!
!!lcd.print("!");!!
}!

!
To help you better understand your new product, this is a flow diagram of the
logic the code that your system runs on.
Table of contents