Git Product home page Git Product logo

retro-router's Introduction

Retro Router

This is a collection of scripts designed to control analog and digital video switches via their RS-232 interfaces. Additional devices are controled through IR via lirc.

Hardware

Wiringing Digiram

Wiring Diagram

Cables going into the Extron Crosspoint are either system specific HD Retrovision (blue) or Nintendo Wii/WiiU (green) cables with a 6ft HD Retrovision Male-to-Female extension, terminated into 75ohm RCA to BNC. Audio cables are terminated into Phoenix to RCA Adapter

Software

Device Control

The hardware API is built upon flask to create a simple interface with pyserial to send commands to the TV, HDMI Switch, HDMI Matrix, and Extron Crosspoint

To control the OSSC LIRC is used with the USB IR Toy to send IR remote commands.

Note: The Monoprice 4x4 matrix seems to be a clone of or cloned by the Lindy 38152. The command codes for the Lindy seem to work correctly with the Monoprice unit as there are no codes on the Monoprice website.

HDMI Switch Codes

HDMI Matrix Command Codes

Crosspoint 450 Codes

Panasonic Codes

UI

The UI was written using Vue with the Vueitfy material framework. Logic was written in TypeScript.

Images of the various systems come from the great work done by Evan Amos whose work can be found at https://commons.wikimedia.org/wiki/User:Evan-Amos

Below are some views of the app running in Firefox on an Android phone.

To switch to a source simply tap the system you want from the list.

Sources that case be upscaled will have a toggle when either can be selected. Analog & Digital

Displays like a CRT will only allow the selection of analog sources Analog

While a capture card will allow only digital sources which include upscaled analog sources Digital

Different sources (TV, CRT, Capture) can all be selected from the side menu Source Selection

Deployment Notes

Python Dependencies
cp retroRouter.py /var/www/html/
cp requirements.txt /var/www/html/

cd /var/www/html
python3 -m virtualenv env
source env/bin/activate
pip3 install -r requirements.txt
Nginx Config
cp .deploy/nginx.conf /etc/nginx/sites-available/default 
sudo service ngnix restart
Gunicon Config
cp .deploy/retro-router.service /etc/supervisor/conf.d/retro-router.conf
sudo service supervisor restart
LIRC Config
cp .deploy/ossc.conf /etc/lirc/lircd.conf.d/ossc.conf

/etc/lirc/lirc_options.conf
driver = irtoy
device = /dev/ttyACM0

sudo service lircd restart

Limitations

  • No authentication. Not designed for public IPs.
  • Hard coded control logic. To work around this an abstraction for a display, switch, matrix, and upscaler would be needed.
  • No querying of control hardware state for dynamic UI updates. The 8x1 switch does not have the ability to query which channel is active or which are even powered on.

Planned Features

  • OSSC profile selection per system
  • Include more system icon variations from Evan's work
  • TV specific functions (Turn on/off, mute, vol up/down, etc)

retro-router's People

Contributors

deekthesqueak avatar

Stargazers

Aliz Hammond avatar  avatar

Watchers

James Cloos avatar Aliz Hammond 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.