Doel:€250.00
Donaties:€128.00

Per saldo:€-122.00

Steun ons nu!

Laatst bijgewerkt
op 16-04-2024

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

Mallnitzer Tauernbahnstrecke ÖBB N Spoor door Schachbrett
Vandaag om 00:32:25
M.s.v. De Percee bouwt aan nieuwe clubbaan door J. Moors
Vandaag om 00:28:49
Ronald en Wanda's "Southern Comfort" swamp layout! door MaraNCS
17 april 2024, 23:45:44
Hengelo in 1981-1982, maar dan anders: Kassenberg in N door Mispoes
17 april 2024, 23:24:06
Bouw van materieel 40 treinstellen door GerardvV
17 april 2024, 23:12:49
Grenzbahnhof Ellrich ( DDR ) in schaal TT door eitreb
17 april 2024, 23:06:00
Mijn eerste H0-modeltreinbaan in aanbouw door Wim Vink
17 april 2024, 22:50:24
Onlangs gespot - gefotografeerd, de foto's door mDDM
17 april 2024, 22:40:55
Brezelbahn in H0, Duitsland tp III. door gdh
17 april 2024, 22:26:07
Pools diorama H0 door Cegielski
17 april 2024, 22:26:05
Toon hier je nieuwe (model-) spooraanwinst(en)... door raymond erdtsieck
17 april 2024, 22:16:30
Bauarbeiten im gange door Frank 123
17 april 2024, 22:13:30
EifelBurgenBahn door Die Bahn
17 april 2024, 22:12:14
Raadplaatje door Magic
17 april 2024, 22:10:17
3,51° ofzoiets 😉 door kar
17 april 2024, 22:00:24
Mini baantje `` De visafslag`` door DV modelspoor
17 april 2024, 21:30:36
Pfarrerwinkel bahn door wob
17 april 2024, 21:15:01
US diorama in H0 door Wim Vink
17 april 2024, 21:14:01
Oude metalen trafo's gebruiken....... door Klaas Zondervan
17 april 2024, 20:54:13
RhB modelbaan in Aanbouw die Scalettabahn Davos-Dürrboden door Erjen89
17 april 2024, 20:27:46
Onlangs gespot - gefotografeerd, de links door Mispoes
17 april 2024, 20:27:24
Station Roodeschool door Huup
17 april 2024, 20:18:44
18 t/m 21 april Intermodellbau '24 Dortmund door Vroeger
17 april 2024, 20:05:05
"Nederlandse" modellen door Pauldg
17 april 2024, 20:00:13
25 jaar geleden door Willem1951
17 april 2024, 19:37:25
Jouef, Electrotren, Rivarossi en Lima 2024, nieuws van de fabrikant door ex-DR V100
17 april 2024, 18:29:05
De fabriek - Spoor 0 door BartvD
17 april 2024, 18:03:32
Een diorama in TT (VEB Schwellenrost) door basjuh1981
17 april 2024, 18:01:12
Am Ende der Strecke, modulebaan op 1 M2 door basjuh1981
17 april 2024, 17:57:26
Ombouw/Pimpen Bolle neuzen door bollen neus
17 april 2024, 17:19:32
  

Auteur Topic: MARDEC, de Multifunctionele ARduino dcc DECoder.  (gelezen 351599 keer)

Servé

  • Team encyclopedie
  • Offline Offline
  • Berichten: 1748
  • Niks kan tippen aan een E1700
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #105 Gepost op: 08 maart 2016, 17:16:33 »
Ik heb 2x Serial.print() in het servo-deel ge-comment, dus het heeft geen invloed op het programma gehad.

Daar roep je wat! Daar heb ik gisteravond mee lopen spelen, helemaal vergeten :-\  Een snelle test leert het volgende:

#define    kONE_Max         64 --> Werkt NIET
#define    kONE_Max         80 --> Werkt WEL

Hier zouden we misschien Karst even lief aan moeten kijken wat de pulsbreedte van de "1" is. Morgen zal ik de DR5000 mee naar school nemen en even aan de scoop hangen, kan ik meten wat de pulsbreedte is.

Ik ga nog even verder testen.
Vriendelijke groet, Servé.

NTeering

  • Offline Offline
  • Berichten: 1033
    • ARduino Controlled MOdel RAilway
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #106 Gepost op: 08 maart 2016, 17:28:50 »
Ik heb Henk een library gestuurd met de aanpassing van Servé.
Gaat Henk nu ook :D worden of blijft het  :-X ?

Servé

  • Team encyclopedie
  • Offline Offline
  • Berichten: 1748
  • Niks kan tippen aan een E1700
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #107 Gepost op: 08 maart 2016, 17:29:28 »
Als "#define    kONE_Max" 68 of hoger is, werkt hij bij mij, lager werkt niet... Die 68 is buiten de range die volgens de NMRA gespecificeerd is. Mijn vermoeden gaat toch in de richting van het "te druk zijn" van de decoder, waardoor hij niet op tijd de flank kan detecteren.
Vriendelijke groet, Servé.

Goosie

  • Offline Offline
  • Berichten: 161
    • www.henkdegans.nl
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #108 Gepost op: 08 maart 2016, 17:36:06 »
Halelujah!!!
Tranen in de ogen, hij doet het!!!
Is de DR5000 nu MARDEC compatibel? (y) (y) (y) ;D
Met vriendelijke groet,

Henk de Gans

Servé

  • Team encyclopedie
  • Offline Offline
  • Berichten: 1748
  • Niks kan tippen aan een E1700
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #109 Gepost op: 08 maart 2016, 17:40:57 »
Andersom, de MARDEC is nu DR5000 compatibel :D

Het werkt ja, maar het is niet "netjes". Ik wil de komende dagen toch nog wat tests uitvoeren om te achterhalen waarom de MARDEC buiten de NMRA-specificaties werkt.
Vriendelijke groet, Servé.

Goosie

  • Offline Offline
  • Berichten: 161
    • www.henkdegans.nl
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #110 Gepost op: 08 maart 2016, 17:44:12 »
Andersom, de MARDEC is nu DR5000 compatibel :D

Het werkt ja, maar het is niet "netjes". Ik wil de komende dagen toch nog wat tests uitvoeren om te achterhalen waarom de MARDEC buiten de NMRA-specificaties werkt.

Karst had nogal wat wantrouwen richting de library die in de MARDEC gebruikt wordt, en stelde een andere voor. Ik begrijp echter van Nico dat dit niet ze makkelijk effe om te gooien is in de source? Komt de stabiliteit wellicht wel ten goede, en dat is toch wel belangrijk lijkt me!
Met vriendelijke groet,

Henk de Gans

NTeering

  • Offline Offline
  • Berichten: 1033
    • ARduino Controlled MOdel RAilway
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #111 Gepost op: 08 maart 2016, 17:59:33 »
Mooi dat het nu ook voor Henk weer werkt.  (y) (y)
Ik zal die aangepaste library in het package opnemen.

De NMRA library in de MARDEC stoppen is wellicht een betere oplossing.
Maar vooralsnog zie ik daar geen gat in. Anders kom ik nooit toe aan m'n eigen baan bouwen ;D

Nico

FransS

  • Offline Offline
  • Berichten: 115
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #112 Gepost op: 08 maart 2016, 18:58:50 »
Mannen...even Nederlands. Ik kan goed schaken, mijn huis schilderen, snel fietsen en een modeltreinbaan bouwen. Bovendien krijg ik 21 wissels met de arduino aan de praat.
Ik wil eigenlijk over stappen van de intellibox naar de DR5000.
Maar vanaf post 106 begrijp ik er geen (........) meer van.
Kan ik dat ding nu ongestraft kopen of niet. Als dat gedonder oplevert van ga ik gewoon door met mijn intelliboxje  :'(
Kreten als: NMRA library, Als "#define    kONE_Max" 68 of hoger is, Ik heb 2x Serial.print() in het servo-deel ge-comment, dus het heeft geen invloed op het programma gehad.
Dit is toch een forum voor Dummy modelspoorders....................................of niet.

Frans
Op de klei rijden ook treinen

Servé

  • Team encyclopedie
  • Offline Offline
  • Berichten: 1748
  • Niks kan tippen aan een E1700
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #113 Gepost op: 08 maart 2016, 19:00:56 »
Kort gezegd: Het werkt nu, ook met de DR5000 ;)
« Laatst bewerkt op: 08 maart 2016, 19:04:36 door Servé »
Vriendelijke groet, Servé.

Goosie

  • Offline Offline
  • Berichten: 161
    • www.henkdegans.nl
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #114 Gepost op: 08 maart 2016, 19:06:58 »
Mannen...even Nederlands. Ik kan goed schaken, mijn huis schilderen, snel fietsen en een modeltreinbaan bouwen. Bovendien krijg ik 21 wissels met de arduino aan de praat.
Ik wil eigenlijk over stappen van de intellibox naar de DR5000.
Maar vanaf post 106 begrijp ik er geen (........) meer van.
Kan ik dat ding nu ongestraft kopen of niet. Als dat gedonder oplevert van ga ik gewoon door met mijn intelliboxje  :'(
Kreten als: NMRA library, Als "#define    kONE_Max" 68 of hoger is, Ik heb 2x Serial.print() in het servo-deel ge-comment, dus het heeft geen invloed op het programma gehad.
Dit is toch een forum voor Dummy modelspoorders....................................of niet.

Frans

Haha Frans,

Je kunt met een gerust hart lekker zo'n DR5000 kopen!
En hij gaat gewoon werken met je servos die je net aan de gang hebt met je MARDEC.
Nico zal de aangepaste library mee verpakken in zijn pakket, dus jij hoeft je daar geen zorgen om te maken.
Er is goed werk verricht door Nico en Serve, en laten we vooral de prima ondersteuning van Karst namens Digikeijs niet vergeten!


Met vriendelijke groet,

Henk de Gans

Karst Drenth

  • Offline Offline
  • Berichten: 10231
  • NS blauw, groen, rood, bruin, grijs en standgroen
    • Plan U op Sleutelspoor
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #115 Gepost op: 08 maart 2016, 19:21:41 »
Dit is toch een forum voor Dummy modelspoorders....................................of niet.

Nee... :P  dwz niet uitsluitend ;)

@Serve,

Ben wel benieuwd wat jij echt meet als 1-tijd. Kan natuurlijk zijn dat mijn scoopje niet helemaal 100% is...


Grtzz,

Karst

Servé

  • Team encyclopedie
  • Offline Offline
  • Berichten: 1748
  • Niks kan tippen aan een E1700
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #116 Gepost op: 09 maart 2016, 10:43:04 »
Zo, even de scoop aangezwengeld. Dit zijn de meetwaardes van een halve periode (linksonder):

Dit is een "0":


(126 uS)


Dit is een "1":


(61 uS)

Allemaal netjes binnen de NMRA specificaties. Het wordt dus toch graven in de MARDEC-code...
Vriendelijke groet, Servé.

NTeering

  • Offline Offline
  • Berichten: 1033
    • ARduino Controlled MOdel RAilway
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #117 Gepost op: 09 maart 2016, 11:40:19 »
@Servé
Bedoel je te zeggen dat de waarde van 64 voor kONE_Max voldoende zou moeten zijn omdat je 61 uS gemeten hebt?
Dan is het eventueel graven in DCC_Decoder.cpp maar niet in de MARDEC.ino lijkt me.

Vraagje.
Als je waarde toch op 80 zet kan dat dan 'gevaar' voor de wat minder snelle centrales?
M'n DaisyII doet het overigens ook prima op die 80.

Nico

Karst Drenth

  • Offline Offline
  • Berichten: 10231
  • NS blauw, groen, rood, bruin, grijs en standgroen
    • Plan U op Sleutelspoor
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #118 Gepost op: 09 maart 2016, 12:04:53 »
Citaat van: Servé
Dit is een "0":


(126 uS)

Da's zoals verwacht.



Citaat van: Servé
Dit is een "1":

Citaat van: Servé

(61 uS)

Allemaal netjes binnen de NMRA specificaties. Het wordt dus toch graven in de MARDEC-code...

Hmm... dat zou beter 2uS minder kunnen zijn ;) :P Maar idd nog ruim binnen de specs.

Citaat van: NTeering
Bedoel je te zeggen dat de waarde van 64 voor kONE_Max voldoende zou moeten zijn omdat je 61 uS gemeten hebt?
Dan is het eventueel graven in DCC_Decoder.cpp maar niet in de MARDEC.ino lijkt me.

In principe correct Nico, maar het kan ook zijn dat DCC.Loop() niet voldoende vaak aangeroepen wordt. In tegenstelling tot de NMRA library, gaat DCC_Decoder voor het opbouwen van het packet er van uit dat DCC.Loop() dit doet ( 1 van mijn bezwaren ;) ) De NMRA library doet dit in de interrupt routines en levert het paketje pas af als het compleet is. Dan kun je dus wel complete pakketjes missen, maar geen individuele bits zoals bij DCC_Decoder.

Citaat van: NTeering
Vraagje.
Als je waarde toch op 80 zet kan dat dan 'gevaar' voor de wat minder snelle centrales?
M'n DaisyII doet het overigens ook prima op die 80.

Kan geen enkel kwaad. alles is zo goed als goed, zolang je maar binnen de helft van een minimaal 0 bit blijft. Door die waarde iets te verhogen, ben je meteen gewapend tegen DCC-sigalen die wat minder 'stijg- en daalsnelheid' hebben b.v. als gevolg van een grote belasting op de baan.

Citaat van: NmraDcc.cpp
//------------------------------------------------------------------------
// DCC Receive Routine
//
// Howto:    uses two interrupts: a rising edge in DCC polarity triggers INTx
//           in INTx handler, Timer0 CompareB with a delay of 80us is started.
//           On Timer0 CompareB Match the level of DCC is evaluated and
//           parsed.
//
// INTx triggers on falling edge, bit-sampling always based upon the just ELAPSED period.
//   and then restarts the time measurement
//
// ISR(TIMER0_COMPB_vect) only samples the current line status when match occurs.
// timing is based upon the well-defined 58us half-period-time
// of a DCC '1' bit, with a maximum 64us for a valid '1'.
// The '0' bit is NOT well defined.
//
//                           |<------116us----->|
//                           |<-58us->|
//
//           DCC 1: XXXXXXXXX__________XXXXXXXXXX__________XXXXXXXXXX_________
//                           ^-INTx
//                           |---64us--->|
//                                       ^Timer-INT: reads one
//
//           DCC 0: XXXXXXXXX____________________XXXXXXXXXXXXXXXXXXXX__________________
//                           ^-INTx
//                           |---------->|
//                                       ^Timer-INT: reads zero
//           
//------------------------------------------------------------------------

// The Timer0 prescaler is hard-coded in wiring.c
#define TIMER_PRESCALER 64

// for a 16MHz cpu: TIMER_PRESCALER * 1000000L / F_CPU = 4. Hence every 4us we receive a 'tick'
#define us2ticks(us) (us / (TIMER_PRESCALER * 1000000L / F_CPU))
#define DCC_BIT_SAMPLE_PERIOD us2ticks(64)

Dit is de manier hoe de NMRA library e.e.a. uitlegt. alleen...

void ExternalInterruptHandler(void)
{
  TIFR0  |= (1<<OCF0B); // Clear  Timer0 Compare Match B Flag
  OCR0B   =     TCNT0 + DCC_BIT_SAMPLE_PERIOD ; // reload compare register
  TIMSK0 |= (1<<OCIE0B); // Enable Timer0 Compare Match B Interrupt

.... tijdens het afhandelen van de interrupt, loopt de hardware clock door. Dus moet de Sample Period bij die doorgelopen clock opgeteld worden. Dit ies iets dat de DCC_Decoder niet doet. Met andere woorden, de DCC_Decoder compenseert niet voor de 'latency' ( verwerkingstijd ) van de interrupt- en 'loop' routines. Daardoor is die kONE = 64 waarschijnlijk te kort ;) En... de resolutie van de Arduino micros() is 4uS. dus 1 tikje mis ( bij 61uS ) en je bent die 64 al voorbij. Dit lijkt te kloppen met Serve's observatie dat kONE = 68 wel werkt :)

Ik denk dat ik de '1-tijd' van de DR5000 naar 59 uS ga brengen, om in de toekomst deze soort van problemen te voorkomen :)

Grtzz,

Karst
« Laatst bewerkt op: 09 maart 2016, 14:51:46 door Bert van Gelder. Reden: Quote gerepareerd »

TinTin

  • Offline Offline
  • Berichten: 111
    • Swiss-N-Trak
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #119 Gepost op: 09 maart 2016, 15:12:28 »
Goed om te zien dat de MARDEC steeds verder wordt verbeterd  (y)

Ik ben nog even terug gegaan naar mijn eerste insteek, een shield waarop alles aangesloten kan worden.
Omdat deze toch iets groter is dan alleen het voedingsgedeelte dacht ik dat de pcb-tjes een stuk duurder zouden zijn maar dat scheelt maar $0,50 per pcb.

hierbij wat ik er van gebakken heb:



gr. Erwin