Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

galahad2lcd-helper

A helper tool for the Lian Li Galahad II LCD AIO pump on Linux, built on top of galahad2lcd.

Solves the practical problem between "galahad2lcd is installed" and "my custom image is actually displaying on the pump reliably, without crashes."

$ pumpify

  pumpify v1.0.0  —  AIO LCD content library

  #   FILE                                     SIZE     FPS  RES        STATUS
  ────────────────────────────────────────────────────────────────────────────
  1   Autum Girl-480fill-12s.mp4               0.39 MB   24  480x480    ok
  2   Girl Looking at Stars-pump-fit.mp4       1.72 MB   24  480x480    ok
  3   grok-bubbles-480.mp4                     0.96 MB   24  480x480    ok
  4   Red Dimension-480fill-20s.mp4            1.60 MB   24  480x480    ok
  5   Red Dimension-480fill-30s.mp4            2.40 MB   24  480x480    ok
  6   Train-480fill-45s.mp4                    1.76 MB   24  480x480    ok

  Options:
    #          Push that file to the pump
    t          Transcode a new source into the library
    r          Refresh library listing
    s          Show service status
    q          Quit

Why this exists

galahad2lcd is the solid open-source daemon that actually talks to the pump. But if you just install it and start feeding it video files, you'll learn — through frustration and repeated pump crashes — that the hardware has limits that aren't documented anywhere.

This tool:

  1. Encodes the pump's empirical limits (framerate, file size, resolution) as hard rules and soft warnings
  2. Transcodes sources to a pump-safe format using those rules
  3. Maintains a clean content library so you know which files are safe
  4. Pushes content to the pump using the specific workflow that actually works reliably

Hardware findings

These limits were determined empirically on a Lian Li Galahad II Vision AIO (firmware N9,01,HS,SQ,CA_II-Vision,V2.01.041,1.6), running Pop!_OS 24.04 with galahad2lcd's default ffmpeg+H.264 pipeline. Most are not documented by Lian Li.

Hard rule: framerate must be ≤24 fps

30 fps content ALWAYS crashes the pump mid-playback, regardless of duration, file size, or content complexity. Typical failure: plays for 5–15 seconds, LEDs freeze, pump resets to factory Lian Li logo.

The pump's MCU appears unable to decode H.264 packets arriving at 33 ms intervals (30 fps). At 42 ms intervals (24 fps) it keeps up fine.

Soft rule: file size ≤ ~2.5 MB for stability, ≤ 3.5 MB hard max

galahad2lcd pre-loads the entire encoded H.264 payload into pump memory before streaming starts. The pump has a receive buffer limit somewhere between 3.5 and 5 MB.

File size range Behavior
≤2.5 MB Reliable in back-to-back swaps
2.5–3.5 MB Works as a one-shot load, but swapping between large files is flaky
≥3.5 MB Tends to fail upload (pump stuck on Lian Li logo)
≥5 MB Reliably fails

Empirical results at 24 fps, fill mode:

Duration Frames Typical size Result
6s 144 0.1 MB ✓ stable
12s 288 0.5 MB ✓ stable
20s 480 0.6 MB ✓ stable
30s 720 1.0 MB ✓ stable
45s 1080 1.8–3.7 MB ✓ stable if ≤ ~3 MB
60s 1440 ~5 MB ✗ upload fails

File size varies with content complexity, not just duration. Busy visual content (e.g., particle effects, high-motion) encodes larger than calm content (landscapes, slow pans) at the same duration.

Native resolution is 480×480

Scaling is automatic inside pumpify. Fill mode crops to square, fit mode letterboxes with black bars.

The galahad2lcd "short-path" staging observation

galahad2lcd appears to be more reliable when the config path it's given is kept short and stable. Specifically, changing MYAPP_ARGS between widely different paths across swaps showed higher crash rates than staging all files through a fixed short-path folder. pumpify always stages through ~/.pumpify-staging/ before pointing galahad2lcd at the file; the config path never varies, only the file contents behind it.

Whether this is galahad2lcd, ffmpeg caching, kernel I/O timing, or the pump's own behavior isn't clear. But empirically, the short-path staging pattern correlates with dramatically fewer crashes.

Install

Prerequisites

  • galahad2lcd installed and working
  • ffmpeg (brings in ffprobe)
  • systemd
sudo apt install ffmpeg

Get pumpify

# Clone the repo
git clone https://github.com/arcshi/galahad2lcd-helper.git ~/galahad2lcd-helper

# Symlink pumpify into your PATH
mkdir -p ~/.local/bin
ln -s ~/galahad2lcd-helper/pumpify ~/.local/bin/pumpify
chmod +x ~/galahad2lcd-helper/pumpify

# Verify
pumpify --help

Directory layout created by pumpify

  • ~/Pictures/pumpify/ — your clean content library (pump-safe transcoded files)
  • ~/.pumpify-staging/ — internal staging, don't touch
  • /etc/default/galahad2lcd — galahad2lcd's config (pumpify edits via sudo)

Usage

Interactive mode (recommended)

pumpify

Launches a menu showing your library and what's on the pump. From there:

  • Type a file number to push it to the pump
  • Type t to transcode a new source into the library
  • Type s to check service status
  • Type q to quit

Transcoding a new source

From the menu, pick t, then:

  1. Paste (or drag) a source file path
  2. Choose fill (crop to square) or fit (letterbox)
  3. pumpify transcodes at 24 fps, CRF 24, up to 45 seconds
  4. If the result exceeds 2.5 MB, you're offered choices: shorten duration, increase compression, accept anyway, or discard

Supported sources: MP4, MOV, MKV, WebM, AVI, GIF, and still images. Basically anything ffmpeg can read.

Direct CLI push

For scripting or rapid swaps:

pumpify push ~/Pictures/pumpify/Train-480fill-45s.mp4

Skips the menu, applies the file immediately.

When the pump crashes

The pump will occasionally crash during a swap — stuck on the factory Lian Li logo. This is normal and recoverable. Don't panic and don't try to "fix" it with anything drastic.

If the pump is stuck on the Lian Li logo

Just push another file. pumpify's next push cycle will recover the pump ~95% of the time.

pumpify push ~/Pictures/pumpify/<any-pump-safe-file>

If the pump is "hung" (not on the logo, not displaying content)

Keep pushing. Each push triggers a stop/start of galahad2lcd, which will eventually either recover the pump or push it all the way into the Lian Li logo state — which pumpify can then recover from. Pushing is cheap and safe; let it crash fully if needed.

If multiple pushes don't recover

Full OS shutdown, wait 30 seconds, power on. (Not a reboot — a true cold boot. The pump capacitors need time to fully drain for a firmware reset.)

sudo shutdown -h now
# Wait 30 seconds
# Press power button

galahad2lcd auto-starts on boot with your last-configured file. Pump comes back clean.

Troubleshooting

ffmpeg or ffprobe not found

sudo apt install ffmpeg

/etc/default/galahad2lcd not found

galahad2lcd isn't installed (or was installed in a non-standard way). Install galahad2lcd first: https://github.com/H4rk3nz0/GalahadII_LCD_Linux

Pump never updates after pumpify push

  1. Wait the full 15 seconds — initial upload takes that long
  2. Check systemctl is-active galahad2lcd.service — must be active
  3. Check journal: sudo journalctl -u galahad2lcd.service -n 30
  4. Look for line [+] Streaming from RAM at 24.00 FPS. If absent, service failed to connect. Restart with sudo systemctl restart galahad2lcd.

Transcoded output is always over 2.5 MB

Try these in order:

  1. Shorten duration (pumpify offers this automatically)
  2. Increase CRF (pumpify offers this too, up to CRF 32)
  3. Pick a less visually complex source if you can

Content with constant motion and high detail (particle effects, fireworks, rain) encodes larger than content with repeated frames (slow pans, still scenes).

Known limitations

  • Only tested on Lian Li Galahad II Vision. Other variants (Trinity, LCD, LCD SL-INF) likely work similarly but aren't confirmed. Please open an issue if you test on another variant.
  • Rotation is fixed at 0°. Edit /etc/default/galahad2lcd manually if you need a different rotation.
  • No real-time widgets. This tool only handles pre-rendered image/video content. For live CPU/GPU/RAM displays, try lianli-linux-daemon (under active development).

Credits

License

MIT — see LICENSE file.

About

Helper tool (pumpify) + empirical hardware limits for the Lian Li Galahad II LCD AIO on Linux, built on top of galahad2lcd.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages