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, grant
the execution permission and run it. It is recommended that you use
something like the appimagelauncher
to better integrate it with
you desktop environment.
Currently, BridgeCmdr requires a 32-bit version of Raspberry Pi OS, at least v11, a.k.a. bullseye
, or later with
FUSE v2 installed.
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 want 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 are a major part of its makeup.
Framework/Library | License |
---|---|
Electron | MIT |
Vue.js | MIT |
Vuetify | MIT |
PouchDB | Apache 2.0 |
LevelDOWN | MIT |
Vue I18n | MIT |
SerialPort | MIT |
Vuelidate | MIT |
zip.js | BSD |
For a complete list of dependencies and other utilized libraries, see the package.json
file. Any other dependencies
not listed above or in the package file are dependencies of those packages.
BridgeCmdr also uses the Material Design Icons SVG graphics which are licensed under the Pictogrammers Free License.
The following tools or libraries are used to build and maintain BridgeCmdr.
- TypeScript.
- Prettier
- ESLint, and the following third-party plug-ins;
- Electron Vite, and the following third-party plug-ins;
- electron-builder).
- VisualStudio Code
For a complete list of tools, see the package.json
file. Any other dependencies not listed above or in the package
file are dependencies of those packages.
VSCode with:
TypeScript cannot handle type information for .vue
imports by default, so we replace the tsc
CLI with vue-tsc
for
type checking.
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 git -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;
yarn
- Build and run the app;
- For hot-reload development mode:
yarn dev
- For product builds:
yarn build
- For packaged application:
yarn make
You can run ARM Docker containers on IA32 or AMD64 to package the application using the following means:
- Docker Desktop with multi-platform support enabled.
- On Linux, using qemu static binary format support.
You can start a container for building purposes by calling docker compose run --build -it --rm build
. After doing so
you will need to run yarn
to reinstall the native code dependencies with their proper native bindings.
To package the application, you will need to use yarn package
steps you acquire the working copy of the source code
on an ARM system or in an ARM Docker container. It is not recommended to build directly on the Raspberry Pi since
the systems can be underpowered for such a purpose.
You should now have a package ending in .AppImage
in the dist
folder. This package can be run like any other
AppImage file.
- Start the build docker conatiner:
docker compose run --build -it --rm build
- Fresh install the packages:
yarn --force --frozen-lockfile
- Package the application:
yarn make
- Land and tag the release.
- Create a release from the tag and copy the following files to the release assets:
bridgecmdr-<version>-armv7l.AppImage
latest-linux-arm.yml