I made an improved Version of the Brewpi from the last Post, it is now possible to connect it directly to the display. Everything was designed to minimize footprint and cabling.

Please use ceramic and not electrolytic decoupling capacitors.

The PCB i used for the new build is double sided, literally. The advantages are that its easy the solder the reversed female headers for the display. It is also much better quality than the cheap PCB i used for my last build where the contacts came of the board when heated for a little bit too long. The disadvantage is that you have to be very careful with the jumper wires on the top side, they have to be isolated and double check that they don’t short with wires passing bellow.


Here are the schematics:

brewpi_improved_2 brewpi_improved_3

And in B/W:



Ground Points


Parts List:

Bluetooth 4.0 USB Module [Amazon][Ebay]
Bluetooth-Serial Module HC05 or HC06 [Amazon][Ebay]
Arduino Pro mini [Amazon][Ebay]
DS18B20 Temp SensorsĀ  [Amazon][Ebay]
LCD Display 20×4 [Amazon][Ebay]
Double Relay or SSR [Amazon][Ebay]
Rotary Encoder with Button function [Amazon][Ebay]
Shift Register 74HC595 [Amazon][Ebay]
Universal Board 5x7cm [Amazon][Ebay]
Raspberry Pi [Amazon][Ebay]
Raspberry Case [Amazon][Ebay]
USB Wifi Adapter (get one that works) [Amazon][Ebay]
8GB MicroSD Card [Amazon][Ebay]
10k Trimmer [Amazon][Ebay]
Male Headers [Amazon][Ebay]
Female Headers [Amazon][Ebay]
IC socket 16 Pin [Amazon][Ebay]
4x 0.1uF Capacitor [Amazon][Ebay]
1uf Capacitor [Amazon][Ebay]
3x 10k Resistor [Amazon][Ebay]
1k Resistor [Amazon][Ebay]
2k Resistor [Amazon][Ebay]
7805 DC-DC Converter [Amazon][Ebay]
2N3906 Transistor [Amazon][Ebay]

Some pics of the build




Everything stacked together



Compared to the last build


It is not possible to program the Arduino Mini over Bluetooth, so i had to program the hex file before installing it.

I run into some problems when i tried to configure the devices the would just not save.

After some searching i found that it had to do something with the Arduino EEPROM, so i programmed the following code on the Arduino and run it once.

* EEPROM Clear
* Sets all of the bytes of the EEPROM to 0.
* This example code is in the public domain.


#include <EEPROM.h>

void setup()
// write a 0 to all 512 bytes of the EEPROM
for (int i = 0; i < 512; i++)
EEPROM.write(i, 0);

// turn the LED on when we’re done
digitalWrite(13, HIGH);

void loop()

But still the configured devices would not save. After some more testing i found that it just needed the reset eeprom command sent from the raspberry pi.

Just reset the EEPROM with the following command:

echo -ne 'E\n' > /dev/ttyACM0

If this Article was useful to you, please consider to buy me a Beer.

Leave a Reply

Your email address will not be published. Required fields are marked *