
6502 Watch
ProbablyNotArtyom/6502-Watch
6502 powered wearable with an LCD screen, keyboard interface, and compact form factor, all running ehBasic to boot.

6502 powered wearable with an LCD screen, keyboard interface, and compact form factor, all running ehBasic to boot.
6502 Watch is an open-source printed circuit board by ProbablyNotArtyom, from the ProbablyNotArtyom/6502-Watch repository on GitHub. It is a 2-layer board of 76.2 × 38.1 mm with 32 parts on 83 nets, routed with 1,456 tracks and 85 vias.
It is built around the ATTINY85-15M, 74LS00SC and DS1302, with the MCP73831 among its other parts. Its parts include 10 ICs, 6 capacitors, 5 resistors, 4 connectors and 1 diode. It belongs with the retro computing and games and wearables boards and the AVR (ATmega, ATtiny) boards of this library.
6502 powered wearable with an LCD screen, keyboard interface, and compact form factor, all running ehBasic to boot.
(Link to this project's Hackaday.io page)
(Link this project's homepage on my website)
The 6502 has been around for just about 40 years, yet still powers the hearts of many electrical systems in place today, such as many microcontrollers and embedded systems. In fact, WDC still manufactures the 6502 and 65xx series chips under the 65c02 and 65cxx. I've noticed that WDC also introduced more package variants of the 6502 and 6522, such as PLCC and QFP. Another thing I noticed was the fact that these form factors of the 65c02 are almost never used. Given that the only people buying these are hobbyists, that isn't too suprizing, as they dont offer much over the standard 40 pin DIP.What they do offer, however, is small package size. I went off to try and design the smallest 6502 SBC i could, and was pleasantly suprized with the results. What I ended up with was what i think is the smallest hobbyist 6502 SBC produced. Small enough, in fact, that you could easily wear it on your wrist! I then added the neat little Nokia 5110 LCD and a cool interface, and now have what I believe to be the only 6502-driven watch in existance.
This repository contains all of the KiCad project files for the hardware, and all of the assembly sources for my software. To build the software you will need KickAssembler.
The watch is pretty standard as far as 6502 hardware goes:
Probably the strangest bit there is the full size C64 keyboard connector along the top of the watch. I had wanted to have some form of keyboard input, but most options are entirely out of reach of the poor 6502. The only way i could come up with is to use a preexisting matrix keyboard; I happened to have a lot of unused commodore keyboards, so that's what ended up on there.
The part that ties everything together is really the tiny Nokia LCD. It's interfaced through SPI, which i had to bitbang through the 6522 VIA. The VIA also interfaces with the keyboard, and the face buttons. An interesting thing to note here is that the VIA only has 16 i/o pins, which in this case are all needed to interface just with the keyboard alone. I was able to use some of those pins for both the keyboard and the LCD without causing any sort of corruption with a bit of luck, and a lot more trial and error.
The watch has a few different things on its ROM. The primary thing is G'Mon, a machine monitor i wrote for the 6502. It supports viewing memory in single and batch, depositing memory in single or batch, jumping to programs, filling blocks of memory with a pattern byte, and moving blocks of memory. I had to strip a few of the less useful commands out in order to fit it on the ROM with everything else. The secondary thing on there is Lee Davidson's Enhanced Basic. I was just barely able to fit into the ROM with everything else, like there are only around 100 bytes free. EhBasic has been modified to hook into the watch's main code, but other than that it's a completely normal version of EhBasic!
The thing that greets you when you start up the watch is the watch interface. Clever name, i know. It just provides a graphical menu you can move through to select what you want to run. This is the only place where the face buttons are actually used, at least on purpose. The topmost button is what brings up the menu. Interesting bit about that: its connected directly to the NMI pin on the 6502, so it can be used to get back to the watch menu from almost anywhere on the thing (unless you crash the 6502).
In my sources, there is a big blob of code that handles interfacing with the watch hardware; It's called the kernel there, but its less of a kernel and more of a library everything else references. Some of the more interesting things in there are the SPI bitbanging stuff for the LCD, and the matrix scanning and decoding routine for the keyboard.
Speaking of sources, they are all uploaded on here, of course. All the assembler code is written to be assembled using KickAssembler, and makes quite heavy use of its macro capabilities, so i doubt it would be fun to try and assemble with anything else. Here i have also included the EhBasic sources that i have modified; They have been modified to be assembled with KickAssembler. Everything builds at the same time, just run the ./Compile.sh script and it will spit out a ROM image. If for some reason you feel the need to fiddle with it, then make sure to go to Configuration.asm: That's the header that holds a bunch of the miscellaneous variables, like the location of the ROM in memory.
If you every wanted to run the software yourself, then you can do that as well. If you set the Emulated variable in the config file to true, then it will build a ROM for use with Symon.
I have written a few extra programs to show what the hardware itself can do. The first thing is a little sprite demo that has 8 animated software sprites bouncing around the screen, plus a text scroller along the top. The visibility is quite poor with it, as the LCD sure does take its time with updating the pixels, which causes everything moving to be a little blurry. To combat this I had to wait a bit after each frame for the LCD to update, which means that the demo itself runs a little slower than it actually could on the hardware. A video of this demo in action is in the Demos section.
Did i mention it runs Tetris? Because yea, it sure does. I wrote a version of Tetris for the watch not long after realizing it was probably the only practical thing that it could feasibly do. Its a pretty standard Tetris clone, following pretty much all of the mechanics of the original versions. This means having the scoring system, having the progressive levels, all the tetrominoes, etc. Its controlled using the face buttons, using the navigation buttons as left & right, the center button as rotate, and the NMI button as the drop button. At the moment I don't have actual recordings of Tetris running on the watch, mostly because i am too lazy to do that much work for a project that was finished nearly 2 and a half years as of this write-up, but i do have the graphics assets i made for it, and have put them together into what it looks like while. If you don't believe that I wrote Tetris for it, then don't worry, just take a look at the sources that i have included with the project's main downloads.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 100nf | Capacitors_SMD:C_1210_HandSoldering | C5, C6, C7, C10 |
| 4 | 10k | Resistors_SMD:R_1206_HandSoldering | R4, R5, R6, R8 |
| 1 | . | Housings_SOIC:SOIC-16_3.9x9.9mm_Pitch1.27mm | U5 |
| 1 | 10uf | Capacitors_SMD:C_1206_HandSoldering | C1 |
| 1 | 22uf | Capacitors_Tantalum_SMD:CP_Tantalum_Case-D_EIA-7343-31_Hand | C2 |
| 1 | 2k2 | Resistors_SMD:R_1206_HandSoldering | R7 |
| 1 | 3.3V | TO_SOT_Packages_SMD:SOT-223-3Lead_TabPin2 | U9 |
| 1 | 62256 | Custom:SNC-28-300mil | U2 |
| 1 | 65c02PLCC44 | Housings_LCC:PLCC-44 | U1 |
| 1 | 65c22PLCC44 | Housings_LCC:PLCC-44 | U4 |
| 1 | 74LS00 | Housings_SOIC:SOIC-14_3.9x8.7mm_Pitch1.27mm | U10 |
| 1 | ATTINY85 | SMD_Packages:SOIC-8-N | U8 |
| 1 | BAT | Resistors_SMD:R_0805_HandSoldering | JP1 |
| 1 | BATTERY | Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm | J4 |
| 1 | CH | LEDs:LED_1206 | D1 |
| 1 | DOWN | Custom:SW_SPST_B3S-1000(4P) | B3 |
| 1 | DS1302 | Housings_SOIC:SOIC-8_3.9x4.9mm_Pitch1.27mm | U6 |
| 1 | Keyboard | Pin_Headers:Pin_Header_Angled_1x20_Pitch2.54mm | J2 |
| 1 | LCD | Pin_Headers:Pin_Header_Straight_1x08_Pitch2.54mm | J3 |
| 1 | MCP73831 | TO_SOT_Packages_SMD:SOT-23-5_HandSoldering | U7 |
| 1 | RTC | Crystals:Crystal_DS26_d2.0mm_l6.0mm_Horizontal | Y1 |
| 1 | SELECT | Custom:SW_SPST_B3S-1000(4P) | B2 |
| 1 | SPST | Custom:SW_SPST_B3S-1000(4P) | B4 |
| 1 | SST39SF010 | Custom:PLCC-32_THT-Socket_Fixed | U3 |
| 1 | UP | Custom:SW_SPST_B3S-1000(4P) | B1 |
| 1 | USB | Connectors:USB_Mini-B | J1 |

ProbablyNotArtyom/6502-Watch
6502 powered wearable with an LCD screen, keyboard interface, and compact form factor, all running ehBasic to boot.


skiselev/zeta_sbc
Zeta SBC is an Zilog Z80 based single board computer. It is inspired by Ampro Little Board Z80 and N8VEM project. Zeta SBC is software compatible with RomWBW Firmware

lynchaj/rhyophyre
Single Board Computer featuring Zilog Z180 processor and NEC µPD7220 Graphics Display Controller

baranovskiykonstantin/aquarium
Control the lighting and the heating of the aquarium.



benja47012/Robot-de-seguridad
Robot de seguridad con diversas funciones, planteado con un protocolo I2C.

popovb/zxRebornClock
Часы на ГРИ ИН-14 с синхронизацией времени через интернет
It measures 76.2 × 38.1 mm and has 2 copper layers, 1.6 mm thick.
32 parts, built around the ATTINY85-15M, 74LS00SC, DS1302 and MCP73831. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the ProbablyNotArtyom/6502-Watch repository on GitHub, at the commit this page was made from: the board is Hardware/Rev.A1/6502 Watch/6502 Watch.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask ProbablyNotArtyom before reusing the design.