Jump to content
Kai Robinson

Reverse Engineering the Macintosh SE PCB & Custom Chips for 1:1 reproduction

Recommended Posts

22 hours ago, Kai Robinson said:

OK - i found a supplier of DB19F connectors for PCB's - exxos store! The Atari community use them, too - i bought a few from there for the SE's :)

yea, I think it was a group effort with Steve Chamberlin, and a few others to get those DB19's newly manufactured. 

 

I think it was the male side, but I cant remember exactly. 

Edited by techknight

Share this post


Link to post
Share on other sites
18 hours ago, techknight said:

yea, I think it was a group effort with Steve Chamberlin, and a few others to get those DB19's newly manufactured. 

 

I think it was the male side, but I cant remember exactly. 

Yes, male solder cup connectors only. I was quoted a minimum of $25K to do the female board mount version... 

 

 

Share this post


Link to post
Share on other sites

In regards to the RTC replacement. If you have to build an adapter board anyway could you not just put an RTC chip + translator AVR on the board. Use the RTC to keep time then the AVR for PRAM + comms translation. If a pulse is needed pick one with that output and map it to the pinout.

 

Totally speaking off the cuff.

Edited by karrots

Share this post


Link to post
Share on other sites

RTC chip + translator AVR is indeed totally another possibility that would allow for using ATTiny85 in one of the smaller package sizes.  I'm guessing the main benefit of this layout would be potentially reduced power consumption... due to the increased complexity of having two chips rather than one, I'd guess that's something only to investigate if we're having trouble with the ATTiny87 consuming too much power in sleep mode with the asynchronous timer.

 

In any case, (1) if you simply want to get a bootable Macintosh with a reasonably well functioning RTC, the ATTiny85 approach should ready to go, (2) getting accurate time entails ATTiny87 and adapter board, and (3) there may be a final upgrade if we want to reduce power consumption.

Share this post


Link to post
Share on other sites
15 hours ago, archer174 said:

Yes, male solder cup connectors only. I was quoted a minimum of $25K to do the female board mount version... 

 

 

Wow!  I had no idea those were that expensive.  I'd almost thing it would be easier to engineer new tooling and do it yourself or hire someone to assemble.  After looking at it, I'm sure its <$5000 in tooling.  Such a crazy thing to be rare.  I truly had no idea. 

Share this post


Link to post
Share on other sites

For the FDD connector, why not alternate thruhole rows for a 20 pin Female Edge card connector with the standard 19pin D-Sub? That way DB or Edge Card connectors could be installed. Development of any future FDD doohickies could use edge card connections for tighter fit to the case sans connector part count.

 

FloppyEMU adapter like BMOW's would be soldertail DB sandwiched to 20 pin edge card PCB to rather than DIP header.

 

yellowstone-db19f.jpg

 

https://www.sullinscorp.com/drawings/54____C___DRA_,_C10876-E.pdf

 

Connector in PDF has threaded lug mount option

 

2-54mm-Card-Edge-Connector-Right-Angle-D

 

 

Edited by Trash80toHP_Mini
apparently I can no longer type or spell.

Share this post


Link to post
Share on other sites

@quorten - after looking through your code - could you try changing this:

 

//set up timer
  bitSet(GTCCR, TSM);    // Turns off timers while we set it up
  bitSet(TIMSK, TOIE0);  // Set Timer/Counter0 Overflow Interrupt Enable
  // NOTE: 0b111 external clock, 0b011, uses 1/64 prescaler on I/O clock.
  TCCR0B = 0b011;        // Set prescaler, 32,768Hz/64 = 512Hz, fills up the 8-bit counter (256) once every half second
  TCNT0 = 0;             // Clear the counter
  bitClear(GTCCR, TSM);  // Turns timers back on

into this:

//set up timer
  bitSet(GTCCR, TSM);    // Turns off timers while we set it up
  bitSet(TIMSK, TOIE1);  // Set Timer/Counter1 Overflow Interrupt Enable
  // NOTE: 0b111 external clock, 0b1000, uses 1/128 prescaler on I/O clock.
  TCCR1B = 0b1000;        // Set prescaler, 128 x 256 / 32.768 = 1000
  TCNT1 = 0;             // Clear the counter
  bitClear(GTCCR, TSM);  // Turns timers back on

I'm not sure if i set TCCR1B correctly, but the prescale math lines up...

Share this post


Link to post
Share on other sites

@Kai Robinson Are you looking at the old copy from the pinned commit?  I did make several changes around that area, check the latest version on the master branch.

 

But if you want to use timer 1 instead of timer 0, I'm still using timer zero on the latest copy.

Share this post


Link to post
Share on other sites

Does this still allow the AVR to run faster than 32.768kHz during instruction execution?  I felt like I already covered that ground and didn't find the results very promising, but correct me if I'm wrong.

Share this post


Link to post
Share on other sites
15 hours ago, Kai Robinson said:

is the time drift realllly that significant?

Yeah, if the AVR internally generated RC oscillator is at least as good as Raspberry Pi's small, 19.2MHz crystal, you can easily get ahead/behind by 15 minutes a month, versus 1 minute a month or less with a good stable 32.768kHz crystal.  With NTP time sync, you really don't notice, but if you want good old retro time keeping, a design without a good 32.768kHz crystal in the loop leaves much to be wished for.

 

Also, another note I should point out, the internal load capacitance of the ATTiny85 when using a 32.768kHz crystal for the system clock invalidates the external capacitor selection of 10pF and 33pF, so the crystal connection cannot be used as a drop-in replacement also for this reason.

Edited by quorten
ATTiny85 internal load capacitance

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×