Code Monkey home page Code Monkey logo

minitel-raspberry-retro-gaming's Introduction

Retro gaming video game console + Old French Minitel (DIY)

External components

A SuperSwag Project

The Minitel was a Videotex online service accessible through telephone lines, and is considered one of the world's most successful pre-World Wide Web online services. The service was rolled out in France in 1982 by the Postes, Télégraphes et Téléphones compagny. From its early days, users could make online purchases, make train reservations, check stock prices, search the telephone directory, have a mail box, and chat in a similar way to that now made possible by the Internet. Then, this service was retired on 30 June 2012.

Minitel used terminals consisting of a text-based screen, keyboard and modem. Simple graphics could be displayed using a set of predefined graphical characters. It used a half-duplex asymmetric data transmission via its modem. It downlinked at 1200 bit/s and uplinked at 75 bit/s. This allowed fast downloads, for the time.

I decided to reuse an old minitel in order to make a retro gaming console, because the case is cute and contains an embedded screen. To make the system work, I used a Raspberry Pi as a computer, an Arduino Nano to control power and peripherals, a 10'' LCD and a stereo speaker. I managed to reuse the original keyboard (with some DIY) but I also added two front USB ports to connect more modern peripherals, such as gamepads.

Here's how it works:

Functionnal schema

Inside, I had to make a plastic support thanks to a 3D printer to contain all the electronic components. The Arduino Nano manages the life cycle of the system. It communicates with the Raspberry using the I2C connection to send him the sound volume value (which can be changed with the minitel's original pot) and the order of shutdown. The Raspberry contains a special retro gaming linux distribution that ships all the emulators from consoles prior to the PlayStation. The display is ensured by an LCD screen specially bought for the occasion, which I had to cut out to adapt it to the original box.

Here's what it looks like inside the box:

Internal components

Conception

Power management / Electronic design

Naturally, raspberry is not able to handle an on/off button that allows the power supply to be turned off properly once the embedded linux has shutdown. To do this, I have added an arduino that controls the power supply and manages the system life cycle.

Electronic schema

Keyboard

The original minitel keyboard is connected directly to the raspberry pi. It works perfectly with the following script:

3D printed components

To integrate all the components in the case and offer USB interfaces on the front, I printed several plastic components using a 3D printer. Models are available in the Casing directory. 3D prints

Materials

  • The Raspberry Pi 3 (Model B) as main engine
  • Arduino Nano (from SODIAL)
  • 10.1 inch LCD touch screen
  • A simple USB audio speaker with Jack connector

Software

RetropieLogo

On the raspberry pi:

  • Installed Operating System : RetroPie
  • Plus some linux packages: i2c-tools and python-smbus, alsa-utils (for sounds), python-uinput (for keyboard)
  • I also replaced the /boot/config.txt to adapt screen resolution
  • See setup document for more details

I also used:

Automatic Synch

The console automatically synchronizes game saves backups with an HTTP server. A raspberry-side python script and a server-side PHP script ensure the synchronization of files periodically, thanks to a CRON task.

SynchScript

Python and PHP scripts uses an OTP authentication using algorithms specified in RFC 6238 and RFC 4226 (also used by Google Authenticator).

This repository contains all the files allowing the creation of a similar console. This content is copyright free.

minitel-raspberry-retro-gaming's People

Contributors

rbello avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.