warmech
Well-known member
Welp, this is it - the last major project on my plate to be completed before my wife and I have our first kid in about a month. Born - sorry for the pun - out of my refusal to spend (checks eBay)... a car payment on a second Lisa keyboard, I wanted to make something highly compact that could take what I felt was the aesthetic descendant of the Lisa's keyboard and let me use it with a Lisa. GitHub repo is here.
On its face, this project is fairly simple: allow a user to connect an M0110A or M0110 + M0120 (US or international for any/all) to a Lisa. Below the surface, though, I've taken advantage of some prior work by others to make this as straightforward as possible and added some additional features that I think are a decent value-add. First, while the hardware design is original, the implementation of Mac and Lisa keyboard protocol handling is (largely) not. This adapter uses a modified version of RebeccaRGB's LisaKeys libraries to handle two important functions:
The M0110 protocol handling uses Jun Wako's M0110/M0120 implementation for the TMK adapter firmware with only a couple of minor modifications (additional functionality for testing Mac keyboards). Also, if using an M0110A, there has been some finagling of number pad keys. Since the ten-key on the M0110A isn't identical to the M0120 and Lisa, the arrow keys on the M0120/Lisa have been mapped to the arrow keys on the M0110A and the A's unique ten-key characters have been mapped to functional equivalients on the Lisa. For example, the plus sign on the A, which is in the same position as the comma on a Lisa or M0120, sends a plus sign scancode and not a comma; the down arrow on the A, however, will type a comma if pressed when the functional context would not otherwise be expected to scroll or move the cursor downward.
Tremendous thanks goes to both of these folks for figuring out what I would otherwise have spent weeks banging my head against a desk to do.
Aside from the basic adapter and serial input functions, this unit will also allow you to connect both Mac and Lisa keyboards (at the same time, if desired) to the adapter and test them for functionality. Just make sure the adapter is connected in the same fashion as for using the serial mode and press the MODE button twice (from powering on - press MODE once if you were already in serial mode). You'll see the words "Keyboard Test Mode" appear in your serial console when you have successfully entered this mode.
The last thing I added, which is entirely ancillary, is the ability to user either original Mac keyboard cables or unmodified, off-the-shelf telephone handset cables. If you've ever tried to use a handset cable with an M0110 and a Mac 128/512/Plus then you know they don't play nice. This is due to the Mac cables being straight-through cables and handset cables being, essentially, crossover cables. Don't have any Mac cables lying around? Just toggle the DPDT switch from MAC to HANDSET and flip DIP switch 3 to ON and you're good to go. Is this largely pointless? Sure! Did I think it was neat? Yep. Will it actually help anyone? Meh.
Aside from the PCB, this is all off-the-shelf and made to be as small and cheap as possible while still having some neat features beyond just being a keyboard adapter. The per-unit cost breaks down as follows, for a total of $17.48:
On its face, this project is fairly simple: allow a user to connect an M0110A or M0110 + M0120 (US or international for any/all) to a Lisa. Below the surface, though, I've taken advantage of some prior work by others to make this as straightforward as possible and added some additional features that I think are a decent value-add. First, while the hardware design is original, the implementation of Mac and Lisa keyboard protocol handling is (largely) not. This adapter uses a modified version of RebeccaRGB's LisaKeys libraries to handle two important functions:
- the Lisa keyboard protocol itself, as well as communicating with the Lisa hardware, and
- serial communication with the adapter to send keystrokes via terminal to the Lisa.
The M0110 protocol handling uses Jun Wako's M0110/M0120 implementation for the TMK adapter firmware with only a couple of minor modifications (additional functionality for testing Mac keyboards). Also, if using an M0110A, there has been some finagling of number pad keys. Since the ten-key on the M0110A isn't identical to the M0120 and Lisa, the arrow keys on the M0120/Lisa have been mapped to the arrow keys on the M0110A and the A's unique ten-key characters have been mapped to functional equivalients on the Lisa. For example, the plus sign on the A, which is in the same position as the comma on a Lisa or M0120, sends a plus sign scancode and not a comma; the down arrow on the A, however, will type a comma if pressed when the functional context would not otherwise be expected to scroll or move the cursor downward.
Tremendous thanks goes to both of these folks for figuring out what I would otherwise have spent weeks banging my head against a desk to do.
Aside from the basic adapter and serial input functions, this unit will also allow you to connect both Mac and Lisa keyboards (at the same time, if desired) to the adapter and test them for functionality. Just make sure the adapter is connected in the same fashion as for using the serial mode and press the MODE button twice (from powering on - press MODE once if you were already in serial mode). You'll see the words "Keyboard Test Mode" appear in your serial console when you have successfully entered this mode.
The last thing I added, which is entirely ancillary, is the ability to user either original Mac keyboard cables or unmodified, off-the-shelf telephone handset cables. If you've ever tried to use a handset cable with an M0110 and a Mac 128/512/Plus then you know they don't play nice. This is due to the Mac cables being straight-through cables and handset cables being, essentially, crossover cables. Don't have any Mac cables lying around? Just toggle the DPDT switch from MAC to HANDSET and flip DIP switch 3 to ON and you're good to go. Is this largely pointless? Sure! Did I think it was neat? Yep. Will it actually help anyone? Meh.
Aside from the PCB, this is all off-the-shelf and made to be as small and cheap as possible while still having some neat features beyond just being a keyboard adapter. The per-unit cost breaks down as follows, for a total of $17.48:
- $8.21 for everything but the Arduino Pro Micro and PCB from Mouser
- $5.40 for the Pro Micro from Micro Center
- $0.72 per PCB from JLCPCB ($3.87 per PCB if you include shipping)