Arsigdec 4.0 is released
In Arsigdec 4.0 is the DCC_library from Mynabay replaced by the NMRA DCC library.
That solves the Railcom problem. Previously it was not possible to use Railcom.
There are no other functional changes.
But British and Spanish signals are added to the signal database

  • In version 3.1:
    – Spanish signals are added to the database.
    – Pin 17 is not used on a MEGA2560. It is covered by the shield.
  • The Arduino pin numbers 3 up to 19 are replaced by port numbers 1 up to 16. So it is now optimized for the DCCNext.
  • New French and Swiss signals in database

NOTE: because the storage of the configuration in EEPROM is changed Arsigdec must be reconfigured after updating.

What is Arsigdec

ArSigDec is an Arduino sketch that acts as a DCC signal decoder for all light signals.
You can create all light signals with a maximum of 8 leds and 10 aspects per signal.
It also contains a database with pre-configured signals of some European countries.

Two modes of operation

ARSIGDEC runs in two different modes. A configure mode and a run time mode.
In configure mode you configure the signals that you want to use.
The Arduino is connected via USB to your computer. With only your keyboard and monitor you can easily, with a simple question and answer ‘game’,  specify all the settings that you want for your signals. Therefore ARSIGDEC uses one-character commands. See the manual for examples. It communicates with you by using a terminal emulator program called Putty.
No complex puzzling with CV’s!

With the E-command (Exit) you change to run time mode.
In run time mode ARSIGDEC ‘listens’ to the DCC signals on your track.
If an address passes by that you have configured for one of the signals, ARSIGDEC will set the signal according its configuration.

All ARSIGDEC features one by one:

  • Controlling a maximum of 8 signals per UNO or 30 on MEGA
  • Controlling 16 leds per UNO or 65 on MEGA
  • A signal may contain upto 8 leds. Parallel connected leds count for one led.
  • A signal can have upto 10 different aspects
  • A signal can be configured manually. You can specify for each aspect and for each led its action: on , off or flashing.
    In this way you can configure almost all signals in the world.
  • Support of Dutch ‘P-signals’ (red-green change with automatic intermediate yellow)
  • Contains a database with the most important signals. You don’t need to configure these signals. Just select a signal numner from the database.
  • Configurable on/off times when flashing.
  • Configurable on/off fading time per signal.
  • Configurable maximum brightness per led.
  • Suitable for signals with common anode and common kathode.
  • Interactive, via screen and keyboard, configuring of the signals. That is independant of your DCC Central and no puzzling with complex CV’s.
  • No need to use the Arduino IDE (development environment)
  • Assign a random DCC base address (1-2000) for each signal.
  • One(1) DCC address controls two different aspects.
    Subsequent addresses are used for more aspects.
  • A test option. All signals are showed
  • A documentation option shows all settings.
  • Assign an alpha numeric administrative code to a signal
  • A reset option that clears all settings from memory.
  • Option to correct the address offset of a Roco cental (MM, z/Z21)
  • A help options shows all commands.
  • A log option in which all configuration sessions are saved.
  • Independant of used bus structure (S88, LocoNet, XpressNet)
    But in operation mode it uses only DCC

Hardware requirement:

The standard DCC signal can’t be used directly to an Arduino.
A small electronic circuit is required to adapt the DCC signal for the Arduino:

DCC circuit

You can make this circuit yourself on a piece of veroboard.
But it is much more convenient to use a dedicated shield for the Arduino UNO:

This DCC/Power shield contains the DCC-circuit and also a 9 Volt power supply for the Arduino and an additional 5 Volt for e.g. the leds in the signals.
The same shield is used for Mardec

Another option is to use the DCCNext decoder!

How to connect:


Download here software and manual.

31 thoughts on “ArSigDec”

  1. To date I’ve used the software only. It’s easy to use and saved lots of time due to being able to mix types of signals on just one board. I’m using two head and three head searchlight signals both in common anode and common cathode configurations. Up until now I’ve kept each type on it’s own board but no longer.
    Looking forward to using the shield components and boards.


  2. Is one able to use the ArLoco sheild to interface with ArSigDec (or for that matter the MarDec) ? This would enable DCC signals to come from Loconet rather than the track.
    I see that some work would be required as the input pins are different.
    I ask because although I’m happy to use the DCC signal from the track on my home layout, we don’t allow that on the club modular layout that gets very large at times and (rightly or wrongly) we don’t want to interfere with the track signal.

    Thanks, Ted

    1. Hi Ted,

      No, you can’t use the ArLoco for that.
      You can use the LocoNet-B connector of the command station or booster and connect both outer wires 1 and 6 to the DCC input of Mardec/Arsigdec.

  3. Hello,,
    I have been using Mardec to control servos for my turnouts and now considering Arsigdec to control signals.
    I am considering Simple 3 light signals (Green Amber and Red) to be control which is available in Aliexpress, it has 4 wires 1 black and Yellow Green and Red for the respective leds.
    My question is, do I really need to use the Shield you mentioned in the website as I already developed the function Decoder that is being used for Mardec, Can I use the same circuit or do I need to create a separate one for Arsigdec.
    If I use Arduino Mega then should how many signals it will control

    Thanks for great work
    I would highly recommend to develop some videos for this great work as people of not fully aware.


    1. Hi Farhan,

      What you basically need is a DCC circuit as described in the manual. You can use one circuit for multiple Arduino’s. But the DCC shield that I offer is easier to use but has no option to connect the output to another Arduino.
      On a MEGA however the shield is mandatory.
      A MEGA can control up to 59 leds in total. So for 3 led signals you can control 19 signals.


      1. Hallo Nico,

        ich habe diesen Kommentar leider erst gelesen, als ich bereits die Komponenten für die DCC Schaltung gekauft und verbaut habe.
        Können Sie mir sagen, warum das mit dem Mega nur mit dem dcc shield funktioniert? Grundsätzlich wird doch genauso das DCC Signal an einem Pin benötigt. Ist dies ein anderer als Pin D2?

        Ich stehe nun vor der Entscheidung den DCC shield oder einen Uno einzusetzen beides leider erst nach Lieferzeit möglich… Schade.

        Ansonsten tolles Projekt!

        1. Hallo Bahne,

          The shield covers pin 17 of the Mega. To prevent confusion this pin is disabled by default in the software.
          That does not mean that a shield is mandatory; but keep in mind that pin 17 can’t be used.
          So you van use your own DCC-circuit.


  4. bonjour, existe-t-il une version en français du document “iTrain en Arsigdec.pdf”

    hallo, is er een franse versie van het document “iTrain en Arsigdec.pdf”

    1. Hi Frederic,

      No here is no French version.
      But I can send you the Dutch version in MS-Word format. You can translate it yourslf with or


  5. Hallo, ik werk met een arduino mega, arsigdec is daar geïnstalleerd, heb je nog een decoder (ex uno) nodig om de naaldspoel en servo aan te drijven met een extra kaart PCA9685 of kunnen we alles doen met de mega

    1. Hallo Frederic,

      De Arsigdec is alleen voor lichtseinen. Voor armseinen heb je Mardec nodig om met een servo de arm te bewegen.
      De PCA9685 wordt niet ondersteund door Arcomora.


  6. Tout fonctionne parfaitement une fois la centrale bien configurée.
    Le logiciel est en anglais mais très simple d’utilisation. Un pas à pas très intuitif.
    Avec un mega, je contrôle 4 signaux à 2 feux et 17 signaux à 3 feux.
    Merci pour le support en ligne par mail qui est excellent.
    Je recommande vivement ce système.


  7. Hi. Am using the shield and ArSigDec with MEGA to control 15 signals with 3 LEDs on each. Works like a charm along with Digikeijs DR5000 and iTrain automation software!
    This is the way to go if signals need to be controlled.
    In case something doesn’t work, it’s 100% sure that it’s a user fault and not a problem with the shield or the sketch.

    Special thanks to Nico for support par excellence and the hand holding he did to get me up & running with my first Arduino project. Must appreciate the support he provided!

  8. Hi Nico, the mardec , shields and arsigdec boards work and test fine when configuring. I use DCC ++ with JMRI for my base station. I entered the address I chose for my servo in my base station for mardec and it works perfect when commanded with DCC. With the arsigdec I chose 100 for my base address with 3 leds and 5 aspects. Aspect 1: oxx, on address 100-R/0, Aspect 2: xox, on address 100-G/1. How would separate addresses and aspects with the same base number 100, be entered into a base station that will only accept numbers and not characters or letters, my base does not recognize 100-R/0 or 100-G/1 as a legitamate address. Is there a way to convert these into recognizable addresses for NMRA standards? Thank you, Dave.

    1. Hi David,
      The addition -G/1 and -R/0 are NOT part of the address. Each address controls 2 aspects.
      The first aspect uses the Green button on a command station and has a bitvalue 0 (zero)
      The second aspect uses the Red button and has a bitvalue of 1 (one)
      That’s all.


  9. First off, thank you for providing these great programs to the community.
    I plan to use a sensor shield with its own power supply and an external DCC decoder circuit on a Mega.
    Since there are several pins on the Mega reassigned or disabled, would it be possible to get a pin-assignment of used channels on the Mega?

    1. Hi,

      Mardec does not use the additional pins on a MEGA.
      Arsigdec and ArLoco do use the additional pins on a MEGA.
      For an Arsigdec on a MEGA applies:
      On a MEGA applies:
      Ports 1 to 16 are connected to the screw terminals
      Ports 18 to 53 are connected to pins 18 to 53.
      Ports 54 to 59 are connected to A10 to A15.
      Pin 17 is NOT used on the MEGA.

      For the ArLoco on a MEGA see the ArLoco manual

  10. Ik gebruik Arsigdec op mijn baan voor het aansturen van alle lichtseinen op mijn baan Duitsland tijdperk 3. Er hangen nu 8 Nano’s onder met seinen van Viessmann. Ik heb de weerstanden niet verwijderd van de seinen en met een helderheid van 100% hebben de seinen de juiste lichtsterkte. Verder een trafotje gekocht van 5 volt die de Nano’s van stroom voorziet. Erg tevreden met het resultaat.

  11. is it possible tor run mardec on arduino nano? it tells me not enough memory.

  12. Hi Nico,
    I’ve started to configure my first DCCNext with Arsigdec. Everything is running fine so far.
    I’m using common anode and common cathode on separate modules, as I understood, from the configuration instructions, that I have to choose upfront which type to use. However, reading further the manual I also got the impression that, if after programing all the signals, we go and modify just one (‘M’ command), we should be able to change if it’s common anode or common cathode. Is this so? I mean, can we have both types of signals on the same DCCNext module?
    Kind regards,


    1. Yes, You can set the polarisation of each individual signal by using the M command.
      The generic setting applies only to new added signals.


  13. Hi Nico, I am still very satisfied with your solutions. Working perfectly. Actually I am missing a dark mode feature. Meaning that the leds will be dimmed with x% , I will use this feature the moment the trains are running after “sunset “. Do you have any plans for an update.?
    If not, I need to add extra hardware, e.g. relais with will add an extra resistor in the common line of the leds.( a little ruthless way, no real running).

Leave a Reply

Your email address will not be published. Required fields are marked *