Met een DCC circuit of systeem kun je een modelspoorbaan aansturen. Traditioneel gebeurde dit, voor het digitale tijdperk, met een regel-transformator. Nog steeds rijden veel modelspoor liefhebbers 'analoog'. Ondanks de vele voordelen van een 'digitale' modelspoorbaan.
Het ombouwen, en van een 'decoder' voorzien van de modelspoor verzameling, is vaak een hele operatie.
Met SchakelBord kun je een DCC circuit maken voor het aansturen van allerlei moderne toepassingen zoals servo's voor een realistische aandrijving van wissels en nog veel meer. Dat terwijl je het rollend materieel analoog laat rijden. Het ombouwen van locomotieven is dan niet nodig. Een zelfbouw schakelpaneel met drukknoppen of schakelaars en leds verbindt je met SchakelBord die er een DCC signaal maakt.
Dit wordt met slechts twee draden aangesloten op decoders die op hun beurt de wissels en andere zaken aansturen.
Met SchakelBord zijn combinaties van analoge en digitale modelspoorbanen te realiseren.
SchakelBord heeft een DCC uitgang. De gelijkstroom voeding aangesloten op de GND-RS aansluiting wordt door SchakelBord omgezet in een DCC signaal. Maximaal kan SchakelBord 2A leveren. Schakelbord maakt met behulp van de 64 schakelaars of drukknoppen DCC commands voor basic accessory decoders. Alle mogelijk voorkomende basic accessory commands kunnen met SchakelBord worden gemaakt.
SchakelBord heeft ook een DCC ingang. DCC commands van 3 bytes worden doorgezet, gemengd met de commands van SchakelBord tot 1 DCC signaal. 3 bytes commands zijn alle 'aansturing' commands voor basic accessory decoders. (wisseldecoders) en alle commands voor locs met een kort adres (1~127). SchakelBord is daarom ook te gebruiken als booster, voor een apart deel van een modelspoorbaan.
SchakelBord kan een extra DCC circuit maken. Een circuit voor de rails met al het rollend materiaal en een circuit voor alle vaste decoders. Verder kan SchakelBord alle CV commando's maken en verzenden voor het programmeren van loc (multi function decoders) en wisseldecoders. (basic accessory decoders).
SchakelBord kan geen decoders uitlezen of automatisch herkennen. Overschrijft direct de geadresseerde CV waarde.
Wat Alan Turing in de dertiger jaren van de vorige eeuw al had bedacht, werd door uitvindingen als de transistoren en IC's 50 jaar later ook praktisch uitvoerbaar. We hebben het dan over de digitalisering van heel veel zaken waaronder ook de modelspoor hobby.
Digitaal betekend letterlijk: 'met cijfers'. Vaak in tegenstelling genoemd met ' analoog' wat zoiets betekend als: 'vergelijkbaar met'.
Om iemand aan de telefoon een lengte van 1 meter digitaal duidelijk te maken zeggen we gewoon: "het is 1 meter", om dit analoog te doen zullen we een touwtje van een meter per post moeten opsturen.
In de electronica, en de besturing van onze modelbaan, hebben we dit ook. Om een loc analoog te vertellen hoe hard het moet rijden zullen we een hogere of lagere spanning op de rails moeten zetten.
Digitaal hoeven we alleen maar te zeggen tegen de loc hoe hard hij moet gaan. We kunnen zelfs zeggen welke loc dat moet doen, door eerst de naam van de loc te roepen en daarna wat deze loc moet doen.
Natuurlijk moet de loc ons wel begrijpen, dezelfde taal spreken. Zo een taal noemen we in digitaal jargon een protocol. DCC is een protocol een digitale taal. Er zijn vele protocollen voor de modelspoor geweest, de belangrijkste die nog steeds worden gebruikt zijn motorola (Märklin) en DCC. Een multiprotocol centrale kan meerdere protocollen tegelijk versturen. Een multi protocol decoder kan meerdere protocollen begrijpen, verstaan.
DCC wordt nog steeds verder ontwikkeld en krijgt steeds meer functies en mogelijkheden. Het volledige DCC protocol kun je vinden bij de NMRA.
SchakelBord stuurt alleen basis DCC.
Digitaal wordt heel vaak verwart met binair, te begrijpen want alle digitale systemen werken binair. Dit is zoiets als een mus is een vogel, maar een vogel is geen mus. Binair betekend met twee cijfers. Zo kennen we ook decimaal, met 10 cijfers en hexadecimaal met 16 cijfers. Waarom we meestal in decimaal werken komt omdat we 10 vingers hebben. Een binair cijfer heeft twee mogelijke waardes een 0 of een 1.
Een decimaal getal bestaat uit cijfers die 10 waardes kunnen hebben, het meest rechtse cijfer zijn de eenheden (0,1,2,3,4,5,6,7,8,9), daarvoor de 10-tallen (0,10,20,30,40,50,60,70,80,90), daar weer voor de 100-tallen (0,100,200,300,400,500,600,700,800,900) en zo door, telkens maal 10.
In binair talstelsel doen we het zelfde. Het meest rechtse getal zijn de eenheden (0,1), daarvoor de 2 tallen (0,2), dan de 4 tallen (0,4) en zo weer door. Anders gezegd: meest rechtse cijfer heeft waarde 1, daarvoor 2, dan 4, 8,16,32,64,128,257,512,1024 en zo door, telkens maal 2.
Een groep van 8 binaire cijfers (bit in het jargon) noemen we een byte, een groep van 4 bits noemen we een nibble.
Een byte kan de waardes 0~255 hebben. Reken maar na: 128+64+32+16+8+4+2+1. SchakelBord gebruikt een arduino microcontroller. Een arduino kan 1 byte, dus 8 bits, tegelijk verwerken. Dat noemen we dan weer een 'word'. Een moderne windows machine werkt met words van 8bytes. (64bits). Verder hebben we dan de klok frequentie, een arduino werkt op 16Mhz, 16 miljoen berekeningen met 8 bits per seconde, kort-door-de-bocht gezegd. Een moderne pc gaat tot vele giga Hz. (Gigahertz=1.000.000.000 hz.)
Maar goed, ik dwaal af, terug naar DCC.
Een boodschap, opdracht verstuurt in de DCC taal noemen we een command. Een command bestaat uit max.6 bytes die achter elkaar worden verstuurd. DCC is in de tastbare, fysieke wereld, een spanning van max.18V die telkens van polariteit wisselt. De plus en min worden steeds omgedraaid. Die spanning van DCC wordt ook gebruikt als voedingspanning voor de motor en andere zaken in de locomotief. Vandaar dat dit DCC circuit ook energie moet kunnen leveren. SchakelBord kan tot 2A leveren.
De DCC commands worden 'verstopt' in de snelheid waarop dit omwisselen van die polariteit gebeurt. Twee omwisselingen van ongeveer 56us. (us=microseconde dus 0,000056sec) na elkaar betekent een 1 (meestal zeggen we dan een 'waar' of true bit) twee omwisselingen van 110us achter elkaar is dan een 0, onwaar. Een slim, zelf synchroniserend systeem.
Een basis DCC command zoals door SchakelBord wordt verstuurd bestaat uit drie bytes, eerste byte is het adres byte, tweede het instructie byte en het derde de checksum, een byte waarmee de ontvanger, de decoder, kan berekenen of het command goed is over gekomen.
Het adres byte geeft aan voor wat voor decoder het command bedoeld is, en bevat (een deel van) het adres.
Het meest linkse bit in een byte noemen we de MSB (most significant bit), het bit met de hoogste waarde , het meest rechtse bit in een byte heet het LSB (least significant bit), het bit met de laagste waarde. Om een poging te doen een en ander nog verwarrender te maken is de MSB bit 7 en de LSB bit 0, genummerd van rechts naar links dus.
Is de MSB (bit 7) van het 1e byte onwaar, dan is het command voor een loc decoder bedoeld. De andere 7 bits vormen het adres. (1~127). Het 2e instructie byte bepaald de rijrichting en snelheid met snelheid stappen 0~28. De functies, de lichten en zo, van een loc worden met aparte commands geschakeld. Een loc command bestaat meestal uit meerdere direct achter elkaar uitgezonden commands. rijden, functiegroep I en functiegroep II.
Commands voor locs worden zo vaak als mogelijk uitgezonden, gaat continue door.
Schakelbord maakt deze commands niet maar stuurt ze we wel door als ze zijn ontvangen op de DCC in.
Is bit 7 een waar en bit 6 een onwaar van het 1e byte, dan is het command voor een wisseldecoder, basic accessory decoder, bedoeld.
Het adres, wat aangeeft welke decoder wordt aangestuurd, bestaat uit de overige 6 bits van het eerste byte. En bit 6,5,4 van het tweede byte. Samen een 9 bits adres vormend van 1 tot 511. Een adres stuurt een decoder aan met 4 channels, voor bv.4 wissels. Ieder channel heeft twee ports, eentje voor rechtdoor en eentje voor afslaand. En het command kan aangeven of een port aan of uit gezet moet worden. Dit gebeurt met bit 3 van het 2e byte. Bit 1 en 2 bepalen welke van de vier channels, en bit 0 kiest de port, wissel rechtdoor of afslaand. Meestal tonen DCC centrales, ook SchakelBord, het dcc- adres. Per channel kun je dit berekenen. De dcc- adressen voor decoder adres 1 zijn 1,2,3,4 voor adres 2 5,6,7,8 voor adres 3 9,10,11,12 en zo door. Het hoogste dcc-adres is 2047.
In tegenstelling tot commands voor locs die continue worden herhaald, worden commands voor wissel decoders maar een paar keer, meestal 4 keer zoals bij SchakelBord, herhaald.
Met de instellingen van SchakelBord kun je alle mogelijke combinaties van channels, ports en aan/uit commands maken per decoder, voor alle 4 de channels hetzelfde. Standaard, dus bij geen aangebrachte veranderingen in de instellingen worden 'gewone' wissel commands gestuurd die een wissel omleggen.
Bovengenoemd zijn de DCC commands waar SchakelBord gebruik van maakt. Binnen DCC zijn er nog veel meer mogelijkheden waarvoor ik graag verwijs naar de normbladen bij de NMRA.
SchakelBord kan CV commands versturen die direct een CV instelling van een decoder proberen te overschrijven. Handig voor instellen adressen en andere functies.
Grote centrales hebben veel meer opties voor het CV programmeren als SchakelBord. Deze kunnen ook een decoder uitlezen, een van de vele moderne mogelijkheden van DCC.
Een specifieke programmer kan een zeer handig hulpmiddel zijn en wordt zeker niet door SchakelBord overbodig gemaakt.
SchakelBord heeft een DCC ingang, hierop kan een andere DCC centrale worden aangesloten. Centrales als SchakelBord kunnen worden genest. Met drie geneste SchakelBord kun je dan 3x64=192 accessoires als wissels aansturen. Of gebruik schakelbord als een booster voor een apart stuk spoor. Of maak een apart DCC circuit voor de accessoires en een apart circuit voor het rollend materieel. Vast zijn er nog veel meer toepassingen te bedenken.
De DCC commands worden samengevoegd. Fysiek, elektrisch is het de laatste SchakelBord die de stroom, energie levert.
Decoders voor accessoires als wissels hebben vaak, aan te raden is altijd, een eigen voeding waarmee de wissel elektromagnetisch, met een servo of stappenmotor wordt bekrachtigd. Allen de DCC data wordt gebruikt, heel veel decoders, honderden, kunnen dan tegelijk op een uitgang van SchakelBord worden gezet. Rollend materieel is niet van een aparte voeding te voorzien, de voeding voor de motor moet ook uit het DCC circuit komen.
Het DCC signaal van de andere centrale wordt via een optocoupler aangesloten op een pin van de arduino. Deze pin triggered een interrupt. De periode tussen twee interrupts wordt gemeten en daarmee wordt het DCC signaal gelezen. SchakelBord werkt alleen met 3 bytes commands, het geheugen van een arduino is beperkt. 3 bytes commands zijn alle commands voor accessoires (wissels) en locs met een kort adres (1~127).
Andere commands worden genegeerd. Omdat DCC een strak tijds-regime heeft, de commands moeten netjes achter elkaar worden gestuurd, worden de door SchakelBord gemaakte commands en de via de DCC in ontvangen commands eerst opgeslagen in een buffer. Behalve de drie bytes wordt in de buffer ook aangegeven wanneer het command moet worden gestuurd, een delay, pauzetijd, en hoe vaak het command moet worden gestuurd. SchakelBord werkt daarna op volgorde de buffer weer leeg.