Emilia Pincab

Philippe Coval <purl.org/rzr> #LGM2021

lgm2020-logo-120.png

Who is Phil Coval

  • Software Engineer from Rennes, France
  • OpenSource Contributor, Mozilla Rep (IoT)
  • Involved in OS projects supported by industry:
    • Tizen (Intel), Yocto, IoTivity (Samsung OSG)
  • Contact: https://purl.org/rzr
    • Currently available for cooperation
    • Link me from Fediverse or @RzrFreeFr
      • Presentations, Videos, Social
  • Interests: FLOSS Community, IoT, 3D/XR…

2020's Motivations

  • I was looking for a project to:
    • get busy during Lockdown s
    • build a product/prototype device
  • Base for experimenting
    • catch up with modern technology
    • while keeping connection to "legacy"
  • Think about sustainability
    • also in software or community domains

Emilia Pinball's Life

  • 2000: Henrik Enqvist wrote game:
  • 2003: Last release 0.3.1
    • with my contribs (ports, 3ds) tables
  • 2004: Abandonware
    • Community split into forks…

Abandon to adoption

Pinedit

Create tables

Create or improve?

📺 📺 📺 📺

What's a pincab ?

Pinball cabinet

  • Closed source pinball simulators
    • Supported by Windows (DirectX)
    • VPX, FuturePinball, PinballFX…
  • Supporting rotated display
    • from landscape to portrait
    • same form factor as physical device
  • Is there any FLOSS pincab ?
    • for GNU/Linux

Pincab on Emilia?

  • Support "portrait" display
    • New camera "full" static view
  • Improve controllers
    • Input: Keyboard, Mouse, Joystick
    • Events: Flippers (R/L), plunger, nudges (*3)
  • Plug and play (conf, scripts)
  • More: GPIO, LED etc

Demo Pincab

📺 📺 📺

Bill of Material

  • Monitor: Philips BDH4251V_00 (2007)
    • XGA (1024x768 16:9) + HDMI, VGA
    • Plasma digital signage (~40 kg)
  • 2 trestles: leveled to ~95 cm
  • Buttons (USB Keyboard or mice + strip)
  • A 2004 PC (x86 Pentium 4 duo 32bits)
  • Or Raspberry Pi 3+ new !

Hardware Support

  • Most x86* PC (~2004)
  • Raspberry Pi Single board computer
    • Pi3: ~20fps (professor)
    • Pi4: ~60fps to 20fps (gnu)
  • More platform (SBC, GPUs)
    • Etnaviv, Freedreno, Panfrost…
    • SBC: STM32MP1, db410c, XU4…

Graphics stacks

  • Update legacy OpenGL app to support SDL2
  • SDL2 with more backends:
    • Wayland, X11, KMS/DRM, DirectFB
  • New GLESv1 backend renderer
  • Pure Wayland with desktop OpenGL support
  • Try Mesa3D/DRM new GPUs libre drivers

Try it

  • Current release (SDL-1.2)
    • Debian-11 / Ubuntu-21.04
    • Docker, WLS with X11…
  • Install snap snapshots for GNU/Linux
  • Or rebuild:
  • Build and boot OS image:
    • Using DebOS, Ubuntu Core, Yocto

Ubuntu Core

  • Ubuntu for embedded (IoT)
  • Mininal, Secured, with unattended updates
  • snap based (use github for CI/CD)
    • pinball, pinball-table-{gnu,hurd} snapped
  • Use mir graphical server
    • with wayland protocol
      • supported by SDL2
  • BSPs: PC, RPi (armhf, arm64) and more

RPi4 UC20 demo

📺 📺 📺 📺

OE/Yocto

OHOS Demo

📺 📺 📺

Sensor input

Demo: Nudge sensor

📺 📺 📺 📺

Summary

Resources and more:

Thx!

  • Pinball contributors
  • Camille @ LPO.fr (Pi4)
  • LGM Community + ActivDesign
  • Breizh Entropy, Debian Gaming
  • OSTC-eu, STM, Mozilla Reps…

Video Playback

📺 📺 📺

Upcoming

More

Playlist

📺 📺 📺 📺

Created by Philippe Coval