“Sprint to Success” and Other Agile Stickers and Swag

Another project completed!  What does it do?  It sticks to things and looks cool.  That’s right – stickers!

I haven’t done much design work lately, so I recently fired up my new Adobe CS6 Suite tools to create some cool stickers to promote agile and agile practices.  In addition to working on Tinkurlab projects, I happen to be a Scrum Master for agile software development by day – working on projects to create websites, mobile websites, mobile apps, other interesting things.  And I’m a huge believer in agile principals, methodologies, and tools – from Scrum to Extreme Programming to Kanban to the collective knowledge and experiences of all the great agile doers out there who get stuff done done with agile.  Anyway, here are a few of the stickers; you can check out the full collection in the Cafe Press store (and buy them as well).  Stick them everywhere you can!  Enjoy!

Check out the full collection at http://www.cafepress.com/agileswag.




Tagged , , , , , , , , , , , ,

Das Bot 2.0 – Now with more beer!

How quickly time goes by.  It seems like we only just completed Das Bot v1.0, but with Oktoberfest 2012 quickly approaching we started one of the biggest projects we’ve completed to date – Das Bot 2.0.  Instrumented beer on a grand scale!

The final setup, ready for the party to start.


Das Bot is a system for monitoring and controlling access to beer through RFID tags. Built on top of an internet-connected Arduino, the system accepts an RFID tag, checks to make sure you’re registered, opens the solenoid valves in the beer lines, lets you pour a beer and monitors how much you’ve poured, saves the data to a database, and prints out a receipt. Oh, and there’s prize badges you can win as well. There were three beers on tap this year (a homebrewed Dunkelweizen, a homebrewed Hefeweizen, and a Hofbrauhaus Oktoberfest) and each beer was tracked independently.

The Hardware

Das Bot contains the following pieces of hardware:

  • Arduino (with Ethernet shield) – the brains of the operation. This micro controller is what reads the RFID tags, talks to the PHP/MySQL site, controls the solenoid valves, prints to the thermal printer, and reads the data from the flow meters.
  • RFID Reader – reads the values from the RFID chips and sends the value to the Arduino.
  • 3 Solenoid Valves – similar to the ones on Adafruit’s site, these valves are normally closed (restricting access to vital beer) and are only opened when the Arduino gives the go ahead. After 10 seconds of no beer flowing, they close again. Since these draw more current and run at 12v, we used an old 12v wall wart we had laying around to power these (through the relay).
  • RelayThis relay controls the power to the solenoids.
  • 3 Flow Meters – we used the ones from Adafruit to send the flow data to the Arduino.
  • Thermal Printer – printed a welcome message, current stats, and final pour total for each pour.
  • Electrical Box – from the big box home improvement store, this water (and beer-proof) project enclosure was perfect for housing the Arduino, printer, and other electrical components.
  • RGB LED – when the light turns blue, pour your beer
  • Piezzo Buzzer – something this complicated needs to beep. Ours beeps when an RFID is successfully read.
  • Jockey Box – this converted cooler has a 7-pass plate chiller inside and once covered with ice, chills the beer as it flows through. This means no need to keep the kegs in giant plastic tubs with 800lbs of ice.
  • Tap Handles – no jockey box is complete without custom milled tap handles.
  • The Override Switch – this can not be over-appreciated. Buried in an undisclosed location was a switch that would override the arduino and open the solenoid valves. In the event of catastrophic failure, this is the switch represented the difference between beer and no beer. I’m always going to support the side with beer.

Closeup shot of the solenoids

The override switch. Luckily, this wasn’t needed this year. But it’s nice to know it’s there.


The Software

The hardware was almost the easy part of this project. We had experience with Das Bot v1.0, so adding some additional sensors wasn’t too difficult. The hard part was getting everything to talk to each other at the right times, with the right data.
Here’s what the software side looked like:
  • Arduino code – this is the air traffic control system. When an RFID chip is read, it sends the data to a web service and gets back the user’s current status. If they’re not registered, they get one (and ONLY one) free beer before they’re required to register. The flow meters are opened and activity from the meters is recorded. After 10 seconds of no flow, the system closes the valves and sends the pour volume data to the web service. The Arduino then prints out a receipt listing pour volumes and any badges that were won on this pour.
  • PHP/MySQL – a website used to store and present data during the party. The web service components were built using some simple PHP with a MySQL back end. The dashboard (running on an iPad taped inside the kitchen window during the party) presented current keg stats, leaderboards, badge summary, and other interesting bits of info. We also included the calibration for the flow meters in the database to allow for different keg sizes and to help more accurately record the data.

The welcome message displayed once an RFID tag is scanned

 The Dashboard

Want to become mayor of the Hofbrauhaus? Brag about having the largest drinking vessel? Why not turn an entire party into a drinking game? With all of the data we were collecting, it seemed natural to present this information back to the user. The thermal printer can only present so much data. The kegs were also under the table, making the “just lift it to see how much is left” method rather difficult. So, we created the dashboard to give a quick way to see how much fun we were having (note to self: next year, add a “fun” meter).

The dashboard presented the current leaders, the amount of beer consumed for each keg, the 5 most recent pours, and some other random stats. Some badges were mysteries, only visible once unlocked. Others were hinted at by the icon. Either way, the best way to win a badge was to drink beer. Actually, that was the only way.

How much fun are we having right now? Oh, THAT much. This was displayed on an iPad safely taped to the inside of the kitchen window. It was visible from the taps.

Future Enhancements

Some ideas for the 2013 Oktoberfest:

  • Integrate the photobooth – haven’t been inside the booth in the last hour? No beer for you!
  • More badges to win – need target different needs in people’s psyche, not just the “I drank more than you did” desire
  • Allow “offline” badges – someone won the beer stein race, but we’ll never remember who it was. We’ll need a way to award spot badges from mobile devices.
  • More notifications when a badge is won – I’m thinking car horns, disco balls, or fireworks. Perhaps all three.
  • Breathalyzer integration – imagine tracking this against the volume consumed overlayed with the photobooth pictures. None of our friends will ever be politicians.


Additional images from the project:


RFID chips. Everyone got one. There were also zip ties to attach the chips to your beer stein.

The custom tap handles came out well.

The system, all condensed.

Water and electricity don’t mix, so we taped the electronics inside the cooler to the lid.

Additional photos can be found on Flickr




*Disclaimer – Please note that this system was built for responsible adults. EVERY person in the “leader boards” either spent the night (and likely much of the next day) at the location or were driven home by a designated driver. We might mix water, beer, and electricity together from time to time, but we certainly don’t drink and drive.

Tagged , , , , ,

Four Frames Photubooth


I love photographs. Their ability to capture a single candid moment of life. The play of light – black, white, shades of grey. Reminders of the people, places, and things that make life special. Ever since my friend Jim introduced me to photography as a teenager, I’ve had a special place in my heart for photography – taking pictures, post processing and darkroom, incorporating photography into my daily life and adventures, collecting vintage cameras, pushing myself to become a better photographer.  Out of all my photographs, the ones I enjoy the most are candid shots of family and friends. So I suppose  its a logic extension that I have a special interest in photobooths – the ultimate candid moment maker. Four Frames – four frames of uninhibited glory to do whatever you want. So with that love of photography and photobooths, TINKURLAB’s newest creation is the Four Frames Photobooth.

Four Frames Photobooth

A modified a dryer duct diffuser provides a finished opening for the camera lens. The extra room in the opening enables adjustment of the camera height and angle for different shooting situations.

The Four Frames Photobooth is based on an earlier photobooth named Das Booth created for our 2010 Oktoberfest party – “Fest”. Das Booth had no housing, with all the components freely exposed – a Nikon D200 digital SLR camera, a netbook computer, an Alien Bee 400 watt studio strobe, DIY Photo Bits software, and of course a big button. All this gear was setup in a small shed attached to our house (from the 1950s – it has odd storage locations). We also spruced up the inside shed, hanging black fabric on the walls and adding a small bench for those who didn’t want to hang upside down, through the door, do handstands, etc. After entering the booth, partygoers pressed the button, struck a pose, and took 4x pictures. After a minute of inactivity, a slideshow of random photos began playing on the screen – almost as popular as the actual taking of photos. The photobooth was a hit, and ever since has been an staple of Fest.

Four Frames Photobooth

Photostrip catch basket catches photostrips as they leave the printer, awaiting pickup by event guests.


Fast forward to 2012, Val and I had 4 weddings to attend in 2012, three of which were interested in having a photobooth. So as Matt and I started talking about all of these upcoming weddings, his among them, we decided to take Das Booth to the next level – to build a photobooth that would be of high reliability and quality (aka pretty to look at) for use at his own weddings. That seemed like a good high level acceptance criteria. We continued to discuss “must have” features, and decided on the following:

Automated Photo Taking

  • Show descriptive “how to start” instruction on screen
  • Press button to start
  • Take four photos
  • High quality photos and lighting
  • Save original photos and photo strips to computer

Print 2x Photostrips

  • Print 2x photostrip of four photos
  • Photostrips must be 2″x6″ (not 4″x6″ requiring manual cutting)

Highly Reliable and Self Sustaining

  • Zero failures during event usage
  • Take, store, and print 300+ photostrips of 4 photos each without materials replacement (paper, ink) during 5 hour event


  • Able to be set up in 30min or less by one person
  • Able to be torn down in 30min or less by one person
  • Must fit in a mid sized SUV

Well Packaged

  • Look good
  • Look professional
  • Something we’d want at our own wedding / event and would pay money for renting

We also kept a backlog of other “nice to have” features that may be implemented in the future.

So with our features identified we set a deadline of the end of March 2012 to have the new photobooth fully completed and tested to ensure ample time for the bride and groom’s to make other plans if the photobooth wasn’t ready in time. And as things often go, we started working on the photobooth in mid April 2012 – two months before the first wedding, and well after our deadline. Hey, it was ski season!  Gota get in the turns while you can.

Four Frames Photobooth

Locking wheels provide for mobility to and from the event location. A single 30′ power cord provides an umbilical for all power in the photobooth and is long enough to deal with far away electrical outlets – a common challenge at events.

Development and Testing

Because I already had a lot of confidence in the photography and automation aspects of the photobooth, our initial focus were on the largest risks:

Packing (the housing for the photobooth) took the most time of the project. We were trying to keep the costs down, so we were constrained by finding materials that looked good, were durable, but could also breakdown for our transportation and speed requirements – all at a reasonable cost. Matt, Val, and I all set out working on designs – together and independently, finding examples of photobooths that we liked, creating sketches, and periodically reviewing together.  In terms of material, we initially gravitated towards 80/20, dubbed the “industrial erector set, a system of aluminum stock and connectors that all work together to build almost anything. After learning a bit about 80/20 through online research, Matt and I created a specifications and a parts list. 80/20 is generally only sold through resellers, one of which offered to created a CAD schematic to validate the design – ours was spot on. After receiving quotes, the total cost for just the housing was coming to over $3000 – over our budget. The most expensive component were acrylic panels that would form the sides, top, and bottom of the photobooth. Realizing that spending so much money on a material we had never worked with, combined with the cost and looming schedule, I was hesitant to proceed. I also wasn’t happy with the look of the material – the design was busy – not simplistic and clean enough. So we did that anyone would do in such a situation – Matt, Val, and I went to Ikea and didn’t leave until we found the best possible solution – a large white cabinet of wheels that separated into two halves with a window on the top for the flash. About $200. Perfect. The exercise provided us a great constraint to work with what was available, and allowed us to move forward. We can always change the packaging in the future, after we’ve had some real world testing to learn more about the pros and cons.  We also decided to make the photobooth “open”, not having any enclosure for partygoers.  This is also something we can add in the future, but during testing we actually found out that allowing people waiting to use the booth to see people using the booth can actually create excitement and boost usage. Check.

Das Booth was fairly reliable. But sometimes it locked up. Or crashed. Maybe one or twice during a party – but still too frequently for someone else’s event. It was also important to us that the photobooth be highly reliable, not requiring any maintenance during an event. Given the looming schedule, we decided to buy a reliable and cost effective photobooth software package. While we will certainly want to do custom scripting in the future and may develop our own software, we felt the best decision was to invest the $150 rather then potentially invest $1000s of our own time without having enough real world testing to learn more. After a few rounds of testing the software, we confirmed it was rock solid. Check.

The last major area that needed presented a risk was the photo printing. After consulting with a friend who is a sports photographer and does onsite printing, we decided to buy a HiTi dye sublimation printer – that same type used in professional photo labs. The printer uses a roll of paper which is capable of printing 330 4″x6″ photos without replacing ink or paper, and has an average print time of 12 seconds. As an added bonus, the printer also cuts a 4″x6″ photo into two 2″x6″ photostrips. Perfect. Check.

The first integrated test of the photobooth occurred one evening when George and Matt, two of the grooms, were over for dinner. What better way to convince potential clients then a demo! After setting up the gear in the middle of our living room, we took a few test shots. Awesome! I love how everyone just knows to act crazywhen there’s a photobooth. Both “clients” were convinced and we also got some great photostrips as well.

Four Frames Photobooth

The finished photobooth, complete with flash diffuser, camera, touchscreen, and photostrip catch basket (left).  A very clean design.

More to come in another post about alpha and beta testing (aka weddings), example photostrips, and what’s next. Stay tuned for posts in the near future.  Until then, check out www.FourFramesBooth.com.


  • Ikea Cabinet
  • Fluorescent Light Cover Material (for flash diffusion)
  • Nikon D200 camera and 28 f/2.8 lens
  • Tripod Ball Head (for mounting camera to shelf and providing adjustability)
  • Dryer Duct Diffuser (for camera lens cut in cabinet)
  • Alien Bee 800 watt Studio Strobe
  • Lug Bolt and Nuts (for mounting flash to shelf and general in cabinet mounting)
  • Asus Netbook Computer
  • Photobooth Software
  • HiTi Printer
  • HiTi Paper and Ink
  • Wire Basket (for catching photostrips)
  • Power and Data Cables

Four Frames v.Next Potential Features

  • Interaction with social media (Facebook and Twitter)
  • Allow users to tag photos or automatically tag using RFID or NFC
  • Create interaction with other products (ex. Das Bot)
  • Gamification
  • Allow users to request reprints
  • Taunts (when inactive, taunt users to take photos)
  • Other Activation Methods (sound, motion, face detection)
  • Random Timing (take random number of photos and/or random timing)



Tagged , , , ,


Having the right tool for the job sure makes it easier.  So I’m happy to say we finally got our CNC machine working and made our first cut – a TINKURLAB sign cut out of 1/4″ plywood.  More details to come, but this should certainly help with fabrication for projects.

CNC First Cut


BBQ Lab (v1.3) – Dashboard

While BBQ Lab captures all sorts of good data – its equally important to make that data into useful information that can easily be used.  While BBQ Lab has always used Google Charts for visual graphs and trending, BBQ Lab v1.3 included quite a few new visualizations including the new “gauge” view that has a round gauge for each metric – smoker temperature, smoker humidity, food temperature, and smoke density.  Each gauge contains a min and max value and is color coded for ideal (green), ok (yellow), and bad (red) ranges, which allow for easy viewing.


BBQ Lab 1_3 Screenshot 1.fw


BBQ Lab v1.3 also includes “over time trends” to show trends in the metrics over time.  This can be useful to identify trends and take action.  Ex. smoke density is decreasing – add wood.

BBQ Lab 1_3 Screenshot 2.fw


The data can also be correlated together to provide meaningful information about “events”.  In this event, more wood was added to the smoker.  The act of opening the smoker to add wood decreased the temperature by allowing hot air our and cool air in.  The wood is also soaked in water to prolong its smoking; however, this initially reduces the smoke output until some of the water evaporates, which also temporarily increased the humidity.  Therefore,  this series of data could be correlated together programmatically to identify a “wood added” event.

BBQ Lab 1_3 Correlation Analysis New Wood.fw



BBQ Lab (v1.3) – Smoke Density

BBQ is about low, slow, and smoke. And while the temperature sensors in BBQ Lab have already take care of the low and slow part, none of the instrumentation really addresses the smoke part.  So the newest upgrade to BBQ Lab in v1.3 is the addition of a smoke sensor that measures the smoke in parts per million.  I’m not actually as concerned with the exact measurement of the smoke as I am within the ability to relatively measure it throughout the duration off a BBQ.

The sensor is relatively simple – a MQ-2 sensor that detects the presence of smoke in parts per million and outputs an analog voltage that corresponds to the measurement range of the sensor. A 0 voltage corresponds to the low range of the sensor and a 1023 voltage corresponds to the high range of the sensor. Everything else in between represents gradients between the ranges. I any case what matters to me is identifying a reading that corresponds what I consider “good smoke output” and displaying the measurements via the trending graphs and real time alerts so I can take action based on the information.
BBQ Lab Propane Sensor

MQ-2 Smoke Sensor

BBQ Lab Propane Sensor

Knob to Adjust Sensitivity

I also ordered a bunch of other gas sensors, including a MQ-6 sensor that detects the presence of propane gas, which I’m to use to detect when the smoker’s flame blows out – such as on windy days.  I’m also working on adding a automated propane control value that throttles the propane to achieve an ideal temperature – so the sensor can be used as part of a safety control system.
Hopefully I’ll be making a BBQed Brisket this week – so stay tuned for notes, pictures, and video.
Tagged , , , ,

Das Bot – Instrumented Beer

Oktoberfest is a big thing – BFD – in our household. We love beer, we love sausage, and we love hanging out with our friends. So what better way to celebrate those things then an annual Oktobesfest party. Our first “Fest” was held one week before my wife and I got married in 2008. It was informal and ad hoc – some bratwurst sausages, six packs of good beer, and friends sitting around a firepit on our side patio. Since those days, Fest has grown into a much bigger affair, complete with an Oktoberfest tent, photobooth, stump, homemade sausages, and homemade beer compliments of Matt and Matt – two of our friends who are also excellent beer brewers.

We first hosted the Matt’s beers at the second Fest, creating The Trasherator out of a large rubber trashcan fitted with 3x beer taps and ample space for ice and 3x 1/6 beer kegs. So what could make this situation any better you ask. Das Bot!  Das Bot is an Instrumented version of The Trasherator that measures how much beer is consumed by each guest and keeps a running total of consumption complete with a leader board of stats.
The scenario works like this:

  1. A new drinker pickups a small key chain RFID tag and swipes it over Das Bot’s tag reader. A led light blinks confirming the tag has been read.
  2. If its a new drinker, Das Bot prints a message using a thermal receipt printer welcomes the drinker, asking the drinker to register, and advising the drinker they will recieve one beer without registering. If its an existing drinker, Das Bot prints a message with the drinkers consumption total.
  3. Das Bot opens solenoid valve in the beer lines enabling the flow of beer. The drinker has up to 10 seconds of inactive beer flow to pour as much beer as they want. As the beer is being pored, Das Bot is keeping track of how many ounces have been poured using a flowmeter in the beer line.
  4. Once the drinker has stopped pouring beer, Das Bot prints a message with the drinkers new total consumption and a summary of the top three consumers.
  5. Das Bot also has a web interface tat can be accessed via desktop and mobile web browsers enabling drinkers to register, provide their nickname, and check the overall leader board and % of beer renaming in the keg.

Das Bot v1.0 was a big project so I enlisted the help of my friend Matt. Matt and I only started the project in earnest about a week and a half before Fest. We started with a envisioning session with a whiteboard, identifying the overall features and process flow, and discussing implementation plans and potential risks. We self assigned work based on our abilities and focusing on higher risk features first. While Matt worked on the enclosure, mounting, and wiring, I wrote code for each individual component – the RFID reader, the solenoid, the flowmeter, the Ethernet network interface and web service calls. After figuring out the electrical interfaces and code for each component, I started coding them together into the over process. Matt and I would periodically break to discuss progress, make additional implementation decisions, and help each other with impediments. We worked this way for a few nights, making steady progress. Matt also created the web service interface and web site. After some hasty testing Fest was upon us. As a final feature we added a kill switch that would bypass the system allowing beer to flow freely in the event of a malfunction. There’s noting worse for a beer dispensing robot then angry beer drinkers with no beer.

“There’s noting worse for a beer dispensing robot then angry beer drinkers with no beer…”

And so the day came – the day of Fest. With all the other preparations we were a bit rushed to setup Das Bot but successfully installed it on a single 1/6 keg. At first, all seemed well. But soon we found that Das Bot was only pouring for 10 seconds regardless of if there was flow or no flow. Translation – only 10 seconds of beer. Not enough to fill a 1L stein. Angry beer drinkers. They put up with it for a bit, but we eventually activated the kill switch to placate the drinkers.
A few weeks later Matt and I sat down to triage the bug. It turns out we missed a single line of code that activated a pull up resistor on the Arduino board that stabalized the reading from the flowmeter. Turns out the flowmeter wasn’t registering any flow they tripping the 10 second cut off and thereby angering the beer drinkers. One line of code. Sigh. But we fixed it! And did more extensive testing this time. Das Bot is patiently waiting for the next Fest – and maybe a few summer BBQs (for beta testing of course).


  • Arduino Uno
  • Arduino Ethernet Shield
  • Solenoid value
  • Flowmeter
  • RFID reader
  • Thermal receipt printer and paper
  • PHP code and Database and server running Apache and mySQL
  • Website
  • Misc supplies – wire, tools, etc

Das Bot v.Next Potential Features

  • Badges awarded for certain achievements
  • Adding support for additional beer lines
  • Improving packaging to allow for faster setup and teardown, especially for quick connections for beer inflow and outflow lines
  • Addition of breathalyzer to track each users progression over time
  • Itegration with the Photubooth that earns credits that can be redeemed for beer
  • Integration with Twitter


Tagged , ,

Visualization and RoadLogger

As I recently tweeted, “Information is no longer a scarce resource – attention is”.  While technology, the internet, and the web of things have made amazing things possible, they have also given rise to vast amounts of information that are accessible almost anywhere at anytime.  Given this overload of information and often trying to find better way to determine what information is relevant and to improve the effectiveness of consuming it, I’ve recently found myself intrigued by data visualization – taking lots of data, analyzing it , and presenting it in a visual way that conveys a different point of view then the data could alone.  As a photographer, the phase “a picture is worth a thousand words” comes to mind.  And so to learn a bit more about this area of tinkuring, a few months ago I started reading Visualize This: The FlowingData Guide to Design, Visualization, and Statistics in which Nathan Yah describes his approach to visualization, including tools, approach, design – quite an interesting mash up of disciplines.

Realizing the first step towards visualization if to have data to analyze, I created a Arduino project called RoadLogger to use on a roadtrip to New England last summer with Val.  RoadLogger (v1.0) logged the location, speed, altitude, direction, and driver of our car ever second, using a USB GPS antenna and a microSD card to data storage.  While I haven’t had time to post info about RoadLogger and finish analyzing the 32,000+ datapoints, I’ve been thinking about what might be interesting way to analyize the data and present it visually.  Here’s a quick list of thoughts:

  • How many miles did each driver drive?
  • What was our average speed per state?
  • Who was the faster driver?
  • What was the average time from 0 – 60 mph per driver?
Any other ideas?

Until I get around to doing some more work on this project, check out my first basic visualization “Am I A Foodie” at another one of my blogs Until It’s Done.


Tagged , , ,