Mobility
I Know Where We Are. All Good.
For the passenger information system in public transport, we developed a modular end-to-end solution – from the operating system to the central control logic. Displays, announcements, event handling: everything included, fully integrated. The components can be flexibly combined, integrated into various vehicle types, and updated remotely – without ever needing to step into a train.

Key data at a glance
Tasks
Roles
Products
Challenge
Our client needed a complete system to reliably control the passenger information system in public transport – from displays and announcements to event triggers during the journey.
Overview of the requirements:
- Provided hardware, but full software development – including operating system, application, and update process
- Seamless integration into a proprietary customer framework – ensuring long-term maintainability and system compatibility
- Control of the entire journey flow – including initialization, driving events (departure, arrival, etc.), speed, and route progress
- A server component as the central hub – managing core logic and integration with additional systems
- Integration of external systems – such as diagnostic data for internal analysis or video streaming servers for displaying passenger information
A system that not only runs reliably – but is also flexibly expandable and integrable into existing infrastructures.

Success
Today, our client has a modular system with various components that can be flexibly integrated into different projects and vehicle types. The operation of the passenger information system has evolved over multiple generations – from mouse and keyboard to touchscreen. The technical foundation remained stable, allowing existing user concepts to be retained. The existing UI was intentionally reused so that operators wouldn’t need to adapt – usability without a learning curve.
For maximum future readiness, backward compatibility was ensured – for example, through versioned interfaces. Since we handled both development and testing, we were able to relieve bottlenecks on the client side – and supported full integrations all the way to the end customer. All components were consistently implemented based on the client’s proprietary framework. This ensures independence – no vendor lock-in, easy handover, full control.
And the update process?
All components can be updated remotely – wirelessly, without ever having to enter a train.
Approach
The project included several end-customer solutions – around five in total – and was divided into multiple phases. Each phase began with a specification developed jointly with the client. Based on this, individual work packages were commissioned, implemented, and directly integrated – organized in an agile manner across multiple sprints.
A key success factor was close coordination with the client – especially during system integration and acceptance testing at the end customer’s site. Here, we took on not only development responsibilities but also operational coordination.
Crucially, the components used were designed to be dynamically combinable and reusable. This enabled cross-project and parallel development – even using the same modules. An approach that has proven robust and scalable in live operations.
Tech Stack
Methods & Paradigms
SCRUM / agil
Architecture
UML
Design Patterns
ooT, ooA, ooD, ooP
Database Technologies
Sqlite
Languages & Frameworks
C++
Communication Technologies
XML
JSON
Web Development Technologies
HTML
Java Script
Communication / Protocols
TCP/IP
MQTT
FTP(S)
HTTP(S)
Embedded Programming Language
C++
Embedded Operation System
Embedded Linux