Rail, embedded
The cab display for three-phase electric locomotives
~5,000signals across the locomotive processors
17cab screens across 10 menus
3password-graded access levels
Problem
A loco pilot hauling freight needs traction, braking, catenary voltage and every fault in one glance, at night, in a moving cab.
Approach
Railway cab conventions first: fixed status, work and navigation areas, one alarm colour language, and touch plus physical soft keys. Screens never touch the bus; middleware decodes, judges and stores every signal first.
What we built
- Qt/QML HMI showing speed, traction and brake effort, pressures, pantograph and breaker states
- Event-driven C++ middleware that keeps screens independent of CAN traffic
- Driving modes, braking, traction, high voltage, auxiliaries, compressor and low-voltage cubicle screens
- Leader and follower views for multiple-unit working
- WhiteDB persistence, crash logging and over-the-air updates
- GSM and GPS remote monitoring

How it fits together
Display
Qt/QML UI layer
Middleware
UI messagingBusiness logicIPC bus
Services
WhiteDBLoggingOTARemote monitoring
Vehicle
CAN bus to VCU, converter, brakes and traction units
Stack
NXP i.MX6Yocto LinuxQt/QMLPOCO C++WhiteDBCAN busSIM808

Have something to build, fix or connect?
Tell us the problem. We will tell you how we would approach it.
Start a conversation
Or write to [email protected]

