PC Creating My Own Mfd Display (multi Functional Display)

Discussion in 'TSW General Discussion' started by roli#1692, Mar 6, 2026.

Tags:
  1. roli#1692

    roli#1692 Member

    Joined:
    Sep 7, 2023
    Messages:
    4
    Likes Received:
    32
    Hello all,

    While I'm waiting for the motivation to get my hands dirty and start the woodwork on my other project, I felt a creative wave and started developing software utilizing the TSW API. This is something I’ve always wanted to create for my control desk. What is it?

    It is an MFD (Multi-Functional Display).
    upload_2026-3-5_22-17-58.png

    What is an MFD?
    They are the screens (usually three) found in modern locomotives that display all sorts of information, such as the speedometer, traction values, Ebula, etc. Since I’m building a control desk, I want it to feel as realistic as possible.

    What do I have currently?

    Functions:
    API: I have a robust API polling solution that automatically looks for the API Key document and gathers all endpoints from a designated file for easy expansion. It creates subscriptions with different polling intervals and exposes all API responses for use anywhere in the app.

    Webserver:
    It creates a webserver so the displays are available via my local network. It can be easily accessible through a tablet, phone, or another computer on the same network.

    Components:
    I designed the system to be easily expandable, allowing for new pages, functions, and templates to be added in the future.

    Templates:
    Currently, I have two templates: a "traditional" screen with physical buttons around the edges and a touchscreen template for more modern units.

    Main Cluster:
    This is based on the speedometer screen from the Railpool Vectron, influenced by several other German electric locomotives. As you can see from the screenshot below, it features a functioning:
    • Speedometer (including the AFB diamond, LZB triangle, and next speed limit display).
    • LZB distance bar.
    • PZD indicator bar with all required indicators for HUD-less driving.
    • SIFA indicator.
    • Tractive/Brake effort dial, with target effort triangles and percentage displays.
    • List elements to display different messages based on various values.
    upload_2026-3-5_22-24-56.png
    And of course, night mode :D
    upload_2026-3-5_22-30-11.png

    Limitations: Because of how the TSW API is structured, many systems are unique to each locomotive (e.g., three different PZB systems and two LZB systems). This has mainly been set up for the Vectron, BR182/1116, and BR146. I still haven't found all the values to reach 100% functionality across all four locomotives. It is currently quite "broken" for EMUs and cab cars, and I haven't had the patience to hunt down those specific endpoints yet. I even set up a helper program, that maps all available endpoints, and was socked that there can be more than 200.000. It took countless hours to identify the ones I'm using right now.

    EBULA
    This is my own interpretation of how an Ebula works, as I have never seen one in real life. I sifted through the internet for references and documentation. I was able to find parts of some manuals, plus thankfully there are some data readily available for the TSW routes on Train Sim Community. During my search I have found the online-ebula page, but by this time I was so invested in creating my own I felt like cheating for using it in my project, so decided not to even check the demo out. In my version, the Ebula:
    • Shows your current position on the track.
    • Shows what is coming up (speed limits, tunnels, signals).
    • Advances automatically as you pass waypoints.
    • Displays route details (length, max train speed, next stop).
    • Shows the train's timetable (if loaded beforehand).
    • Records arrival/departure times and calculates delays.
    • Logs data to a file (I am planning a statistics page).
    • Includes a switchable GNT speed limit display,
    • alternative route switching for double tracks.
    upload_2026-3-5_22-23-27.png

    upload_2026-3-5_22-22-49.png

    Limitations: All track info, direction data, and timetables must be created from scratch. Recording the location for each point is time-consuming, travelling up and down the line multiple times. Currently, I have only finished the Köln-Aachen main line and S-Bahn line in both direction, without the alternative route, as I was checking out the remaster when decided to start this. I plan to finish SKA, then move on to Frankfurt-Fulda and Dresden-Leipzig ans they are inviting routes where I spend very little time.

    Future Plans
    • Expanding EBULA data: I want this to be usable across the TSW universe.
    • More components: I want to create pages for electric motor status, overhead line voltage, brake pipe pressure, etc.
    • UK-based components: I’d like to expand beyond the continent and include UK systems.
    • Editors: I’m getting tired of editing code files manually, so I plan to build a dedicated editor for pages, Ebula data, and timetables.
    Disclaimer:
    I am not a software developer or a rail professional; I’m doing this purely out of interest. I have a basic background in coding and enjoy self-teaching, but my time is limited, so I’ve used AI to assist with parts of the solution. My knowledge of systems like LZB, PZB, and AFB comes strictly from simulators and the internet—so it is definitely not 100% accurate.

    Publishing:
    I don’t want to be the person who shares a project and then sits on it. We all love trains, and when the time is right, I want people who are interested to have an opporunity to try it. It isn’t ready yet, but if you have a bit of a coding background or technical knowledge of these train systems and want to help, feel free to reach out.
     
    • Like Like x 13
  2. vayzz#9624

    vayzz#9624 New Member

    Joined:
    Dec 23, 2024
    Messages:
    7
    Likes Received:
    2
    Loooooooks so good!!!!
     
    • Like Like x 1
  3. hyperlord

    hyperlord Well-Known Member

    Joined:
    May 20, 2019
    Messages:
    1,504
    Likes Received:
    1,554
    Oh my god this EBuLa looks absolutely amazing already!
     
    • Like Like x 2
  4. Choo choo

    Choo choo Well-Known Member

    Joined:
    Apr 10, 2019
    Messages:
    186
    Likes Received:
    358
    Looks absolutely amazing!

    I can also see the challenges with timetabling in EBuLa - timetable mode in TSW does not have something built in where you could parse and fetch passing time at stations (station in a broad sense, i.e. passenger and technical).

    I hope TSW is able to do something about this in future route, that would be a great feature.
     
    • Like Like x 2
  5. razmatus#2517

    razmatus#2517 Well-Known Member

    Joined:
    Feb 17, 2022
    Messages:
    3,920
    Likes Received:
    2,833
    a functioning Ebula would be an absolute game changer and a true way to go HUDless :) *cheering noises*
     
    • Like Like x 2
  6. protonmw

    protonmw Active Member

    Joined:
    Mar 18, 2022
    Messages:
    194
    Likes Received:
    148
    • Like Like x 1
  7. roli#1692

    roli#1692 Member

    Joined:
    Sep 7, 2023
    Messages:
    4
    Likes Received:
    32
    Yes, I mentioned it in my post as well, it looks very good and professional, and I think I would 100% recommend it if I had tried it, but lacks the challenge for me and this way I can form this as I see fit for my purpose.
     
    • Like Like x 1
  8. roli#1692

    roli#1692 Member

    Joined:
    Sep 7, 2023
    Messages:
    4
    Likes Received:
    32
    Update time!

    As the Ebula part got some traction, I have decided to work on it a bit more, and to be honest, it is getting there what I have set to achieve when starting this project.

    What changed:
    • Pictograms before the location names now can be pictures (see the German flag)
    • New data added for signal indications (see EL40 [not correct infromation, but for demonstration])
    • Incline indications (see the single and double zig-zag lines [not correct infromation, but for demonstration])
    • The arrival and departure recording has been reworked a bit to be more stable and record the times even when severly late.
    • GNT speed and Alternative track (for travelling on the opposite track in case of diversion) selection are toggleabble (Button 5 & 6)
    Here are a screenshot with the default speeds for Frankfurt Main area:
    upload_2026-3-18_19-53-10.png

    Here are a screenshot with the GNT speeds for Frankfurt Main area:
    upload_2026-3-18_20-2-14.png

    Good news!

    I have reached out to noir who created the the fabolous "Ebula-inspired book timetables" on Train Sim Community and got permission to use the data from their work, making the data collecting faster and easier. If you are seeing their work the first time here, show them some love! Thank you noir!

    To make my life easier, I have created two editor, one for the route data and one for the timetable data.

    Route editor:
    Using this editor I can create the base of the ebula timetable from scratch, change, edit and add data more easily. Additionally, I can record the location data for each point from this page while the game is running and I'm driving a train, speeding up the longest part of the process.
    upload_2026-3-18_19-47-16.png


    Timetable editor:

    To have arrival and departure data in the Ebula, the timetable needs to be loaded, to make the timetable easier to create, I have put together an editor for it. I have future plans for this timetable data, want to create a dashboard to show all kinds of fun data (driven distance using the Ebula, accuracy etc.)

    What it can do?
    • Add different train info data like company, train number, destination etc.
    • Once the route selected, the stations are automatically loaded and can be selected when building the timetable.
    • Stations can be added in order, arrival and departire times can be filled.
    • There is an auto calculation function:
      • It calculates the estimated times between two stations based on the train's max speed and the line speed.
      • It can calculate the pass-through station times, if the "stop" is not selected.
      • If there are stop stations but there are no times added, it calculates an estimated arrival/departures times with a 1 minute stop time added to each station.
      • For the RE50 service on the Frankfurt - Fulda line with a close to 90mins of traveling time the calculation is within 4-6 minutes ahead of the original timetable.
    upload_2026-3-18_19-46-38.png

    As it is shaping nicely, I will work more on the main cluster, getting more reliable data for it, making it more usable for wider range of trains next. Of course when my time allows getting more Ebula data as well.
     
    Last edited: Mar 18, 2026 at 10:44 PM
    • Like Like x 7
  9. razmatus#2517

    razmatus#2517 Well-Known Member

    Joined:
    Feb 17, 2022
    Messages:
    3,920
    Likes Received:
    2,833
    #roliforprasident :D #trainsimworld7fortheages :D ... I mean, if this turned into a functional thing, DTG should totally pick this up and pay you in gold, man :)
     
    • Like Like x 4

Share This Page