Getting LCDSmartie Working on a PCIe Parallel Port Card and VFD on 64-Bit Windows

Getting LCDSmartie Working on a PCIe Parallel Port Card and VFD on 64-Bit Windows

The short answer: it works, but the step most guides skip is pulling the correct I/O address from Device Manager. LPT1 and LPT2 mean nothing to a PCIe expansion card. The OS assigns it a custom address, and LCDSmartie has to use that exact hex value or it sees nothing.

Why This Gets Complicated

Modern motherboards dropped the parallel port years ago. Enthusiasts who want to drive a VFD (vacuum fluorescent display) on a home theater PC now reach for a PCIe or PCI parallel port expansion card. Two problems stack up immediately:

  • 64-bit Windows needs a signed kernel driver to perform low-level port I/O. InpOut32, the library LCDSmartie uses under the hood, has an x64 build for this — but you need the right version installed in the LCDSmartie directory.
  • PCIe parallel port cards don’t sit at the classic 0x378 (LPT1) or 0x278 (LPT2) addresses. The OS assigns them a dynamic I/O range. Feed LCDSmartie the wrong address and nothing happens — no error, just silence.

Some cards add a third problem: they route port I/O through virtual addresses instead of real hardware addresses. InpOut can’t reach those regardless of version. More on that below.

What You Need Before Starting

  • LCDSmartie 5.6, the current SourceForge release
  • InpOutx64 — the 64-bit build of the InpOut32 driver library, from highrez.co.uk
  • A PCIe parallel port card that exposes real hardware I/O addresses (ASIX AX99100-based cards have the best compatibility record with InpOut)

Drop the correct inpout32.dll and inpoutx64.dll from the InpOutx64 package into your LCDSmartie directory before touching anything else. Running 5.6 with an old 32-bit-only DLL on a 64-bit OS is one of the most common reasons the whole thing fails without explanation.

Finding the Correct Port Address

This single step resolves the setup for most people.

  1. Open Device Manager (Win+X, then Device Manager).
  2. Expand Ports (COM & LPT) and locate your parallel port card.
  3. Right-click it, choose Properties, then open the Resources tab.
  4. Note the I/O Range value — something like D010-D017. The base address you need is 0xD010.

In LCDSmartie’s port settings, select Custom and enter that hex address. Do not use LPT1 or LPT2. Those resolve to 0x378 and 0x278 respectively, and your PCIe card isn’t at either of those.

When InpOut Won’t Work at All

A subset of PCIe parallel port cards implement their interface through a virtual address layer rather than real hardware I/O ports. InpOut — any version — cannot access those. The symptom looks identical to a misconfiguration: Device Manager shows the card correctly, LCDSmartie accepts the settings, and the display stays dead.

Two paths forward. Try a different card — ASIX AX99100-based models have the most consistent InpOut compatibility. Or switch to a USB VFD, which LCDSmartie supports natively through Matrix Orbital or Crystalfontz drivers without needing InpOut at all.

Autostarting LCDSmartie Without UAC Prompts

Dropping a shortcut in the Startup folder doesn’t work reliably because loading the InpOut kernel driver requires elevation. Task Scheduler handles this cleanly:

  1. Open Task Scheduler and create a new basic task.
  2. Set the trigger to When I log on.
  3. Set the action to start the LCDSmartie executable with -hide as the argument — this suppresses the GUI on launch.
  4. Under the General tab, check Run with highest privileges.
  5. Set Configure for to your Windows version.

No UAC dialog at startup, display comes up automatically, no stray window on the desktop.

Making the Display Worth Keeping

VFDs have a genuinely distinctive look. The blue-green phosphor glow on a 2×20 or 4×20 panel is hard to replicate with anything modern, and it reads cleanly from across a room. But the novelty of watching CPU percentage scroll by wears off fast — usually inside a week.

LCDSmartie’s scripting can pull in data from HWiNFO, Winamp, MPC-HC via plugins, and other sources. A dedicated now-playing screen for media is usually what separates setups people maintain from setups they disassemble. Screens cycle on a configurable timer, so you can rotate between a media screen, a temperatures screen, and a clock on a few-second interval using nothing beyond the built-in screen editor.

Spending ten minutes in the screen editor before calling the build done makes a real difference. The default config — raw CPU percentage and RAM usage — is exactly what burns people out on the display quickly.

Sources


Similar Posts