Simple Railroad Command Protocol

SRCP is a TCP/IP Protocol to cover all aspects of model railroading. It is ascii text based and follows a strict command-response schema. In the world of SRCP the server is the interface to the model railway system. Any client connects to the server and recieves information about the state of any component (including the server) and sends commands to change the state of any component. Thus SRCP is fully multiuser. To prevent conflicts, a component can be locked by one client session.

SRCP defines an abstract layer above the model railroad system. If covers the differences between DCC or MarklinMotorola or any other system. A client developer does not need to know, which type of signalling is used. Even if a complete new system comes up: once a SRCP server implements it, any SRCP client can be used without any change.

SRCP consists of command words and devices, on which the commands operate. Command words are SET, GET, WAIT, VERIFY, RESET, INIT and TERM. The most important devices are locomotive decoders (GL== generic loco), impulse decoders (GA == generic accessoire) and feed back sensors. To address decoder programming so called Service mode devices are defined.

All components are structured in busses, which basically bundle components which are accessible through a shared device (e.g. a central unit). These busses will also be used to segment the adress space. One basic feature of SRCP is that it never changes the hardware adress. E.g. can the NMRA "short" addresses and the "long" addresses be structured into two independent busses. It is the responsibility of the server developer, to define the the bus structure well. A client developer has to take care, that the address of any component contains two elements.

Not all components does exists on all systems. To get initial information, the server can inform the client about all devices it knows about. Some functionality can even be emulated by the server, if the target does not support the requested feature (e.g. get current speed: many railroad systems do not support this operation).

Another nice feature, which is can be used is a central time source. SRCP contains a time "device", which keeps all clients with a current model time. This time can run at any ratio to the real time: 6 real time minutes can be 1 model hour.

SRCP has evolved over time. The first usable revision, which is outdated by now is called 0.7.3. It works well and a lot of program still use it. For all software we encourage to use the current version 0.8.4. It predecessor which war stable for quite a few years is 0.8.2.

Future Versions of SRCP will keep compatability with the current 0.8 specification. A client can request a special SRCP version during the initial handshake.

The discussion around SRCP runs in the German newsgroup de.rec.modelle.bahn.

available versions

Initially the master document was in German, which was translated later into English. DE means German, EN means English. If you want to translate it into other languages, please contact us!

0.7.3 (outdated, but still in use) DE, EN DE
0.8.3ENEN  EN
0.8.4 EN  EN
0.8.5-wip EN  EN

Changes can be tracked in the Repository.


Version 0.8.5 (work in progress), last update 8.3.2014

In version 0.8.4 the wildcards are gone. They are never used and are difficult to implement. This version introduces a completly new device group called Generic Message GM. This is basically a message board to be used for client-client communication. Most of the undefined devicegroup-command pairs are dropped.

Security considerations

Some security hints are available in German.

google has found

Simple Resource Control Protocol

Serengeti Regional Conservation Project

Swedish-Russian Cooperation Project

Science and Religion Course Program


Serbia Resource Cities Program

Savannah River Challenge Program

Short Range Combat Pistol

Site-based Reliable Communication Protocol

New Jersey Statewide Respite Care Program

Saddle River County Park

Student Respiratory Care Practitioner

Special Requirements Commissioning Plan

Sistema de Requisições de Compras

Security Responsibility and Contingency Planning

© by srcpd team

Hosted by SourceForge