Many of you cannot read Italian, but in this Blog there are several posts about the traditional spring festival that every year holds in our village.
I am involved as organizer for this event, and often there are small problems to solve. There are several people around the preparation, but the budget is very limited, so we are joining our minds together to find the simpler solutions. One problem of the last year edition was about the food kiosk pretty close to the concert stage. Once a customer placed the order, he/she received a number that will be called from the kitchen as soon the food is ready. The main problem is how to call (or better “to shout”) the customer’s number, while the rock session is on.
The ideal solution is having a queue display, so that the customers could pay attention to the current served number, even in a loud environment.
Hacking a frame.
In this post I will show how to hack a €25 digital-frame, so that the problem could be solved in a quick and cheap way.
The frame I have used it is nothing special indeed, also I don’t think should be any problem to apply the following trick to any other model. However, I would un-suggest to play with a silver-plated digital-frame, standing on your office desk.
How it works.
Before we take iron and screw-writer, it is safer to check whether the targeted frame can fit our goal.
This is another Egg of Columbus: the memory card contains exactly 100 pictures, each for a number. The frame controller should be set as “slideshow”, using a very long flipping time, so that the controller itself “never” flips a picture automatically. Instead, the pictures will be flipped by the user, by pressing on a button (next picture). In my case there was the “back” button as well, useful in case of user’s mistaken.
At the end of this post there is a simple WPF application, that generates a sequence of bitmaps, Jpeg encoded. Basically, it is a simple windowed-application, where the window size must match the target picture size. It is a trivial program, not intended for any other use other than this, so consider to run it from within the Visual Studio (also Express) IDE. As any normal WPF program, we may choose how the number will be styled. That is pretty straightforward, especially if you have practice with XAML. I chosen a vivid-yellow foreground on a black background. My frame has a 7 inch TFT-display (480×234 pixels), and I would have the maximum visibility, even from 10-20 meters.
So far, I suggest first to generate all the images, then load them on a storage media suitable for your frame. At this point, check whether the functionalities fit your goal.
NOTE: I used only the numbers from 0 to 99, but you may choose any range.
The great kitchen team (over a dozen of people) has lots of works to sort out, and there’s no time for searching small buttons or taking care for a delicate device such as a digital frame. It means that the frame must be boxed, and the buttons substituted with bigger ones.
During this festival edition, I had a very short spare time to set up this queue display.
As in the picture, the frame has been fixed with adhesive-tape to a fruit carton-box, which has been halved.
At this point there was the hardest part: providing two additional buttons, being somewhat robust and wired.
The “remotization” of the up and down buttons is not a complex task, electrically speaking. The main problem is to set up the wires, the buttons and the soldering to the board. I purchased two common home push-buttons, plus 5 meters of loudspeaker wire: it is very flexible, and robust as well. We should bear in mind that the current flowing in that cable is around 1mA, so its section area is far to be a problem.
I soldered the wires carefully against the existent frame buttons, so that they work in parallel. Finally, I closed the frame back.
I really liked this trick, because it is a smart way to take advantage of a simple digital-frame. The simpler and effective is the hack, the funnier and valuable is!
Here is the source of this application:
(Remember to change the .doc extension to .zip)