NGALAC/Subsystems

From Noisebridge
Revision as of 00:13, 11 November 2018 by Rando (talk | contribs) (Arduino)
Jump to navigation Jump to search



Subsystems

Power

Streaming PC

BIOS setting for Auto-on with power-on (e.g. from switch)



Audio

  • swap out audio receiver for car amp thing
  • Fest autio streaming with mic, cabinet audio, and stream audio
  • Found a woofer to test with (tbd)
  • Impedance matching circuit

Gainclones are a DIY version of a $3000 audio system called the GainCard.

NGALAC possesses a LM3886TF based dual supply amp which requires a split rail +28/-28 DC supply

Amazon Link

LM3886TF based gainclone amp


Example DIY circuits which are easy to build with clear instructions

Example Circuits

Snubbed regulated PSU

Example PSU design

DIY PSU price is very high, will compare to purchase options
Using computer PSU may be possible after boosting +/-12 to +/-28, however, current on -12V line may not be enough to rate maximum wattage


Possible DIY Design
Qty Short Name Price Part Link Part Total
1 Transformer Dual 28V secondaries, 4.6A Max current $28.00 VPS56-2300 Digikey $28.00
16 Diode $1.00 MUR860 Digikey $16.00
4 Linear Voltage Regulator $2.10 LM338T Digikey $9.00
8 Rectifier Diode $0.20 LM4002 Digikey $1.60
4 1200uF Radial Aluminum Electrolytic Caps $1.00 - $6.00 (depending on current) EEU-FS1J102B Digikey $24.00
* Various Caps and Resistors (1W) $10.00 * * $10.00
Total $95.00

Electrical

  • Ground everything and very well, especially anything the human touches.

Control Model


Start/Stop streaming

// TODO fill out how this works

Standby Loop

A script that controlls the lights, makes sure that the stream is off and goes into attract mode by showing a screen saver on the rasperry pie. Script is as follows: // TODO fill out how this works

Activity Sensed

// TODO fill out how this works

Emulation Station Customizations

//TODO fill out how this works


Exit script

A script that automatically exits the game correctly. Then goes back into attact mode. Script is as follows: //TODO add script here

Activity timer

A timer that counts down when no one is active to not be stuck in a game but go back to attract mode. //TODO fill in more technical details

OBS automation

inputs -> Arduino/RaspberryPi <-> CmdMessenger <-> Serial port <-> USB <-> streaming CPU <-> PyCmdMessenger <-> obs-wc-controller <-> obs


Guardian Process - Windows OBS restart automatically on fail strategy

Windows Task Scheduler starts the stream server automatically on the stream pc.

Windows-r to bring up run dialog

tasksched.msc

look for Launch NGALAC server task

Task should run automatically but if not, can run manually with right-click run or the green play button on bottom right panel. If it asks you to close all instances, say yes


OBS Web Socket Plugin Sets up a websocket API for OBS
obs-wc-rc Python library to interface with OBS websocket API
PyCmdMesssenger Python library for CmdMessenger using serial port
CmdMessenger for Arduino Arduino CmdMessenger library to communicate with PyCmdMessenger on server via serial port

OBS websocket plugin

Tools -> Websocket Plugin Tools -> Websocket Plugin

obs-wc-rc

Query and send commands to OBS from python (can theoretically control everything)

credentials

credentials for the stream websocket interface are required.

rtmp server setup

RTMP server configuration

Arduino

Arduino code using CmdMessenger library for talking through serial port to python orchestrator

Python code to pair with CmdMessenger

First 3 states are switches set high or low

Last 3 are LED states (or anything else)

Can trigger LED strips or whatever else as we wish, run pre-defined patterns, etc.

Software

Arduino IDE 1.8.1+
* CmdMessenger
Python 3.5.4+
* vitualenv, virtualenvwrapper-win, PyCmdMessenger, obs-ws-rc
Git

Webcam Adjustment

Using a servo hooked up to the Leonardo to move adjust the webcam height via some kind of potentiometer.

right now servo is a radio [s]hack 08A14.

pinout:

Config Files

Controllers

  • evtest to check inputs from the IPAC-2 on rpi
  • add player 2 keys to retropi retroarch config

maybe physically generate a plug/unplug signal via detection to arduino and trigger this: https://zedt.eu/tech/linux/restarting-usb-subsystem-centos/

arduino triggering done by detecting various grounding or other (is there a power? must be.) for each controller, then sending that to arduino, then to pi.

usb stuff - polling on rpi

full jsx linux system https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/tree/Documentation/input/joydev/joystick.rst

notes

keep alives for obs, obs restart on power on, rpi watchdog, faulover OBS instance, switched by obswsrc cannot connect. how will this work with auto start, and how to select which instance is stealing?


rpi watchdog

static electricity on case

Arduino COM port detection on streaming PC in python

Do we want to record and stream?


Hwinfo for monitoring streaming PC? whyzit shuttin dwn.


4/7/18 added obs to restart on crash and moved lauch_obspy to restart_obs.bat

add rpi input detection and set timer to tell stream PC to stop streaming (probably through Arduino or API call)

udev rules

ACTION=="add", SUBSYSTEMS=="usb", KERNELS=="6-5:1.0", SYMLINK+="input/joy"

udevadm test -a /sys/path or /dev/path

udevadm test /dev/thing i think

udevadm info --name /dev/thing --query=property

udevadm info --a --name= /dev/thing

udevadm trigger --verbose -dry-run --type=devices --subsystem-match=usb

udevadm monitor --kernel, --udev, or --subsystem-match=usb

Networking

  • Raspberry Pie not auto-connecting to net by default. Should it?
  • nginx w/ rtmp to restream


Neuro

http://www.psychiclab.net/IBVAmanual/QCgraph.html