Modules with frame buffers

General question - What modules are are using multiple frame buffers /dev/fbx (x being 0 and 1). I’m using a Verdin, with Crank storyboard, but as far as running video (MP4) on top of the Storyboard controls, it just can’t do it. or at least it doesn’t have a way to utilize the Verdin GPU.

But if Crank does have a way to use a separate frame buffer, so I’m looking for a module series that will do frame buffering.

Also what would be an alternative to Crank Storyboard for UI development…other than QT as well.

Hi, I’m the Toradex AI Assistant.

I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.

Did you like my answer? :+1: :-1:


Hello! Thank you for your questions about display capabilities, frame buffers, and UI development options on Verdin modules.

1. Modules Supporting Multiple Frame Buffers (/dev/fb0, /dev/fb1):

Both the Verdin iMX8M Plus and Verdin AM62 modules support up to two independent display pipelines, and thus commonly expose multiple frame buffer devices (such as /dev/fb0 and /dev/fb1) depending on the specific Linux BSP, display interface usage, and kernel configuration. This multi-pipeline setup allows for independent content rendering on two separate displays.
More information on these modules can be found here:

Regarding Overlay/Video Playback with Crank Storyboard:
Crank Storyboard is a high-performance GUI tool, but out-of-the-box, hardware-accelerated blending of video (such as MP4 playback using the GPU) atop GUI elements often requires careful integration. The Verdin SoMs’ hardware display controllers can support multi-layer composition in hardware, but this must be supported by both the application stack and the chosen GUI toolkit. In practice, many GUI frameworks including Crank may not fully expose the ability to composite a hardware-decoded video stream above or below UI layers—sometimes only pure software decoding or limited icon/graphic overlay is possible.

The usage of multiple frame buffers (e.g., rendering video to /dev/fb1 and GUI to /dev/fb0) depends on both software support and hardware pipeline routing. On modern embedded Linux systems, especially with Wayland/Weston and GStreamer pipelines, the frame buffer interfaces may be abstracted behind DRM/KMS APIs, which are more suitable for advanced composition and video overlay use-cases in a hardware-accelerated manner.

2. Alternative UI Development Frameworks (Other than Qt and Crank Storyboard):

Besides Qt and Crank Storyboard, other alternatives supported on Toradex modules include:

  • TotalCross – An open-source SDK that enables you to develop cross-platform GUIs using Java or Kotlin, suitable for embedded Linux devices.
    See here for more details

  • GTK+ / GNOME – A widely used C-based toolkit for Linux GUIs. Well supported in embedded scenarios, though not as feature-rich for HMI as Qt or Crank.

  • LVGL (Light and Versatile Graphics Library) – For lightweight 2D GUIs on resource-constrained hardware, sometimes used in conjunction with TorizonCore.
    (LVGL project site)

  • Electron – For web-based UIs using JavaScript/HTML5, though more resource-demanding.

For more about GPU, display backends, and frameworks:
2D/3D Graphics Acceleration & GPU on embedded Linux

Summary:

  • Both Verdin iMX8M Plus and Verdin AM62 support multiple frame buffers and dual display pipelines, provided the software stack (BSP and middleware) enables them as needed.
  • Crank Storyboard may have some limitations rendering hardware-accelerated video overlays directly; more advanced video integration may require other toolkits or direct GStreamer/Wayland use.
  • UI alternatives to consider: TotalCross, GTK+, LVGL, or Electron.

If you’d like guidance on setting up multiple displays or specific integration with video playback and frame buffers on your module, just let me know!

Best regards,
Toradex AI Assistant.

The Verdin use DRM/KMS for framebuffer management . How would I create /dev/fb1

Hi @jeffbelz ,

I thought this was something Crank had helped you with several months back. Am I wrong? Can you check your correspondence with them on this issue?

Best regards,

not really, its clunky drm. i’m looking for a module that will have a device drive for frame buffer 0 and frame buffer 1

Hey @jeffbelz,

Here is our article on display outputs , there is some dated information here for reference, but it’s on modules that are EOL, but kept for reference.

-Eric

Eric

I want to know about frame buffers, not display outputs. I’m not looking for multiple displays. I’m looking for a modules that has multiple frame buffers

Hey Jeff,

If you scroll down, to say the IMX6, you can see there are two framebuffer devices. Display Output, Resolution and Timings (Linux) | Toradex Developer Center

If I go back to your first post goal, “Crank storyboard, but as far as running video (MP4) on top of the Storyboard controls, it just can’t do it.” And this resulted in a “clucky drm solution.” Can I ask what this means? Was crank not able to utilize the gpu acceleration? Was this just too slow?

-Eric

Eric Singer
Toradex

Hey Jeff,

If you scroll down, to say the IMX6, you can see there are two framebuffer devices. Display Output, Resolution and Timings (Linux) | Toradex Developer Center

If I go back to your first post goal, “Crank storyboard, but as far as running video (MP4) on top of the Storyboard controls, it just can’t do it.” And this resulted in a “clucky drm solution.” Can I ask what this means? Was crank not able to utilize the gpu acceleration? Was this just too slow?

Eric

Eric Singer
Toradex

Hey @jeffbelz ,

Can we close this ticket?

Best regards,

Eric

Correct Crank was not able to use the GPU. We resorted to converting the MP4 to a flip book. it worked…but not an ideal. solution