SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
Making Open Source Hardware for
Retrogaming on Raspberry Pi
Leon Anavi
Konsulko Group
leon.anavi@konsulko.com
leon@anavi.org
FOSDEM 2019
FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi
whoami | disclaimer
❌ Gamer
❌ Retrocomputing expert
✅ Open source enthusiast
✅ Software engineer
FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi
Agenda
 Designing a retro gamepad as a simple Raspberry Pi HAT
 Open source hardware certifcation
 Creating a device-tree overlay with fragments for mapping
keys and fashing it in an EEPROM
 Turing Raspberry Pi into retro-gaming machine with RetroPie
 Conclusions
FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi
Raspberry Pi
 Low cost single board computer developed in the UK by the
Raspberry Pi Foundation
 With Broadcom ARM SoC
 Available with size of credit card (85x56mm), even smaller
(65x56mm and 65x30mm) or as a industrial compute module
 As of mid 2018 more than 19 million units have been sold
worldwide
 Hardware Attached on Top (HAT) specifcations
FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi
Gamepad
 “A gamepad, joypad, or simply controller is a type of game
controller held in two hands, where the fngers (especially
thumbs) are used to provide input.” Wikipedia
 Let’s design a low-cost open source hardware gamepad as a
Raspberry Pi add-on
FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi
KiCAD
 Free & open source EDA software (GPLv3+)
 Cross platform (works on GNU/Linux distributions, MS
Windows and Mac OS X)
 Integrated 3D viewer
 Up to 32 copper layers + 14 fxed-purpose technical layers
 Contributions from CERN developers
 Already adopted by the industry
 http://kicad-pcb.org/
FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi
Ingredients for a retro gamepad
 4 tact buttons for movement
 2 tact buttons for select and start
 2 tact buttons for A and B
 EEPROM connected to the secondary I2C (pins 27 and 28)
 Bonus: several slots for sensors on the frst I2C (pins 3 and 5)
to make the board useful for home automation while not
playing retro games
FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi
Schematics
FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi
Pcbnew
FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi
The Real Hardware
FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi
Open Source Hardware
 Design of physical objects that is publicly available so that
anyone can study, modify, distribute, make, and sell the
design or hardware based on that design
 To be really open source hardware the project needs 4 main
elements: hardware, software, documentation, branding
FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi
Open Source Hardware Certifcation
Open Source Hardware Association(OSHWA):
 Maintains Certifed Projects Directory
 Ensures that the defnition of “open source hardware” used
by a specifc project matches the community defnition of
open source hardware
 Provides an unique ID for certifed hardware based on the
country code and a number, for example: BG000007
 Provides an unique logo with for the certifed ID
FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi
Open Source Hardware Certifed!
https://certification.oshwa.org/bg000007.html
FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi
Device Tree
 Specifcation for a software data structure that describes
hardware components
 Allows compiled Linux kernel to support diferent hardware
confgurations within a wider architecture family
 The device tree is compiled as an external fle from the Linux
kernel binary fles called DTB (Device Tree Blob) from source
code in DTS (Device Tree Source)
 Device Tree Compiler (DTC) compiles the source into a binary
 For more details:
https://www.devicetree.org/
https://elinux.org/images/f/f9/Petazzoni-device-tree-dummies_0.pdf
FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi
Device Tree Overlay (DTO)
 DTO enables a central DTB (device tree blob) to be overlaid
on the device tree
 DTO includes a number of fragments
 With the default bootloader on Raspberry Pi, DTO can be set
at configtxt on the FAT partition with device_tree=
 The EEPROM on a Raspberry Pi add-on board, connected to
the secondary I2C bus on pins 27 and 28, should include the
overlay required to automatically enable the board
 On Raspbian and other GNU/Linux distributions for Raspberry
Pi the information in the EEPROM can be seen from user-
space at /proc/device-tree/hat/
FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi
Mapping Keys in DTS
 Linux key codes as defned in
/usr/include/linux/input-event-codes.h
 Compile DTBO:
dtc -I dts -O dtb -o anavi-play-phat.dtbo anavi-play-phat.dts
 Create settings.txt fle for the EEPROM and
specify the DTO
 Create binary geep fle from the .txt fle using eepmake
./eepmake settings.txt settings.eep anavi-play-phat.dtbo
 DTS for the DTO of Play pHAT:
https://github.com/AnaviTechnology/hats/blob/anavi/eepromutils/anavi-play-phat.dts
FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi
Flashing an EEPROM for a HAT
 Writing to the EEPROM:
pin 2 and 3
 Reading from the EEPROM:
pin 27 and 28
 Flash the geep fle with eepfash:
https://github.com/raspberrypi/hats
FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi
Testing with Open Source Games in
Raspbian GNU/Linux distribution
 Verify that Raspberry Pi boots with the attached Play pHAT
and the information from the EEPROM in user-space is
available
 Verify that the keys on Play pHAT are properly set
 Start a simple game included in the Raspbian Desktop image
to test Play pHAT for gaming
FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi
RetroPie
 GNU/Linux distribution optimized for playing retro games that
combines RetroArch and Emulation Station
 Available for Raspberry Pi, Odroid C1/C2 or personal
computer (with Debian or Ubuntu)
 Provides emulators for loading ROMs (digital version of game
cartriges), no ROMs are included in RetroPie due to copyright
issues
 Useful links:
https://retropie.org.uk
https://retropie.org.uk/docs/
https://github.com/RetroPie
https://www.mamedev.org/roms/
FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi
Further adjustments for emulators
 The problem: the gamepad works fne within the menus of
RetroPie but fails after launching some games and emulators
 The solution: add a Python script for software emulation of
the keys that works will the game emulators
sudo apt-get update
sudo apt-get install -y python-pip
sudo pip install evdev
cd ~
git clone https://github.com/AnaviTechnology/anavi-examples.git
 Add the following lines to /etc/rcglocal
sudo python /home/pi/anavi-examples/anavi-play-phat/anavi-play-gamepad.py &
FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi
Conclusions
 Retro gaming on Raspberry Pi is fun and provides an
excellent opportunity for learning modern open source
technologies like device tree
 RetroPie is an awesome free and open source Linux
distribution for playing retro games on Raspberry Pi
 KiCad is high-quality free and open source software for
designing hardware
 Certifed open source hardware is a fair way to share
schematics and knowledge about physical objects to the
community
FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi
Thank you!
 https://www.raspberrypi.org/blog/introducing-raspberry-pi-hats/
 https://retropie.org.uk/
 https://github.com/AnaviTechnology/hats/blob/anavi/eepromutils/anavi-play-phat.dts
 https://github.com/AnaviTechnology/anavi-play-phat
 https://www.crowdsupply.com/anavi-technology/anavi-play-phat

Weitere ähnliche Inhalte

Was ist angesagt?

Getting Started with Raspberry Pi
Getting Started with Raspberry PiGetting Started with Raspberry Pi
Getting Started with Raspberry Piyeokm1
 
Introduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin ControlIntroduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin ControlPradip Bhandari
 
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...ryancox
 
Python in raspberry pi
Python in raspberry piPython in raspberry pi
Python in raspberry piSudar Muthu
 
Introduction to Raspberry Pi and GPIO
Introduction to Raspberry Pi and GPIOIntroduction to Raspberry Pi and GPIO
Introduction to Raspberry Pi and GPIOKris Findlay
 
Rapid IoT Prototyping with Tizen on Raspberry Pi
Rapid IoT Prototyping with Tizen on Raspberry PiRapid IoT Prototyping with Tizen on Raspberry Pi
Rapid IoT Prototyping with Tizen on Raspberry PiLeon Anavi
 
DigiPinguïns: demo Raspberry Pi (Koen De Smet)
DigiPinguïns: demo Raspberry Pi (Koen De Smet)DigiPinguïns: demo Raspberry Pi (Koen De Smet)
DigiPinguïns: demo Raspberry Pi (Koen De Smet)Avansa Mid- en Zuidwest
 
Interfacing the Raspberry Pi to the World
Interfacing the Raspberry Pi to the WorldInterfacing the Raspberry Pi to the World
Interfacing the Raspberry Pi to the WorldOmer Kilic
 
Building the Internet of Things with Raspberry Pi
Building the Internet of Things with Raspberry PiBuilding the Internet of Things with Raspberry Pi
Building the Internet of Things with Raspberry PiNeil Broers
 
Raspberry pi pico projects raspberry pi projects
Raspberry pi pico projects raspberry pi projectsRaspberry pi pico projects raspberry pi projects
Raspberry pi pico projects raspberry pi projectsIsmailkhan77481
 
Raspberry Pi (Introduction)
Raspberry Pi (Introduction)Raspberry Pi (Introduction)
Raspberry Pi (Introduction)Mandeesh Singh
 
Tac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PITac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PICliff Samuels Jr.
 
Raspberry Pi and Amateur Radio
Raspberry Pi and Amateur RadioRaspberry Pi and Amateur Radio
Raspberry Pi and Amateur RadioKevin Hooke
 

Was ist angesagt? (20)

Getting Started with Raspberry Pi
Getting Started with Raspberry PiGetting Started with Raspberry Pi
Getting Started with Raspberry Pi
 
Introduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin ControlIntroduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin Control
 
IPv6: A Digital Game Changer
IPv6: A Digital Game ChangerIPv6: A Digital Game Changer
IPv6: A Digital Game Changer
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...
 
Python in raspberry pi
Python in raspberry piPython in raspberry pi
Python in raspberry pi
 
Introduction to Raspberry Pi and GPIO
Introduction to Raspberry Pi and GPIOIntroduction to Raspberry Pi and GPIO
Introduction to Raspberry Pi and GPIO
 
Rassberry pi
Rassberry piRassberry pi
Rassberry pi
 
Rapid IoT Prototyping with Tizen on Raspberry Pi
Rapid IoT Prototyping with Tizen on Raspberry PiRapid IoT Prototyping with Tizen on Raspberry Pi
Rapid IoT Prototyping with Tizen on Raspberry Pi
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
DigiPinguïns: demo Raspberry Pi (Koen De Smet)
DigiPinguïns: demo Raspberry Pi (Koen De Smet)DigiPinguïns: demo Raspberry Pi (Koen De Smet)
DigiPinguïns: demo Raspberry Pi (Koen De Smet)
 
Interfacing the Raspberry Pi to the World
Interfacing the Raspberry Pi to the WorldInterfacing the Raspberry Pi to the World
Interfacing the Raspberry Pi to the World
 
Building the Internet of Things with Raspberry Pi
Building the Internet of Things with Raspberry PiBuilding the Internet of Things with Raspberry Pi
Building the Internet of Things with Raspberry Pi
 
Raspberry pi pico projects raspberry pi projects
Raspberry pi pico projects raspberry pi projectsRaspberry pi pico projects raspberry pi projects
Raspberry pi pico projects raspberry pi projects
 
Raspberry Pi (Introduction)
Raspberry Pi (Introduction)Raspberry Pi (Introduction)
Raspberry Pi (Introduction)
 
Tac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PITac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PI
 
Meng
MengMeng
Meng
 
Raspberry Pi and Amateur Radio
Raspberry Pi and Amateur RadioRaspberry Pi and Amateur Radio
Raspberry Pi and Amateur Radio
 

Ähnlich wie Making Open Source Hardware for Retrogaming on RPi

Raspberry Pi introduction
Raspberry Pi introductionRaspberry Pi introduction
Raspberry Pi introductionLotfi Messaoudi
 
Raspberry Pi - Unlocking New Ideas for Your Library
Raspberry Pi - Unlocking New Ideas for Your LibraryRaspberry Pi - Unlocking New Ideas for Your Library
Raspberry Pi - Unlocking New Ideas for Your LibraryBrian Pichman
 
FOSDEM 2017: Making Your Own Open Source Raspberry Pi HAT
FOSDEM 2017: Making Your Own Open Source Raspberry Pi HATFOSDEM 2017: Making Your Own Open Source Raspberry Pi HAT
FOSDEM 2017: Making Your Own Open Source Raspberry Pi HATLeon Anavi
 
Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?Leon Anavi
 
Iaetsd the universal brain for all robots
Iaetsd the universal brain for all robotsIaetsd the universal brain for all robots
Iaetsd the universal brain for all robotsIaetsd Iaetsd
 
Raspberry Pi Free Session - 20_09_2014
Raspberry Pi Free Session - 20_09_2014Raspberry Pi Free Session - 20_09_2014
Raspberry Pi Free Session - 20_09_2014Mandeesh Singh
 
Iaetsd the world’s smallest computer for programmers and app developers
Iaetsd the world’s smallest computer for programmers and app developersIaetsd the world’s smallest computer for programmers and app developers
Iaetsd the world’s smallest computer for programmers and app developersIaetsd Iaetsd
 
Raspberry Pi Session - 22_11_2014
Raspberry Pi Session - 22_11_2014Raspberry Pi Session - 22_11_2014
Raspberry Pi Session - 22_11_2014Mandeesh Singh
 
My presentation raspberry pi
My presentation raspberry piMy presentation raspberry pi
My presentation raspberry piHusainBhaldar21
 
Raspberry pi glossary of terms dictionary extended
Raspberry pi glossary of terms dictionary extendedRaspberry pi glossary of terms dictionary extended
Raspberry pi glossary of terms dictionary extendedWiseNaeem
 
FINAL SEMINAR REPORT OF RASPBERRY PI
FINAL SEMINAR REPORT OF RASPBERRY PIFINAL SEMINAR REPORT OF RASPBERRY PI
FINAL SEMINAR REPORT OF RASPBERRY PIGANESH GOVIND BHOR
 
SEMINAR REPORT OF RASPBERRY PI
SEMINAR REPORT OF RASPBERRY PI SEMINAR REPORT OF RASPBERRY PI
SEMINAR REPORT OF RASPBERRY PI GANESH GOVIND BHOR
 
Getting started with AGL using a Raspberry Pi
Getting started with AGL using a Raspberry PiGetting started with AGL using a Raspberry Pi
Getting started with AGL using a Raspberry PiLeon Anavi
 
introduction to Raspberry pi
introduction to Raspberry piintroduction to Raspberry pi
introduction to Raspberry piluckyanks1992
 
Comparison of Open Source Software Home Automation Tools
Comparison of Open Source Software Home Automation ToolsComparison of Open Source Software Home Automation Tools
Comparison of Open Source Software Home Automation ToolsLeon Anavi
 
Fedora on risc-v_tokyo_30_sep_2019_v4
Fedora on risc-v_tokyo_30_sep_2019_v4Fedora on risc-v_tokyo_30_sep_2019_v4
Fedora on risc-v_tokyo_30_sep_2019_v4Wei Fu
 
Introduction to the rapid prototyping with python and linux for embedded systems
Introduction to the rapid prototyping with python and linux for embedded systemsIntroduction to the rapid prototyping with python and linux for embedded systems
Introduction to the rapid prototyping with python and linux for embedded systemsNaohiko Shimizu
 

Ähnlich wie Making Open Source Hardware for Retrogaming on RPi (20)

Raspberry Pi introduction
Raspberry Pi introductionRaspberry Pi introduction
Raspberry Pi introduction
 
Raspberry Pi - Unlocking New Ideas for Your Library
Raspberry Pi - Unlocking New Ideas for Your LibraryRaspberry Pi - Unlocking New Ideas for Your Library
Raspberry Pi - Unlocking New Ideas for Your Library
 
FOSDEM 2017: Making Your Own Open Source Raspberry Pi HAT
FOSDEM 2017: Making Your Own Open Source Raspberry Pi HATFOSDEM 2017: Making Your Own Open Source Raspberry Pi HAT
FOSDEM 2017: Making Your Own Open Source Raspberry Pi HAT
 
Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?
 
Iaetsd the universal brain for all robots
Iaetsd the universal brain for all robotsIaetsd the universal brain for all robots
Iaetsd the universal brain for all robots
 
Raspberry Pi Free Session - 20_09_2014
Raspberry Pi Free Session - 20_09_2014Raspberry Pi Free Session - 20_09_2014
Raspberry Pi Free Session - 20_09_2014
 
Iaetsd the world’s smallest computer for programmers and app developers
Iaetsd the world’s smallest computer for programmers and app developersIaetsd the world’s smallest computer for programmers and app developers
Iaetsd the world’s smallest computer for programmers and app developers
 
Raspberry Pi Session - 22_11_2014
Raspberry Pi Session - 22_11_2014Raspberry Pi Session - 22_11_2014
Raspberry Pi Session - 22_11_2014
 
My presentation raspberry pi
My presentation raspberry piMy presentation raspberry pi
My presentation raspberry pi
 
Raspberry pi
Raspberry piRaspberry pi
Raspberry pi
 
Raspberry pi glossary of terms dictionary extended
Raspberry pi glossary of terms dictionary extendedRaspberry pi glossary of terms dictionary extended
Raspberry pi glossary of terms dictionary extended
 
FINAL SEMINAR REPORT OF RASPBERRY PI
FINAL SEMINAR REPORT OF RASPBERRY PIFINAL SEMINAR REPORT OF RASPBERRY PI
FINAL SEMINAR REPORT OF RASPBERRY PI
 
SEMINAR REPORT OF RASPBERRY PI
SEMINAR REPORT OF RASPBERRY PI SEMINAR REPORT OF RASPBERRY PI
SEMINAR REPORT OF RASPBERRY PI
 
Getting started with AGL using a Raspberry Pi
Getting started with AGL using a Raspberry PiGetting started with AGL using a Raspberry Pi
Getting started with AGL using a Raspberry Pi
 
introduction to Raspberry pi
introduction to Raspberry piintroduction to Raspberry pi
introduction to Raspberry pi
 
Comparison of Open Source Software Home Automation Tools
Comparison of Open Source Software Home Automation ToolsComparison of Open Source Software Home Automation Tools
Comparison of Open Source Software Home Automation Tools
 
Fedora on risc-v_tokyo_30_sep_2019_v4
Fedora on risc-v_tokyo_30_sep_2019_v4Fedora on risc-v_tokyo_30_sep_2019_v4
Fedora on risc-v_tokyo_30_sep_2019_v4
 
Introduction to the rapid prototyping with python and linux for embedded systems
Introduction to the rapid prototyping with python and linux for embedded systemsIntroduction to the rapid prototyping with python and linux for embedded systems
Introduction to the rapid prototyping with python and linux for embedded systems
 
Raspberry pi
Raspberry piRaspberry pi
Raspberry pi
 
Raspberry Pi
Raspberry PiRaspberry Pi
Raspberry Pi
 

Mehr von Leon Anavi

Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...
Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...
Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...Leon Anavi
 
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...Leon Anavi
 
Integrating VNC in Weston with the Yocto Project and OpenEmbedded
Integrating VNC in Weston with the Yocto Project and OpenEmbeddedIntegrating VNC in Weston with the Yocto Project and OpenEmbedded
Integrating VNC in Weston with the Yocto Project and OpenEmbeddedLeon Anavi
 
Как да убием и последната дискета с Open Source технологии?
Как да убием и последната дискета с Open Source технологии?Как да убием и последната дискета с Open Source технологии?
Как да убием и последната дискета с Open Source технологии?Leon Anavi
 
Linux обновления с RAUC и Docker
Linux обновления с RAUC и DockerLinux обновления с RAUC и Docker
Linux обновления с RAUC и DockerLeon Anavi
 
How to Choose a Software Update Mechanism for Embedded Linux Devices
How to Choose a Software Update Mechanism for Embedded Linux DevicesHow to Choose a Software Update Mechanism for Embedded Linux Devices
How to Choose a Software Update Mechanism for Embedded Linux DevicesLeon Anavi
 
Open Hardware Makers
Open Hardware MakersOpen Hardware Makers
Open Hardware MakersLeon Anavi
 
Open Source Tools for Making Open Source Hardware
Open Source Tools for Making Open Source HardwareOpen Source Tools for Making Open Source Hardware
Open Source Tools for Making Open Source HardwareLeon Anavi
 
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
A/B Linux updates with RAUC and meta-rauc-community: now & in the futureA/B Linux updates with RAUC and meta-rauc-community: now & in the future
A/B Linux updates with RAUC and meta-rauc-community: now & in the futureLeon Anavi
 
Surfing on an Interactive Kiosk
Surfing on an Interactive KioskSurfing on an Interactive Kiosk
Surfing on an Interactive KioskLeon Anavi
 
Linux дистрибуции и софтуерни обновления за вградени устройства
Linux дистрибуции и софтуерни обновления за вградени устройства Linux дистрибуции и софтуерни обновления за вградени устройства
Linux дистрибуции и софтуерни обновления за вградени устройства Leon Anavi
 
Практични примери за device tree overlays на Raspberry Pi
Практични примери за device tree overlays на Raspberry PiПрактични примери за device tree overlays на Raspberry Pi
Практични примери за device tree overlays на Raspberry PiLeon Anavi
 
The Software Developer’s Guide to Open Source Hardware
The Software Developer’s Guide to Open Source HardwareThe Software Developer’s Guide to Open Source Hardware
The Software Developer’s Guide to Open Source HardwareLeon Anavi
 
Вграждане на умни гласови асистенти в устройства с Linux
Вграждане на умни гласови асистенти в устройства с LinuxВграждане на умни гласови асистенти в устройства с Linux
Вграждане на умни гласови асистенти в устройства с LinuxLeon Anavi
 
Comparison of Voice Assistant SDKs for Embedded Linux Devices
 Comparison of Voice Assistant SDKs for Embedded Linux Devices Comparison of Voice Assistant SDKs for Embedded Linux Devices
Comparison of Voice Assistant SDKs for Embedded Linux DevicesLeon Anavi
 
Open Source MQTT Brokers
Open Source MQTT BrokersOpen Source MQTT Brokers
Open Source MQTT BrokersLeon Anavi
 
Въведение в RetroPie за Raspberry Pi
Въведение в RetroPie за Raspberry PiВъведение в RetroPie за Raspberry Pi
Въведение в RetroPie за Raspberry PiLeon Anavi
 
Free and Open Source Software Tools for Making Open Source Hardware
 Free and Open Source Software Tools for Making Open Source Hardware Free and Open Source Software Tools for Making Open Source Hardware
Free and Open Source Software Tools for Making Open Source HardwareLeon Anavi
 
Building a Remote Control Robot with Automotive Grade Linux
Building a Remote Control Robot with Automotive Grade LinuxBuilding a Remote Control Robot with Automotive Grade Linux
Building a Remote Control Robot with Automotive Grade LinuxLeon Anavi
 
Връщане към живота на ретро електроника с Raspberry Pi
Връщане към живота на ретро електроника с Raspberry PiВръщане към живота на ретро електроника с Raspberry Pi
Връщане към живота на ретро електроника с Raspberry PiLeon Anavi
 

Mehr von Leon Anavi (20)

Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...
Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...
Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...
 
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
 
Integrating VNC in Weston with the Yocto Project and OpenEmbedded
Integrating VNC in Weston with the Yocto Project and OpenEmbeddedIntegrating VNC in Weston with the Yocto Project and OpenEmbedded
Integrating VNC in Weston with the Yocto Project and OpenEmbedded
 
Как да убием и последната дискета с Open Source технологии?
Как да убием и последната дискета с Open Source технологии?Как да убием и последната дискета с Open Source технологии?
Как да убием и последната дискета с Open Source технологии?
 
Linux обновления с RAUC и Docker
Linux обновления с RAUC и DockerLinux обновления с RAUC и Docker
Linux обновления с RAUC и Docker
 
How to Choose a Software Update Mechanism for Embedded Linux Devices
How to Choose a Software Update Mechanism for Embedded Linux DevicesHow to Choose a Software Update Mechanism for Embedded Linux Devices
How to Choose a Software Update Mechanism for Embedded Linux Devices
 
Open Hardware Makers
Open Hardware MakersOpen Hardware Makers
Open Hardware Makers
 
Open Source Tools for Making Open Source Hardware
Open Source Tools for Making Open Source HardwareOpen Source Tools for Making Open Source Hardware
Open Source Tools for Making Open Source Hardware
 
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
A/B Linux updates with RAUC and meta-rauc-community: now & in the futureA/B Linux updates with RAUC and meta-rauc-community: now & in the future
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
 
Surfing on an Interactive Kiosk
Surfing on an Interactive KioskSurfing on an Interactive Kiosk
Surfing on an Interactive Kiosk
 
Linux дистрибуции и софтуерни обновления за вградени устройства
Linux дистрибуции и софтуерни обновления за вградени устройства Linux дистрибуции и софтуерни обновления за вградени устройства
Linux дистрибуции и софтуерни обновления за вградени устройства
 
Практични примери за device tree overlays на Raspberry Pi
Практични примери за device tree overlays на Raspberry PiПрактични примери за device tree overlays на Raspberry Pi
Практични примери за device tree overlays на Raspberry Pi
 
The Software Developer’s Guide to Open Source Hardware
The Software Developer’s Guide to Open Source HardwareThe Software Developer’s Guide to Open Source Hardware
The Software Developer’s Guide to Open Source Hardware
 
Вграждане на умни гласови асистенти в устройства с Linux
Вграждане на умни гласови асистенти в устройства с LinuxВграждане на умни гласови асистенти в устройства с Linux
Вграждане на умни гласови асистенти в устройства с Linux
 
Comparison of Voice Assistant SDKs for Embedded Linux Devices
 Comparison of Voice Assistant SDKs for Embedded Linux Devices Comparison of Voice Assistant SDKs for Embedded Linux Devices
Comparison of Voice Assistant SDKs for Embedded Linux Devices
 
Open Source MQTT Brokers
Open Source MQTT BrokersOpen Source MQTT Brokers
Open Source MQTT Brokers
 
Въведение в RetroPie за Raspberry Pi
Въведение в RetroPie за Raspberry PiВъведение в RetroPie за Raspberry Pi
Въведение в RetroPie за Raspberry Pi
 
Free and Open Source Software Tools for Making Open Source Hardware
 Free and Open Source Software Tools for Making Open Source Hardware Free and Open Source Software Tools for Making Open Source Hardware
Free and Open Source Software Tools for Making Open Source Hardware
 
Building a Remote Control Robot with Automotive Grade Linux
Building a Remote Control Robot with Automotive Grade LinuxBuilding a Remote Control Robot with Automotive Grade Linux
Building a Remote Control Robot with Automotive Grade Linux
 
Връщане към живота на ретро електроника с Raspberry Pi
Връщане към живота на ретро електроника с Raspberry PiВръщане към живота на ретро електроника с Raspberry Pi
Връщане към живота на ретро електроника с Raspberry Pi
 

Kürzlich hochgeladen

Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Kürzlich hochgeladen (20)

Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

Making Open Source Hardware for Retrogaming on RPi

  • 1. Making Open Source Hardware for Retrogaming on Raspberry Pi Leon Anavi Konsulko Group leon.anavi@konsulko.com leon@anavi.org FOSDEM 2019
  • 2. FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi whoami | disclaimer ❌ Gamer ❌ Retrocomputing expert ✅ Open source enthusiast ✅ Software engineer
  • 3. FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi Agenda  Designing a retro gamepad as a simple Raspberry Pi HAT  Open source hardware certifcation  Creating a device-tree overlay with fragments for mapping keys and fashing it in an EEPROM  Turing Raspberry Pi into retro-gaming machine with RetroPie  Conclusions
  • 4. FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi Raspberry Pi  Low cost single board computer developed in the UK by the Raspberry Pi Foundation  With Broadcom ARM SoC  Available with size of credit card (85x56mm), even smaller (65x56mm and 65x30mm) or as a industrial compute module  As of mid 2018 more than 19 million units have been sold worldwide  Hardware Attached on Top (HAT) specifcations
  • 5. FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi Gamepad  “A gamepad, joypad, or simply controller is a type of game controller held in two hands, where the fngers (especially thumbs) are used to provide input.” Wikipedia  Let’s design a low-cost open source hardware gamepad as a Raspberry Pi add-on
  • 6. FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi KiCAD  Free & open source EDA software (GPLv3+)  Cross platform (works on GNU/Linux distributions, MS Windows and Mac OS X)  Integrated 3D viewer  Up to 32 copper layers + 14 fxed-purpose technical layers  Contributions from CERN developers  Already adopted by the industry  http://kicad-pcb.org/
  • 7. FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi Ingredients for a retro gamepad  4 tact buttons for movement  2 tact buttons for select and start  2 tact buttons for A and B  EEPROM connected to the secondary I2C (pins 27 and 28)  Bonus: several slots for sensors on the frst I2C (pins 3 and 5) to make the board useful for home automation while not playing retro games
  • 8. FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi Schematics
  • 9. FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi Pcbnew
  • 10. FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi The Real Hardware
  • 11. FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi Open Source Hardware  Design of physical objects that is publicly available so that anyone can study, modify, distribute, make, and sell the design or hardware based on that design  To be really open source hardware the project needs 4 main elements: hardware, software, documentation, branding
  • 12. FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi Open Source Hardware Certifcation Open Source Hardware Association(OSHWA):  Maintains Certifed Projects Directory  Ensures that the defnition of “open source hardware” used by a specifc project matches the community defnition of open source hardware  Provides an unique ID for certifed hardware based on the country code and a number, for example: BG000007  Provides an unique logo with for the certifed ID
  • 13. FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi Open Source Hardware Certifed! https://certification.oshwa.org/bg000007.html
  • 14. FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi Device Tree  Specifcation for a software data structure that describes hardware components  Allows compiled Linux kernel to support diferent hardware confgurations within a wider architecture family  The device tree is compiled as an external fle from the Linux kernel binary fles called DTB (Device Tree Blob) from source code in DTS (Device Tree Source)  Device Tree Compiler (DTC) compiles the source into a binary  For more details: https://www.devicetree.org/ https://elinux.org/images/f/f9/Petazzoni-device-tree-dummies_0.pdf
  • 15. FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi Device Tree Overlay (DTO)  DTO enables a central DTB (device tree blob) to be overlaid on the device tree  DTO includes a number of fragments  With the default bootloader on Raspberry Pi, DTO can be set at configtxt on the FAT partition with device_tree=  The EEPROM on a Raspberry Pi add-on board, connected to the secondary I2C bus on pins 27 and 28, should include the overlay required to automatically enable the board  On Raspbian and other GNU/Linux distributions for Raspberry Pi the information in the EEPROM can be seen from user- space at /proc/device-tree/hat/
  • 16. FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi Mapping Keys in DTS  Linux key codes as defned in /usr/include/linux/input-event-codes.h  Compile DTBO: dtc -I dts -O dtb -o anavi-play-phat.dtbo anavi-play-phat.dts  Create settings.txt fle for the EEPROM and specify the DTO  Create binary geep fle from the .txt fle using eepmake ./eepmake settings.txt settings.eep anavi-play-phat.dtbo  DTS for the DTO of Play pHAT: https://github.com/AnaviTechnology/hats/blob/anavi/eepromutils/anavi-play-phat.dts
  • 17. FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi Flashing an EEPROM for a HAT  Writing to the EEPROM: pin 2 and 3  Reading from the EEPROM: pin 27 and 28  Flash the geep fle with eepfash: https://github.com/raspberrypi/hats
  • 18. FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi Testing with Open Source Games in Raspbian GNU/Linux distribution  Verify that Raspberry Pi boots with the attached Play pHAT and the information from the EEPROM in user-space is available  Verify that the keys on Play pHAT are properly set  Start a simple game included in the Raspbian Desktop image to test Play pHAT for gaming
  • 19. FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi RetroPie  GNU/Linux distribution optimized for playing retro games that combines RetroArch and Emulation Station  Available for Raspberry Pi, Odroid C1/C2 or personal computer (with Debian or Ubuntu)  Provides emulators for loading ROMs (digital version of game cartriges), no ROMs are included in RetroPie due to copyright issues  Useful links: https://retropie.org.uk https://retropie.org.uk/docs/ https://github.com/RetroPie https://www.mamedev.org/roms/
  • 20. FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi Further adjustments for emulators  The problem: the gamepad works fne within the menus of RetroPie but fails after launching some games and emulators  The solution: add a Python script for software emulation of the keys that works will the game emulators sudo apt-get update sudo apt-get install -y python-pip sudo pip install evdev cd ~ git clone https://github.com/AnaviTechnology/anavi-examples.git  Add the following lines to /etc/rcglocal sudo python /home/pi/anavi-examples/anavi-play-phat/anavi-play-gamepad.py &
  • 21. FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi Conclusions  Retro gaming on Raspberry Pi is fun and provides an excellent opportunity for learning modern open source technologies like device tree  RetroPie is an awesome free and open source Linux distribution for playing retro games on Raspberry Pi  KiCad is high-quality free and open source software for designing hardware  Certifed open source hardware is a fair way to share schematics and knowledge about physical objects to the community
  • 22. FOSDEM 2019, Making Open Source Hardware for Retrogaming on Raspberry Pi, Leon Anavi Thank you!  https://www.raspberrypi.org/blog/introducing-raspberry-pi-hats/  https://retropie.org.uk/  https://github.com/AnaviTechnology/hats/blob/anavi/eepromutils/anavi-play-phat.dts  https://github.com/AnaviTechnology/anavi-play-phat  https://www.crowdsupply.com/anavi-technology/anavi-play-phat