The PROBoter software platform consists of the following individual components:
-
project-storage:
A Flask-based web server written in Python that manages and persistently stores PCB analysis data. In the current setup, a file-based SQLite database is used as storage backend. -
hardware-control: A microservice written in Python that allows control of the PROBoter hardware platform. The service exposes both, access to low-level functionality, e.g. to calibrate the hardware, as well as high-level probing routines like electrical connectivity measurements. Due to its asynchronous nature and mostly long running tasks, this service uses Quart as main web framework. Most of the service's functionality can be accessed via a REST-like interface. Besides that, it also offers asynchronous event notifications via Websocket endpoints for hardware-related events.
-
signal-analysis:
A Flask-based microservice providing voltage signal analysis and bus protocol identification functionality. -
pcb-analysis:
An also Flask-based microservice providing PCB image analysis functionality. -
web-ui: Web-based user interface that utilizes the functionality provided by the PROBoter backend microservices. The Vue.js JavaScript framework is used to build an (hopefully) easily extendable component-based interface.
Clone the PROBoter software repository to a location of your choice:
git clone https://git.ulm.schutzwerk.net/tools/proboter/probotor-software
The whole PROBoter software platform with all of its individual components can then be easily started using Docker Compose:
docker compose build
docker compose up
By default, all traffic is routed through a reverse proxy. Therefore, only port 80
and 443
are exposed by default.
Each of the software components can also be started individually. All of the software components work without real hardware. However, some functionality won't be available in this case.
Detailed information about how to start the individual software components can be found in the README
files in the separate subfolders.