Just discovered Kegbot


Cool! ill just try a few things and let you know :stuck_out_tongue:


Hey tripub,
Did you ever get the nfc working and did you need a special firmware? What do you need and how would you plug it in the arduino? Besides the tablet… thanks for all youre help!


I didn’t load any special kegboard firmware to my arduino. I am using NFC via the tablet and it works fine (as long as you turn “ON” the on-screen login while you are programming your fobs.)


Good to know, thank you. Are you using the nexus 7 and do you have a solenoid installed to block until nfc initiated . Thats where i was lost… where to plug in the soleniod via arduino and what soleniod i would need. Sorry to kee bugging you. I appreciate all youre help. Just orderd everything i need to get going, i think.


Yes - I am using the nexus 7 (2012.) I did have to flash Cyanogenmod as the OS of the tablet in order to get the Y cable to charge the tablet and use the kegbot connected via USB at the same time.It works fine otherwise, you just can’t charge and use it at the same time.

I do have a solenoid in line for both taps that is closed until the NFC keyfob logs in. If memory serves, the solenoids plug into A0 and A1 ports on the Arduino for taps 1 and 2. Depending on the solenoids you bought, they are most likely 12v and you cannot plug them directly to the arduino without a relay. I had a few MOSFET transistors laying around and used those, but you can just buy a small relay as well.


Can suggest a solenoid valve or the one you have? After that i think im set for hardware


I just went with the cheap china 1/2" DC solenoids then got some 1/2" threaded fittings from my local hardware store.


Thanks for all youre help. Im going to be hooking up the arduino, flow meter and tablet tomorrow. When i get that working good Ill get the soleniod valve.


This might help you get that board going. I recieved a clone and am sol… So I have to buy one now.


I did get the cheap knock off to work on the computer and could upload the firmware to it. The issue is that the drivers aren’t there in the tablet to work with the board. A genuine uno will work and I believe the newer Leonardo boards, even knock offs, do work because those have a different USB serial adapter. I think you just have to update Serial to Serial1 in the code if you use a Leonardo. There is a forum post about that.


I was planning on trying to make this work as well. I have a raspberry pi 3 already that I was planning on using as the server since I already have one.
I was planning on getting the Arduino UNO R3 Board Module With DIP ATmega328P from amazon
I have two flow sensors already from adafruit I am assuming from the configuration I just need to have the data pin go on 2 and 3 on the arduino?
I also have a dht22 from adafruit which im assuming I would put on pin 7?
Also does anyone know just incase I need to change the flow sensor ticks where can I find the code to alter it.

My biggest thing Is I would like NFC has anyone hook that up and if so what have they used as the NFC reader and writer? how have you implemented it what product to you recommend?


What cyanogen mod are you using and kernal? I have 10.1 cyanogen mod with the usb rom but am unable to finish setting up production mode. Keep getting unable to srart nginx


Can you ever shut you’re tablet off? If i shut it off then try and run kegbot runserver it gives my a bunch of errors. Also i am activated in virtualenv, I think it might have something to do with mysql


My tablet is dedicated to the tap so on 24/7, If I shut down the server first no problems. But my kegbot server crashed last week and it looks like something got corrupted so I might have to re-install it. Haven’t had the time to troubleshot the issue.


How do you shut down the server? Volume down and c? What exactly does volume down and z do? Also are you running in production mode? When i run pip install -U kegbot it gives me an error install protobuf on nexus 7. Thanks for the help


Not in production mode and I think the vol and c is how I shut it down when needed.

Here is my current dilemma:

Performing system checks…

System check identified no issues (0 silenced).
Unhandled exception in thread started by <function wrapper at 0x425a9e30>
Traceback (most recent call last):
File “/kb/local/lib/python2.7/site-packages/django/utils/autoreload.py”, line 222, in wrapper
fn(*args, **kwargs)
File “/kb/local/lib/python2.7/site-packages/django/core/management/commands/runserver.py”, line 107, in inner_run
File “/kb/local/lib/python2.7/site-packages/django/core/management/commands/runserver.py”, line 159, in check_migrations
executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
File “/kb/local/lib/python2.7/site-packages/django/db/migrations/executor.py”, line 17, in init
self.loader = MigrationLoader(self.connection)
File “/kb/local/lib/python2.7/site-packages/django/db/migrations/loader.py”, line 48, in init
File “/kb/local/lib/python2.7/site-packages/django/db/migrations/loader.py”, line 183, in build_graph
self.applied_migrations = recorder.applied_migrations()
File “/kb/local/lib/python2.7/site-packages/django/db/migrations/recorder.py”, line 59, in applied_migrations
File “/kb/local/lib/python2.7/site-packages/django/db/migrations/recorder.py”, line 49, in ensure_schema
if self.Migration._meta.db_table in self.connection.introspection.get_table_list(self.connection.cursor()):
File “/kb/local/lib/python2.7/site-packages/django/db/backends/init.py”, line 165, in cursor
cursor = self.make_debug_cursor(self._cursor())
File “/kb/local/lib/python2.7/site-packages/django/db/backends/init.py”, line 138, in _cursor
File “/kb/local/lib/python2.7/site-packages/django/db/backends/init.py”, line 133, in ensure_connection
File “/kb/local/lib/python2.7/site-packages/django/db/utils.py”, line 94, in exit
six.reraise(dj_exc_type, dj_exc_value, traceback)
File “/kb/local/lib/python2.7/site-packages/django/db/backends/init.py”, line 133, in ensure_connection
File “/kb/local/lib/python2.7/site-packages/django/db/backends/init.py”, line 122, in connect
self.connection = self.get_new_connection(conn_params)
File “/kb/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py”, line 472, in get_new_connection
conn = Database.connect(**conn_params)
File “/kb/local/lib/python2.7/site-packages/MySQLdb/init.py”, line 81, in Connect
return Connection(*args, **kwargs)
File “/kb/local/lib/python2.7/site-packages/MySQLdb/connections.py”, line 193, in init
super(Connection, self).init(*args, **kwargs2)
django.db.utils.OperationalError: (2002, “Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (111)”)


That is what happens when i shut off my tablet if you activate virtualenv and type service mysql start it allows you to kegbot runserver… But the server lettering is purple and does not allow you to log all the way in for some reason. Im a noob when it comes to linux. so we just have to figure out how to run msql as the user you set up kb under. That is if we are having the same issue.


yup that lets it run but same purple error. Hopefully someone more versed will chime in.

Here’s my errors

(kb)[email protected]:/kb/bin# kegbot runserver
Performing system checks…

System check identified no issues (0 silenced).
May 09, 2016 - 16:42:10
Django version 1.7.10, using settings ‘pykeg.settings’
Starting development server at
Quit the server with CONTROL-C.
[09/May/2016 16:43:30] “GET /api/v1/version HTTP/1.1” 500 12462
Traceback (most recent call last):
File “/usr/lib/python2.7/wsgiref/handlers.py”, line 86, in run
File “/usr/lib/python2.7/wsgiref/handlers.py”, line 128, in finish_response
File “/usr/lib/python2.7/wsgiref/handlers.py”, line 212, in write
File “/usr/lib/python2.7/wsgiref/handlers.py”, line 270, in send_headers
File “/usr/lib/python2.7/wsgiref/handlers.py”, line 194, in send_preamble
’Date: %s\r\n’ % format_date_time(time.time())
File “/usr/lib/python2.7/socket.py”, line 324, in write
File “/usr/lib/python2.7/socket.py”, line 303, in flush
error: [Errno 32] Broken pipe
[09/May/2016 16:43:30] “GET /api/v1/version HTTP/1.1” 500 59

Exception happened during processing of request from (‘’, 56299)
Traceback (most recent call last):
File “/usr/lib/python2.7/SocketServer.py”, line 599, in process_request_thread
self.finish_request(request, client_address)
File “/usr/lib/python2.7/SocketServer.py”, line 334, in finish_request
self.RequestHandlerClass(request, client_address, self)
File “/kb/local/lib/python2.7/site-packages/django/core/servers/basehttp.py”, line 129, in init
super(WSGIRequestHandler, self).init(*args, **kwargs)
File “/usr/lib/python2.7/SocketServer.py”, line 657, in init
File “/usr/lib/python2.7/SocketServer.py”, line 716, in finish
File “/usr/lib/python2.7/socket.py”, line 279, in close
File “/usr/lib/python2.7/socket.py”, line 303, in flush
error: [Errno 32] Broken pipe


Is there any way you can give me layman’s terms in hooking up the relay, cheapest way possible?? I understand it goes to A0 but how do i hook up the mosfet transistor??


I bought similar flow meters. The threads on the end seem to be an odd size. I can’t seem to find something that will go from those threads to a barb so I can insert them in my lines. Any suggestions about how you did that on your system?