Author Topic: Arduino IO card for Amstrad CPC 6128  (Read 530 times)

0 Members and 1 Guest are viewing this topic.

Offline ComSoft6128

  • ..................................
  • Supporter
  • 6128 Plus
  • *
  • Posts: 2.056
  • Country: scotland
  • CPC THEN CPC NOW
    • index.php?action=treasury
  • Liked: 2198
  • Likes Given: 4378
Arduino IO card for Amstrad CPC 6128
« on: 12:41, 18 February 21 »
One for the hardware community.....


https://hackaday.io/project/169565-arduino-io-card-for-amstrad-cpc-6128


I was looking for info on the CPC in Australia when this popped up so I'm assuming that it's Australian in origin.

Offline Gryzor

  • Administrator
  • 6128 Plus
  • *****
  • Posts: 16.673
  • Country: gr
  • CPC-Wiki maintainer
    • CPCWiki
  • Liked: 3886
  • Likes Given: 6926
Re: Arduino IO card for Amstrad CPC 6128
« Reply #1 on: 14:45, 18 February 21 »
My favorite part:

Quote
My floppy emulator has not yet arrived and I have some time to spare so I need to find a way to get software on and off this machine. I could use the cassette port but thats too easy so I need to access one of the ports. The printer port is only an output, the floppy is controlled by the floppy disk controller so would require a long winded deciphering process to use it, so that leaves the expansion port.

Offline VintageAdvantage

  • CPC6128
  • ****
  • Posts: 291
  • Country: us
  • Liked: 127
  • Likes Given: 154
Re: Arduino IO card for Amstrad CPC 6128
« Reply #2 on: 16:45, 17 March 21 »
My floppy emulator has not yet arrived and I have some time to spare so I need to find a way to get software on and off this machine. I could use the cassette port but thats too easy so I need to access one of the ports. The printer port is only an output, the floppy is controlled by the floppy disk controller so would require a long winded deciphering process to use it, so that leaves the expansion port.

Oh my, those story tellers... and of course, the Joystick port would have been to straight forward for digital input as well :-) It's a funny read though.

As much as I admire the solution of "capacitor + diode" and pulling Z80 waitstates with the microcontroller, I would nevertheless always prefer a more reliable and fully digital solution. A capacitor might age... an additional latch / tri-state bus driver for latching and managing the databus properly adds only 50 Cents to the design. IMHO having the timing rely on some analog circuitry is a bit "too smart" and hackish. Admittedly, it saves a lot of circuit complexity, but ties down the CPC bus too much by pulling READY all the time. What does that do in combination with other expansions? Scratching my head about the motivation for all of this.

But here is what I really wanted to discuss: what do you guys think? Is this actually the KISS principle at work, or not? One could argue 2 ways:
https://en.wikipedia.org/wiki/KISS_principle

1. yes, because it reduces circuit complexity
2. no, because it is far from obvious how it works, and requires a lot of very precise  microcontroller timing fidling etc. to get right (reasons above)

I would argue, despite having saved a few components, that it actually violates the KISS principle, because it is "too smart"! As I said, I admire the solution (and this is not a backhanded compliment!), but I don't think I would ever go for it or try to replicate it.

Yes, sometimes less is more. However, sometimes a little bit more is needed - like Einstein said: Everything should be as simple as possible, but not simpler ;-)
« Last Edit: 16:58, 17 March 21 by VintageAdvantage »