electronics for bmdrv

version 1.1.92 date 2006-01-08
Copyright (C) 2002-2006 sphaera & 1stein (http://blinkenmini.schuermans.info/)
Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html

bmdrv - driver for a blinkenlights implementation interfacing the parallel port.
      - writes 18x8 pixels in different brightness levels
      - reads 0 .. 4 controllers with 7 buttons eachs
      - needs a 2 kHz rectangular signal as timing source

to parallel port (25 pin male SUB-D connector)

    1 -nSTROBE -> OutClk
    2   D0     -> Out0 
    3   D1     -> Out1
    4   D2     -> Out2
    5   D3     -> Out3
    6   D4     -> Out4
    7   D5     -> Out5
    8   D6     -> Out6
    9   D7     -> Out7
   10  nACK    <- IntIn
   11 - BUSY   <- In3
   12   PPROUT <- In2
   13   SELECT <- In1
   14 -nAUTOLF -> OutLoad
   15  nERROR  <- In0
   16  nINIT   -> InClk
   17 -nSLCTIN -> InLoad 
   18   GND     -- Gnd
   ...
   25   GND     -- Gnd

n = active low
- = hardware inverted

timing source

   IntIn --- 2 kHz rectangular signal

output shift-registers

              +--------------------------------------------+                         +--------------------------------------------+                         +--------------------------------------------+
              I                                            I                         I                                            I                         I                                            I
      Out0 ---I 2 D                                   QS 9 I-------------------------I 2 D                                   QS 9 I-------------------------I 2 D                                        I
              I                                            I                         I                                            I                         I                                            I
    OutClk ---I 3 CP                                       I               OutClk ---I 3 CP                                       I               OutClk ---I 3 CP                                       I
              I                    4094                    I                         I                    4094                    I                         I                    4094                    I
   OutLoad ---I 1 STR                                EN 15 I--- Vcc       OutLoad ---I 1 STR                                EN 15 I--- Vcc       OutLoad ---I 1 STR                                EN 15 I--- Vcc
              I                                            I                         I                                            I                         I                                            I
              I        O0, O1, O2, O3, O4, O5, O6, O7      I                         I        O0, O1, O2, O3, O4, O5, O6, O7      I                         I        O0, O1, O2, O3, O4, O5, O6, O7      I
              I         4,  5,  6,  7, 14, 13, 12, 11      I                         I         4,  5,  6,  7, 14, 13, 12, 11      I                         I         4,  5,  6,  7, 14, 13, 12, 11      I
              +--------------------------------------------+                         +--------------------------------------------+                         +--------------------------------------------+
                        I   I   I   I   I   I   I   I                                          I   I   I   I   I   I   I   I                                          I   I
                        I                                                                                                                                                 I
                 top-left pixel                                                                                                                                        top-right pixel

   ...
   ...
   ...

              +--------------------------------------------+                         +--------------------------------------------+                         +--------------------------------------------+
              I                                            I                         I                                            I                         I                                            I
      Out7 ---I 2 D                                   QS 9 I-------------------------I 2 D                                   QS 9 I-------------------------I 2 D                                        I
              I                                            I                         I                                            I                         I                                            I
    OutClk ---I 3 CP                                       I               OutClk ---I 3 CP                                       I               OutClk ---I 3 CP                                       I
              I                    4094                    I                         I                    4094                    I                         I                    4094                    I
   OutLoad ---I 1 STR                                EN 15 I--- Vcc       OutLoad ---I 1 STR                                EN 15 I--- Vcc       OutLoad ---I 1 STR                                EN 15 I--- Vcc
              I                                            I                         I                                            I                         I                                            I
              I        O0, O1, O2, O3, O4, O5, O6, O7      I                         I        O0, O1, O2, O3, O4, O5, O6, O7      I                         I        O0, O1, O2, O3, O4, O5, O6, O7      I
              I         4,  5,  6,  7, 14, 13, 12, 11      I                         I         4,  5,  6,  7, 14, 13, 12, 11      I                         I         4,  5,  6,  7, 14, 13, 12, 11      I
              +--------------------------------------------+                         +--------------------------------------------+                         +--------------------------------------------+
                        I   I   I   I   I   I   I   I                                          I   I   I   I   I   I   I   I                                          I   I
                        I                                                                                                                                                 I
               bottom-left pixel                                                                                                                                     bottom-right pixel

input shift-registers

              Vcc
               I
              10K  C                 +--------------------------------------------+                   +--------------------------------------------+       
               I   O                 I                                            I                   I                                            I       
      In0 ---+---/ N /--- In0Data ---I  3 Q8                               SIN 11 I-------------------I  3 Q8                               SIN 11 I--- Vcc
                   N                 I                                            I                   I                                            I       
    InClk -------/ E /---- In0Clk ---I 10 CLK                                     I         In0Clk ---I 10 CLK                                     I       
                   C                 I                    4021                    I                   I                    4021                    I
   InLoad -------/ T /--- In0Load ---I  9 P/nS                                    I        In0Load ---I  9 P/nS                                    I
                   O                 I                                            I                   I                                            I
                   R                 I        P7, P6, P5, P4, P3, P2, P1, P0      I                   I        P7, P6, P5, P4, P3, P2, P1, P0      I
                                     I         1, 15, 14, 13,  4,  5,  6,  7      I                   I         1, 15, 14, 13,  4,  5,  6,  7      I
                                     +--------------------------------------------+                   +--------------------------------------------+
                                               I   I   I   I   I   I   I   I                                    I   I   I   I   I   I   I   I
                                               B   Y  SEL STA  UP DWN LFT RGT                                   A   X   L   R  Vcc Vcc Vcc Vcc

   ...
   ...
   ...

            Vcc
             I
            10K    C                 +--------------------------------------------+                   +--------------------------------------------+
             I     O                 I                                            I                   I                                            I
      In3 ---+---/ N /--- In3Data ---I  3 Q8                               SIN 11 I-------------------I  3 Q8                               SIN 11 I--- Vcc
                   N                 I                                            I                   I                                            I       
    InClk -------/ E /---- In3Clk ---I 10 CLK                                     I         In3Clk ---I 10 CLK                                     I       
                   C                 I                    4021                    I                   I                    4021                    I
   InLoad -------/ T /--- In3Load ---I  9 P/nS                                    I        In3Load ---I  9 P/nS                                    I
                   O                 I                                            I                   I                                            I
                   R                 I        P7, P6, P5, P4, P3, P2, P1, P0      I                   I        P7, P6, P5, P4, P3, P2, P1, P0      I
                                     I         1, 15, 14, 13,  4,  5,  6,  7      I                   I         1, 15, 14, 13,  4,  5,  6,  7      I
                                     +--------------------------------------------+                   +--------------------------------------------+
                                               I   I   I   I   I   I   I   I                                    I   I   I   I   I   I   I   I
                                               B   Y  SEL STA  UP DWN LFT RGT                                   A   X   L   R  Vcc Vcc Vcc Vcc

   B, Y, SEL, STA, UP, DWN, LFT, RGT, A, X, L, R: buttons

   button ---+---10K---Vcc
             I
	     I    /
	     +---/  ---Gnd

   UP, DWN, LFT, RGT: arrow buttons (up, down, left, right)
   A, B, X, Y, L, R: generic buttons
   SEL: select button
   STA: start button

   NOTE: input-devices are compatible with Nintendo's SNES (TM) gamepads

         so you can use this instead of the above if you have such gamepads

                                          +---+
					  I   I
                                   Vcc ---I-O I 1
                                          I   I
                     Vcc         InClk ---I-O I 2
                      I                   I   I
		     10K        InLoad ---I-O I 3
                      I                   I   I
   In0 / ... / In3 ---+-------------------I-O I 4
                                          I___I
					  I   I
                                          I O I 5
					  I   I
					  I O I 6
					  I   I
				   Gnd ---I-O I 7
					  \---/

                                  SNES connector (male)

   NOTE: input-devices are also nearly compatible with Nintendo's NES (TM) gamepads (A button is Y here)

         so you can use this instead of the above if you have such gamepads

                _/-+
              _/ o-I-4--- Gnd
             /     I
   Vcc ---1-I-o  o-I-5--- InClk       Vcc
            I      I                   I
          2 I o  o-I-6--- InLoad      10K
            I      I                   I
          3 I o  o-I-7-----------------+--- In0 / ... / In3
            +------+
		   
                                  NES connector (male)

