Train Station Display: Difference between revisions

From Nottinghack Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 46: Line 46:
Input IDC header
Input IDC header


   solder side          header side (flipped)
   solder side          header side
     +-----+                +-----+
     +-----+                +-----+
GND -| o o |- A0       A6 -| o o |- GND
GND -| o o |- A0       GND -| o o |- A6
GND -| o o |- A1       A5 -| o o |- A7
GND -| o o |- A1       A7  -| o o |- A5
GND -| o o |- A2       A4 -| o o |- GND
GND -| o o |- A2       GND -| o o |- A4
?  -| o o |- A3       A3 -| o o  -   ?
?  -| o o |- A3       ?  -| o o  - A3
GND -| o o |- A4       A2 -| o o |- GND
GND -| o o |- A4       GND -| o o |- A2
  A7 -| o o |- A5       A1 -| o o |- GND
  A7 -| o o |- A5       GND -| o o |- A1
GND -| o o |- A6       A0 -| o o |- GND
GND -| o o |- A6       GND -| o o |- A0
     +-----+                +-----+
     +-----+                +-----+



Revision as of 23:58, 13 January 2024

Train Station Display
Primary Contact Asj
Created 13/01/2024
Completed {{{completeddate}}}
Dormant {{{dormantdate}}}
Version {{{version}}}
Members {{{members}}}
Manufacturer {{{manufacturer}}}
Model {{{model}}}
Location [[{{{location}}}]]
GitHub / Repo {{{repo}}}
Status Active
Type Members Project
Live Status {{{livestatus}}}
QR code

In upstairs metalworking there is a train station display - photos on flickr. The display was acquired in October 2011 and hasn't been set up to do anything yet.

The display seems to use 4-wire MODBUS, and has some DIP switches to configure it's ID (currently 20, as displayed at startup). The registers and commands will be completely undocumented, so bitbanging the display seems like an easier idea.

The intention is to display messages from discord (and will be named dispcord accordingly). The time section at the bottom will display the channel name, and the main three lines will show the sender and preview of the message. The Discord bot already relays messages from non-private channels to MQTT.

Parts

LED Module

Each LED module contains an 8x7 grid of LEDs. It looks like the module could take 8x8, but maybe the font used wouldn't benefit from having an extra row.

(need to check) the negatives of each column are connected together. The positives of each row are connected together.

p4 n n p3 n n p2 n n p1 n n

o o o o o o o o      row 1 (via p1 top)
o o o o o o o o      row 2 (via p2 top)
o o o o o o o o      row 3 (via p3 top)
o o o o o o o o      row 4 (via p4 top)

o o o o o o o o      row 1 (via p1 bottom)
o o o o o o o o      row 2 (via p2 bottom)
o o o o o o o o      row 3 (via p3 bottom)
x x x x x x x x      row 4 (via p4 bottom, not populated)

p4 n n p3 n n p2 n n p1 n n


LED Module Backplane

Each backplane holds 8 LED modules. There is a 14 pin IDC header on the right of each board, these go to a CD74HCT541E octal buffer.

Input IDC header

   solder side           header side
     +-----+                +-----+
GND -| o o |- A0       GND -| o o |- A6
GND -| o o |- A1       A7  -| o o |- A5
GND -| o o |- A2       GND -| o o |- A4
?   -| o o |- A3       ?   -| o o  - A3
GND -| o o |- A4       GND -| o o |- A2
 A7 -| o o |- A5       GND -| o o |- A1
GND -| o o |- A6       GND -| o o |- A0
     +-----+                +-----+

(I'm bad at geometry and will get confused :))

CD74HCT541E

    V O 
    c E Y Y Y Y Y Y Y Y     <---- outputs
    c 2 0 1 2 3 4 5 6 7  
  +---------------------+
  |>   CD74HCT541E      |
  +---------------------+
    O A A A A A A A A G
    E 0 1 2 3 4 5 6 7 N     <--- inputs
    1                 D

Some of the output lines from the line driver go to the shift registers, while others go to a BCD decoder. Each LED Module has two shift registers which are both updated on each clock pulse.

CD74HCT541E Outputs

Y0 - All shift registers, CLOCK
Y1 - Bottom shift register of LED Module 0, Data In
Y2 - BCD Decoder "A"
Y3 - BCD Decoder "B"
Y4 - BCD Decoder "C"
Y5 - BCD Decoder "D"
Y6 - All shift registers, STROBE
Y7 - Top shift register of LED Module 1, Data In

The shift registers used are CMOS MIC5821BN

MIC5821BN

     O O O O O O O O
     1 2 3 4 5 6 7 8
   +-----------------+
   |> MIC5821BN      |
   +-----------------+
     C S V V S S O V
     L i s d o T E e
     K   s d   B   e

Vss, OE and Vee are all tied to ground.
Si is serial in and connects to either Y1 or Y2 of the line driver, or to So of the previous shift register.

(Need to verify) The BCD decoder (CD4028BCN) is used to turn on/off each LED Module's MOSFET (IRF540) via a source driver UDN2981A.

    V
    d
    d 3 1 B C D A 8
  +-----------------+
  |>  CD4028BCN     |
  +-----------------+
    4 2 0 7 9 5 6 V
                  s
                  s

                    G
                    N
    . . . . . . . . D 
  +-------------------+
  |>  UDN2981A        |
  +-------------------+
   . . . . . . . . V
                   s

Random Commentary and Confusion

I'm not really sure what the BCD decoder and source driver is for, but there aren't enough outputs on the shift registers to drive the LEDs directly, so they must be doing some kind of multiplexing somewhere.

The LED Modules are multiplexed? I'm not sure what the practical reason for this is, but the MOSFETs are spread across the board, so that there is one nearby each LED module.

Each shift register only does 3 or 4 rows? They would have gotten better performance by halving the number of shift registers (since this would only require 3 or 4 bits from each register), and performance appears to be important since they are running two shift registers in parallel. This would mean that the MOSFETs were multiplexing the columns (since there are 8 columns and 8 MOSFETS), but from what I could measure, the MOSFET was sourcing 5v. The MIC5821BN also sources 5v, so where would the ground be...



Backplane Frame

Each LED Module Backplane is arranged on the backplane frame.

The backplanes are grouped into two. The first group drives 6x8 LED Module backplanes (total of 2688 LEDs) and the second drives 4x8 LED Module backplanes (1792 LEDs). In total there are 4480 LEDs per side.

+------------------+------------------+------------------+
|  A2              |  A1              |   A0             |  <--- Input
+------------------+------------------+------------------+
|  A5              |  A4              |   A3             |
+------------------+------------------+------------------+
|  B2              |  B1              |   B0             |  <--- Input
+------------------+------------------+------------------+
                   |  B3              |
                   +------------------+