À cette page en Français, veuillez cliquer ici.
New: The DCCnext decoder is available! Read all about it here!
The use of an Arduino microcontroller in model railway is commonly known.
However, really applying it, is for most people much too complex.
An Arduino is actually a microcomputer. It has a lot of external connections (called ‘pins’). Each of these pins can be an input as well as an output. With these pins you can control all kinds of electronics around your modelrailway.
That includes servo’s, leds (signals/lightning), relays, led strips and turnout coils.
Like every computer it needs a program (called ‘sketch’) to do something useful.
Writing a sketch is normally done in the ‘Arduino Integrated Development Environment’.
That is a kind of dedicated text processor in which you create your code. You can upload your code via USB to the Arduino.
But programming an Arduino or making small changes to a sketch may be a big problem. That’s why the Arduino remains the domain of a small group of users with more technical knowledge. That’s too bad, because you can automate your model railway very cheap with an Arduino. To make the Arduino accessible for everyone I ‘ve made three programs for an Arduino. With these three programs you can automate your whole model railway.
Together they form the ArCoMoRa concept.
With ArCoMora, it is no longer necessary to write one letter of Arduino code.
Also you don’t need the Arduino Integrated Development Environment.
ArCoMoRa stands for Arduino Controlled Model Railway. On a digital controlled model railway based on the ArCoMoRa concept the whole automation is done with Arduino Microcontrollers without writing one single line of Arduino-code.
As protocols ArCoMoRa uses DCC and LocoNet®.
Each Arcomora program has its own specific task.
- MARDEC is a multifunctional DCC decoder for servo’s and accessory’s.
With Mardec you can control upto 12 servo’s and many accessory’s like e.g. leds, relais, led strips and coil turnouts.
A Mardec has a maximum of 16 configurable devices. You can also define ‘inputs’. With an input you can control devices without a DCC signal but with e.g. a reed switch or current detection circuit
- ARSIGDEC is a DCC signal decoder for light signals. It can control up to 8 signals per Arduino. Each signal can have a maximum of 8 lights and 10 aspects with a total maximum of 16 lights per Arduino.
With Arsigdec you can create your own signal aspects. So you can use it for almost all light signals in the world.
The Arsigdec also contains a database with many used signals.
- ARLOCO is a feedback encoder based on LocoNet®. It supports up to 16 input channels for detecting a train. Each input can be optimized for pulse detection (e.g. a reed switch or infra red) and continuous detection (like current detection)
The most important feature of all ArCoMora programs is that they can be configured very easily without any programming knowledge. You configure ArCoMora with a simple ‘question and answer game’ on your PC.
You don’t need a digital command station or a complex setting of CV’s.
Configuring is usually mistakenly called programming. To avoid confusion, I use the term ‘programming’ for writing the Arduino code and the term ‘configuring’ for specifying the functions of the connected devices.
To make that possible all ArCoMora programs are using two different modes:
– Configure mode. In this mode you can configure all the functions of the connected devices.
– Operation mode. In operation mode Mardec and Arsigdec are ‘listening’ to DCC addresses and will respond as configured. ArLoco scans for trains on your track and reports that to your digital command station or computer via LocoNet®.
17 thoughts on “Home”
This is just great. Really awesome !!
Great Job, well done Nico !
This is what I need!
I automated my railway some years ago with a now redundant “Oak Tree Systems – RCI” cards that used static decoders for each track block and runs DC locos.
“Train Controller” software operates this railway well but I am now installing a DCC network in addition to the old RCI networks.
I am installing Arduino decoders for additional signaling and accessories and will follow your guide.
Would it be possible to develop an Arduino sketch for a 4 amp, bi-directional output suitable for use as a static decoder?
WOW – thank you so much – this looks amazing!
Just found your page today via a Youtube video. I started last winter to use Arduino and Raspi for my modeltrain setup. You guys did really a great job putting this together. Looks like it works with Digikeijs as well.
I am using ArLoCo with RRTC and an Intellibox1.
I have 25 sections equipped and everything is working perfectly.
I also have 25 turnouts equipped with Mardec, the operation is perfect.
I encourage everyone to use this solution which is simple, inexpensive, and without any problem.
This is surely the best solution in DCC, especially since we have a real LocoNet which is much better than the S88.
I’m Li from China
I’m a beginner who just started to learn railway model. I learned to make your design project. For me as a beginner, your project is very helpful, especially when I can’t program.
Thank you for all your work. Thank you from the bottom of my heart!
Thanks for your kind words.
Have fun with model railway.
Sounds very promising, looking forward to checking this out.
Very pleased with my DCCNext and Mardec. I was wondering if there was some knowledge on how to set up a sensor to work within JMRI? I get servos and LED’s to be operated via JMRI. I can connect a sensor to the DCCNext and show a state change within Mardec but despite putting its DCC address within JMRI sensor table, no state change is shown. I believe I need the correct address setting for JMRI to recognise the sensor. Any ideas?
The information flow between JMRI and DCCNext is one way (JMRI -> DCCNext/MARDEC). This is where a separate feedback system comes in (ARLOCO, etc) to update JMRI with sensor messages. You could then use JMRI to perform turnout operations/etc based on sensor feedback.
Hope that helps 🙂
Is it possible to use the arloco shield on and ESPDUINO-32? This board accepts UNO form factor shields, but like all ESP32 boards the digital pins accept only 3.3v instead of 5v. Maybe with some different resistor values it will do, but I don’t know which ones to replace with what values? Can you please help?
I have no knowledge about the ESPDUINO-32. So I can’t advise you on that
J’ai monté et configuré une interface DCCNext : tout c’est très bien passé !
J’utilise ArSigDec qui fonctionne très correctement.
J’apprécie la bibliothèque de signaux français et la possibilité d’en créer de nouveau (par exemple une cible G)
J’ai juste 2 suggestions pour l’avenir de cet excellent produit:
– il faudra que l’on puisse afficher plusieurs aspects en même temps : exemple un ralentissement et un avertissement;
– peut-on envisager qu’au lieu d’utiliser plusieurs adresses, on puisse utiliser les touches de fonctions (F1,F2….) d’une seule adresse ?
Suggestion 1: That is actually new aspect. Create the original signal from the database manual (with N-command) and add a new aspect that combines both aspects.
Suggestion 2: No, that is not possible. Arsigdec is controlled by DCC addresses and is not capable of reading function keys.
Hello Nico I was wondering can the arsigdec work semaphore signals by replacing the light system to control the semaphore
No. Arsigdec can’t be used for semaphore signals. Therefore you need Mardec for controlling semaphore signals with a servo.