Introduction: Pong Watch
Time for another retro project, this time a wearable - always on - Pong Watch. Inspired by the classic video game, Pong.
Here is the video of it in action.
https://youtu.be/E3OZoS39Rkk
Step 1: Parts List
Watch casing - Cheap 99p LED watch from eBay. This makes things a lot easier as I didn't fancy designing or building a watch case. I just performed a few mods to it.
Display - Monochrome OLED with I2C interface. Just a few quid from eBay.
Processor - Microchip PIC 12F1840 8 pin Micro Controller from eBay for a few quid.
Battery - rechargeable Li-ion 052025 25mm x 20mm x 5mm from eBay for a few quid.
Li-ion charger - TP4056 Lithium charger module from eBay for a few quid.
Step 2: Write Software and Test
I used Microchip MPLABX to write some test code in C (attached) and downloaded it via PICKIT3 to the PIC 12F1840 and hooked it up to the OLED display. The PICKIT3 at this point was also supplying power to the circuit. The I2C was bit bashed in the code, but the PIC 12F1840 has a hardware I2C built in that I should really be using, that way the internal clock doesn't need to run so fast saving on power. Unfortunately, it shares the same pins as the PICKIT3 programmer which interferes with the I2C pull ups meaning I would have to unplug the programmer to test which would result in me losing power to the device. It worked fine as it was and I decided I just wanted to get this thing built without exploring further features of the micro controller.
Attachments
Step 3: Fit OLED Display Into Watch Case
Time for a little modification to the watch case. I had to remove some of the inside of the watch case to fit my OLED display into it. Luckily the OLED window is the same size as the original LED watch window so I could leave it as it was, just a shame about the "LED WATCH" text on the front of it, but more on that later. So, fit the display and retest.
Step 4: Modify Board for PIC Micro Controller
Now came the tricky part. With the OLED fitted in the watch case there was no room for any other circuit boards so the PIC had to be soldered onto a spare area of board. Luckily, most of board is ground plane so using a sharp blade I could cut up the ground plane and make my own pads to solder the PIC to and just use thin wire to connect it up to the various places needed.
Step 5: Add Switches to Board
Next was to add tiny switches around the outside of the board that would line up with the buttons on the watch casing. This was very fiddly and in one place it wasn't possible due to the OLED components being too close to the edge. This worked out ok tough, as I decided to do more mods to the case and add a mini USB socket that I could use to power and program the PIC.
Step 6: Modify Li-ion Charger Module
The battery charger module was far too big for the case so the size needed to be reduced. The charger IC could not be de-soldered as it has a pad on the underside which I could not get to, so I removed the non essential components like the indicator LEDs and resistors, moved the capacitors closer to the IC and cut the board to a much smaller size as well as sand down the back of it to make it thinner. Then I just glued it into a space on the OLED board and hooked it up with more tiny wires. I also wired up the switches too. By feeding the output of the battery via a diode and the 5v from the charger input via a diode to the PIC and OLED power rail I could charge the battery while powering the watch directly and it wouldn't interfere with the charging output to the battery.
Step 7: Fit Board Into Watch
The board was ready to go into the watch casing and wire up the USB connector, which not only supplied the board with power but allowed be to hook up the 3 remaining USB pins to the PIC for reprogramming. The PIC does not have a USB interface, I just used the USB pins to take the programming signals from the PICKIT 3 to the PIC. Unfortunately during case modification for the USB I scratched the mirrored surface on the inside of the glass, so I decided to remove all of the inside of the glass coating and spray on the inside my own black border.
Step 8: Attach Battery
Finally I had to wire up the battery permanently to the circuit. Place it carefully in the case and screw the back on.
Step 9: Finished Result
Final result is a Pong Watch.
On a full charge, the watch plays pong all day long with no problems, so as long as I remember to charge it every night it will never run out of charge.
The PIC clock is derived from an internal oscillator which isn't that accurate, so currently the watch is out by a few minutes each day. My next version of the watch with make use of a real time clock IC for better time keeping. I will also add some code that will allow me to play Pong against the Watch.
14 Comments
4 years ago
You said:
"My next version of the watch with make use of a real time clock IC for better time keeping. I will also add some code that will allow me to play Pong against the Watch"
Do you ever intend to revisit this awesome project?
I know nothing about electronics but this has inspired me to start learning!
I have so many questions but they can wait until I understand a little more about electronics.
I will risk one...why did you use a PIC controller instead of an AVR one? My understanding is that they are easier to program and use conventional C.
Reply 4 years ago
Hi, Thanks for your comments. PIC is also programmed in C. My background is PIC, I’ve used it for over 20 years since the 18F84 so I know it very well. Arduino wasn’t around when I first started embedded programming. Infact I do believe Microchip who created the PUC now own the AVR microcontrollers. I’ve started doing more Arduino stuff for my projects recently, infact I am working on a Game & Watch Colour using AVR and all the drivers already exist for the colour display, I haven’t had to develop my own. Get yourself an Arduino and have a play.
7 years ago
The charger pcb was pre-built, Google TP4056 data sheet and it will contain a schematic. The only thing I added was 2 diodes going to my circuit, one from the USB 5v and the other from the battery, so when you are charging the battery you are powering the circuit direct. I will draw something up at some point.
7 years ago on Introduction
could u do a scematic of only the charging part please becuse iv been looking for a while for a small lipo charger to put in my own watch
7 years ago
Funnily enough en_rov I was at the Cinema on Sunday and thought the same so I added a screen ON/OFF when I got home. In the screen OFF mode I might add a press to view like the old fashioned smart watches.
7 years ago
Awesome. Congratulations!
I think you could add a 'cinema button' to turn off the screen, if it's not there already.
7 years ago
Thanks for inspiration pretty good design ;))
7 years ago
Try 40 years ago thunder_ir :-) The original Pong was released back in 1972 (43 years ago). Home versions appeared a few years later.
7 years ago on Introduction
I played this game when I was a child. about 30 years ago. its my nostalgia
good luck
7 years ago on Introduction
cool
7 years ago
Lol. This is awesome
7 years ago
But of course it does JavaProgrammer, watch the video. The right player wins 59 times an hour and the left player wins once every hour.
7 years ago
this is so cool. does it player_y against itself and let the paddle miss when the time needs to change? if it does that's awesome and if not it should. I also thinks it awesome how you just shrink the charger circuit to a tenth of the size, I need to learn the stuff to be able to do that.
7 years ago on Introduction
This is awesome! I'd love to see how you programmed this! I love all things retro and this is just more than amazing!