This is Drink Bot's home on the web. There will probably only be pictures and a text description of the circuit because I never drew a whole schematic.
This is a high end 8 bit pic that happens to have build in CAN. I chose this model because it was within arms reach when I started working on the electronics. It does not need the built in CAN capabilities. This is a massive 40 pin DIP because this project is rather I/O intensive. The firmware is using relatively little of the capabilities of this chip.
This is a basic 3x4 keypad. There are 4 lines for row and 3 lines for column. The column lines are scanned through to determine which key is actually pressed. The firmware does not work when there are multiple keys pressed.
Basic 2x14 text lcd display. It is using the standard HD44780 controller in 4 bit data mode. The display cycles through various menu states to show all the possible combinations.
Basic gravity feed solenoids purchased from ebay seller valves4projects. To avoid high current through the microcontroller they are each switched using 2n7000 fets. When we initially designed the board we forgot the protection diodes. The only diodes that we had on hand were LEDs so now the board flashes when the solenoids close.
A state machine is used to track key presses and when the correct password is entered it moves into drink mode. The keypad is used to enter the drink order and then it is dispensed.