/model-railway

My Experiments to automate a model railway

Primary LanguageJavaApache License 2.0Apache-2.0

Java Central Station

Static Badge License

GitHub commit activity Java CI with Maven

GitHub Gist last commit GitHub issues GitHub Release

Model railway control with JCS

Experiments wich should eventually lead to automated rail road control.

Why?

To have fun! I know there are ready to go products on the market. This project is not an attempt to compeat with any of them, hence this project is Open Source so anyone can benefit.

About The Project

JCS is an application to control a model railway. It is in an early stage of development. The project mostly contains my experiments to automate my model railway.

I started this project 2019 as (and still is) a hobby to automate my model-rail layout. As I am trying to do this project beside my work, family and other hobbies it is a project with sometimes a very slow pace...

The aim of the program is to automate the running of trains on my layout.

Supported Hardware

Current status

Currently the following modules are build:

  • A Throttle for driving locomotives
  • Keyboard Screen for switching Turnouts or Signals
  • Sensor Monitor to see the status of feedback sensors
  • Locomotives overview (including automatic downloading of the Locomotive- and function button images) and control.
  • Turnout and Signals overview (Synchronized with the CS2/3) and control.
  • A Screen to edit/display de schematic Layout.
  • A HAL for command Stations such that other hardware then the Marklin CS 2/3 can be used.
  • First Release V 0.0.1

Screenshots

So here are a few screenshots of the Project:

Thottle / Driver Cab

The Locomotive- and function images are displayed. Images are automatically downloaded from the Central Station. Or can be manually added.

UI screenshot: JCS Throttle

Keyboard Panel for switching accessories and viewing feedback sensor status

UI screenshot: JCS keyboard Screen

Sensor Monitor

UI screenshot: JCS Sensor Monitor

Layout display

UI screenshot: JCS Main Screen

In Editmode you can draw a layout using pre defined Tiles. also the layout can be routed. (it the very first and early step for the preparation of automatic running). UI screenshot: JCS Edit Screen

Import Locomotives from a CS-2 or CS-3

UI screenshot: JCS Preferences Locomotives

TODO's (and there are still a lots of todo's...):

Currently the following features are under active development:

  • Configuration screens to edit the Locomotives, Accessories and Sensors. [more or less done :)]
  • Add deployment configuration for MacOS, Windows and Linux an App [more or less done :)]
  • Automatically route the Layout. [more or less done :)]
  • React on relevant CS-3 events like start/stop, Sensor events, Loco, Accessory, power etc events. [work in progress :)]
  • Automatically run trains. [Work in progress]
  • Add more Unit tests
  • ...

So I hope you get inspired!

Frans

License

LICENSE

Build JCS from source

BUILDING

Contributors

frans
Frans Jacobs
Buy Me A Coffee

** Copyright 2019 - 2024 Frans Jacobs **

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.