Release 0.0.3.0_nl
OC32 Firmware 0.0.3.0
Let op: Deze versie is nog in hoge mate experimenteel. Gebruik deze dus niet zo maar om je miniatuurwereld mee te besturen!
Gebruikers worden echter uitdrukkelijk uitgenodigd om feedback te leveren. Reacties kun je kwijt in dit topic.
In principe kunnen er door deze firmware geen dingen ernstig stuk gaan. Wees alleen voorzichtig als je servo's hebt die buiten hun range kunnen raken en dan mechanisch iets kunnen beschadigen.
Een aantal veranderingen zijn fundamenteel van aard. Als je die nieuwe mogelijkheden wilt gebruiken zul je soms even goed moeten nadenken, want ze vereisen mogelijk een andere werkwijze dan je tot nu toe gewend was
OC32 eXtended Addressing (uitgebreide addressering)
Je kunt een OC32 een "eXtended Address" toekennen van 0 tot 95. Het normale module-adres wordt op dat moment een Channel Address (kanaal). Het eXtended Address vormt samen met het Channel Address een uniek adres. Er zijn op deze wijze dus 16 * 96 = 1536 module-adressen beschikbaar.
Deze adressen zul je in de praktijk nooit allemaal gebruiken. De idee is dat je ofwel de normale adressering gebruikt of de extended adressering en dan op één kanaal. Anders wordt het erg onoverzichtelijk. Je kunt echter wel handig gebruik maken van de kanaalnummers: Gebruik bijvoorbeeld kanaalnummer 1 voor de normale (operationele) besturing. Als je dan al een aantal OC32 modules actief hebt (op kanaal 1) en je wilt een extra module toevoegen, dan zet je die module op kanaal 0. Je kunt die module dan configureren, zijn gewenste extended adres toekennen, etc. Ben je klaar, dan zet je de module op kanaal 1 en kan hij mee doen met de rest.
Toekennen van een eXtended Adres aan een module doe je met OC32Config op het tabblad "General". Het is het handigst dat te doen terwijl je eXtended Addressing niet gebruikt voor die betreffende module. Immers, als je een adres wilt toekennen aan een module die nog geen bekend eXtendes Address heeft, weet die module niet naar welk eXtended Address hij moet luisteren. Daarom is het ook handig een apart kanaal te reserveren voor dergelijke doeleinden.
Het kiezen van het eXtended Address van de module waarmee je daadwerkelijk wilt communiceren doe je bovenaan het OC32Config window.
Behalve een eXtended Address is er ook een eXtended Group Mask. Het zal straks ook mogelijk worden bepaalde functies van de OC32 aan te sturen per groep van modules. Zo'n commando stuur je dan naar één groep binnen één kanaal. Elke OC32 kan lid zijn van geen, één, of meerdere groepen. Er zijn 16 groepen gedefinieerd.
OM32 Flexible Addressing
Veel digitale systemen zullen nog niet in staat zijn de OC32 door middel van eXtended Addressing aan te sturen. Op het moment van dit schrijven is dat zelfs geen enkel systeem, zelfs Dinamo niet. Sommige systemen zullen dat hoogstwaarschijnlijk nooit kunnen, omdat ze niet meer verder ontwikkeld worden, zoals bv Koploper.
Je kunt met de OC32 communiceren via 2 protocollen. Hoewel deze protocollen gewoon door elkaar heen gebruikt kunnen worden zijn ze fundamenteel verschillend. Voor het configureren en testen van de OC32 maakt OC32Config gebruik van het OC32 protocol. Ook operationele besturingssoftware kan gebruik maken van dit OC32 protocol. Het OC32 protocol is bidirectioneel en staat nu (bovenstaand) dus ook eXtended Addressing toe, zodat je beschikt over voldoende adressen om alles aan te sturen.
Daarnaast begrijpt de OC32 het "oude" OM32 protocol. Het OM32 protocol kent geen eXtended Addressing en is beperkt tot 16 modules * 32 pinnen, dus 512 "uitgangen".
Bij OM32 Flexible Addressing gebruiken we de adresruimte voor de 512 adressen als lineaire adresruimte. De adressen worden dus niet meer verdeeld over 16 modules, maar je kunt deze adressen willekeurig verdelen over zoveel modules als je gebruikt, mits het totaal aantal benodigde adressen niet boven de 512 komt. In de praktijk levert dit vaak een flink efficiënter gebruik van de adressen op. Immers een Nederlands sein met 3 lampen bezet 3 pinnen, maar kan via 1 adres worden bestuurd. Een Duits uitrijsein met voorsein bezet 9 pinnen, maar kan met 1 adres bestuurd worden. Met andere woorden: bijna elk "apparaat" bezet meerdere pinnen en in de "oude" situatie dus meerdere adressen, maar kan via 1 adres worden bestuurd.
Je kunt nu aan elke Pin 0 tot 6 OM32 adressen toekennen. De eerste pin van het apparaat geef je 1 adres, de volgende pinnen geef je 0 adressen. Je geeft de OC32 module het eerste OM32 adres op waarnaar hij moet luisteren. De OC32 rekent dan zelf het OM32 adres uit waarmee het betreffende apparaat kan worden aangestuurd.
Welk adres dat is kun je uitrekenen, maar het wordt ook getoond op het configuratie tabblad van OC32Config naast het pinnummer. Voorwaarde is wel dat het het OM32 Flex Start-Address hebt ingevuld EN geactiveerd op het tabblad "General". Als het OM32 Flex Start-Address niet geactiveerd is werkt de OC32 op de ouderwetse manier met OM32 adressen, ongeacht hoeveel adressen je aan elke pin hebt toegekend!
OM32 Flexible Addressing werkt ook de andere kant op. Soms gebruikt een apparaat maar één Pin, maar heb je meerdere adressen nodig om de functies aan te sturen. Bijvoorbeeld een 3-weg MCC wissel, aangestuurd met een Servo. Wil je die besturen vanuit Koploper, dan heb je minimaal 2 adressen nodig. Je kunt dit in de OC32 oplossen door een redirect uit te voeren van een andere, ongebruikte pin, maar soms is dat onhandig of zelfs onmogelijk, bijvoorbeeld als je heel veel van dergelijke apparaten op één OC32 hebt. Je hebt dan dus eigenlijk méér dan de 32 beschikbare adressen per OC32 nodig. Met OM32 Flexible Addressing kan dat door meerdere adressen toe te kennen aan een pin.
Er is één belangrijke beperking bij OM32 Flexible Addressing. Indien deze functie geactiveerd is werkt er nog maar één OM32 commando: "Set Aspect".
Bij het eerste adres dat is toegekend aan een pin zijn de Aspects 1 op 1 gekoppeld, dus Aspect 0 stuurt stand 0, Aspect 1 stuurt stand 1, etc. Bij het eerstvolgende adres stuurt Aspect 0 stand 2, Aspect 1 stuurt stand 3, etc. Bij een eventueel volgend adres stuurt Aspect 0 stand 4, Aspect 1 stand 5, etc.
Flexible DCC Addressing
Flexibele DCC addressering werkt op dezelfde wijze als bovenbeschreven Fexibele OM32 addressering. Het DCC start adres kon/moest je al instellen, dus daar is niets aan veranderd. Wat is toegevoegd is de mogelijkheid 0..6 DCC adressen toe te kennen aan elke pin. Zo kun je dus DCC adressen uitsparen of de andere kant op meerdere DCC adressen toekennen aan een aparaat zonder dat je redirects moet gebruiken. Bij DCC is dit nog belangrijker dan bij seriele adressering, aangezien helaas nagenoeg geen enkel DCC systeem Extended Accessory Decoder Packets kan genereren, waarmee je 1 DCC adres in 32 standen kunt zetten. Je bent daarom in vrijwel alle gevallen genoodzaakt terug te vallen op de "rechtdoor" en "afbuigend" standen, dus slechts 2 per DCC adres.
Combineren van Fexible OM32 en DCC Addressing.
Als je je OC32's zowel gebruikt voor accessoires naast het spoor als accessoires naast de weg als dag/nacht verlichting levert deze cominatie een nog grotere besparing op. Stel dat je je trein-accessoires bestuurt met DCC, je auto-accessoires met RS485 en de dag/nacht simulatie autonoom of via ETI inputs. In dat geval hoef je vanaf nu alleen nog maar DCC adressen toe te kennen aan apparaten die via DCC moeten kunnen aangestuurd en OM32 Flex-adressen aan apparaten die via RS485 worden aangestuurd.
Event Control
Het was al mogelijk de gebeurtenissen (Events) die zijn gedefinieerd voor de Trigger Inputs ook softwarematig (vanuit een Aspect Definitie) te activeren door middel van een "soft-event" instructie. De mogelijkheden om de Event Trigger Inputs te gebruiken zijn sterk uitgebreid:
- Er kunnen nu ook acties worden gekoppeld aan het INactief worden van een ETI. Eén input kent nu dus niet één maar twee gebeurtenissen.
- Het is mogelijk de externe (fysieke) Events te maskeren. Op die manier kun je de reactie op een externe gebeurtenis tijdelijk uitschakelen en inschakelen. Je kunt de ON en OFF events van alle ETI inputs apart maskeren (uitschakelen) door middel van een Event-configuratie instructie. Voor de goede orde: de maskers werken alleen op de echte Event-Inputs. Ze maskeren dus niet eventueel vanuit Aspect Definities gegenereerde Soft-Events.
Door de uitbreiding van de mogelijkheden is het tabblad "Event Configuration" van OC32Config sterk vereenvoudigd. Dat klinkt tegenstrijdig, maar door alle nieuwe mogelijkheden paste het simpelweg niet meer in het window. Je moet de instellingen nu pin voor pin configureren. Het heeft voor -en nadelen.
(enkele) Overige wijzigingen (OC32Config)
- De optie "force OC32 messages" is verwijderd. Alle berichten worden nu gestuurd in OC32 format tenzij je er zeer expliciet van afwijkt. Deze keuze is gemaakt om verwarring te vermijden in het geval dat je OM32 Flexible Addressing geactiveerd zou hebben op de betreffende module.
- De optie om de bitrate van de com-poort in te stellen is verwijderd, of beter gezegd, verborgen. Bij een UCCI(/E) of RM-U als USB interface heeft de bitrate instelling al helemaal geen effect en bij de U485 maakt het in de praktijk heel weinig uit. Je kunt de optie desgewenst oproepen door te dubbelklikken op de tekst "Port" linksboven.
- Er is een "Refresh" knop toegevoegd om de lijst van com-poorten te verversen wanneer je tijdens het actief zijn van OC32Config een USB device toevoegt of verwijdert.
- Er is een "globale" Read-All en Write-All knop toegevoegd, die (als ik niets vergeten ben) echt alle instellingen van OC32Config wegschrijft naar de module dan wel alle instellingen leest.
- "Write-Differences" is verwijderd. Het eindresultaat van deze knop was niet anders dan de Write-All. Het verschil was alleen dat Write-Differences geen data wegschrijft die niet gewijzigd is. Om dit te kunnen doen moest de functie eerst controleren wat de verschillen waren. Per saldo was Write-Differences niet sneller. Aangezien de OC32 in de latere versies zelf al bepaalt dat gegevens die al zo in het flash-geheugen staan niet opnieuw worden weggeschreven heeft Write-Differences geen enkel voordeel meer.
- De knoppen "Fill-Idle" en "Fill-Defaults" op het tabblad Event Control zijn verwijderd. In plaats daarvan vind je een knop "Copy to All". Daarmee kun je de instellingen van de pin die je op het scherm hebt staan kopieren naar alle pinnen. Je kunt er dus hetzelfde mee bereiken, maar dan flexibeler.
Zie je fouten in bovenstaande beschrijving of kan de uitleg beter, voel je vrij e.e.a. aan te passen.