Technical Prototyping report

Initial Research


Roaster & Barista

As part of the new experience stage of the project, I visited a coffee roaster and small cafe. The owner, marketing manager and roaster showed me the whole process as well as providing some input when talking to the baristas. Understanding the entire process of the cafe, from how supplies are delivered and different ways of reducing plastic waste in their cafe. These include:

  • 5kg reusable wholesale bags
  • Reusable cups with a discount
  • Reusable glass jars for consumables
  • Fully recyclable coffee bags for coffee sold over counter
  • Coffee husks go to chicken farm for bedding

However nothing was being done regarding milk bottle waste and milk waste, as there aren’t any reasonable solutions. Talking to a barista (Alecia) at an independant cafe, further confirmed most of my knowledge with the added input of adding milk waste. Milk is discarded when baristas steam milk, as they often don’t pour the exact quantity into the jugs.
This is where my project really began, as I saw large quantities of milk bottles being thrown away, concurrent with where I work as a barista. This is what gave me the drive to create a solution to combat this inefficient design.


After looking into current methods of delivering liquids in bars, restaurants and industry, I bought a used home draft beer dispenser and put milk in one of the disposable kegs. Parade & Albany used this hack to test the viability of having milk on tap, and the type of workflow changes that would occur if implemented. I also had the opportunity to perform a further interview, with some of the other baristas and the owner, which allowed me to look into workflow and deliveries. The hack was successful in showing that it was easy to add such a device, however it was not suitable due to its large size and use of single use plastic kegs. Something had to be made which used a reusable container.


I set myself some specification points, to keep myself focused and on track with the project, as well determining what were the most important requirements, such as speed, to ensure workflow wasn’t disrupted but made better.

  1. It must dispense 300ml in under 5 seconds accurately and consistently to the nearest 5ml
  2. It must have a manual dispense mode or easy to access manual dosing
  3. It could include a jug rinser
  4. An array of containers must fit within a standard supermarket delivery cate (600 x 400 X 200mm)
  5. The milk must remain at 5C or below throughout the entire system for 2 hours
  6. The kegs should be an existing standard, for example from the beer industry to reduce start up and accessibility costs

Prototype Manufacture

3D Prototyping

All CAD models were done on solidworks and the files are available on Thingiverse as both STL files and the original Solidworks Part.

3D Printing

LAC is specifically designed for 3D printing, as that is its final manufacture method. This allowed me to purchase a 3D printed that has been used extensively for this project, as well as helping lots of other students during the lockdown.


3D printers allow makers to create injection moulded like parts easily and cheaply, however they need lots of tolerancing work if they are to work well together

Overall there were many prototypes and the key details tolerances are shown below.

The proximity switch needed to be out of the way so it would not produce false reading, but also not too inconvenient. It was placed on the back left of the device, which also allowed the electronics to fit properly within the casing.

This image shows the first iteration of the main body. this required lots of support which was complicated to remove and not ideal. The orientation was then changed to be the face plate being screwed onto the front, allowing the device to be printed from the back face.

Here are the fitment parts which join the two devices together. The left device doesn’t have feet, which caused LAC to fall over, whereas the small feet at the back can be seen. When the gastronorm is emptied, the device will stand up by itself.

Thread Fittings

Thread fittings are standards across the UK and globe. They Are readily available in both commercial retailers such us screwfix and homeware stores such as B&Q. Using these as part of the design allows for the design to remain the same across the country but also means that it will fit together properly wherever it is made.

For attaching the tap, there are 2 different types available which fit the need well, one for a tank and one which is a converter from BSP male to 22mm compression fitting. I will be focusing on the BSP converter as it is easier in install, however will be producing an option design for the tank fitting.

The BSP fitting is standardised at – 1 inch with 11 teeth per inch (TPI – 2.309mm). This is easily created in solidworks using the thread tool, by changing the pitch on the 1″ 8 thread.

Showing 22mm tank fitting

This was incorporated into the design and both mounting methods works well in the final instance. Lots of tests were done to make sure that the tread would fit well, as well as changing the height of the device so that the fitting could be inserted. This was change in the tread fitting section. Changing the hole size (making it larger) ensured that is was good straight off the printer fit.

Gastronorm Fitment

I chose to use standard fittings, so I also used a standard very common in cafes and restaurants. The plate that sits on the gastronorm is required to be a push fit, and each iteration had slight modifications done to improve the fitment. Careful drawing measuring was also undertaken at the start of its design to achieve the best fit in the shortest possible number of iterations.

Code and circuitry design for the timed pump experiments.

Both potentiometers and rotary encoders allow for a variable input to an arduino, however despite being more complex to code, I chose to use a rotary encoder as it allows for an infinite gain and can rotate more than 360 degrees, which potentiometers do not. This means that it will allow more flexibility when determining how much milk will be dispensed.


The type and rating for the pumps are important in order to ensure that service is not slowed down. The estimated rate of no less than 2.5l/minute. This was based off of it taking around 5 seconds to dispense 210ml of milk, which is roughly a latte before steaming.

Pump options varied from windscreen washer pumps to medical pumps, however very few were rated for food grade use. Research ended with the M400 micropump from RS Components. It runs on 12V 0.5A max and the speed can be varied by controlling voltage, however this is unlikely as full flow will be optimal here.

Chosen Pump

M400 Pump
  • 5mm ID flexible tubing
  • Food grade fittings and specifically rated and tested for milk
  • Only need 2 connections GND and +12V 0.5A( max)
  • 380mbar of pressure

Pressure Calculations

Following on from choosing a contender for the pump, I needed to check the pump could operate at the correct pressure. 1.5 metres is an overestimate of the height which the milk has to rise, however it is much better to have a more capable pump than one that will not produce the milk.

p = ? (pressure) h = ~1.5 metres SG = ~ 1.035 for milk (Specific Gravity)

p = 0.0981 x 1.5 x 1.035

p = 0.1015….. bar

p = ~105 mBar

(required) 105 mBar < 380 mBar (pump)

Therefore the chosen pump has more than 3 times the pressure required for the proposed estimate.

Tubing Requirements

5mm ID (8mm OD) food grade silicone tubing, common to what is already used in coffee machines and other liquid distribution devices. Flexible and low cost, it is easy to cut and fit to the correct shapes.

It however it needs some sort of insulation or active cooling to ensure that the milk doesn’t drop below to required safe temperatures.

Measuring temps of milk with and without insulation

With insulation after 1hr outside – 4.6 degrees

Without insulation after 1 hrs outside – 9.4 degrees

Transportation and storage

Ideally I would use existing beer kegs that have been properly cleaned and sterilised, however the kegs are normally held onto as assets until they cannot be safely used anymore. The problem with beer kegs is that they are large and overbuilt for milk, therefore bulky and unlikely to fit into fridge found at a cafe.


Since the pump is 12V 0.5A i need to use a relay and mosfet

I tested both mosfets and relays, however relays are easier to work with and don’t require as much circuitry as a mosfet.

NO (Normally On) – When switch is HIGH, Relay is connected

NC (Normally Closed) – When switch is LOW, Relay is connected

Arduino with a relay connected to an LED

I tested the relay switch with an LED to start with, as it was easier than priming the pump every time I was trying to debug. I was focused on getting a working connection from a relay to the LED/Pump.

Depending on what pumps are available, so may be AC or high voltage. A relay is the best choice compared to a MOSFET which would have to have various different calculations done to ensure its safe operation


With all the electronics fully working, i needed to condense them to fit within the casing of the device. I could CAD something up, but i enjoy practical work and so decided to physically make the circuit board, Since the university was shut due to Covid-19, I needed to use a veroboard to solder it all together.


The ATMEGA328P U can be pulled out of the arduino and by using an external clock, can be used without the arduino board. This allows for a more compact device and the code doesn’t need changing.

This is the link to the methods used to bootload and then upload the sketch to the microprocessor in order to run a ‘standalone arduino’.


This didn’t eventually work hence the previous section using the ATMEGA328P U. The principal is the same however, with the first step convert the pins on the arduino to the pins of the ATTiny84 microcontroller that I am going to use. I have chosen this microcontroller, as I have used it for other projects and I have one on hand to use, as well as the number of pins available. Below is what pins on the arduino match the pin physical pins on the ATTiny84 chip

FunctionType of PinArduinoATTiny84Code
Blue_LEDDigital (PWM preferably)9103
Proximity SensorDigital13130

I encountered a problem using the wire.h library with a the ATTiny84 chipas the microprocessor doesn’t have full I2C capabilities. This required the whole code to be rewritten for the TinyWireM library. However, following on from this, the code had to be rewritten for the screen library and the following arduino library was used.

This library is prewritten to allow an OLED screen to work with the ATTiny84 and is a modification from another existing library. Since all the functions have different names, some of them are listed below

#include <TinyWireM.h>
    // initiates the use of the TinyWireM library
#include <Tiny4kOLED.h>   // initiates the use of the screen library

ATTiny84 data sheet –

Arduino Pinout Diagram

Screen and Rotary Encoder Problems

As my previous code didn’t use interupts to read the signals from the rotary encoder, the screen and encoder were very stuttery.

This was because the arduino is constantly updating the screen and therefore missed steps from the rotary encoder. This link provided a lot more information that was used to progress with the project and create a rotary encoder sketch which update when it is supposed to.

The resource above is very useful in laying out the code in a way that can be replicated in any sketch. Understanding what each part was doing was very useful, as each line had a good description of what that specific line did.

Supply Chain Development

Understanding how the product will get delivered to the customer as well as the keg supply chain is key to the distributed design part of the specification.

Reducing in plastic waste is the goal, so reusable containers which can be refilled make sense. They work for the brewing industry among others, so there is a lot of the infrastructure and design there, so it just needs adapting.I based my system off home brewing kegs available, 4 of which fit within a standard food shipping container which are currently used to deliver milk.


The design of the device was made for variation and self assembly. This meant that it was relatively easy to assemble at home and I even managed to solder the copper pipes together on the stove. This is a proof of concept of the requirements; made anywhere by anyone. The board would not be manufactured by the end user, but would be sold as a kit to be assembled with shop bought pipes and fittings.


Hygiene is a very important aspect of the project. Post COVID-19, cafes may be required to improve their hygiene and reduce the amount of contact with both supplies and their customers drinks. The choice for a proximity sensor reduces this even further than the main concept of the project.

Here the proximity sensor can be seen. This was the final outcome comparing physical switches, foot switches and proximity sensors.

Feedback from Baristas

Due to COVID-19 I was unable to return to the two coffee shops that I was working with, however a video call was possible with one of the baristas that I was originally working. The device demonstrated the device and the interactions via a video watched before the video call so she could form her own opinions. This is not an extensive form of testing, however I felt my experience as a barista allowed me to choose the best interactions. I settled on a proximity switch, indicator LED, stepped rotary encoder and an audible click when the device was activated. A video demonstration is available in the sketchbook

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s