Display Platforms
The Smart Panel display app runs on multiple platforms. This page covers platform-specific setup details for manual installations. If you used the install script or a pre-built image, this is already handled for you.
Platform Setup
Raspberry Pi (flutter-pi)
Raspberry Pi (flutter-pi)
The display app uses flutter-pi to render directly to the display via DRM/KMS. No desktop environment (X11 or Wayland) is needed.
Supported boards: Raspberry Pi 3B+, 4, 5, Zero 2W
Prerequisites
KMS must be enabled in the boot configuration. Open /boot/firmware/config.txt and ensure this line
is present:
dtoverlay=vc4-kms-v3dIf you see dtoverlay=vc4-fkms-v3d (fake KMS), remove or comment it out. Full KMS is required.
Your user must have access to the render group:
sudo usermod -a -G render ${USER}Reboot after making changes:
sudo rebootManual Install
Install Dependencies
sudo apt install cmake libgl1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev \
libdrm-dev libgbm-dev libsystemd-dev libinput-dev libudev-dev \
libxkbcommon-dev git -yBuild and Install flutter-pi
sudo mkdir -p /opt/flutter-pi
sudo chown -R ${USER}: /opt/flutter-pi
git clone --depth 1 https://github.com/ardera/flutter-pi.git /opt/flutter-pi
cd /opt/flutter-pi
mkdir build && cd build
cmake ..
make -j$(nproc)
sudo make installDownload the Display App
Download the correct release asset for your architecture:
- ARMv7 (32-bit):
smart-panel-display-flutterpi-armv7.tar.gz - ARM64 (64-bit):
smart-panel-display-flutterpi-arm64.tar.gz
ARCH=$(uname -m)
case $ARCH in
armv7l|armv6l) ASSET="smart-panel-display-flutterpi-armv7.tar.gz" ;;
aarch64|arm64) ASSET="smart-panel-display-flutterpi-arm64.tar.gz" ;;
esac
sudo mkdir -p /opt/smart-panel-display
curl -sL "https://github.com/FastyBird/smart-panel/releases/latest/download/${ASSET}" \
| sudo tar -xzf - -C /opt/smart-panel-displayCreate a Systemd Service
sudo tee /etc/systemd/system/smart-panel-display.service > /dev/null <<'EOF'
[Unit]
Description=Smart Panel Display App
After=network.target
[Service]
User=root
WorkingDirectory=/opt/smart-panel-display
ExecStart=/usr/local/bin/flutter-pi --release /opt/smart-panel-display
Restart=on-failure
RestartSec=5
SupplementaryGroups=video render input
[Install]
WantedBy=multi-user.target
EOFEnable and Start
sudo systemctl enable smart-panel-display
sudo systemctl start smart-panel-displayDisplay Rotation
To rotate the display output, add the -r flag to the ExecStart line in the systemd service:
ExecStart=/usr/local/bin/flutter-pi -r 90 --release /opt/smart-panel-displayValid values: 0, 90, 180, 270
mDNS Discovery on flutter-pi
flutter-pi environments may have limited mDNS support. On pre-built Raspbian images, a local mDNS proxy is installed automatically on port 3001 to bridge discovery. If you installed manually and auto-discovery does not work, you can enter the server URL by hand during onboarding, or set up the mDNS proxy service yourself.
Server Discovery
All platforms auto-discover Smart Panel servers on the local network via mDNS. If discovery does not find your server:
- Enter the server URL manually in the app when prompted during onboarding
- Check that both devices are on the same subnet — mDNS does not cross subnet boundaries
- Verify that port 3000 is accessible from the display device (or whichever port your server uses)
The server must have mDNS enabled (FB_MDNS_ENABLED=true in the server configuration) for
auto-discovery to work.
What’s Next?
Once your display is running and connected to the server, proceed to Onboarding to create your admin account and configure your dashboard.