Mac68k Forums

Home


Welcome, Guest
Guest Settings
Help

Mac68k Forums » Development » Hardware Hacking

Thread: 128k/512k/Plus Keyboard Interface


Reply to this Thread Reply to this Thread Search Forum Search Forum Back to Thread List Back to Thread List

Permlink Replies: 93 - Pages: 7 [ Previous | 1 2 3 4 5 6 7 | Next ] - Last Post: Mar 13, 2018 4:38 PM Last Post By: Popjoel Threads: [ Previous | Next ]
bigmessowires


Posts: 217
Registered: 10/29/13
Re: 128k/512k/Plus Keyboard Interface
Posted: Dec 22, 2014 11:46 AM   in response to: bbraun in response to: bbraun
Click to report abuse...   Click to reply to this thread Reply
Nice! What kind of 3D printer do you have?
bbraun


Posts: 493
Registered: 7/25/12
Re: 128k/512k/Plus Keyboard Interface
Posted: Dec 22, 2014 2:28 PM   in response to: bigmessowires in response to: bigmessowires
Click to report abuse...   Click to reply to this thread Reply
I've got a Form 1+ upgraded from the original Form 1. It's pretty neat, but I tend to think SLA isn't necessarily the best for making cases and other "functional" parts that I typically use it for. Still, after having one, having any sort of 3d making machine is a great addition to a hacker's lab. It's unfortunate that most CAD software is outside the price range of a hobbyist, but I use OpenSCAD. I found it fairly easy to get started with.
uniserver


Posts: 53
Registered: 12/11/14
Re: 128k/512k/Plus Keyboard Interface
Posted: Dec 22, 2014 2:59 PM   in response to: bbraun in response to: bbraun
Click to report abuse...   Click to reply to this thread Reply
I herd that with a slight mod your adaptor will Allow a serial mac mouse to be used on the ADB port. that is one versatile adpator I'm sure hap will be grinning from ear to ear while he is using his clear shot serial mac mouse with a newer adb mac...

haha i wonder... if you could go serial to adb to usb :-) with an iMate
bbraun


Posts: 493
Registered: 7/25/12
Re: 128k/512k/Plus Keyboard Interface
Posted: Dec 23, 2014 12:52 AM   in response to: uniserver in response to: uniserver
Click to report abuse...   Click to reply to this thread Reply
Yeah, I talked to hap about it, sounds like he's interested. I was able to get the db9 mouse to adb computers working with a single added wire to the ps2 adapter board to bring power to the mouse. It's pretty nice that the stm32f0 can basically use any GPIO pin as an external interrupt, so I could make X2 and Y2 of the mouse into interrupts on the processor to accumulate x and y movements that are sent to the adb host when it asks for it.
Since ADB is only powering the mouse and the discovery board, it can probably just be powered off ADB and not need the USB connection, which will be nice.
bigmessowires


Posts: 217
Registered: 10/29/13
Re: 128k/512k/Plus Keyboard Interface
Posted: Feb 15, 2015 12:55 AM   in response to: bbraun in response to: bbraun
Click to report abuse...   Click to reply to this thread Reply
What about reversing this adapter, so you could use a serial mouse/keyboard with a modern (USB) computer? Or an ADB mouse/keyboard with a modern computer?

There was some discussion about this on the Facebook Macintosh group today, and I was looking into it this afternoon, and it doesn't look too difficult. The more recent Arduino libraries have USB keyboard and mouse functionality built in, so with Arduino-compatible hardware you'd only need to write the code to talk to the legacy Apple keyboard/mouse, and that stuff seems fairly well documented.

I was thinking about putting together a board to do this, but between your board here, and someone else on Facebook who was interested in making a similar board, that's an awful lot of different Macintosh keyboard/mouse adapter thingies. :-)
Arbee

Posts: 61
Registered: 11/29/12
Re: 128k/512k/Plus Keyboard Interface
Posted: Feb 15, 2015 4:27 AM   in response to: bigmessowires in response to: bigmessowires
Click to report abuse...   Click to reply to this thread Reply
John Gruber (Apple superblogger) mentioned this sort of thing recently in the context of using an ADB Extended II keyboard on modern Macs. Amazon still has 6 of the "Griffin iMate" in stock which does exactly that, albeit for $40 and in a Bondi blue case that now looks more dated than any of the actual ADB keyboards you'd use it with :)
bbraun


Posts: 493
Registered: 7/25/12
Re: 128k/512k/Plus Keyboard Interface
Posted: Feb 15, 2015 11:19 AM   in response to: Arbee in response to: Arbee
Click to report abuse...   Click to reply to this thread Reply
Yeah, it would be pretty easy to do, although the griffin imate is still readily available, which is why I didn't really bother with it. The only real reason to do it yourself is because you really want to, or if you wanted different programmable key settings or something. The iMates can regularly be found on ebay for less than $30, and like Arbee said, amazon has them for $40. Even at $40, it seems like you'd need to really want to do it, since it's unlikely to recoup your development time.
You could do a pre-ADB version but that's more of a novelty than anything else. The pre-adb keyboards lacking virtually any of the keys used in a modern context like control and escape, doesn't really make it very practical, unlike the ADB keyboards which actually can be used regularly.

That said, I've done the pre-ADB mouse to ADB for haplain, which also seems like a bit of a novelty, but he had a bit of a special case (ha! pun on his proto gear).
I've also been hacking around with an arduino based ps2 to adb adapter, although it turns out my timer interrupt based ADB implementation is a bit much for the 328p to handle, so I'll probably need to fix that up a bit.
bigmessowires


Posts: 217
Registered: 10/29/13
Re: 128k/512k/Plus Keyboard Interface
Posted: Feb 16, 2015 9:14 PM   in response to: bbraun in response to: bbraun
Click to report abuse...   Click to reply to this thread Reply
Good point about the iMate - I didn't realize that was still available new. My thought was to build something that worked with both ADB and pre-ADB mice and keyboards, and converted them to USB for a modern Mac or PC. The purpose wouldn't really be for everyday use, but more of a "haha look at this" for your friends at work, or a steampunk computing setup, or something like that. But yeah, maybe that would have limited appeal, when the iMate does a similar job (although not for pre-ADB) and is readily available. Hmm, I'll think about it.

Semi-related: I was thinking about building a simple device that plugs into an ADB port, and acts like the power switch on an ADB keyboard, by momentarily grounding pin 2. So you could have a device that lets you turn on your Mac II series machine remotely, or with a banana, or every Tuesday at 3:00, or when you clap three times, or via bluetooth from your phone, something. But I'm struggling to think of ideas for the "turn on" function that would actually be fun and/or useful.
bbraun


Posts: 493
Registered: 7/25/12
Re: 128k/512k/Plus Keyboard Interface
Posted: Feb 16, 2015 10:42 PM   in response to: bigmessowires in response to: bigmessowires
Click to report abuse...   Click to reply to this thread Reply
Yeah, I think there was a remote power ADB accessory made back in the day. I've occasionally had need of one, since if I remote power cycle the machine, it comes back off by default, but I don't necessarily want the power button always down, since that seems to have other ramifications in the booted OS.

I've also had other ADB hacking ideas, since ADB isn't limited to keyboard/mouse, they just have default drivers. I've toyed with the notion of a really slow SD card reader or an ADB to i2c dongle. There's also an absolute positioning mouse device class used for things like wacom tablets. It seems to me, emulators should really be emulating an absolute positioning device rather than the traditional relative positioning mouse, since that's the only real way to make the "machine in a window" model work without capturing the host's mouse or other hacks. I plan on experimenting with this a bit for the SE PDS card, since that's basically a machine in a window on the USB host.
Arbee

Posts: 61
Registered: 11/29/12
Re: 128k/512k/Plus Keyboard Interface
Posted: Feb 17, 2015 9:08 AM   in response to: bbraun in response to: bbraun
Click to report abuse...   Click to reply to this thread Reply
Interesting idea! Does System have default drivers for absolute positioning devices, or are there old commercial drivers floating around that would work?
bbraun


Posts: 493
Registered: 7/25/12
Re: 128k/512k/Plus Keyboard Interface
Posted: Feb 17, 2015 11:19 AM   in response to: Arbee in response to: Arbee
Click to report abuse...   Click to reply to this thread Reply
My reading has left me with the impression that the system handles absolute addressing devices fine, although I don't have any physical devices to test that with. I'll be messing with it with the SE video project soon, I hope. I'm kind of waiting for the PCBs to arrive before spending too much time with that project right now.
bbraun


Posts: 493
Registered: 7/25/12
Re: 128k/512k/Plus Keyboard Interface
Posted: Feb 17, 2015 8:28 PM   in response to: bigmessowires in response to: bigmessowires
Click to report abuse...   Click to reply to this thread Reply
If you're looking for projects, bmow, I've got a ton I can share! :)
bigmessowires


Posts: 217
Registered: 10/29/13
Re: 128k/512k/Plus Keyboard Interface
Posted: Feb 17, 2015 9:01 PM   in response to: bbraun in response to: bbraun
Click to report abuse...   Click to reply to this thread Reply
Sure, I'd love to hear some ideas.

In non-Mac news, I just got some circuit boards I had designed in the shape of a bow tie - and they came out awesome! Look for my first "wearable computing" project soon. :-)
bbraun


Posts: 493
Registered: 7/25/12
Re: 128k/512k/Plus Keyboard Interface
Posted: Feb 17, 2015 10:31 PM   in response to: bigmessowires in response to: bigmessowires
Click to report abuse...   Click to reply to this thread Reply
Here's a bit of my list and brainstorming:

There's the apple netboot driver, which works without modification on the AV macs, we just need to write a server. Everything from the IIsi on can use it with a ROM modification, and conveniently, all those machines work with dougg3's ROM SIMM, and if they don't have a SIMM socket installed, they have solder pads for one.
There's also the boottoob/The Diskless Mac approach, which is a replacement declrom for 8390 based Nubus ethernet cards (which is almost all of them). I've been unable to locate any ROM images of these, but the premise is they included a driver that would directly drive the 8390 ethernet chip to fetch a RAM disk image to boot from.
A more modern approach would be to to have a card that presented a disk interface to the mac, but was backed by an ethernet connection to a modern machine. Or, I've been lusting after a 50pin SCSI target interface to an iSCSI initiator. This would basically allow any SCSI based machine to netboot off an iSCSI target on a modern machine.

I've been wanting either a PDS or Nubus card that has all the address decoding circuitry, protoboard holes, and declrom eprom space. Basically a developer's prototyping card to put anything you want on it.

Anything PDS or Nubus related would be awesome. Since newer system 7 software includes FAT16 support, doing a USB key fob or SD card reader for easy file exchange would be awesome. Basically present the raw device as a block device to the system, and use whatever file system you want, which would include FAT16.
The idea of doing emulated acceleration would also be pretty interesting to explore. Even without modifying the system clock, it seems like there's plenty of potential for speedups, since there's plenty of instructions that can take a dozen or so clock cycles that could potentially be done much faster in an emulated system.

Taking a page from the C64 folks, they've made an "accelerator" that's basically a fully emulated system in FPGA, and basically only uses the host system for peripheral access, like video, ports, io, etc. Some view it as blasphemous, others the epitome of acceleration.

A slightly different kind of acceleration would be an integration of an embedded system like an rpi or bbb, that could offload "difficult" modern tasks like ssl. Kind of an inverse paravirtualization kind of thing.

ADB to Bluetooth HID would be pretty slick too, since you could probably just power the thing off ADB, and have a really small dongle hanging off.

wifi for these old laptops has been troublesome, especially since os9 never supported WEP or 802.11g or anything newer. So doing a wifi adapter where the wifi aspect is offloaded, and a supported interface is presented to the system, as serial, localtalk, ethernet, or something else.

I've also been thinking about the fact that the ROM basically contains a fully functional System. As a result, I'm pretty sure something like your Plus ROM Flash Tool could pretty much be run directly from ROM without actually booting to anything. So it could theoretically be a backup for messing up the rom disk image (but obviously not the 128k ROM image its self). I've also been thinking about this in the context of bootstrapping emulator setups, since most people seem capable of finding a ROM, but maybe not setting up a working system.

A replacement or emulated techstep would be pretty sweet too. Especially as the systems age and have weird problems. Potentially augmenting the techstep's tests with some of the more common problems with these machines.
Even if it's not the full techstep, the serial diagnostic protocol seems like it has tremendous potential. It might even be possible to start loading code over serial and executing it once in that mode. If so, we could essentially do pre-boot software modifications on stock systems. That opens up to all kinds of neat possibilities.

People have been clamoring for a 030 PDS to IIci cache slot adapter for a long time. The goal essentially being to use IIci accelerators on the SE/30 and IIsi. artmix makes one that's $200, which people have a hard time swallowing. I've only vaguely glanced over it, and it seems like there's some monkeying with some of the processor control signals that needs to be done.

The appletalk VPN thing was intended as a way to allow doing things like playing appletalk games with people across the net. It didn't catch on, and maybe there's a better way to do that. It still seems like Marathon parties or nettrek (the mac one, not the unix one), Spectre, and the like would be fun to play with forum members.

Anyway, just some thoughts off the top of my head. I'm sure more will pop up over time.
bigmessowires


Posts: 217
Registered: 10/29/13
Re: 128k/512k/Plus Keyboard Interface
Posted: Feb 19, 2015 10:57 AM   in response to: bbraun in response to: bbraun
Click to report abuse...   Click to reply to this thread Reply
Great list, thanks!

For some reason I've been mainly attracted to old compact Mac hardware, and haven't really looked at any PDS or Nubus stuff, nor much of anything software related. Maybe I should reconsider that. I think part of it is that I've never managed to put together a development environment that's half-way convenient for writing old Mac software, and that documentation beyond Inside Mac vol 1-3 is hard to find. I've also written enough software for various day jobs that it's come to feel more like a chore than something fun.

A more modern approach would be to to have a card that presented a disk interface to the mac, but was backed by an ethernet connection to a modern machine. Or, I've been lusting after a 50pin SCSI target interface to an iSCSI initiator. This would basically allow any SCSI based machine to netboot off an iSCSI target on a modern machine.

That's an interesting idea - I hadn't heard of iSCSI before. I've been intentionally not pursuing SCSI emulator ideas, since SCSI2SD already fills that need, and it would seem silly and mean to engage in head-to-head SCSI emulator competition for an audience that's so small to begin with. But SCSI over TCP is pretty different.

I've been wanting either a PDS or Nubus card that has all the address decoding circuitry, protoboard holes, and declrom eprom space. Basically a developer's prototyping card to put anything you want on it.

I'm surprised that hasn't already popped out from your many related hacks. I agree it sure would be handy for starting any slot-based hardware work.

Anything PDS or Nubus related would be awesome. Since newer system 7 software includes FAT16 support, doing a USB key fob or SD card reader for easy file exchange would be awesome. Basically present the raw device as a block device to the system, and use whatever file system you want, which would include FAT16.

I kind of like that idea from a fun hacking standpoint. I'm not sure a Nubus or PDS reader for SD and thumb drives would offer a practical advantage over using SCSI though, and it would limit the number of machines it could work in.

The idea of doing emulated acceleration would also be pretty interesting to explore. Even without modifying the system clock, it seems like there's plenty of potential for speedups, since there's plenty of instructions that can take a dozen or so clock cycles that could potentially be done much faster in an emulated system.

Yeah, acceleration is one of the areas my thoughts have been turning towards. "Emulated" acceleration is a neat idea. This stuff is definitely pretty complicated, though. Even a normal accelerator, like dropping in a 20 MHz 68000, would involve some interesting challenges. I'm not sure how the initial bootstrapping would work, where the original CPU transferred control over to the accelerator CPU. Might require some ROM changes? And on the compact Macs it wouldn't really work anyway, because the RAM wouldn't be fast enough to keep up, and the video timing would be screwed up.

ADB to Bluetooth HID would be pretty slick too, since you could probably just power the thing off ADB, and have a really small dongle hanging off.

To use bluetooth keyboards and mice on your Mac IIci? Couldn't you do this already with your keyboard adapter, by sticking a bluetooth dongle into your ADB-to-USB solution?

wifi for these old laptops has been troublesome, especially since os9 never supported WEP or 802.11g or anything newer. So doing a wifi adapter where the wifi aspect is offloaded, and a supported interface is presented to the system, as serial, localtalk, ethernet, or something else.

That could be nice. How would you enter the WiFi password, if the fact that is was WiFi was hidden from the OS? Or are you thinking of writing some custom driver software for it? I'm thinking there must be some combination of existing wired ethernet and WiFi repeater hardware that could do this already, but maybe not.

I've also been thinking about the fact that the ROM basically contains a fully functional System. As a result, I'm pretty sure something like your Plus ROM Flash Tool could pretty much be run directly from ROM without actually booting to anything. So it could theoretically be a backup for messing up the rom disk image (but obviously not the 128k ROM image its self). I've also been thinking about this in the context of bootstrapping emulator setups, since most people seem capable of finding a ROM, but maybe not setting up a working system.

I think I follow what you're saying. If you splat a program binary somewhere in extended ROM space, and patch the first 128K of ROM to jump to the extended address late in the initialization process, it could run your program straight from ROM without ever actually "booting". I'm pretty foggy on the details of that, though. Sort of related: I was thinking about extending your ROM disk initialization routine so that instead of just drawing a pirate icon and text prompt, it drew a "BIOS menu" of some sort, and didn't return until the user made a menu selection or it timed out.

A replacement or emulated techstep would be pretty sweet too. Especially as the systems age and have weird problems. Potentially augmenting the techstep's tests with some of the more common problems with these machines.
Even if it's not the full techstep, the serial diagnostic protocol seems like it has tremendous potential.

I looked at the Techstep docs. They were all about how the Techstep is built, and a little bit about how to use it, but they didn't describe how it works at all. There wasn't any mention of the diagnostic protocol or the related ROM functions built into Techstep-compatible Macs. Bummer. But I think some of that info is on the wiki.

This all probably deserves its own thread... :-)

Message was edited by: bigmessowires

Point your RSS reader here for a feed of the latest messages in all forums