TashTwenty: Single-Chip DCD (Hard Disk 20) Interface

warmech

Well-known member
Oh man, I forgot you could put custom icons on there!

Cool! I'm excited about having a new TashTwenty design out there, and I love the name.

To answer your question, pin 2 on the PIC is !ENBL2 in and pin 13 is !ENBL2 out. Daisy chaining DCDs is accomplished by the Mac pulsing PH3 - !ENBL2 out starts high, and the currently selected device disables itself when it sees the pulse on PH3 and asserts !ENBL2 low for the next device. This way, the Mac can select the first device by asserting !ENBL2 low, the second by asserting !ENBL2 low and pulsing PH3 once, the third by asserting !ENBL2 low and pulsing PH3 twice, &c.

Thusly, to make the daisy chain port work, you need to pass through all the lines from the main connector, except !ENBL2 (pin 17 on the 19-pin D-subminiature), which should be connected to pin 13 on the PIC.

Speaking of the daisy chain port, since PC-mount 19-pin female D-subs are nearly unobtainium, what about making it an option to stuff a full-size SD card slot that's accessible through the back window of the HD20 where the port is? Can the footprints fit over one another on the same board, or would it be necessary to make two separate board designs? Maybe a little riser board would make it work?

Sorry, meant to respond yesterday and then the day went to hell at work. Noted on the enable lines - I'll get these fixed and post a shot of the EDA drawing for you to verify. As for the DB19s, I was initially thinking that folks would be able to desolder the DB19 connectors off of their old controller cards and slap 'em on this if they felt like it; that's a lot of work for solder wick, so that might really only be a feasible option for folks with Hakkos and the like. Your suggestion, however, is genius. I know exactly how I want to make an optional SD card slot in that opening work... I'll have something later today to show you.
 

warmech

Well-known member
Okay, let's see how this looks:

Screen Shot 2022-10-10 at 11.26.15 PM.pngScreen Shot 2022-10-10 at 11.26.36 PM.pngScreen Shot 2022-10-10 at 11.26.45 PM.png

With this, no riser should be necessary. This layout should allow users to use the same card to do either of the following:
  • Install an SD card slot on the interior-facing side of the PCB, while desoldering the DB19 from their dead HD20 and transplanting it on to this card, or
  • Install an SD card slot on the exterior-facing side of the card where the DB19 connector would otherwise go.
I've added a jumper to allow folks to select which SD slot they'd like to use, which should keep someone from installing (and then using) two card slots. I don't think anyone would do that, but I also didn't think a user would delete an entire (synced) SharePoint document library at work thinking they were freeing up space on their hard drive, so I just plan for the worst now, lol.

@tashtari Let me know if anything looks egregiously wrong and I'll correct it. I've given up on trying to integrate an audio device to produce sound; the servo in the Rodime drives just has way too unique a sound to emulate and a simple click seems cheap and inaccurate. I may play around with a controller to hook up to the Rodime's servo and just make the damn noises for real. That, ironically, shouldn't be too hard compared to trying to make something just sound like it. Also, I wanted to make sure I wasn't crazy: /ENABLE goes low whenever there's a read or write, correct? I was looking at your original schematics and found myself second guessing my work, so I wanted to run that by you just to confirm.

Edit: Just realized that the screw holes are masked instead of having copper exposed. I'll make sure that gets fixed.
 

Tashtari

PIC Whisperer
Let me know if anything looks egregiously wrong and I'll correct it.
Sorry for not replying sooner. I see nothing wrong, but of course I haven't followed every trace. Curious, though, how come the four ground pins on the header aren't connected together with the same thick trace that connects ground to everything else? It looks like they are connected, just with thinner traces alternating top and bottom.
 

warmech

Well-known member
Sorry for not replying sooner. I see nothing wrong, but of course I haven't followed every trace. Curious, though, how come the four ground pins on the header aren't connected together with the same thick trace that connects ground to everything else? It looks like they are connected, just with thinner traces alternating top and bottom.
No worries! And good catch - that would be a mistake; they should be the same as the others. Not sure how I missed that, lol.
 

warmech

Well-known member
Alright, here's what I've got so far; this should be the near final design for V1.0 of the Mega. I'm considering adding an optoisolator, and you'll see why in a sec. I need to do some more breadboard testing now that I have the stepper working, but I'm pleased with how things have progressed so far.

Screen Shot 2022-10-20 at 7.37.29 PM.png

I decided to dig in and figure out a way to drive the stepper (not servo; I was running on fumes when I wrote that) and, in the end, got it to work the way I wanted. If you decide you want to use the it, some additional disassembly of the HD20 is required and there are a couple of caveats.

First, the Rodime will have to be removed and the stepper and home position sensor disconnected (a small ribbon cable on the back of the drive casing). Once disconnected, the stepper will have to be connected with the colors on its cable matching the RBWY color indicators on the card; additionally, the optocoupler used to detect when the head has reached its home position will need to be connected to match the diagram on the card. The Rodime can be reinstalled once this is done.

Second, the PSU is required to drive the stepper control and powers that portion of the card independently of the HD20 logic. The stepper will automatically park itself when powering up to ensure that it's in a known state when simulating seek actions and uses the /ENABLE line to determine when to, uhh... "seek."

Third, the disk itself is not powered and, thus, does not spin up. It appears the HD20 controller sends an instruction to the Rodime's controller to power up the spindle motor, as simply applying power to the drive would not engage it. I've been unable to determine how tis is done and have put that side for a potential future revision.

Fourth, on startup, and after homing itself, the stepper will simulate the power-on diagnostic routine. Since it's not actually running the self-test, it's safe to just power up the Mac right after powering up the HD20, as the logic is powered and driven independently of the stepper control. I'm considering adding an optoisolator on the /ENABLE line just before it hist the ATTiny to ensure there's no weird power issues that might cause problems.

Last, there's an easter egg in this thing now. It requires the stepper to be driven and for you to make an "incorrect" choice when choosing which SD slot to use. ;)
 

Tashtari

PIC Whisperer
This is delightful. I'm a bit sad that I need to keep my HD20 stock so I can use it to further investigate the DCD protocol...
 

warmech

Well-known member
This is delightful. I'm a bit sad that I need to keep my HD20 stock so I can use it to further investigate the DCD protocol...
Thanks! I always keep my eye open for dead ones now that the TashTwenty exists. If I find another one, I'll send you a message!

Also, good news - I have a dual-channel opto-isolator separating the interaction between your end of things that handles data and mine that drives the stepper, so there should be absolutely zero potential for interaction between the two that might cause damage or otherwise interfere with signaling. And with that, this thing is ready to be sent off for fabrication! I'm still working on coding some of the stepper controls, but the hardware design has no need for changing at this point. I'm working on a couple of other PCBs as well for Lisa stuff that I'm going to try to have finished this week so I can send everything off for one shipment back. Fingers crossed, I should have the first batch in by the end of next week!

Edit: Almost forgot - I changed how the easter egg is activated. I realized that having it depend on a jumper setting would require the HD20 to be open to make it happen, which meant that anytime you wanted to activate it would require you to take apart the HD20. It now no longer requires you to open the case to trigger it; it can be activated while the HD20 is fully assembled and that's all I'll say about that. ;)
 

warmech

Well-known member
Boards arrived right as I was heading out of town, so I finally was able to get one assembled today. Still need to get the MCUs programmed and do some testing... but it's otherwise complete! I'll have GitHub links posted here when testing is complete. The SD card slot is a bit of a tight fit when inserting/removing the card; the Rodime is kinda in the way and makes it a little cumbersome to swap SD cards; if you're fine just swapping out the microSD card, it's no worry.

IMG_4388.jpg
 

CC_333

Well-known member
The SD card slot is a bit of a tight fit when inserting/removing the card; the Rodime is kinda in the way and makes it a little cumbersome to swap SD cards
Maybe one of those SD slot extender things would be a good solution?

c
 

olePigeon

Well-known member
@warmech This is so awesome. How many dead Rodimes will get new life providing that comforting servo sound? :)

Can I make one tiny suggestion for the next revision? Add little picture of Tom Servo from Mystery Science Theater 3000 next to where you plug the servo in? :D
 

olePigeon

Well-known member
@warmech @tashtari Do you guys know if PCBWay or something like that (that's the only one I know about from all the advertisements) allows people like you guys to make an online store? Purchase PCBs using your designs?

I'm afraid I'll mess something up if I try to send files to a PCB maker.
 

Tashtari

PIC Whisperer
@warmech @tashtari Do you guys know if PCBWay or something like that (that's the only one I know about from all the advertisements) allows people like you guys to make an online store? Purchase PCBs using your designs?

I'm afraid I'll mess something up if I try to send files to a PCB maker.
I think OSHPark allows you to share designs for free in such a way that other users can easily order them, though if it's TashTwenty Rev 3 or TashTwenty Tiny you're interested in, I'd much rather sell you some of the ones I've had fabbed at JLC (I sell them at cost anyway so it's probably cheaper for you in the end, at least if you're in the USA)...
 

Tashtari

PIC Whisperer
At this point I think enough people have expressed interest that I'm going to put together a batch of ten TashTwenty Rev 3 units. I've ordered parts, I think I'm going to assemble them myself this time for peace of mind - that way I can make absolutely sure that they work before I send them out. Price will be $23 each, plus shipping (which should be under $5 in the US, $15-$20 to most international destinations).

If everything arrives when I hope it does, I'll be able to get these shipped out in about a week's time. I'm hoping to get through these quickly to avoid any complications with Paypal and friends' IRS threshold getting drastically lowered next year...

Get your orders in, slide into my DMs. =)

1670604090725.png
 

Tashtari

PIC Whisperer
Aaaaand they're gone! Thanks to everyone who ordered/expressed interest. I'm not sure that I personally will be doing this arrangement again, assembling and testing these things was a lot of work (and I already have a day job, plus holidays...) but I may be teaming up with someone to manufacture and sell TashTwenty boards if it's demonstrably a good value proposition - so please continue registering your interest if you'd like to buy!
 

greystash

Well-known member
Aaaaand they're gone! Thanks to everyone who ordered/expressed interest. I'm not sure that I personally will be doing this arrangement again, assembling and testing these things was a lot of work (and I already have a day job, plus holidays...) but I may be teaming up with someone to manufacture and sell TashTwenty boards if it's demonstrably a good value proposition - so please continue registering your interest if you'd like to buy!
Damn I only just found this thread, would love to purchase one if you end up making some more!
 

Iesca

Well-known member
Congrats, Tash! These are really great devices. I use mine regularly as a quick and easy boot device, and everyone who just got one is sure to love them as well. Only wish I had a case for it!
 

Iesca

Well-known member
Would someone mind outlining the formatting procedure for me? It's been awhile and I'm having trouble finding all the info. I know MasterBootRecord for the primary format, but in particular I'm interested in allocating partitions.
 
Top