Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Help identify lcd display on Smoothwall SWG700 [Edit: Portwell EZIO]

    Scheduled Pinned Locked Moved Hardware
    59 Posts 9 Posters 15.5k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      fmertz
      last edited by

      Ok, time for a test!

      I attached a FreeBSD-compiled driver for an EZIO variant of the HD44780 driver. The code works on my Linux ARM NAS and my funky USB/Serial adapter. Hopefully, it works on the real appliance as well. If someone is up for a test, let me know.

      So:

      • Extract hd44780.so from the attached archive and copy it on the appliance

      • Check LCDd.conf and make sure it looks like what follows

      • Start LCDd and see what happens. The server alone shows basic stuff and allows for keypad interaction. Start with ESC and navigate

      
      [server]
      Driver=hd44780
      
      [hd44780]
      ConnectionType=ezio
      Device=/dev/...
      Keypad=yes
      Size=16x2
      KeyMatrix_4_1=Enter
      KeyMatrix_4_2=Up
      KeyMatrix_4_3=Down
      KeyMatrix_4_4=Escape
      
      
      
      $ file server/drivers/hd44780.so
      server/drivers/hd44780.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (FreeBSD), dynamically linked, not stripped
      $ md5 server/drivers/hd44780.so
      MD5 (server/drivers/hd44780.so) = 2ae5133869bd5593dd45871340fa5b08
      
      

      Fair Warning: the attached code is executable. This code is of unknown origin for most of you. It is a development version of a device driver, or so I say. Use at your own risk, only on a system you own, in a non-production environment.

      The code is here: https://github.com/fmertz/hd44780-ezio/tree/hd44780-ezio

      hd44780.zip

      1 Reply Last reply Reply Quote 0
      • stephenw10S
        stephenw10 Netgate Administrator
        last edited by

        Nice work. Unfortunately it fails to load for me:

         Could not open driver module /usr/local/lib/lcdproc/hd44780.so: /usr/local/lib/lcdproc/hd44780.so: unsupported file layout 
        

        Is that compiled 64bit? What FreeBSD version? I was testing in pfSense 2.4 so FreeBSD 11.

        Edit: Looks like it is 32bit, any chance of a 64bit version?

        Steve

        1 Reply Last reply Reply Quote 0
        • F
          fmertz
          last edited by

          Yep, 32bit FreeBSD 10.2.

          Ok, let me look around for FreeBSD 11 64bit…

          1 Reply Last reply Reply Quote 0
          • F
            fmertz
            last edited by

            OK, I attached a 64bit FreeBSD 10 driver. Let me know.

            hd44780.zip

            1 Reply Last reply Reply Quote 0
            • stephenw10S
              stephenw10 Netgate Administrator
              last edited by

              It works!  :D  ….mostly.

              The display looks correct.

              The driver initialises the display correctly from power off.

              The keypad doesn't work.

              I should note I've never seen the keypad work on this hardware, the original OS was not bootable. It may be broken for all I know though it looks in good condition.

              Not sure how to test that directly....

              Steve

              My LCDd.conf for reference:

              [server]
              DriverPath=/usr/local/lib/lcdproc/
              Driver=hd44780
              Bind=127.0.0.1
              Port=13666
              ReportLevel=3
              ReportToSyslog=yes
              User=nobody
              Foreground=no
              ServerScreen=no
              GoodBye="Thanks for using"
              GoodBye="    pfSense     "
              WaitTime=5
              
              [menu]
              MenuKey=Escape
              EnterKey=Enter
              UpKey=Up
              DownKey=Down
              
              [hd44780]
              driverpath=/usr/local/lib/lcdproc/
              ConnectionType=ezio
              Device=/dev/cuau1
              Keypad=yes
              Size=16x2
              KeyMatrix_4_1=Enter
              KeyMatrix_4_2=Up
              KeyMatrix_4_3=Down
              KeyMatrix_4_4=Escape
              Speed=2400
              
              1 Reply Last reply Reply Quote 0
              • F
                fmertz
                last edited by

                You can test this keypad "manually".

                Create a background process to read from the device.```
                cat < /dev/cuau1 > nil.dat &

                
                Then, send xFEx06 to the device.```
                printf "\376\006" > /dev/cuau1
                

                The keypad status comes back in hex: xFDx4n. No key pressed is x4F. F is binary 1111. Each key pressed makes a bit go to 0, so:

                • Escape is x4E

                • Up is x4D

                • Enter is x4B

                • Down is x47

                So, press one of the keys, then send the command xFEx06. Press another key, then send the sequence. Once done with all keys, check nil.dat with```
                od -x nil.dat

                1 Reply Last reply Reply Quote 0
                • stephenw10S
                  stephenw10 Netgate Administrator
                  last edited by

                  Hmm, nothing coming back at all. I would expect to get back 0x4f every time if the keypad was disconnected for example.

                  Port somehow open write only?

                  1 Reply Last reply Reply Quote 0
                  • stephenw10S
                    stephenw10 Netgate Administrator
                    last edited by

                    Hmm set the port speed manually and initialised the display…. still nothing coming back

                    Sending

                    printf "\376\010" > /dev/cuau1
                    

                    Does correctly clear the display so commands are reaching the module as expected.

                    1 Reply Last reply Reply Quote 0
                    • F
                      fmertz
                      last edited by

                      The spec is here:

                      http://drivers.portwell.com/CA_Manual/EZIO/EZIO-FINAL.PDF

                      There is a picture of that ribbon cable for the keypad.

                      Could also be that the serial cable is somehow not connected right.

                      1 Reply Last reply Reply Quote 0
                      • stephenw10S
                        stephenw10 Netgate Administrator
                        last edited by

                        I don't believe it's a problem with the ribbon cable as I expect to see 0x4f sent even if the keypad is disconnected. It could be the serial cable…. I don't think the display sends anything else we can check that with. Hmm...

                        A second tester could help here.

                        Steve

                        1 Reply Last reply Reply Quote 0
                        • F
                          fmertz
                          last edited by

                          There is another thing, too. There is a "watchdog timeout" for custom characters if you do not send all 8 bitmaps. See Note 3 in the spec.

                          Send xFEx40. See if xFDx0E comes back…

                          1 Reply Last reply Reply Quote 0
                          • stephenw10S
                            stephenw10 Netgate Administrator
                            last edited by

                            Nothing from that either. I'll have to pull it out when I have time and check it.

                            Steve

                            1 Reply Last reply Reply Quote 0
                            • F
                              fmertz
                              last edited by

                              I started a separate thread here. Hopefully we can get a tester or two.

                              https://forum.pfsense.org/index.php?topic=129820.0

                              1 Reply Last reply Reply Quote 0
                              • S
                                serlogo
                                last edited by

                                hi fmertz,
                                is it possible to take 2.1.5 x64 and x32 eizo 300 driver.

                                please save me…

                                1 Reply Last reply Reply Quote 0
                                • stephenw10S
                                  stephenw10 Netgate Administrator
                                  last edited by

                                  Upgrade!  ;)

                                  Really is there any reason you're still running 2.1.5?

                                  You could compile the driver against FreeBSD 8.3 with some effort I expect.

                                  Steve

                                  1 Reply Last reply Reply Quote 0
                                  • W
                                    Wuebit
                                    last edited by

                                    Thanks works Perfect!  ;)

                                    1 Reply Last reply Reply Quote 0
                                    • x2rlX
                                      x2rl @stephenw10
                                      last edited by

                                      @stephenw10 Can you reupload than hex file please think the forum movement killed it. Thanks

                                      1 Reply Last reply Reply Quote 0
                                      • stephenw10S
                                        stephenw10 Netgate Administrator
                                        last edited by

                                        Sure here you go.

                                        But you can use fmertz's driver directly now via lcdproc if you want.
                                        See: https://forum.netgate.com/topic/115071/ezio-driver-for-lcdproc

                                        Steve

                                        pfsense.hex.txt

                                        1 Reply Last reply Reply Quote 1
                                        • First post
                                          Last post
                                        Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.