BeagleBone Black HMI

  • girimugundan

    girimugundan - 2020-09-05


    I have been developing the SanCloud beaglebone black enhanced Industrial version to function as a PLC which runs on CoDeSys. I have had success in pushing the code onto the beaglebone and run it as a PLC. To do so I have done the following.

    1. Flashed the latest version of debian onto the eMMC storage.
    2. Rebuilt the kernel with a realtime kernel instead (rt_preempt)
    3. Insalled Codesys runtime onto the board.

    Now, I want to use the same Beaglebone board for HMI applications as it runs the plc script in the background. To do so I will have to run a browser in kiosk mode and it is here that I run into a lot of problems.

    1. I downloaded the latest LXQT GUI image of debian for the board and flashed it to eMMC, but am not able to patch the kernel due to insufficient archive cache storage.
    2. I did have success in patching the kernel by booting off an sd card with the LXQT GUI image as I was able to run a script to increase the root storage, but I was unable to write the OS to the onboard eMMC as the BBB only has a limited 4Gb and the the Image on the SD card was around 7.4Gb after the script to increase the root storage was executed.
    3. I tried installing a graphical server , a window manager and the chromium-browser on an IOT image to avoid the clutter of a desktop that I do not need. I am unable to install them or if I am able to, they do not launch.
    4. I have tried following the instructions in these links to no success:

    My needs are:
    1. rt patched kernel
    2. browser running in kiosk mode for HMI

    Would love the community's help on this issue as I am quite new to the platform.
    Yours sincerely,
    Giri Mugundan Kumar

  • girimugundan

    girimugundan - 2020-09-23

    Hello aliazz,

    sorry for the late reply. I got it to work. I did the following.

    1. I installed the IoT version of debian.
    2. I patched in the rt kernel.
    3. I installed a gui with LXDE light.
    4. Then I ran a webvisu program using the browser on the BBB.

    Your suggestions helped a lot. Especially the port id of 9090 instead of 8080 as with the RPi. I found the BBB to be rather slow when it came to browser based operations. Do you know of any way to optimize performance?..

    Giri Mugundan Kumar

  • girimugundan

    girimugundan - 2020-09-26


    Oymyakon, currently, I have just been using my BBB industrial for development purposes as it makes for a really portable PLC which runs codesys and needs just one cable. I am planning to use a circuit with a super capacitor and Codesys to perform safe shutdowns on a later date (As Ingo suggested). There will be a constant current to one of the Digital I/O and once cut, the beaglebone will run a scrip to shutdown (The super capacitor will power the BBB till it does). If power is back on, I am planning on using a relay of some sort to power cycle the BBB to switch it on again (after a dwell period of 30seconds or so to account for safe shutdown, if the power is immediately back on). I am not sure about this though, I will only know the problems once I implement it. I will keep you guys posted. Any suggestions or corrections to my idea are most welcome!.

    Giri Mugundan Kumar

  • aliazzz

    aliazzz - 2020-09-05

    If you run CODESYS for BBB you won't need special software for an HMI. You can use Webvisu or TargetVisu depending on the license options that the BBB CODESYS Runtime contains. The PLC functionality is compiled, not scripted. Although special HMI software is not needed, especially when using the internal webserver for graphics(Webvisu). You could still opt to do this but it will take you way more effort.

    A tip is to read up on on WebVisu or TargetVisu and search in the BBB runtime package for the target specific webserver settings.

    Kiosk mode can be enabled in a webbrowser like Chromium and is not part of CODESYS software. TargetVisu, which is part of CODESYS does support it too. Search for enabling kiosk mode in your favorite webbrowser via Google. Also, the webbrowser could but does not need to run on the platform itself. As does TargetVisu.

    Hope these hints give you a direction.

    • girimugundan

      girimugundan - 2020-09-05

      Hello aliazzz,

      I am planning to use webvisu from codesys for the HMI.

      I am able to install the packages for xserver(webserver) on the BBB. Do I need to install chromium-browser and a window manager like openbox to view the HMI screens developed in codesys?. Please note that I am using the IOT image of debian for the BBB.

      Thank you for your help.



      Last edit: girimugundan 2020-09-05
  • oymyakon

    oymyakon - 2020-09-24

    Hi, How did you get the beaglebone to retain variables ie persistence on power failure? Cheers Paul.

    • Ingo

      Ingo - 2020-09-25

      The standard is to shut down cleanly on power fail.
      If this is not possible, you can call AppStoreRetains from the CmpApp library at any time.

      • Morberis

        Morberis - 2020-09-25

        To do that would you need to be using either a cape or power supply that has UPS functionality and can has an output indicating that power has been cut?

  • oymyakon

    oymyakon - 2020-09-28

    Thanks for your help


Log in to post a comment.