BeneluxSpoor.net forum

Vraag en antwoord => Digitaal => Topic gestart door: larahoun op 21 maart 2019, 23:18:21

Titel: DCC++ programmeerspoor werkt niet error 308 "No acknowledge"
Bericht door: larahoun op 21 maart 2019, 23:18:21
Ik probeer te starten met DCC++. Mijn eerste doel was om met een programmeerspoor de enige loc die ik digitaal heb uit te lezen en te programmeren. Het werkt voor geen druppel. Ik begon met een Geek Arduino mega en een onbekende kopie motorshield (arduinotype). Heeft even gewerkt, maar niet erg lang.
Toen maar een originele Arduino Mega gekocht met een Genuine Arduino motorshield-> Heb ik dus nooit aan de praat gekregen!. Bij programmeerpogingen springt de lok een stukkie (de vertaling van ik heb het begrepen van de lok), maar de arduino geeft terug error 308: no acknowledgement.
Is er iemand op dit forum die me kan helpen?
In de USA zijn de filmpjes laaiend enthousiast over DCC++. Geïnspireerd daardoor ben ik begonnen, maar met een frustrerend resultaat!
Titel: Re: DCC++ programmeerspoor werkt niet error 308 "No acknowledge"
Bericht door: DirkH op 22 maart 2019, 23:00:18
ik had die problemen ook en heb de oplossingen uit volgende postings gebruikt.
een aanpassing van de ACK_SAMPLE_THRESHOLD

en verder

loadPacket(0,resetPacket,2,3); // NMRA recommends starting with 3 reset packets
loadPacket(0,bRead,3,5); // NMRA recommends 5 verfy packets
loadPacket(0,resetPacket,2,1); // forces code to wait until all repeats of bRead are completed (and decoder begins to respond)

This is the original code from the BaseStation. The DH10C does not perform the acknowledgement because of the last resetPacket that is used to wait until all bRead Packets have been digested. I changed the resetPacket to another bRead Packet and all works fine.

loadPacket(0,resetPacket,2,3); // NMRA recommends starting with 3 reset packets
loadPacket(0,bRead,3,5); // NMRA recommends 5 verify packets
loadPacket(0,bRead,3,1); // forces code to wait until all repeats of bRead are completed (and decoder begins to respond)

Similar changes are necessary in the routines for WriteCVByte and WriteCVBit. Use the bWriteand not the bRead on theses two changes

volledige uitleg is hier te vinden

https://www.trainboard.com/highball/index.php?threads/is-dcc-as-a-programmer-sensitive.107012/
 (https://www.trainboard.com/highball/index.php?threads/is-dcc-as-a-programmer-sensitive.107012/)
Titel: Re: DCC++ programmeerspoor werkt niet error 308 "No acknowledge"
Bericht door: hepost op 24 maart 2019, 10:44:24
Het lijkt er op dat dit probleem afhankelijk is van welke decoder je hebt. Het uitlezen van een uhlenbrock decoder werkt bij mij niet. Het schrijven lukt wel. Bedankt voor de tip Dirk!

Groeten,
Hendrik
Titel: Re: DCC++ programmeerspoor werkt niet error 308 "No acknowledge"
Bericht door: dito op 24 maart 2019, 11:09:54
Hello  sporters

Ik heb het volgende probleem met lok pilot v4.0 dcc.
Bij het lezen van de cv,s geraak ik enkel tot cv 8,daarna met elke cv waarin een 9 voorkomt
opent hij enkel de 9.
Kent iemand de oplossing?
Groeten

Herman
Titel: Re: DCC++ programmeerspoor werkt niet error 308 "No acknowledge"
Bericht door: larahoun op 24 maart 2019, 11:12:46
Dank Dirk!

Ik ben de aanpassingen aan het doorvoeren. Ik zie echter bij de writeCVByte writeCVBit niet wat ik daar "Similar" moet aanpassen. Ik ben blij dat er meer mensen zijn met "Similar" problemen.
Titel: Re: DCC++ programmeerspoor werkt niet error 308 "No acknowledge"
Bericht door: DirkH op 24 maart 2019, 12:10:13
zal straks eens een copie maken van mijn aangepaste versie. en een link ernaar plaatsen.
het is ondertussen een jaar geleden dat ik die aanpassing heb gedaan dus ik weet het ook niet allemaal zo direct.
ik herinner me nog dat ik op verschillende plaatsen de aanpassing heb gedaan.
ik had ook het probleem dat het bij het ene merk decoder werkte zonder problemen en bij bv de ullenbrock totaal niet ging.
ik werk wel met schaal n dus de ack parameter mag voor ho iets hoger gezet worden dan in mijn versie.
Titel: Re: DCC++ programmeerspoor werkt niet error 308 "No acknowledge"
Bericht door: DirkH op 24 maart 2019, 12:48:44
Blijkbaar zijn er 2 bestanden aan te passen :

PacketRegister.cpp, de aangepaste versie is hier te vinden :

https://drive.google.com/open?id=1jrhHrL8KlrOADg2eyOLbDtXPz411d6M8 (https://drive.google.com/open?id=1jrhHrL8KlrOADg2eyOLbDtXPz411d6M8)

Wijzigingen zijn in verschillende functies gedaan, voornamelijk loadPacket(0,resetPacket,2,1) vervangen door loadPacket(0,bRead,3,1); en nog enkele kleine wijzigingen.

en
PacketRegister.h :

https://drive.google.com/open?id=1Wpqqgiw6X3QjwLVmTTA5zXFcyVO7ZqN0 (https://drive.google.com/open?id=1Wpqqgiw6X3QjwLVmTTA5zXFcyVO7ZqN0)

In deze laatste is enkel  "#define  ACK_SAMPLE_THRESHOLD       10"  aangepast , ik denk voor Ho dat een waarde van 15 dient gebruikt te worden, voor N moest deze waarde naar 10 gebracht worden anders worden ACK niet gedetecteerd door de lage stroom van de N locs.  De ACK wordt gedetecteerd door een stroom puls gegenereerd door de loc (Het vooruitspringen van de lok bij het programeren) en bij N is deze stroom zo laag dat die niet gedetecteerd werd.

Hopelijk kunnen jullie de files downloaden en helpt het voor jullie problemen.

Dirk
Titel: Re: DCC++ programmeerspoor werkt niet error 308 "No acknowledge"
Bericht door: larahoun op 24 maart 2019, 12:55:30
Het WERKT!! ;D

Voortaan zal ik mijn vragen altijd als eerste op Beneluxrail zetten: er zit veel volk met kennis! Bedankt Dirk! Bij mij lag het probleem niet alleen in de code, maar nadat ik die had doorgevoerd werkte het nog niet. Ik heb toen mijn Genuine Arduino motorshiel gewisseld voor een oude kopie: toen werkte het.

Blijkbaar had ik dus twee problemen.

Maar zowel het programmeerspoor als het rijspoor werken!

Ik heb voor de zekerheid toch ook jou bestanden nog gedownload.

 ;D Dirk: je hebt een einde gemaakt aan een 2 maanden gefrustreerd prutsen!
Titel: Re: DCC++ programmeerspoor werkt niet error 308 "No acknowledge"
Bericht door: DirkH op 24 maart 2019, 13:18:40
Toch niet vergeten de verbindingen op de motor shield aan te passen, ik dacht dat er 3 onderbrekingen moesten gemaakt worden.
Titel: Re: DCC++ programmeerspoor werkt niet error 308 "No acknowledge"
Bericht door: larahoun op 24 maart 2019, 14:34:06
Nee,

Die heb ik wel onderbroken. (y)