RaspiElf Display
Intro
Long time ago I built a LED display and a hex keypad for my COSMICOS. I lend the COSMICOS and the extensions to a friend's brother and I saw the parts never again. Thanks to Lee Hart's 1802 Membership Card I own a 1802 SBC again. Now I need a display and a keypad for this gem.

Hardware

TIL311 hexadecimal displays were to expensive for me 35 years ago and now they are not easy to get (and still expensive). The 4×7 rounded font looks far better than the seven-segment display especially the lower case hex display letters. But there is an alternative: LTP-305 from LITEON. They have no integrated driver, but the matrix LED driver IC IS31FL3730 can drive two of them. And better there is a PCB HAT with 6 LTP-305 and 3 IS31FL3730 on it from Pimoroni ready for the Raspberry Pi. Four digits for the address and two digits for data!

til311.jpg
TIL311 Hexadecimal Display
LED module.jpg
LTP-305 Dot Matrix Display
Microdot pHAT.jpg
Microdot_pHAT on Raspberry Pi Zero
keypad-display.jpg
Keypad and display

Software for the Raspberry Pi

The Raspi controls the display through its I2C interface.

I still want to use the 1802 Membership Card's Front Panel Card. That means I have to use the D-SUB connector. But there is no address bus on this connector, therefore the address is only known as long as the DMA (load mode, counting the DMA cycles) is used. The data bus is neither available, you will see the data in the load mode (DMA) and the output port (LEDs) during the run mode.

There is Python Library and Examples for Micro Dot pHAT on GitHub from Pimorini itself. But I prefer plain C and wrote my own hex display driver microdot_phat_hex.c

Check for the I2C device:

pi@cosmac:~/elf $ ls /dev/*i2c*
/dev/i2c-1

Detect the I2C chips:

pi@cosmac:~/elf $ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- 61 62 63 -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --
61, 62, and 63 are the I2C addresses of the IS31FL3730 chips.

How to get and build the RaspiElf Display Software

The elfdisplay is part of the RaspiElf tools package. See RaspiElf#How_to_get_and_build_the_RaspiEl

Operating Modes (shown by decimal points)

Load

            #        #####        ###        #####       #####      ######  
           ##       #     #      #   #      #     #     #     #     #     # 
          # #       #     #     #     #           #     #           #     # 
            #        #####      #     #      #####      #           #     # 
            #       #     #     #     #     #           #           #     # 
            #       #     #      #   #      #           #     #     #     # 
      OOO #####      #####        ###       ####### ###  #####      ######

Run

            #        #####        ###        #####       #####      ######  
           ##       #     #      #   #      #     #     #     #     #     # 
          # #       #     #     #     #           #     #           #     # 
            #        #####      #     #      #####      #           #     # 
            #       #     #     #     #     #           #           #     # 
            #       #     #      #   #      #           #     #     #     # 
          ##### OOO  #####        ###       ####### ###  #####      ######

Wait

            #        #####        ###        #####       #####      ######  
           ##       #     #      #   #      #     #     #     #     #     # 
          # #       #     #     #     #           #     #           #     # 
            #        #####      #     #      #####      #           #     # 
            #       #     #     #     #     #           #           #     # 
            #       #     #      #   #      #           #     #     #     # 
          #####      #####  OOO   ###       ####### ###  #####      ######

Address

            #        #####        ###        #####       #####      ######  
           ##       #     #      #   #      #     #     #     #     #     # 
          # #       #     #     #     #           #     #           #     # 
            #        #####      #     #      #####      #           #     # 
            #       #     #     #     #     #           #           #     # 
            #       #     #      #   #      #           #     #     #     # 
      ### #####      #####        ###  OOO  ####### ###  #####      ######

Memory Protect

            #        #####        ###        #####       #####      ######  
           ##       #     #      #   #      #     #     #     #     #     # 
          # #       #     #     #     #           #     #           #     # 
            #        #####      #     #      #####      #           #     # 
            #       #     #     #     #     #           #           #     # 
            #       #     #      #   #      #           #     #     #     # 
      ### #####      #####        ###       ####### ###  #####  OOO ######

TIL311 Emulator

The TIL311 has following inputs:
  • Data Inputs A, B, C, D
  • Latch Input
  • Blanking Input
  • (Right and Left Decimal)

For 6 digits we need 36 GPIOs. Without blanking 32 GPIOs, and shared latch input 25 GPIOs. The Raspberry Pi has 26 GPIOs, the spare GPIO ca be used for an additional latch input, then we have a latch for the data and a latch for the address.

Usually the CDP1802 computers use a multiplexed address bus e.g. the Spare Time Gizmo's Elf 2000 display:

  • Databus
    • 8 Data Inputs
    • no strobe
  • Adressbus
    • 8 Data Inputs
    • 2 Latch Inputs
This is a total of 18 GPIOs. Do not forget: the Raspberry Pi GPIOs are not 5 V compatible!

Is anybody interested in a TIL311 emulator? The only problem to write a program for the Raspi is to be fast enough for the strobe signal. Linux is not a Real Time Operating System (RTOS), and it is easy to miss a strobe signal, even if we use interrupts.

-- Peter Schmid - 2017-11-26

Comments

Topic attachments
I Attachment History Action Size Date Who CommentSorted ascending
JPEGjpg LED_module.jpg r1 manage 79.2 K 2018-05-03 - 20:14 PeterSchmid  
JPEGjpg Microdot_pHAT.jpg r1 manage 164.3 K 2018-05-03 - 20:17 PeterSchmid  
JPEGjpg keypad-display-s.jpg r1 manage 56.2 K 2018-05-20 - 18:46 PeterSchmid  
JPEGjpg keypad-display.jpg r1 manage 718.0 K 2018-05-20 - 16:12 PeterSchmid  
PDFpdf til311-e4-519224.pdf r1 manage 90.5 K 2018-05-04 - 19:27 PeterSchmid  
JPEGjpg til311.jpg r1 manage 96.4 K 2018-05-03 - 20:14 PeterSchmid  
Edit | Attach | Watch | Print version | History: r13 < r12 < r11 < r10 < r9 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r13 - 2018-09-28 - PeterSchmid
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback