Introduction: Electronic Market Minder Board

I constantly run out of groceries. This usually happens in the most inappropriate moment. There is neither a phone nor a notebook at hand, your are covered in flower and grease in the middle of a kitchen mess.

So, I decided to create a gadget that would allow me to mark a missing grocery with a touch of a button. The gadget would transfer the info about missing items to my phone and will respond to me purchasing the missing stuff.

I want to share how I built this gadget.

Here is a demo of what I have built:

Step 1: History

I have first seen a Market Minder while browsing an antique store. Housekeepers in the early XX century used to keep a board like this on the wall. When they ran out of a certain grocery they would put a peg near item's label. When people who helped around the kitchen got missing items they would remove the pegs.

After learning about this gadget I felt like I have to take this technology into the XXI century.

Step 2: System Design

The system consists of the three element:
1. Board
2. iOS App
3. Server
The board sends a request to the server when a button is pressed. The server saves a state and uses Apple Push Notification to notify the iOS App. The app queries last state from the server and sends updates about purchase items. The board refreshes its state from the server every 5 minutes.

The Board
The system is based on the STM32F051 micro controller. I like to use it because it is very easy to program and use.
I used RN-XV WiFly as a Wi-Fi module. The module is a pleasure to work with: all you need is power, reset and UART lines.
The board houses 35 momentary TL1265 buttons. Each button contains a LED and is hooked up via a transistor.
The buttons (and their LEDs) are connected via shift registers. I used 74HC165A to read button state and 74HC594 to control the LEDs.

I used OSH Park to manufacture the board. The quality of the board is quite high and it got done in 10 days.

Step 3: IOS App and the Server

iOS App
I created a very basic, two screen app to display missing products and a list of all products.

The Server
This was probably the simplest piece. PHP server uses MySQL to store the grocery list's state and stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', ...) to send Apple Push Notifications.

Step 4: Enclosure

I really like amateur projects with good looking enclosures. I used a simple photo frame for this project. Inside the frame would has three layers: circuit board, cardboard with labels and a transparent cover board.

I think the trickiest of all was making a decent-looking labels. You see, I could either get a cardboard with perfect holes or reasonable labels. Eventually I used a laser cutter to make the holes, and then same laser cutter on a lower power setting to etch groves of letters. After that I used white ink and a calligraphy pen to fill the ink into the groves.

Step 5: Result

I am quite happy with the result: I am sure I my kitchen would be always well stocked.

I would love to answer any questions or hear any comments or suggestions about the gadget.

Hardware Hacking

Participated in the
Hardware Hacking