Close

Hardware

A project log for DSKY

Create a working DSKY using a 3D printer and my AGC simulator running on a Raspberry Pi and slave Arduino Nanos.

wglasfordwglasford 06/26/2022 at 17:010 Comments

Here is a picture of my AGC DSKY from the AGC project.  It is not the prettiest thing, but it works.

From this effort I decided this would be a much better model if I used a pair of LCD displays instead of the 7-segment LCDs and backlit indicators.  Besides, the 7-segment LCDs cannot display a plus.

Here is the first cut at the indicators panel, much better looking than the display above.  I need to work on the colors of the indicators.  The display is from Adafruit, a 3.5" LCD display.  

Here are the display LCD under test.  I connect them using SPI and created a simple protocol to identify each one upon initialization.  

The LCD displays both connect to their respective Arduino in the same way using SPI.  There is an option of using 8-bit mode as well, however that mode is seriously more complicated so for now I have gone with SPI mode.  It is 2 to 4 times slower.  I will have see once everything gets wired up and working if that is acceptable.  For SPI mode you have to solder the IM2 jumper closed.  Here are the connections between the LCD and the Arduino.

Arduino
Pin
LCD
Acronym
Wire ColorUse
GNDGNDBlackGround
5V3-5VWhitePower
D13CLKGreyClock
D12MISOPurpleMicrocontroller In/Serial Out
D11MOSIBlueMicrocontroller Out/Serial In
D8CSGreenChip Select
D9D/CYellowData/Command Select
RSTRSTOrangeReset
LiteRedBacklight on/off (on by default)

Here is an example of keyboard logic: https://www.gammon.com.au/forum/?id=14175. The DSKY has a 7x3 keyboard thus requiring 10 digital input pins. I could have connected each key to its own pin but found this solution more interesting if I ever find myself needing to implement a larger keyboard.  I used the 1N4148 fast switching diodes.  Each column needs a pull-up resister. Note that the Arduino has an internal pull-up resistor that can be utilized.  Here is a schematic of what I wired up.

Part of making the model realistic is to use a military style jam nut connector on the back.  I need 24 pins to connect the DSKY with the AGC.  There are 26 pin connectors available and they look exactly like the original.  The pin-outs I will use are:

Pins A-R: 15 bit Channel Bus

Pin S: CLK1: Clock 1 pulse

Pin T: RST: Reset the DSKY

Pin U: STBY: Put DSKY in Standby mode

Pin V: KBD1: Get Keyboard data

Pin W: DISP: Display data on the channel bus

Pin X: INDC: Indicator data on the channel bus

Pin Y: RPRO: Read PRO key

Pin Z: KB_STR: Keyboard data is available

Pin a: PARALM: Parity alarm

Pin b: H/W Present

Here is the jam nut and its connector, very cool.

I have installed and tested the Arduinos.  Here is the backside of the Front Housing showing everything assembled.

And here is the Main Housing bolted onto the front with the Raspberry Pi installed.  So far I have a test program and have put the Arduino interface protocol and the Arduinos through their paces.  Everything is good to go.  Notice that next to the main connector I installed a micro USB port.  On the original DSKY there was a bicycle tube air valve so they could fill the interior with pure nitrogen so a spark would not cause a fire.  

The only thing left to do hardware wise is to solder a 40-pin ribbon cable to the main connector and the 5V/GND connectors that back light the keys.  

Discussions