A/V switch and monitor controller
Copyright ©2019-2020 Matthew Holder
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
SPDX-License-Identifier: GPL-3.0-or-later
To install BridgeCmdr on the Raspberry Pi, all you need do is download the
latest release and install it with
sudo apt install ./bridgecmdr_<version>-<revision>_armhf.deb -y
I've only tested this software on a Raspberry Pi 3 Model B+. In general I would recommend at minimal a Raspberry Pi 3 Model B or better. Which would include every configuration of the Raspberry Pi 4 Model B. It may run on other models, but this has not been tested.
You will also need a touchscreen, such as the official Raspberry Pi touchscreen, or a mouse and screen. You will also need a keyboard while setting up your configuration, but it is not needed during day-to-day use.
You may also need additional USB-to-serial adapters or a serial HAT. Some supported monitors and switches can be controlled over ethernet. For those you will need an ethernet cable; and if you have more than one such device, an ethernet hub or switch. See Wiki for more information on how to connect to supported monitors and switches.
BridgeCmdr uses the following libraries and frameworks which are available under their respective license.
Framework/Library | License |
---|---|
Electron | MIT |
Vue.js | MIT |
Vuetify | MIT |
PouchDB | Apache 2.0 |
SerialPort | MIT |
VeeValidate | MIT |
Lodash | MIT |
Node UUID | MIT |
electron-unhandled | MIT |
xdg-basedir | MIT |
vue-typed-mixins | MIT |
Other dependencies not listed are part of one of the above packages and share the same license.
BridgeCmdr also uses the Material Design Icons font and SVG graphics which are licensed under the SIL Open Font License v1.0.
Finally, the following tools or libraries were used to build BridgeCmdr.
- cross-env.
- moment.
- read-package-json.
- TypeScript.
- ESLint, and the following third-party plug-ins;
- WebPack, and the following third-party plug-ins;
- TypeScript Loader,
- Resolve URL Loader,
- Node Externals,
- HTML WebPack Plug-in,
- Dart Sass, and the following third-party plug-ins;
- Electron DevTools Installer.
- Electron Installer (Debian).
- PHPStorm, but no PHP code was harmed in the making of this software.
- VisualStudio Code
Other tools or licenses not listed are part of one of the above packages.
If you want to help with the development of BridgeCmdr, downloading, building, then running the project on a GNU/Linux based operating system is required. The following steps will get you setup on a Debian-base operating system.
- Install the
build-essential
package;sudo apt install build-essential -y
- Acquire the source:
- Preferred, Fork the GitHub repository, you may then issue pull
requests back to the official source code. Also start personal branches from
develop
. - Download the source and extract it.
- Preferred, Fork the GitHub repository, you may then issue pull
requests back to the official source code. Also start personal branches from
- Open a terminal clone and go to the folder into which source was cloned or extracted.
- Install the node packages;
npm ci
- Build the user interface source;
npm run prod
ornpm run dev
You should now be able to run the program with npm run start
.
To package or build the install, you will need to follow the above steps you acquire the a working copy of the source code on a Raspberry Pi running Raspbian, the only supported operating system.
There are two ways to build the installer package depending on which model of Raspberry Pi you have.
The following systems must use this method:
- Raspberry Pi 3 Model B
- Raspberry Pi 3 Model B+
- 1GiB Raspberry Pi 4 Model B,
- Any model with lesser specs than those above, though this is as untested as running BridgeCmdr on it.
Though not optimal, the only way to build a package on a 1GiB Raspberry Pi is to use a desktop computer running a GNU/Linux based operating system to build the user interface and the Pi to build the installer package.
- On both systems, install the node packages;
npm ci
- On the desktop system, build the user interface source;
npm run prod
- Copy the
dist
folder from the desktop system to project folder on the Raspberry Pi system. - Package the installer on the Raspberry Pi system;
npm run pack
If you are running a Raspberry Pi 4 with 2GiB or 4GiB, all instructions can be done without copying the user interface files and you will only use that single system. This is a simplest process.
- Install the node packages;
npm ci
- Build the installer package;
npm run package
You should now have a Raspbian package ending in .deb
in the out
folder. This package can be installed with apt
on
the Raspberry Pi.