Doel:€250.00
Donaties:€88.00

Per saldo:€-162.00

Steun ons nu!

Laatst bijgewerkt
op 03-06-2025

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

Raadplaatje door dennie
Vandaag om 18:13:54
De Projecten van RetroJack door Scratchbuilt
Vandaag om 17:17:31
Z21 App gebruiken om wissels via de 10836 decoder door AlbertG
Vandaag om 16:53:43
Roco BR 93 stroomafname door AP3737
Vandaag om 16:30:49
Toon hier je nieuwe (model-) spooraanwinst(en)... door Mark D.
Vandaag om 16:26:24
Uhlenbrock Intellibox 3 door Dirk
Vandaag om 16:15:35
kan de yamorc 6016es-cs een digikeijs dr4088 cs vervangen? door Dirk
Vandaag om 16:13:09
Modelspoorbaan van Einte door cor_b
Vandaag om 16:00:14
Module vliegveld Jan van Mourik door MOVisser
Vandaag om 15:52:51
Mijn eerste H0-modeltreinbaan in aanbouw door Wim Vink
Vandaag om 15:36:24
23 augustus modelspoorbeurs Houten door Wim Vink
Vandaag om 15:34:33
US diorama in H0 door Wim Vink
Vandaag om 15:31:58
Microstepper motoren voor armseinpalen door AP3737
Vandaag om 15:22:27
Open huis VAMES Modelspoorclub Apeldoorn door Joz
Vandaag om 15:13:44
iTrain baanontwerp door Chris Westerduin
Vandaag om 14:57:01
Ervaringen met bezorgdiensten (PostNL, DHL, etc) door Hollandserhbfan
Vandaag om 14:44:40
24e smalspoormodelbouwdagen 30 en 31 augustus 2025 bij Stoomtrein Katwijk Leiden door Peter Soonius
Vandaag om 14:30:18
Deining in Dönsdorf door Basilicum
Vandaag om 14:23:27
2025-8-18: Spoor verzakt: veel minder treinen tussen Eindhoven en Utrecht door VAM65
Vandaag om 14:11:57
Scandinavië-IG: Skandinavisk bangården. Voor op Scandinavië gerichte spoorzaken door Loki
Vandaag om 13:42:33
Bahnstrecke 5867 door puntenglijder
Vandaag om 13:38:05
La Fabrique des petits réseaux (1:87) door RhB-Mikey
Vandaag om 12:44:57
De overeenkomst tussen een Ovaalramer en een Motorpost. door FritsT
Vandaag om 12:38:20
Yet Another Servo Decoder door AP3737
Vandaag om 12:09:36
Industrieel smalspoor inspiratiedraadje door spoorijzer
Vandaag om 11:50:34
Toon hier je (model)TRAM foto's. door R1954
Vandaag om 11:30:30
Onlangs gespot - gefotografeerd, de foto's door Klaas Zondervan
Vandaag om 11:27:26
0n30 diorama: Sedona Verde River Canyon door Ronald Halma
Vandaag om 11:18:48
Einde HSIJ (stoomtrein Hoogovens) in zicht door dh3201
Vandaag om 11:07:18
Hengelo in 1981-1982, maar dan anders: Kassenberg in N door spoorijzer
Vandaag om 09:47:10
  

Auteur Topic: Yet Another Servo Decoder  (gelezen 21147 keer)

Karst Drenth

  • Offline Offline
  • Berichten: 10485
  • NS blauw, groen, rood, bruin, grijs en standgroen
    • Plan U op Sleutelspoor
Re: Yet Another Servo Decoder
« Reactie #15 Gepost op: 11 January 2025, 16:43:06 »
Om bovenstaande te demonstreren: ;) een paar filmpjes.


<a href="https://youtube.com/v/cZTTgE4rfvs" target="_blank" class="new_win">https://youtube.com/v/cZTTgE4rfvs</a>

Sein met "stuiteren" ;)



<a href="https://youtube.com/v/Z4kVSUMWT4s" target="_blank" class="new_win">https://youtube.com/v/Z4kVSUMWT4s</a>

Slagbomen met flink stuiteren :P en massa-simulatie.  8) De knipperlichten zitten in dezelfde pre-def als de slagbomen:





<a href="https://youtube.com/v/f9u2jSisnCk" target="_blank" class="new_win">https://youtube.com/v/f9u2jSisnCk</a>

"Licht" functies. Outputs worden in LED mode aangestuurd.


Dit alles, plus nog een wissel met puntstuk-polarisatie volgens het 2-relay principe ( want oude Tillig Elite wissel ), wordt met maar 1 YD8248 aangestuurd. ( en er is zelfs nog  1 uitgang vrij :D :D )



Zo ziet de bezetting er dan uit. :)


@aiko, excuus voor het "kapen" van je draadje. Maar dit is dé Servo-Decoder van de "echte "Yet Another...." ;) :P

Grtzz,
Karst

Ben

  • Offline Offline
  • Berichten: 6732
Re: Yet Another Servo Decoder
« Reactie #16 Gepost op: 11 January 2025, 17:04:07 »
Nice.....  (y)

AP3737

  • Offline Offline
  • Berichten: 345
Re: Yet Another Servo Decoder
« Reactie #17 Gepost op: 11 January 2025, 20:47:18 »
@aiko, excuus voor het "kapen" van je draadje. Maar dit is dé Servo-Decoder van de "echte "Yet Another...." ;) :P
Zolang je dit soort leuke filmpjes blijft posten, ga zo door :)
Er kan veel met je decoder, en wat uitleg kan geen kwaad.  :)

AP3737

  • Offline Offline
  • Berichten: 345
Re: Yet Another Servo Decoder
« Reactie #18 Gepost op: 12 January 2025, 16:51:58 »
Zo, we zijn weer een dagje verder. Mijn TCA Servo Library heb ik nu ook getest op de ATtiny 0, 1  en 2 series. Alles ging goed, tot het kiezen van de alternatieve pinnen voor de Waveforem Outputs (WO, Compare Units). Ik ben daarmee de hele dag bezig geweest, om na vele uren er achter te komen dat ik een kleine typefout had:
PORTMUX.TCAROUTEA |= PORTMUX_TCA0_2_bp; had
PORTMUX.TCAROUTEA |= PORTMUX_TCA0_2_bm; moeten zijn.
Iedereen die wel eens programmeert zal dat herkennen: uren bezig om dan een onbenullige typo te vinden.

Anyway, en kan nu verder met de AVR-DD en EA processoren. Probleem daarbij is dat voor deze processoren de standaard uploader op de Curiosity Nano's niet door DxCore ondersteund wordt / een nieuwe versie van avrdude geïnstalleerd moet worden. Ik zie wel hoe ik dat ga oplossen / hoeveel tijd me dat gaat kosten  ::)

Groet, Aiko

Karst Drenth

  • Offline Offline
  • Berichten: 10485
  • NS blauw, groen, rood, bruin, grijs en standgroen
    • Plan U op Sleutelspoor
Re: Yet Another Servo Decoder
« Reactie #19 Gepost op: 12 January 2025, 19:47:53 »
PORTMUX.TCAROUTEA |= PORTMUX_TCA0_2_bp; had
PORTMUX.TCAROUTEA |= PORTMUX_TCA0_2_bm; moeten zijn.
Iedereen die wel eens programmeert zal dat herkennen: uren bezig om dan een onbenullige typo te vinden.

Ja... de naamgeving in de headers is niet altijd even gelukkig gekozen door Atmel :'(

Grtzz,
Karst

bask185

  • Offline Offline
  • Berichten: 5009
Re: Yet Another Servo Decoder
« Reactie #20 Gepost op: 12 January 2025, 22:29:20 »
Gebruiken jullie nooit chatgpt voor simpele code reviews. Hij kan vaak ook assisteren met bug zoeken. Dingen als typo's vindt hij gewoon. Ik laat hem ook wel eens python scriptjes maken voor simpele dingen zoals PDF's van schema's te maken, licenties aan libraries toevoegen, ander simpel 'grunt work'. Natuurlijk vertrouw ik dat ding niet blindelings. Maar als dat ding zegt: deze regel heeft een typo of je hebt hier = ipv == getikt. Dan kan je minstens kijken of die gelijk heeft.

Citaat
Ik ben daarmee de hele dag bezig geweest
Jij liever dan ik. Ik heb na een dag werk, in dat soort dingen geen zin of fut meer. Daarom wil ik eigenlijk geen moeite doen om reeds bestaande wielen zoals servo en DCC libraries opnieuw uit te vinden als ik dat simpelweg niet hoef.

Ik heb het programma van mijn 8 voudige servo decoder gebouwd/samengesteld in ~45 minuten. Deze 3 regels alleen al vormen al 80% van wat de code daadwerkelijk moet doen.
#include nmradcc.h
#include servoSweep.h
#include debounce.h

Er zat wel geteld 1 hele bug in, en die kwam uit de nmra library ook. Die doet funny dingen met je EEPROM omtrent cv29 bij de initialisatie. Gevolg was dat servo object 3 als enige in het array zijn standen niet kon onthouden. Ik moest meteen aan die nmra library denken, omdat die de enige verdachte was. Even een EEPROM.write in commentaar zetten got the job done.

Maar nu kijk ik een gegeven paard niet in de bek. Ja die library is.. omslachtig neergekalkt en dat EEPROM verrampineren is ook erg "bijzonder" om dat zo te doen. Maar verder doet het wat het ook wat het moet doen. Ik moest een kleinigheidje er in hacken dat je gelijktijdig loc als accessoire instructies kon verwerken.

En als ik ooit een keer een programma geheugen probleem heb, kan ik er nog voor kiezen alles te strippen waar het woord CV in staat. Dat gebruik ik sws niet.

Mvg,

Bas
Train-Science.com
Train-Science github
It ain't rocket science ;-)

Karst Drenth

  • Offline Offline
  • Berichten: 10485
  • NS blauw, groen, rood, bruin, grijs en standgroen
    • Plan U op Sleutelspoor
Re: Yet Another Servo Decoder
« Reactie #21 Gepost op: 12 January 2025, 22:36:13 »
Citaat van: bask185
Ik heb na een dag werk, in dat soort dingen geen zin of fut meer. ....

Gut, gut, gut Bas,

Wat mag jij ontzettend blij zijn dat ik nooit je chef geweest ben of dat zal worden....  ::) ::)

AP3737

  • Offline Offline
  • Berichten: 345
Re: Yet Another Servo Decoder
« Reactie #22 Gepost op: 13 January 2025, 15:13:48 »
 ;D ;D ;D

@Bas: ik betwijfel of ChatGPT deze fout eruit had gehaald. Maar ik ben altijd bereid om dat te proberen. Hoe doe ik dat? (Een link met) het programma in ChatGPT posten, en dan vragen "beste ChatGPT, kan jij voor mij de fout vinden waarom de mutiplexer het niet goed doet? Of doe je dat via GitHub??

Tja, ieder heeft zo zijn/haar eigen hobby's. Ik ben misschien nog van de oude school, voor wie programmeren nog iets heeft van "schoonheid". Net als een kunstenaar, moet het resultaat "goed voelen". Het gaat bij mij niet om zo snel mogelijk, maar om zo goed mogelijk. Dat is voor mij de hobby. Ik begrijp dat anderen daarin anders kunnen staan.

Groet, Aiko

Karst Drenth

  • Offline Offline
  • Berichten: 10485
  • NS blauw, groen, rood, bruin, grijs en standgroen
    • Plan U op Sleutelspoor
Re: Yet Another Servo Decoder
« Reactie #23 Gepost op: 13 January 2025, 21:34:26 »
...Ik ben misschien nog van de oude school, voor wie programmeren nog iets heeft van "schoonheid". Net als een kunstenaar, moet het resultaat "goed voelen". Het gaat bij mij niet om zo snel mogelijk, maar om zo goed mogelijk. ...

Inderdaad, schoonheid en elegance. Als je dat bereikt, is de code bijna vanzelf goed ;) En ja... idem, ook van de oude, Edsger Dijstra school ;)


Citaat van: AP3737
Zolang je dit soort leuke filmpjes blijft posten, ga zo door :)

Ok, dan komen er weer twee :P
<a href="https://youtube.com/v/wGxJgfM_BRY" target="_blank" class="new_win">https://youtube.com/v/wGxJgfM_BRY</a>

<a href="https://youtube.com/v/sPVtVtUifag" target="_blank" class="new_win">https://youtube.com/v/sPVtVtUifag</a> 

Dit keer van de langzaam aan beroemd/beruchte Faller segment-draaijschijf.
Ik had e.e.a. al een tijdje klaar, maar het was niet om aan te zien en al helemaal niet om aan te horen. De brug schokte en het geluid leek wel op een AK47 :O
Ik begon al aardig aan het aansturingsalgorithme te twijfelen, maar zag toen een YT filmpje met dezelfde verschijnselen. De oplossing daar was het vervangen van de bijgeleverde, originele Faller Servo.
En wel door een MG996E/180 van tante AliE. ;) 4 Van die servos kosten 24 Euro, dus de wat "duurdere" van AliE. Maar wel: Digitaal, 180 Graden en metalen tandwielen.
Het resultaat is zie zien en (niet) te horen in de filmpjes.

Grtzz,
Karst

P.S. De schijf loopt in de videos nog wat snel, dat heb ik inmiddels vertraagd. Dat ging nu ook goed (y)

bask185

  • Offline Offline
  • Berichten: 5009
Re: Yet Another Servo Decoder
« Reactie #24 Gepost op: 13 January 2025, 22:26:53 »
Citaat
Hoe doe ik dat?
Het is gewoon een chat. Je gaat gewoon naar chatgpt.com, je kan met je google acount inloggen anders maak je een acount en dan kan je vragen stellen en opdrachten geven. Als je een beschrijving van je probleem geeft en code in de chat plakt, kan die je soms helpen. Het is echt best simpel. En zoals ik al zei python maken, of HTML is dat ding redelijk bedreven in, maar je moet wel testen. Soms maakt die onzin. Ik test hem wel eens uit. Ik gaf hem een stukje DCC code waarin pakketjes werden samengesteld. Ik liet 'it' er ook eentje maken, maar hij kreeg het niet voor elkaar.

Het was hem na een whopping 10 iteraties wel gelukt om automatische COM poort herkenning toe te voegen aan m'n batch files. Ik ben zo onbekend met batchnees, dat zou mij 10 avonden kosten ofzo  ;D

Citaat
Misschien een ideetje (die ik nog ga implementeren). Bij wisselaandrijving met Servo is het instellen van de beide uiterste standen vaak wat onhandig. Bij sommigen decoders krijg je wat knopjes, waarmee dat kan, maar dan weet ik nooit welk knopje ik nu weer moet drukken. Daarom wil ik het volgende doen: een ESP32 via een connector (en kort draadje) met de decoder verbinden. De ESP32 werkt dan als web server, zodat je met je mobieltje (gewone web pagina's) alle instellingen kan doen, met je neus bovenop de wissel. Lijkt me handig.
Dat is ook heel handig. Ik stond deze week op Rijswijk en ik heb 2 manieren ingebouwd om servo's in te regelen, heb ik ook een instructie filmpje van. Naast de knopjes, had ik de methode met de rijregelaar ook ingebouwd. Ik moest even 10 van die dingen ff inregelen. Ik kon dus vanaf boven mooi naar de wissels kijken en met de multimaus die ik had, kon ik mooi makkelijk met de draaiknop de servo arm aansturen. F1 om gebogen stand in te leren, F2 om recht in te leren. Het inleren ging rete snel en dit werkt met elk DCC systeem.

Zo'n WLAN ding lijkt me opzich ook wel leuk, want die kan je immers voor al je te maken apparaten gebruiken en je hebt een GUI.  Maar ik wilde dan weer niet die afhankelijkheid maken van een tool die je er dan bij moet nemen. Daarom begon ik met knopjes en voegde later die rijregelknop methode toe.

Maar met een WLAN throttle zijn of een phone met een app, kan dat inregelen ook al draadloos zoals het nu is. Een GUI is zeker leuk, maar nodig voor een servo decodertje? maybe.

Het allerlaatste wat ik wil is de noodzaak van een computer ofzo. Ik moet er niet aan denken dat ik met een laptop al die decoders langs moet om een instelling aan te passen. En ik zag nu ook, gezien de opbouw van de bak in kwestie, de knoppen waren nu niet de handigste methode, dat was de rijregelaar methode. De enige conditie waar je aan moet voldoen, is dat de servo vleugel op ongeveer 90 graden gemonteerd wordt. Maar dat geldt voor meer servo decoders vzik.

Mvg,

Bas
Train-Science.com
Train-Science github
It ain't rocket science ;-)

Karst Drenth

  • Offline Offline
  • Berichten: 10485
  • NS blauw, groen, rood, bruin, grijs en standgroen
    • Plan U op Sleutelspoor
Re: Yet Another Servo Decoder
« Reactie #25 Gepost op: 14 January 2025, 23:02:39 »
....En ik zag nu ook, gezien de opbouw van de bak in kwestie, de knoppen waren nu niet de handigste methode, dat was de rijregelaar methode.

Ik ken heel toevallig de man die dat al in 2007 bedacht had en die methode sindsdien in duizenden verkochte servo-decoders zit. Zelfs "de concurrenten" hebben dat deels overgenomen.

Grtzz,
Karst

AP3737

  • Offline Offline
  • Berichten: 345
Re: Yet Another Servo Decoder
« Reactie #26 Gepost op: 15 January 2025, 11:01:49 »
Gisteren ben ik bezig geweest met het testen van de servo code voor de TCA timers op de (relatief) nieuwe AVR-EA processoren. Ik had daarbij problemen dat de Multiplexer, dus het onderdeel waaraan je kan vertellen op welke pinnetjes van de chip de PWM signalen moeten komen. Het probleem was dat die Multiplexer soms een verkeerde poort koos. Uiteindelijk bleek het zo te zijn dat de Arduino (Dx)core voor de AVR-EA chips een andere default poort kiest als voor de Dx processoren. Achteraf is alles logisch, maar het duurt (bij mij) soms even voordat de logica doordringt.

Het is gewoon een chat. Je gaat gewoon naar chatgpt.com, je kan met je google acount inloggen anders maak je een acount en dan kan je vragen stellen en opdrachten geven.
Ik heb daar gisteren ook wat mee gespeeld. Maar voor de dingen waar ik nu mee bezig ben, levert het niets op (ik laat mij graag van het tegendeel overtuigen, dus ....  ::)).
AI en dus ook ChatGPT moet eerst met data gevoerd worden zodat het kan leren. Voorbeelden als shell-scripts (die al bijna 50 jaar bestaan) en webcode, waar het Internet mee vol staat, is al lang als "leermateriaal" aan ChatGPT aangeboden. ChatGPT is dus uitstekend in het presenteren van bestaande kennis.
Als je echter nieuwe dingen probeert, die nog niet als "leerstof" aan ChatGPT zijn aangeboden, dan komt ChatGPT niet met zinnige resultaten. Bij het soort problemen waarmee ik nu bezig ben, krijg ik verwijzingen naar een aantal Microchip "manuals" die ik al lang ken.

Inderdaad, schoonheid en elegance. Als je dat bereikt, is de code bijna vanzelf goed ;) En ja... idem, ook van de oude, Edsger Dijstra school ;)
Leuk dat je Dijkstra zo noemt; Nederlands beroemdste informaticus. Door je opmerking ben ik wel even gaan nadenken door wie ik dan vooral beïnvloed ben. Omdat ik van de Twentse School ben, zijn het bij mij vooral Gerrit Blaauw en Chris Vissers geweest. Blaauw was de hardware architect van de IBM-360, en leerde mij "orthogonaal ontwerp". Chris Vissers, voor wie ik nog lang heb mogen werken, zei vaak "het is een aardige jongen, maar geen echter Architect". Hij zag het ontwerpen van ICT systemen als kunst, zoals het ontwerpen van een huis. Je kan zelf wat stenen op elkaar metselen en hier en daar een raam monteren. Maar je kan ook een architect vragen, waardoor het veel mooier en beter wordt.

Dit keer van de langzaam aan beroemd/beruchte Faller segment-draaijschijf.
Ik had e.e.a. al een tijdje klaar, maar het was niet om aan te zien en al helemaal niet om aan te horen. De brug schokte en het geluid leek wel op een AK47 :O
Ik begon al aardig aan het aansturingsalgorithme te twijfelen, maar zag toen een YT filmpje met dezelfde verschijnselen. De oplossing daar was het vervangen van de bijgeleverde, originele Faller Servo.
En wel door een MG996E/180 van tante AliE. ;) 4 Van die servos kosten 24 Euro, dus de wat "duurdere" van AliE. Maar wel: Digitaal, 180 Graden en metalen tandwielen.
Wat je, terecht, aangeeft, is dat het niet de decoder alleen is, maar ik de servo zelf. Maar hoe weet je nu als gewonen modelbouwer welke servo's wel goed zijn en welke niet. Duurder hoeft niet per definitie beter te zijn. Iets wat in grote aantallen gemaakt wordt (zoals de SG90) kan goedkoper en daardoor misschien ook wel beter zijn dan iets waarvan maar een paar worden gemaakt. Zijn er, naast persoonlijke ervaringen, nog objectieve criteria die je als gewone modelbouwer kan gebruiken bij je keuze?

Groet, Aiko

AP3737

  • Offline Offline
  • Berichten: 345
Re: Yet Another Servo Decoder
« Reactie #27 Gepost op: 19 January 2025, 17:10:42 »
Op GitHub heb ik nu een eerste versie van mijn servo library gezet: https://github.com/aikopras/Servo-TCA
Deze eerste versie is upwards compatible ten opzichte van de bestaande, standaard servo library's, en heeft als belangrijkste verschil dat het gebruikt maakt van de TCA timer op moderne 8-bit AVR-processoren(DxCore, megaTinyCore), waardoor het puls-signaal jitter-vrij is. Ik heb het nu met diverse processoren getest, en deze eerste versie lijkt goed te werken.

Voor de technisch geïnteresseerden heb ik hieronder 3 plaatjes toegevoegd, die laten zien wanneer precies de pulsjes worden gegenereerd als we meerdere servo's hebben aangesloten.

Het eerste plaatje hieronder toont de standaard servo library. Het illustreert dat de pulsjes voor verschillende servo's onmiddellijk na elkaar worden gegenereerd (D1 en D2). Dat wordt ook duidelijk als we de code voor de Interrupt Service Routine (ISR) van deze library bestuderen. Als er een timer interrupt optreedt, zet de ISR de puls voor de huidige servo uit (digitalWrite), en daarna de puls voor de volgende servo aan. Ook krijgt de timer een nieuwe waarde, die past bij de gewenste pulsbreedte voor deze nieuwe servo.


De servo library van MoBaTools doet het, zoals uit onderstaand plaatje blijkt, wat anders. De pulsjes voor opeenvolgende servo's (W0, W1) vallen gedeeltelijk over elkaar heen. Het risico dat daarbij bestaat, is dat er eventjes stroom aan meerdere servo's moet worden geleverd, waardoor de servo voedingsspanning kan inzakken.


Om dat laatste probleem te voorkomen, heb ik bij mijn library getracht de pulsjes voor meerdere servo's (W0, W1, W2) zo goed mogelijk over de tijd te spreiden. Mijn doel is de voeding voor de servo's zo gelijkmatig als mogelijk is, te belasten, zodat deze stabiel blijft.

Het plaatje hierboven laat ook zien dat ik niet één ISR per 20ms nodig heb, maar (bij 3 servo's) drie ISRs per 20ms. Deze extra ISRs zijn nodig om de pulsjes over de tijd te kunnen spreiden. Ik had ook voor 1 ISR per 20ms kunnen kiezen, maar dan zouden de pulsjes voor de verschillende servo's precies gelijk beginnen. Dat wil ik dus niet.

Nu we het toch over ISRs hebben: ook bij de standaard servo library's is het aantal ISRs per 20ms niet één, maar één plus het aantal servo's (dus 1 meer dan bij mijn library). Bij mijn library kost een ISR ongeveer 6us (24Mhz processor), bij de standaard servo library varieert dat tussen de 10 en 20us (16 Mhz processor).

Zoals gezegd is dit nog maar een eerste versie van de library. De volgende stap is een uitbreiding met typische modelbaan specifieke functies, zoals de servo langzame bewegingen te laten maken, massatraagheid, pulsjes en/of spanning aan of uit te zetten etc. Hiervoor wil ik (dank aan C++) een nieuwe Class maken, die de bestaande Servo Class (inheritance) uibreidt met de gewenste nieuwe functies. Als ik geen onverwachte dingen tegenkom, zou deze nieuwe Class ook met bestaande servo libraries moeten kunnen werken. We zullen zien.

Groet, Aiko

AP3737

  • Offline Offline
  • Berichten: 345
Re: Yet Another Servo Decoder
« Reactie #28 Gepost op: 15 June 2025, 16:28:52 »
Beste lezers

Het heeft lang geduurd, maar de servo decoder is nu "af". Het is behoorlijk complexe software geworden, maar ik ben tevreden. De code en een link naar de hardware is te vinden op GitHub: https://github.com/aikopras/AVR-Servo-2.

Nog even ter herinnering: ik ga niet voor een makkelijke en snelle implementatie, maar voor een kwalitatief hoogwaardige servo decoder. Daarom worden de servo pulsen door een PWM timer gemaakt om jitter te voorkomen. De servo puls, maar ook de servo voeding, kunnen in en uitgeschakeld worden, zodat er geen lawaai is als de servos in rust zijn. In de servo puls-leiding zit een driver, en de servo voedingslijn gaat via een USB power IC, en is kortsluit vast.

Wat ik zelf aardig vind, is dat de servo voorgedefinieerde curves kan aflopen; dat idee (en de curves) heb ik van OpenDCC. Hieronder de curve die ik standaard gebruik voor wissels.


Er is keuze uit 12 curves, maar de gebruiker kan natuurlijk ook zelf een curve maken en in EEPROM zetten. Daarvoor kan gebruik gemaakt worden van PoM. Dankzij de RS-Bus is het ook mogelijk de waarde van CVs op te vragen. Het zou natuurlijk mooier zijn als dat ook via RailCom kon, maar dat komt misschien later op een volgend bord.

De servo positie sla ik steeds op in EEPROM. Omdat EEPROM een beperkte levensduur heeft, heb ik een circulaire buffer geïmplementeerd zodat ik (na iedere restart van de decoder) een positie verder schrijf in de circulaire EEPROM buffer.

Alhoewel alle settings met behulp van configuratie variabelen (CVs) kunnen worden ingesteld, heb ik ervoor gekozen om de positie van de wisseltongen alsmede de snelheid waarmee de servo beweegt, via een normale hand unit (zoals een Lokmaus of de LH100) mogelijk te maken. In plaats van een lange tekst heb ik een videootje gemaakt om te tonen hoe dat werkt: https://youtu.be/aXmgzEP85_A?si=MXEhgxmH1jcrmINr.

Groet
Aiko

Dennis1984

  • Offline Offline
  • Berichten: 891
  • Gotthardbahn
    • Dennis Model Trains
Re: Yet Another Servo Decoder
« Reactie #29 Gepost op: 15 June 2025, 23:26:47 »
Mooi werk Aiko, ik ga binnenkort eens even in je source code neuzen om je code-implementatie te aanschouwen. In je video maken de servo's in ieder geval heel weinig geluid (ik moest hem flink hard zetten om überhaupt iets te horen) dus ook in dat opzicht: doel bereikt (y).

Ik heb de datasheet van de EEPROM die ik in mijn ontwerpen er nog even bij gepakt, maar die benoemen 4 miljoen write-cycles, dus ben dan wel benieuwd of jij een veel oudere chip hebt gebruiks ;). In ieder geval verwacht ik niet dat je daar snel aan komt.

Met vriendelijke groet,
Dennis
Al mijn ideeën en modelbouwactiviteiten nu op mijn nieuwe weblog: Dennis Model Trains