A simple BlinkenBone system consists of these hardware components:
BlinkenBoard: the I/O adapter
The BlinkenBoard I/O board drives and senses the signal wires of the ancient Blinkenlight console panels.
It is connected to the BeagleBone over the BlinkenBus.
There is no fixed relationship between panels and BlinkenBoards:
- one BlinkenBoard can control multiple small panels,
- a big console panel needs to be connected to multiple BlinkenBoards.
The current BlinkenBoard model has 11 8 bit outputs and 5 8 bit inputs, so it can drive 88 digital outputs and sense 40 digital inputs. The weird ration of input:output = 5:11 was choosen after evaluating a handful of real panels: Typically there are more lamps than switches. While this is statistically the best choice, for every actual panel it is quite suboptimal.
Other types of BlinkenBoards are possible, they can contain a maximum of 15 input and 15 output register chips.
Major features are:
- logic voltage is 3.3V (can be feed in over BlinkenBus). The panel is driven by a separate I/O voltage supplied over high-current connectors.
- Outputs have sockets for exchangeable highside/lowside driver chips (UDN2981, ULN2803).
These can switch voltages up to 50V and currents up to 500mA each.
- each input is proteced against overvoltage of 40V and has a low pass with 20kHz cut off frequency
- a CPLD chip decodes the BlinkenBus cycle, evaluates the board address switches, accesses the 8 bit I/O register chips and implements a "board control register" (see "BlinkenBus specs" in the attachement)
- 32 boards can be adressed, the board address is set over five DIP switches.
- the typical I/O voltage of +5V /2A (for panmles with LEDs and TTL logic) can be supplied directly from the BeagleBone, so no additional power supply is needed.
- There is a patch field on the BlinkenBoard, where wires from the vintage panels will be connected to the board electronic.
(more about the patch field on the "blinkenlightd" page)
The BlinkenBus is the signal connection between BeagleBone and up to 32 BlinkenBoards.
The communication is hierarchically: BeagleBone is the only master, the BlinkenBoards are all passive.
It is a parallel bus, running over 40 pin flat cable. It carries 9 address wires, 8 data wires, a read/write signal and a "strobe" to activate accesses. All signals are separated by ground wires, finally there is 3.3 V on the bus.
A flexible connection between BlinkenBoards is very important. Any rigid board interconnection would make it difficult to mount BeagleBone and BlinkenBoards into a given vintage panel assembly.
Why flat cable? We discussed SPI and I2C busses as alternatives, but flat cable is fast and cheap and runs over quit long distances in noisy environments. And if you work a few years with vintage DEC computers, using 40 pol BERG terminated flat cable seems so naturally!
See the "BlinkenBus specs" file in the attachement.
BlinkenCape: the BeagleBone adapter to BlinkenBus and RS232
The BeagleBone has two rows of board connectors with together 92 pins, there you can plug add-on boards in. These boards for the BeagleBone must have well defined electrical and mechanical dimensions and are called "capes".
There are four function areas on the BlinkenCape:
- For the BlinkenBone project, the cape contains just a 40 pin header connected to some GPIOs. Elektrically it are just wires.
- For general vintage computer applications, all 4 available serial UARTs are connected. So there are 4 MAX3232 level converters and 4 DSUB 9 connectors on board.
- An EEPROM and address switches are required, which identify the board as BeagleBone cape and contain information about the pin multiplexing of the header pins. The Texas Instruments AM 3359 CPU on the BeagleBone is directly connected to the cape. There are much more CPU pin functions than physical CPU pins, so one CPU pin has normally 8 different function.
- The "BlinkenCape" also has one +5V connector, so you can feed the BeagleBone with extern voltage, OR take the +5V voltage from the plug-in power supply to some of the BlinkenBoards.
Finally, let's take a look into our hardware lab: