Home   Contact
Basis boards   CS & power
Stack boards   Bouwinstructies
Prijslijst   Site in English
 
 

Bouwinstructie basis board
DCC-EX V2.1


Basis board DCC-EX,
klik

 

Inhoudsopgave van deze pagina

Deze pagina heeft de volgende secties (scroll down):

  • Functionaliteit
  • Stuklijst
  • Codering weerstanden
  • Het bouwen
  • Volgende stappen en 1e test
  • DCC-EX centrale zonder motor shield
  • Upload definitieve sketch
  • Instellen modelspoorsoftware
  • Pinnen configureren op een DCC-EX unit
  • Adressering
  • Volgende stap: stack board
  • Het eindresultaat
  • Aansluitingen

 

Functionaliteit

Het basis board DCC-EX seriële unit is een 14 of 16-kanaals1 input en output device voor uitgaande (DCC-) commando's of binnenkomende terugmeldingen. Deze seriële DCC-EX centrale wordt via een USB-kabel (niet meegeleverd) met de besturings-PC verbonden.

1 Afhankelijk van de uiteindelijke configuratie zijn er 14 of 16 pinnen beschikbaar voor input of output via een stack board. Indien de treinbesturingssoftware die je gebruikt bij 'Baanstroom Aan' slechts 1 centrale die opdracht geeft dan heb je 16 vrije pinnen, stuurt de software die opdracht naar alle USB-centrales dan heb je 14 pinnen beschikbaar (pin 3 en 11 vallen dan af). Het is ook mogelijk om de pinnen 3 en 11 beschikbaar te maken. Dan zijn er 16 vrije pinnen. Verderop op deze pagina wordt dat besproken bij 'DCC-EX centrale zonder motorshield'.

Te gebruiken met de stack boards: wissels, ontkoppelen, servo's, DC-outputs, relais en pins, seinen LED, stroomdetectie, sensoren, test en debug, DCC-monitor.

De moeilijkheidsgraad van deze bouwinstructie is 2.

 

Stuklijst

Controleer even of je alles compleet hebt:

  • PCB basis board DCC-EX
  • Nano V3 ATmega328
  • Header 15P female (4)
  • Header 2P male2
  • Led 3mm groen
  • Schroefterm. KF301 2P 5.0mm
  • Weerstand 220Ω

2 Het kan zijn dat de 2P (polige) male header niet los in de verpakking van het basis board zit. In dat geval blijft de benodigde header over uit het op maat breken van de pinnen van het stack board (bv wissels). Die pinnen leveren we meestal in 40-polige uitvoering en als je daar de 2x 15P vanaf breekt blijven er 10 pinnen over.

 

Codering weerstanden

Er bestaan 2 veel gebruikte versies van kleurcodering voor weerstanden. Je zult veelal beige of blauwe weerstanden tegenkomen:

 


Codering weerstanden,
klik

 

Voor het buigen van de aansluitdraden van een weerstand (of een diode) kun je een stukje karton gebruiken van 2mm dikte (achterzijde schrijfblok). Als je beide aansluitdraden om de rand van het karton buigt dan past de weerstand precies in de footprint op het PCB (weerstanden hebben geen polariteit, het maakt dus niet uit welk pootje in welk gaatje in de footprint op het PCB zit):

 


Weerstand buigen

 

Het bouwen

  1. Alle onderdelen worden op de zichtzijde van het board geplaatst en aan de onderzijde gesoldeerd.
     
  2. Monteer eerst de weerstand 220Ω op R1.
     
  3. Plaats dan de led. Het lange pootje van de led (+) moet links en het korte pootje van de led (-) moet rechts (- is de zijde met de witte verdikte rand in de footprint).
     
  4. Plaats de 2-polige header pins (-5v+).
     
  5. Soldeer nu de schroefterminal en de 4 15-polige female headers op het PCB.
     
  6. Soldeer, indien van toepassing, de 2 stuks 15-P male headers op de Nano (plaats ze langs onder op het board en soldeer ze aan de zichtzijde vast). Laat het zwarte blokje met de 6 pinnen weg, monteer deze niet. Ze zijn niet nodig en maken het aansluiten van accessoires op het stack board soms lastig. Plaats tot slot de Nano in de daarvoor bestemde headers op het basis board, met de USB aansluiting aan de linker zijde (zie onderstaande afbeelding).
     
  7. Controleer je soldeerwerk nog even visueel op slordigheden, onbedoelde kortsluitingen tussen 2 soldeerpunten of niet gesoldeerde contacten.
     
  8. Aansluiten:
     
    Verbind de Nano via een USB-kabel met de PC. Deze kabel blijft tijdens normaal gebruik op de modelbaan aangesloten. 
     
    De KF301 schroefterminal wordt dan niet gebruikt, de voedingsspanning voor de Nano komt dan immers via de USB-kabel vanuit de PC of vanuit een USB-hub.

 


Klik voor vergroten

 

Volgende stappen en 1e test

  1. Het board is nu klaar voor een eerste test.
     
  2. Zorg ervoor dat er een CH340 (of CH341) driver op de PC geïnstalleerd is (zoek in Google). Deze Windows driver zorgt voor de verbinding tussen het Arduino board en de PC met de Arduino IDE.
     
  3. Is de Arduino IDE (V2, Integrated Development Environment) op je PC geïnstalleerd? Zo niet, dan kun je die downloaden vanaf Arduino.cc. Download de versie voor jouw systeem en start vervolgens de installatie.
     
  4. Haal de Nano van het basis board af en verbind de Nano via een USB-kabel met de PC.
     
  5. Start de Arduino IDE op de PC.
     
  6. Selecteer in de Arduino IDE het juiste board (Nano) en de juiste COM-poort.
     
  7. Download deze testsketch en unzip het bestand in je map met Arduino projecten. Open daarna de file met de Arduino IDE.
     
  8. In regels 20-25 van de code van deze sketch staan 5 pinmappings. Uncomment (dus zonder //) de pinmapping voor je board (DCC-EX, DCC-EX I2C, DCC-decoder, LocoClient of LocoBuffer en zorg ervoor dat de andere 4 pinmappings wel // ervoor hebben staan in de code (C++ code met // ervoor wordt niet uitgevoerd). Zie afbeelding:

 


Pinmapping instellen,
klik

 

  1. Controleer in de Arduino IDE de instelling bij:

    [Tools]
    [Processor]
     
    Daar moet ATmega328p of ATmega328P (Old Bootloader) geselecteerd zijn.
     
  2. Upload de sketch vervolgens naar de Nano.
     
  3. Indien de sketch niet naar de Nano upload, controleer dan de volgende dingen:
     
    1. Is er een CH340-driver op de PC geïnstalleerd (USB)?
       
    2. Is de USB-kabel oké? Probeer eens een andere kabel. Sommige USB-kabels hebben maar 2 aders en zijn alleen geschikt om iets op te laden. Normale USB-kabels hebben 4 aders (2 datalijnen, 5V en gnd).
       
    3. Is het juiste board geselecteerd in de Arduino IDE (Nano)?
       
    4. Is de juiste COM-poort geselecteerd in de Arduino IDE?
       
    5. Switch in de Arduino IDE bij...:
       
      [Tools]
      [Processor]
       
      ...eens van ATmega328P naar ATmega328P (Old Bootloader) of andersom.
       
    6. Is Rocrail (of andere modelspoorsoftware) actief naast de Arduino IDE? Soms conflicteren deze op het gebruik van COM-poorten als ze tegelijkertijd gebruikt worden.
       
  4. Plaats de Nano terug op het basis board. Indien je beschikt over een stack board test en debug, dan kun je dat nu op het basis board plaatsen in H1 en H2.
     
    Heb je geen stack board test en debug dan kun je ook losse led's (met een weerstand) of een multimeter gebruiken om de outputs te testen. Plaats nog geen ander stack board! Dat doe je pas als je de definitieve sketch hebt geupload naar het basis board.
     
  5. Als alles goed is gemonteerd en geïnstalleerd dan loopt er nu een testprogramma op de Nano dat poorten 1 tm 16 steeds kort aan/uit schakelt (DCC-decoder, DCC-EX, DCC-EX I2C en LocoClient). Of led's 1 en 2 branden continu en de led's 3-16 knipperen afwisselend (LocoBuffer). Op het stack board test en debug branden/knipperen de led's 1 tm 16 één voor één, en in de seriële monitor (rode kader) van de Arduino IDE verschijnt een melding dat alles goed werkt (let op: zorg ervoor dat de baudrate van de Arduino IDE hetzelfde is ingesteld als de genoemde baudrate van de sketch (void setup, zie rode kaders). zie afbeelding:

 


Baudrate instellen,
klik

 

  1. Algemene informatie over de werking van Arduino boards en de verschillende modellen kun je op deze pagina raadplegen. En mocht je meer willen leren over het programmeren van Arduino boards in C++ dan kun je bv terecht op deze website (Bas on Tech).

 

DCC-EX centrale zonder motor shield

Pinnen 3 en 11 worden gebruikt door het motor shield van het Command Station. Maar een losse DCC-EX unit zonder motor shield (voor oa wissels, seinen, stroomdetectie etc) heeft deze pinnen daarvoor niet nodig. Je kunt ze op de volgende wijze beschikbaar maken als inputs of outputs:

  1. Maak een kopie van de map met de CommandStation-EX software (zodat het origineel beschikbaar blijft). Deze map staat meestal in Documenten > Arduino > Projecten. De originele map heet bv 'CommandStation-EX-5.0.0' en dan kun je de gekopieerde en aangepaste map bv 'CommandStation-EX-5.0.0 edited motordrivers.h' noemen, dan is het verschil duidelijk.

    Je kunt deze (reeds aangepaste) DCC-EX software ook hier direct downloaden. De aanpassing uit de stappen 2 tm 7 hieronder zijn dan al gedaan.
     
    Let op - Staat de CommandStation-EX software voor Arduino nog niet op je PC, voer dan eerst stappen 1-3 van het onderwerp hieronder uit (Upload de definitieve DCC-EX sketch) en ga dan verder met stap 2 van dit deel. Die 3 stappen kun je dan straks overslaan.
     
  2. Open de gekopieerde DCC-EX software in de Arduino IDE.
     
  3. Selecteer de file motorDrivers.h
     
  4. Zoek in deze file naar de regel // STANDARD shield on any Arduino Uno or Mega compatible with the original specification. 
     
  5. Pas bij de definitie van het standaard motor shield de volgende regels aan die eronder staan.
     
    Originele code:
     
    new MotorDriver(3, 12, UNUSED_PIN, UNUSED_PIN, A0, 2.99, 2000, UNUSED_PIN)
     
    new MotorDriver(11, 13, UNUSED_PIN, UNUSED_PIN, A1, 2.99, 2000, UNUSED_PIN)

     
    Moet worden:
     
    new MotorDriver(20, 21, UNUSED_PIN, UNUSED_PIN, A0, 2.99, 2000, UNUSED_PIN)
     
    new MotorDriver(20, 21, UNUSED_PIN, UNUSED_PIN, A1, 2.99, 2000, UNUSED_PIN)

     
  6. De aangepaste file motorDrivers.h slaat zichzelf in de Arduino IDE automatisch op.
  7. Upload de sketch CommandStation-EX naar de Nano op het basis board DCC-EX.

 

Upload de definitieve DCC-EX sketch

  1. Installeer eerst (als je dat nog niet gedaan hebt) de CommandStation-EX software voor de Arduino IDE.
     
  2. Download deze software hier.
     
  3. Pak de ZIP-file uit in je map met Arduino projecten (dus niet bij de libraries!).
     
  4. Open nu de sketch CommandStation-EX in de Arduino IDE. Deze sketch staat in de projecten-map van de Arduino IDE. Upload die sketch naar het Nano board. De naam van deze sketch kan per DCC-EX versie overigens iets verschillen.
     
    Let op - Kies de juiste map voor de CommandStation-EX software indien je bij het vorige deel de file motorDrivers.h hebt aangepast! Dus de map met die aangepaste versie en niet het ongewijzigde origineel...
     
  5. In de seriële monitor van de Arduino IDE verschijnt een melding dat alles werkt.
     
  6. Plaats nu het stack board dat je bij dit basis board wil gebruiken op het basis board.

 

Instellen modelspoorsoftware

Er zijn natuurlijk verschillende programma's voor digitale modelspoorbesturing. In deze bouwinstructie vermelden we de settings voor Rocrail (hier onder) en iTrain (scroll door). Maar andere programma's wijken daar niet zo veel vanaf.

 

DCC-EX in Rocrail

Je stelt dit globaal als volgt in:

  1. Maak een nieuwe centrale aan, type DCCpp. Kies een logische en herkenbare naam voor de unit (bv 'DCC-EX wissels 1').
     
  2. Kies de juiste COM-poort via welke het basis board DCC-EX met de PC verbonden is.
     
  3. Start de software opnieuw op.

 

Aanmaken centrale:

 


Klik voor vergroten

 


Klik voor vergroten

 

Controleer vervolgens de instellingen op het tabblad centrale-general. Indien je in jouw versie van Rocrail een parameter CTS ziet, dan moet die 'uit' staan.

Rocrail kan zelf de input- en outputpinnen op de DCC-EX unit intern instellen in de EEprom van de stack module. Maak de juiste accessoires (bv wissels, seinen, melders, etc) binnen Rocrail aan, start het pakket opnieuw op en Rocrail programmeert de inputs en outputs voor je (iTrain doet dat NIET, daar moet het handmatig gebeuren).

Je kunt het in Rocrail ook met de hand instellen. Dat kan mogelijk nodig zijn omdat je bv nog niet alle accessoires zoals bv wissels, seinen en melders ingevoerd hebt in het baanplan. Er zijn 2 manieren om dat te doen:

  1. Op het tabblad centrale-I/O van Rocrail kun je de pinnen handmatig opvragen, wijzigen, aanmaken en opslaan (aanbevolen).
     
  2. Of je kunt de pinnen ook direct in het CommandStation-EX instellen via de seriële monitor van de Arduino IDE. Lager op deze pagina staat hoe je dat kunt doen.

Let op: bij inputpinnen (voor bv stack board stroomdetectie) zet je tevens de parameter 'pullup' aan (0x01).

 

DCC-EX unit in iTrain

Stel de DCC-EX unit als volgt in iTrain in:

 

Interface, tab algemeen:


Klik voor vergroten

 

Interface, tab verbinding:


Klik voor vergroten

 

Interface, tab specifiek:


Klik voor vergroten

 

Pinnen configureren op een DCC-EX unit

iTrain kan geen input- en outputpinnen op een DCC-EX unit programmeren in de EEprom. Deze moet je dus handmatig via de Arduino IDE instellen. Volg daarvoor de volgende stappen:

  1. Sluit de DCC-EX unit via een USB-kabel aan op de PC en start de Arduino IDE.
     
  2. Stel in de IDE indien nodig het juiste board en de juiste COM-poort in.
     
  3. Open de seriële monitor (cntrl-shft-m) en type de onderstaande oranje tekst in de commandline van de seriële monitor (+ enter).
     
  4. Indien je outputs wilt definiëren (bv wissels, seinen, ontkoppelaars, licht, etc):
     
    <Z ID PIN IFLAG>
     
    <Z 2 2 0>
    <Z 3 3 0>
    <Z 4 4 0>
    <Z 5 5 0>
    <Z 6 6 0>
    <Z 7 7 0>
    <Z 8 8 0>
    <Z 9 9 0>
    <Z 10 10 0>
    <Z 11 11 0>
    <Z 14 14 0>
    <Z 15 15 0>
    <Z 16 16 0>
    <Z 17 17 0>
    <Z 18 18 0>
    <Z 19 19 0>


    Waarbij IFLAG het gedrag van de pin aangeeft: 0 = normaal, 1 = inverted.
     
    Sluit af met <E> om de config op te slaan in de EEprom van de stack module.
     
  5. Indien je inputs wilt definiëren (bv voor stroomdetectie):
     
    <S ID PIN IFLAG>
     
    <S 2 2 0>
    <S 3 3 0>
    <S 4 4 0>
    <S 5 5 0>
    <S 6 6 0>
    <S 7 7 0>
    <S 8 8 0>
    <S 9 9 0>
    <S 10 10 0>
    <S 11 11 0>
    <S 14 14 0>
    <S 15 15 0>
    <S 16 16 0>
    <S 17 17 0>
    <S 18 18 0>
    <S 19 19 0>

     
    Waarbij IFLAG het gedrag van de pin aangeeft: 0 = normaal, 1 = pullup.
     
    Sluit af met <E> om de config op te slaan in de EEprom van de stack module.
     
  6. Aanvullend: klik op deze link voor een overzicht van alle commando's die je via de command line van de seriële monitor van de Arduino IDE kunt gebruiken bij stack modules DCC-EX.

 

Adressering

Basis boards DCC-EX werken direct via een USB-kabel met de treinbesturingssoftware. Bij de adressering van accessoires zoals wissels, ontkoppelaars, seinen, DC outputs, servo's, etc, gebruiken stack modules een pinmapping.

DCC-EX basis boards worden dus direct aangestuurd op de pinnen.

Let op: Het adres van een accessoire dat je moet instellen in de modelbaansoftware (bv Rocrail) is dus de pin van de desbetreffende Nano (D2 tm D11 en A0 tm A5).

De stack modules hebben meestal 16 kanalen (1 tm 16).

Voor DCC-EX geldt op stack modules de volgende pinmapping:

Aan te sturen
Nano pin
Kanaal op het
stack board
0 niet in gebruik  
1 niet in gebruik  
2 1
3 soms niet bruikbaar, zie 1 2
4 3
5 4
6 5
7 6
8 7
9 8
10 9
11 soms niet bruikbaar, zie 1 10
12 niet in gebruik  
13 niet in gebruik  
14 A0 11
15 A1 12
16 A2 13
17 A3 14
18 A4 15
19 A5 16

 

Dus, als je kanaal 1 op het stack board wilt schakelen dan stuur je op het basis board DCC-EX pin 2 aan. En voor een accessoire op stack board kanaal 16 stuur je op de Nano op het basis board pin 19 aan.

 

Volgende stap: stack board

Zie voor verdere instructies en de volgende stappen de bouwbeschrijvingen sectie 2 van de stack boards die op dit basis board passen (zoals wissels, terugmelding, ontkoppelen, seinen, servo's, outputs, etc).

 

Het eindresultaat

 

Aansluitingen

Dit basis board heeft de volgende aansluitingen:

  • USB-C (Nano), deze wordt aangesloten op de USB-poort van de PC of op de USB-hub.
     
  • Schroefterminal KF301, hier kun je 5v DC (niet meer!) voedingsspanning aansluiten als de Nano niet met USB verbonden is. De polariteit is vermeld op het PCB.
     
  • 2 male pins (direct achter de schroefterminal), deze zijn verbonden met de schroefterminal voor de voedingsspanning. De polariteit is vermeld op het PCB.
     
    Deze pinnen kun je gebruiken om de voedingsspanning met 2 korte Dupont-kabeltjes door te lussen naar de voedingsspanning van het stack board dat op dit basis board geplaatst gaat worden. Maar let op: alleen indien de voedingsspanningen van het basis board en het stack board gelijk zijn (bv bij LED seinen).
     
  • H1 en H2, hier plaats je een stack board naar keuze.

 

 

 



 

(C) Ed den Ouden
Modelspoor Stack Modules (R)