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

    EZIO Driver for LCDproc

    Scheduled Pinned Locked Moved Hardware
    144 Posts 22 Posters 43.1k 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

      Can you post LCDd.conf?

      1 Reply Last reply Reply Quote 0
      • U
        uknownme123
        last edited by

        
        [server]
        DriverPath=/usr/local/lib/lcdproc/
        Driver=hd44780
        
        [hd44780]
        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
        
        1 Reply Last reply Reply Quote 0
        • U
          uknownme123
          last edited by

          [server]
          DriverPath=/usr/local/lib/lcdproc/
          Driver=hd44780

          [hd44780]
          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

          Woops, this was actually LCD.conf. LCDd.conf still contained information regarding lb216 driver.

          Issue was, I initially created LCD.conf, instead I should had wipe out LCDd.conf and replaced with above code. commands mv LCD.conf LCDd.conf.

          Now its working. Now I'll try out the buttons and let you know.

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

            @uknownme123:

            Now I'll try out the buttons and let you know.

            You might have to enable the internal menu for this:

            
            [server]
            DriverPath=/usr/local/lib/lcdproc/
            Driver=hd44780
            
            ToggleRotateKey=Enter
            PrevScreenKey=Left
            NextScreenKey=Right
            
            [menu]
            MenuKey=Escape
            EnterKey=Enter
            UpKey=Up
            DownKey=Down
            
            
            1 Reply Last reply Reply Quote 0
            • U
              uknownme123
              last edited by

              Awesome, the buttons work. I did notice that after a while it gets very laggy in response, this is probably because of the 2400 baud rate.

              Hope to see this driver it in the WebGUI. I know a lot of folks out there have this LCD screen. I saw a lot of Checkpoints. I saw one on an Xceedium GateKeeper. The one I have was Smoothwall. I though I saw then on Mikrotek's x86 devices, I could be wrong on this tho. Thanks.

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

                Thanks, good to hear confirmation that it works on the real hardware. I was developing this on an ARM NAS (running Debian Linux) with a USB/Serial adapter.

                At this point, the code change has been merged upstream with the lcdproc project: https://github.com/lcdproc/lcdproc/pull/82

                I assume the pfSense maintainers will pull the lcdproc package after the next release, so everyone can use these EZIO devices right out of the box.

                The only "open item" is a (minor?) change to the pfSense lcproc PHP package to include this connection type in the pre-defined list…

                1 Reply Last reply Reply Quote 0
                • G
                  grahama
                  last edited by

                  Thanks for your efforts here.  This thread has made me join this forum.

                  You've helped me to make use of the LCD panel on a "Smoothwall S4" that I bought 2nd hand. Smoothwall didn't work for me, so I've been using pfSense for a few days. So far, it's meeting my needs.

                  I do have LCDproc enabled, but it doesn't run for some reason. I haven't been able to work that out yet nor make use of the menu buttons.

                  But what I have done is used the stty command and hex file Steve provided to initialise my LCD successfully.
                  I then have a cron job which keeps the screen updated with CPU temp and time every few minutes.

                  So thanks for that.

                  If needed, I can expand my simple shell scripts to show any statistic I can get to fit on the ?32? characters :)

                  Does anyone have tips for writing on the second line neatly? Right now I just pad in 20+ characters to cause word wrap to happen.

                  Cheers,
                  Graham.

                  ó¿ó

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

                    @grahama:

                    Does anyone have tips for writing on the second line neatly?

                    It's in the spec. You can put the cursor at the beginning of the second line with something like this:

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

                    From the larger perspective, though, you might want to download and replace the hd44780.so driver file so you have the new code for this EZIO device (make sure you pick the right version for your OS, these files are attached to the first post in this thread). Then make sure LCDd.conf is updated, in particular the device and connection type. As noted above, this code is not available in pfSense, yet, and the glue pfSense package has not been updated either so this new "ezio" connection type is not showing as an option in the GUI. You seem familiar with the command line, though, so this should not be too much of a problem to get up to speed.

                    1 Reply Last reply Reply Quote 0
                    • G
                      grahama
                      last edited by

                      Yep, RTFM  :-[

                      New line works a treat, thanks!

                      Actually, I tried to read the specification, but the link "http://drivers.portwell.com/CA_Manual/EZIO/EZIO-FINAL.PDF" no longer works.
                      Couldn't find any other links to EZIO-Final.PDF online either which is unusual.

                      I have now installed the driver (and maybe fixed something with cron) and now LCDd / lcdproc / lcdexec are all working - buttons worked to navigate the menu and change settings.

                      It didn't work after a reboot, so I have to work that out, but I'm happy that I've been able to re-utilise all of the hardware :)

                      update: /usr/local/etc/LCDd.conf was overwritten on reboot, losing my changes.
                      I'm finding this aspect of pfSense to be frustrating as well as it's use of tcsh. I'm yet to customise these things to suit my preference.

                      ó¿ó

                      1 Reply Last reply Reply Quote 0
                      • fabricioguzzyF
                        fabricioguzzy
                        last edited by

                        Hello Everyone,
                        I am facing problems to make lcdproc work.

                        I got a LCD Display "HD44780 Compatible" connected via FTDI USB (Chipset is FTDI 245) - It works fine on Windows so I know the display is fine.
                        Now trying to make lcdproc work is being really difficult. The Service does't stand up in anyway and I can´t find any LOG for troubleshooting.
                        Could anyone help me with that?

                        Reading other posts I could find the hd44780 driver that comes with pfsense 2.3.4 is wrong. is it true? I tried to replace it with no sucess.

                        Any help will be really appreciated.

                        Thanks
                        FAbricio.

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

                          This thread is for the EZIO display only. I have replied to your post in the main LCDproc thread.

                          Steve

                          1 Reply Last reply Reply Quote 0
                          • R
                            regexaurus
                            last edited by

                            Working here on a SmoothWall UTM-300 (Caswell CAR-3030)


                            At first it seemed not all the display buttons were working, but after hitting ESC (maybe a few times?) a menu appeared that I could navigate through to change settings (e.g. disable heartbeat, etc.). Relevant sections of my LCDd.conf:

                            
                            [server]
                            DriverPath=/usr/local/lib/lcdproc/
                            Driver=hd44780
                            Bind=127.0.0.1
                            Port=13666
                            User=nobody
                            WaitTime=5
                            ToggleRotateKey=Enter
                            PrevScreenKey=Left
                            NextScreenKey=Right
                            
                            [hd44780]
                            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
                            
                            

                            Is this pretty much a manual thing for now, or can we use it with LCDproc in WebGUI?

                            Thank you!

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

                              Nice GIF.  ;D

                              1 Reply Last reply Reply Quote 0
                              • B
                                Boyer1701
                                last edited by

                                OMG THANK YOU - this thread is what caused me to register for this forum - the driver works like a charm, amazing!
                                (Caswell CAR-3000 board)

                                1 Reply Last reply Reply Quote 0
                                • C
                                  ColdStoner
                                  last edited by

                                  Love to see this!! I was previously getting by w/ the lb216 and the hex dump method.

                                  Anywho, I've downloaded HD44780_EZIO_Driver_pfSense2_3_32bit.zip and have extracted the .so to the specified location…

                                  however I am getting an error when starting lcdproc:

                                  Could not open driver module /usr/local/lib/lcdproc/hd44780.so: Shared object "libftdi1.so.2" not found, required by "hd44780.so"

                                  I'm not sure how to get that library installed on pfSense... Ideas?

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

                                    Are you running 32bit 2.3.X?

                                    Though that file doesn't seem to be present anyway. Are you sure you selected the correct driver and connection type? Can we see you lcdproc.conf file?

                                    Steve

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

                                      @ColdStoner:

                                      Could not open driver module /usr/local/lib/lcdproc/hd44780.so: Shared object "libftdi1.so.2" not found, required by "hd44780.so"

                                      I'm not sure how to get that library installed on pfSense… Ideas?

                                      This is more of a freeBSD thing. You need to add the libftdi1 library. You need to look into the package manager, but it is probably going to look like this, as root: "pkg add libftdi1" (lib FTD (eye) (one). Confusingly, there is also the older version, libftdi, which is not needed here.

                                      Best of luck, keep us posted.

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

                                        Not sure why you'd need that unless you are using a USB/serial adapter though. And in that case it would still have needed it using the previous manual method.  :-\

                                        Steve

                                        1 Reply Last reply Reply Quote 0
                                        • C
                                          ColdStoner
                                          last edited by

                                          I too am a bit perplexed as to why it needs this particular library, but Ill keep on keeping on tho.

                                          Ill look at turning up a BSD 10.3 box and pulling it from there. I cannot get it to install from with in PF returning a "no package availible"

                                          Thank you.

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

                                            It sort of gets to the heart of things. My (somewhat superficial) understanding is that most LCD panel out there (as in actual stand alone screen) have to be somehow controlled so that characters show up, there is a sense of rows and columns, etc. For mostly historic reasons, most chips that do this are either original HD44780 or later, backward-compatible with the this same HD44780. In a sense, this HD4470 is a standard. Now, if you look at the details of the chip (the datasheet can be found), the front side of it does not really have anything typically found on a PC (like USB, or serial, etc). Some form of an interface circuit has to be present. This is why these HD44780 chips need to be "behind" some other form of interface like parallel port, serial, USB, etc. Then add the dimension that this driver code runs on non-PC architectures as well (e.g. RaspberryPI, etc), and then even more hardware interfaces start to make sense.

                                            Altogether, the software driver for the HD44780 in the lcdproc project sort of mirrors this state of affairs. There is basic HD44780 logic built in, but the reality is that the code is geared towards supporting these very many types of hardware interfaces. Fortunately, some require just code (available from the standard C library), or require direct control (like parallel port). On the flip side, others are best handled by using libraries of pre-existing code. These libraries then become dependencies.

                                            Bottom line, these dependencies allow the same driver to support a lot of different hardware connections at run time, based on config files. The downside of the current setup is that these libraries are, in a sense, hard dependencies, so need to all be present at run time to even load. This is independent of actually using said interface.

                                            In the present, these dependencies are determined at build time. The build system detects the presence of these libraries (on the build system) and makes that fact known to the code. When the code is compiled, these libraries are turned on, and the corresponding feature is turned on (as well as become a dependency). This build feature can of course be controlled with command line options, so even if the library is available at build time, it can be ignored so the dependency does not appear in the resulting code.

                                            The right answer for this is of course making a proper FreeBSD/pfSense package available. It is also possible to make multiple packages available as well. Each package can be compiled with increasing number of dependencies. There can be a base package with no dependencies (except what libraries come with a "naked" system), all the way to a full package that lists all the necessary dependencies.

                                            Here, I am trying to help out by supplying simple binaries. I suspect once there is an official lcdproc version update, the official pfSense maintainer will step forward and compile an official lcdproc package.

                                            If installing these dependencies becomes too much of a hassle, I can re-build the binary with fewer dependencies. Let me know.

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