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

LCDProc 0.5.4-dev

Scheduled Pinned Locked Moved pfSense Packages
587 Posts 68 Posters 624.7k 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 Jun 4, 2012, 3:38 PM

    @Brak:

    Why can't these LEDs be easy and be part of the LCD/button stuff.  :-\

    That is what I am working on. This way, at least, the interface to the LEDs is captured in code as part of the driver. Now, whether we will have a client to turn them on/off is another matter…

    1 Reply Last reply Reply Quote 0
    • A
      acro-ii
      last edited by Jun 4, 2012, 7:01 PM

      Nobody has an idea about my cfa633 and the alternate rs232 pinout issue???

      1 Reply Last reply Reply Quote 0
      • S
        stephenw10 Netgate Administrator
        last edited by Jun 4, 2012, 8:55 PM

        It seems very odd that it isn't wired in a standard manner. But if that is the case it would be a hardware only solution. I don't believe you can change the serial port pins in software (like you can with a parallel connected display).
        If it is working under windows then it should be possible to have it function under lcdproc - with the correct driver.  ;)

        Steve

        1 Reply Last reply Reply Quote 0
        • R
          robi
          last edited by Jun 5, 2012, 1:05 PM

          Is there any chance to have the glcdlib driver also included with the LCDproc package?

          It would allow us to use this very good priced graphic LCD screen with pfSense. This is a small digital photo frame which has an open alternative firmware called dpf-ax, allowing it to be used as graphical USB display. LCDProc's glcdlib driver actually translates the textual info in graphical format for displays like this.

          linkdelight1.jpg
          linkdelight1.jpg_thumb

          1 Reply Last reply Reply Quote 0
          • B
            Brak
            last edited by Jun 5, 2012, 9:37 PM

            @fmertz:

            @Brak:

            Code from Lanner (includes LED, LCM, the software reset button (a pin hole on the units), and the physical LAN bypass feature):

            http://mc.zsnnet.org/hosted/LannerLCMsamples.zip

            Does this work (as root)?

            https://github.com/downloads/fmertz/sdeclcd/a.out

            It should cycle the LEDs (Green, Yellow, then Dark as per the code). I ported the code to FreeBSD (seems to be DOS and Linux initially).

            In short, it looks like the LEDs are interfaces off of the SuperIO. The code mentions the board number. Is it this?

            http://www.scribd.com/doc/39794230/Spec-FW-7565

            Looks like there is an ICH8 Southbridge, and a Winbond W83627THG SuperIO…

            Tried the a.out file, I keep getting "/a.out: Exec format error. Binary file not executable." Am I doing something stupid here, or is it not working?

            1 Reply Last reply Reply Quote 0
            • F
              fmertz
              last edited by Jun 6, 2012, 3:13 PM

              @Brak:

              Tried the a.out file, I keep getting "/a.out: Exec format error. Binary file not executable." Am I doing something stupid here, or is it not working?

              Strange, this a.out file works for me (in the Virtualbox VM) both in 32 bit and 64 bit. I re-downloaded it from github to be sure, with wget, directly from within the VM. Are you using ASCII ftp with Windows? Also, this is compiled for FreeBSD 8.2 i386, not sure what version of FreeBSD your install of pfSense is based off of. Run "chmod 755 a.out" to be sure.

              1 Reply Last reply Reply Quote 0
              • B
                Brak
                last edited by Jun 7, 2012, 1:20 AM

                @fmertz:

                @Brak:

                Tried the a.out file, I keep getting "/a.out: Exec format error. Binary file not executable." Am I doing something stupid here, or is it not working?

                Strange, this a.out file works for me (in the Virtualbox VM) both in 32 bit and 64 bit. I re-downloaded it from github to be sure, with wget, directly from within the VM. Are you using ASCII ftp with Windows? Also, this is compiled for FreeBSD 8.2 i386, not sure what version of FreeBSD your install of pfSense is based off of. Run "chmod 755 a.out" to be sure.

                Okay, tried fetching it, no change on the 64bit pfsense install… But then I tried it on my 32bit install on the same hardware and the program works in the sense that it ran, but the LED does not do anything at all. That's probably not much help tho. :/

                1 Reply Last reply Reply Quote 0
                • S
                  stephenw10 Netgate Administrator
                  last edited by Jun 7, 2012, 1:40 AM

                  But it prints to the console: "Status LED: Green" etc?

                  Steve

                  1 Reply Last reply Reply Quote 0
                  • B
                    Brak
                    last edited by Jun 7, 2012, 1:45 AM

                    Yep, then Yellow, then Dark. Doesn't actually flip the LEDs tho.  :-\

                    1 Reply Last reply Reply Quote 0
                    • F
                      fmertz
                      last edited by Jun 7, 2012, 3:01 AM

                      @Brak:

                      Okay, tried fetching it, no change on the 64bit pfsense install… But then I tried it on my 32bit install on the same hardware and the program works in the sense that it ran, but the LED does not do anything at all. That's probably not much help tho. :/

                      That is what I figured. That code doesn't reconcile with any of the SuperIO documentation I have seen, or even the code's own comments. Hopefully, the code comments will be enough to be able to come up with something…

                      1 Reply Last reply Reply Quote 0
                      • S
                        stephenw10 Netgate Administrator
                        last edited by Jun 7, 2012, 11:15 AM

                        I think we should take this to a separate thread. This one is already massive and LED control on a particular Lanner box is not helpful for most people reading it.

                        Steve

                        1 Reply Last reply Reply Quote 0
                        • B
                          Brak
                          last edited by Jun 8, 2012, 1:45 PM

                          @stephenw10:

                          I think we should take this to a separate thread. This one is already massive and LED control on a particular Lanner box is not helpful for most people reading it.

                          Steve

                          Agreed, but honestly, it's probably not worth worrying about the LED in it at all.

                          Only thing I think we can keep from this side-tracking is that the 64-bit SDECLCD works, but it is hard-coded as 16x2 status screens still.

                          1 Reply Last reply Reply Quote 0
                          • F
                            fmertz
                            last edited by Jun 8, 2012, 4:01 PM

                            @Brak:

                            Only thing I think we can keep from this side-tracking is that the 64-bit SDECLCD works, but it is hard-coded as 16x2 status screens still.

                            You can ask LCDd what it thinks the width is:

                            
                            telnet <pfsense host="" ip="" or="" name="">13666
                            hello
                            connect LCDproc 0.5.4 protocol 0.3 lcd wid 20 hgt 2 cellwid 5 cellhgt 8</pfsense> 
                            
                            1 Reply Last reply Reply Quote 0
                            • B
                              Brak
                              last edited by Jun 9, 2012, 2:02 AM

                              @fmertz:

                              @Brak:

                              Only thing I think we can keep from this side-tracking is that the 64-bit SDECLCD works, but it is hard-coded as 16x2 status screens still.

                              You can ask LCDd what it thinks the width is:

                              
                              telnet <pfsense host="" ip="" or="" name="">13666
                              hello
                              connect LCDproc 0.5.4 protocol 0.3 lcd wid 20 hgt 2 cellwid 5 cellhgt 8</pfsense> 
                              

                              Output:

                              
                              [2.0.1-RELEASE][root@fringebox.blizzard]/root(4): telnet 127.0.0.1 13666
                              Trying 127.0.0.1...
                              Connected to localhost.
                              Escape character is '^]'.
                              hello
                              connect LCDproc 0.5.5 protocol 0.3 lcd wid 20 hgt 2 cellwid 5 cellhgt 8
                              
                              

                              Examples: (Kinda bad example, but it at least shows the screens are shortened. I know things are getting cut off since I can't change the "pfsense shutting down" to be any bigger without losing the extra 8 characters on the end. The Lanner-LCM hacked driver can write the shutdown line on all the 20x2 characters just fine)

                              Off center, not showing screens to be big enough:

                              Clearly addresses the extra characters with other displays:

                              1 Reply Last reply Reply Quote 0
                              • S
                                stephenw10 Netgate Administrator
                                last edited by Jun 9, 2012, 2:13 AM Jun 9, 2012, 2:10 AM

                                Not a driver problem then.
                                Are you sure it ever shows more characters than that? The screens are always drawn from the left side.
                                E.g.

                                Steve

                                1 Reply Last reply Reply Quote 0
                                • F
                                  fmertz
                                  last edited by Jun 9, 2012, 8:16 PM

                                  Brak,

                                  If you want to point me to the hacked Lanner code again, I can have a quick look. Without hardware available to me though, this is quickly becoming unproductive. I am in the mid-atlantic US, maybe you should look up shipping rates and mail me a stripped down box for development. I could probably get the full LCD and LED control coded in the driver for 32 and 64 bit. Up to you.

                                  1 Reply Last reply Reply Quote 0
                                  • B
                                    Brak
                                    last edited by Jun 25, 2012, 1:33 PM Jun 24, 2012, 4:35 PM

                                    I think the issue was just with my implementation. No use you guys wasting time on my hardware.

                                    I did notice the issue with lcdproc crashing on the initial boot, then later restarting into just the LCDd server/client menu. Once I start the service once, it's seemingly good forever (at least until an unlucky interface up/down!)

                                    Is there anything I should try and look at to see why it's failing at the initial boot?

                                    Also, is there any way we could get LCDExec to be included in the package (both 32bit/64bit, 32bit does NOT work on 64bit in my experience - makes no sense?), and have it check for an lcdexec.conf (and if it exists, start the process running that config right after lcdproc starts?) My menu system would be more easily implemented if we could get everyone already have a working lcdexec install. 80% of my installation scripts are just hacking in the lcdexec install.

                                    1 Reply Last reply Reply Quote 0
                                    • B
                                      Brak
                                      last edited by Jun 28, 2012, 12:03 PM

                                      There has to be something wrong with the rc.d or PHP scripts, but I just can't find it. Could it be the interface up/downs on boot causing this crash?

                                      1 Reply Last reply Reply Quote 0
                                      • B
                                        Brak
                                        last edited by Jul 17, 2012, 1:01 PM

                                        Alright, nevermind on the lcdexec stuff, I'm an idiot. It's already in /usr/bin/ for everyone.

                                        But, as for the service crashing on boot, it still appears to happen. I've noticed it does not happen on full (x64) installs, but my nanoBSD installs require a service restart to get working after boot.

                                        Any ideas?

                                        1 Reply Last reply Reply Quote 0
                                        • F
                                          fmertz
                                          last edited by Jul 20, 2012, 5:37 PM

                                          Time for a code release:

                                          I just posted the ledsupport branch of the lcdproc package source code on github:

                                          https://github.com/fmertz/sdeclcd/tree/ledsupport

                                          Basically, this code adds driver support for known Firebox LED arrangements, from X-Core to X-Core-e to X-Peak and finally XTM. The code identifies the particular Intel Southbridge/ICH, and matches it up with specific GPIO pins as posted on this forum. It deals with ICH and SuperIO GPIO. As I only own an X-Core-e, it is not all completely tested.

                                          There is a binary here: https://github.com/downloads/fmertz/sdeclcd/sdeclcd.so

                                          If you can assist in the testing, replace your copy of the driver with this one, and give it a try:

                                          
                                          telnet localhost 13666
                                          hello
                                          connect LCDproc 0.5.5 protocol 0.3 lcd wid 20 hgt 2 cellwid 5 cellhgt 8
                                          output 1 <—Should start blinking red, rare short blink
                                          success
                                          output 2 <—Should start blinking green, rare short blink
                                          success
                                          
                                          

                                          The output logic is this: we have 32 bit to work with, and we need 3 states (Red, Green and off). This is 2 bits. So, in 32 bits, we have 16 time slots to work with. So, basically, code in the sequence of colors you want to see (Red, Green or off) and keep shifting to fill in the bits.

                                          Worksheet:
                                          XXXX XXXX XXXX XXXX
                                          X is 1, 2 or 0

                                          0000 0000 0000 0001 is slow quick blink red
                                          0101 0101 0101 0101 is fast quick blink red
                                          0011 0011 0011 0011 is medium medium blink red
                                          0000 1111 0000 1111 is slow long blink red
                                          0000 2222 0000 1111 is slow blink alternating between red and green

                                          etc… The binary needs to be made decimal for the “output” command. Sequence lasts about 4 seconds.

                                          As we know, there is no client yet that exercises this driver "output" feature. If this works with various models, I'll submit a pull request with the pfSense team so that new package installations will get this binary.

                                          Anyone wants to add LED support to the PHP client? Something like controlling the LED based on availability of internet access, or the ISP's DNS server would be nice...

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post
                                          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.
                                            [[user:consent.lead]]
                                            [[user:consent.not_received]]