Doel:€250.00
Donaties:€172.50

Per saldo:€-77.50

Steun ons nu!

Laatst bijgewerkt
op 12-01-2021
Algemeen

De stichting

Recente berichten

"Bij nader omzien", een Nederlands spoorwegfotoarchief door ingenium secundus
Vandaag om 11:56:41
BNLS-actie: Artitec DAF SRV door Peter74
Vandaag om 11:40:47
Lofzang op een Fleischmann BR 01 door Ferdinand Bogman
Vandaag om 11:34:22
Digitaal handbestuurd rijden: en de wissels dan? door henk
Vandaag om 11:32:13
BNLS-Werkspoor - NS 20 Kameel van Kleinspoor (en Artitec) door Luit
Vandaag om 11:28:34
Mijn eerste H0-modeltreinbaan in aanbouw door tuurtje
Vandaag om 11:27:50
Roco 2020, nieuws van de fabrikant door 4020 281-4
Vandaag om 11:27:41
Waar in de wereld is Mme. Sousterre? door Arjen52
Vandaag om 11:23:07
Huizen maken. door Hans van de Burgt
Vandaag om 11:17:42
Pimp my Fleischmann BR01 164 ==> Lofzang op een Fleischmann BR 01 door Duikeend
Vandaag om 11:16:35
Beginnen met Digitaal, automatisch rijden, ECos2 in bezit, wat nog meer nodig? door Frycio82
Vandaag om 11:11:40
"Litter Bin" voor Brits spoor en Britse modelspoorprojecten door Hans van de Burgt
Vandaag om 10:59:41
Roco NS 200/300 Sik groen, model 2020, bedrijfsnummer 288 door Ben
Vandaag om 10:57:22
LTM-51 Garratt in messing, Spoor-0 door FritsT
Vandaag om 10:55:26
Eerste kennismaking door VvKan
Vandaag om 10:49:07
Ervaringen met bezorgdiensten (PostNL, DHL, etc) door ingenium secundus
Vandaag om 10:38:25
Kreisbahn nach Bad Bimmelberg, ofwel de Bimmelbahn door Gerard van de Weijer
Vandaag om 10:23:06
ESU Ecos 2 uit te breiden om meerdere treinen handbediend te laten rijden? door RobGood
Vandaag om 10:20:19
IR lichtsluis van Modelbouwled, handleiding gevraagd. door HansQ
Vandaag om 10:04:45
Viessmann 5077 rijtuigverlichting door henk
Vandaag om 09:45:38
Mijn Ned. N. Spoorbaan ''Echthoven'' door Rolando
Vandaag om 09:34:40
Piko 2021, nieuws van de fabrikant door Spoors
Vandaag om 09:27:25
Glas door Bert van Gelder
Vandaag om 09:25:18
Lenz 2021 (spoor 0) door Pauldg
Vandaag om 09:06:16
Ombouw/Pimpen Bolle neuzen door bollen neus
Vandaag om 09:00:07
Oude tijden, nieuwe tijden, Duitsland 2e wereldoorlog door GORILLUS
Vandaag om 07:11:03
PCC’s en andere trams voor Delft, h0 door Tulpendaal
Vandaag om 05:49:59
Wim Mesu NS 600/2000 in 0 door roadster36
24 januari 2021, 23:49:53
Raadplaatje door GerardvV
24 januari 2021, 23:41:27
Artitec in NOS journaal: 'Naar China verzenden is makkelijker' door Hans van de Burgt
24 januari 2021, 23:16:54
  

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

erikkral

  • Offline Offline
  • Berichten: 84
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #1500 Gepost op: 17 november 2020, 20:51:23 »
Sorry, maar hier kan ik dus niks mee. Ik wil gewoon een kant en klaar scriptje hebben dat iedere Linux gebruiker direct kan toepassen.
Stelt misschien niks voor maar voor een Linux leek als ik is gaat dat niet lukken.
Gewoon een vertaling naar Linux van het hiervoor genoemde Windows script.

Nico

Hi Nico, Ik wil wel helpen. ik heb nog geen ervaring met het flashen van een hex-bestand naar een Arduino (of eigenlijk wel maar dan via jouw Windows-porgramma  :)) maar kan redelijk scripten dus dat moet wel lukken.
De moeilijkheid bij mij is dat ik door m'n Arduino's heen ben en eerst weer in China moet bestellen.
Ik kan wel een basis maken maar kan hem niet testen.

Jouw windows-programma's zijn kant en klaar. Moet dat ook voor Linux zo zijn?
Indien ja, dan moeten we op de een of andere manier een gecompileerde versie van avrdude op zien te snorren zodat we die mee kunnen leveren.
Indien nee (zou het handigste zijn en tevens mijn voorstel zijn) nemen we op in de handleiding dat men eerst avrdude moet installeren (uitgaande van Ubuntu/debian: even apt-get update + apt-get install avrdude). Laat maar weten.
« Laatst bewerkt op: 18 november 2020, 07:40:52 door erikkral »

NTeering

  • Offline Offline
  • Berichten: 930
    • ARduino Controlled MOdel RAilway
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #1501 Gepost op: 18 november 2020, 13:09:34 »
Citaat
Jouw windows-programma's zijn kant en klaar. Moet dat ook voor Linux zo zijn?

Nee dat hoeft niet. Dat moet je alle vb-scripts gaan omzetten.
Alleen het upload script is voldoende. Zoals hierboven de windows versie.
De avrdude.exe en de avrdude.conf heb je denk ik automatisch als je de Arduino IDE voor Linux installeert.
Net als bij de Windows IDE.
Beide files kun je dan meeleveren in de zip-file. Ook de .hex files kunnen worden toegevoegd.
Maar die moet je dan eerst compileren in de IDE.

Nico

erikkral

  • Offline Offline
  • Berichten: 84
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #1502 Gepost op: 18 november 2020, 14:05:39 »
avrdude kan onder linux geinstalleerd worden zonder de Arduino IDE, althans als ik de dependencies naloop van avrdude, dan hoeft Arduino IDE niet geinstalleerd te zijn bij het gebruik van avrdude.
Wat staat er in de avrdude.conf?

bask185

  • Offline Offline
  • Berichten: 1041
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #1503 Gepost op: 18 november 2020, 14:18:29 »
Ja wat niet, dat bestand is op mijn werk pc 16084 lijntjes lang. Ik weet niet 100% zeker of mijn config op mn windows PC volstaat voor een linux computer. Als je me een e-mail PM't kan ik mijn config naar je toe sturen.  Echter als je arduino zelf installeert, dan wordt avrdude ook voor je geinstalleerd, en dan is het config ook al gevuld voor je en dan hij is 100% zeker goed.

Ook heb ik op mijn computer libusb0.dll nodig. Ik weet niet Linux van je verwacht.

Ik heb me ook wel eens laten vertellen dat de avrdude die arduino voor je installeert iets afwijkt van de originele avrdude, dus mocht je tegen rare problemen aanlopen, zou dat het kunnen zijn. Dus nogmaals installeer de arduino ide of arduino cli, dan moet je een 100% werkende avrdude krijgen.

Mijn batch file ziet er nu zo uit:
Citaat
avrdude -C avrdude.conf -v -p atmega328p -c arduino -P COM9 -b115200 -D -Uflash:w:test.hex:i
In shellscriptonees zou dat wss worden

Citaat
#!/bin/bash
./avrdude -C avrdude.conf -v -p atmega328p -c arduino -P ttyUSB0 -b115200 -D -Uflash:w:test.hex:i


@Nico, ik snap wat je bedoelt, maar totdat ik mijn laptop voeding heb teruggevonden, heb ik geen toegang tot een linux pc dus kan ik verder idd niet zo veel toevoegen

erikkral

  • Offline Offline
  • Berichten: 84
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #1504 Gepost op: 18 november 2020, 14:29:14 »
Ik was ook niet echt geïnteresseerd in hoeveel lijntjes het bestand bevat maar meer wat het bestand doet.
Misschien dat mijn domme vraag deze rare reactie uitlokt en had ik moeten Googlen. Dat heb ik inmiddels gedaan en ik ben erachter gekomen dat het conf bestand bepaalt hoe avrdude de Arduino aan moet spreken.

Ik begrijp er verder van dat avrdude een generiek config bestand is.
Of de Windows versie hetzelfde is als de Linux-versie, dat valt nog te ontdekken. In ieder geval was ik niet van plan om standaard de Arduino IDE door mensen te laten installeren. Ik zal eens kijken of ik met de default configs van internet uit de voeten kan...

bask185

  • Offline Offline
  • Berichten: 1041
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #1505 Gepost op: 18 november 2020, 14:53:43 »
In ieder geval was ik niet van plan om standaard de Arduino IDE door mensen te laten installeren.
Dat bedoelde ik ook niet, ik bedoelde als je het nu alleen bij je zelf doet. Dan zal die installatie van arduino er toe leiden dat op jouw computer een werkende avrdude met goed gevulde config mee wordt geinstalleerd en dat is het hetgene waar wij geinteresseerd in zijn. En die executable en die config kan je dan kopieren, hosten op internet en die zou dan moeten werken op andere linux computers. Reverse engineering noemen we dat.

Toen ik wilde weten wat ik in m'n script moest tikken om avrdude te laten werken, liet ik eerst arduino IDE zelf een programma uploaden met de --verbose optie aangezet. Zo kon ik ook precies zien hoe ik avrdude moest gebruiken.

Bas

NTeering

  • Offline Offline
  • Berichten: 930
    • ARduino Controlled MOdel RAilway
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #1506 Gepost op: 18 november 2020, 14:59:24 »
Mijn idee is ook om eenmalig de IDE te installeren om:
- de Avrdude.exe en avrdude.conf te verkrijgen.
- de .ino files te compileren tot .hex files.
De eindgebruiker heeft dan geen IDE nodig.
Deze actie laat ik graag aan iemand anders

Precies zoals Bas net zei.

De syntax van Avrdude (volgens Bas) lijkt nagenoeg hetzelfde als de Windows-versie.
Ik gebruik wel 2 command line parameters (%1 en %2 voor resp. voor de sketchnaam en de com-poort)


Nico

erikkral

  • Offline Offline
  • Berichten: 84
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #1507 Gepost op: 22 november 2020, 12:58:35 »
Ik heb in een half uurtje wat in elkaar geflanst.

Screenshot:


Het script geeft bij stap 1 alle aanwezige ttyUSB devices weer. Dit zijn dus alle devices met USB Serial port, waaronder de Arduino.
Stap 1 geeft enkel een overzicht maar doet verder niets wanneer de gebruiker meerdere devices aangesloten laat.
Stap 2 vraagt om de input van het device, zoals aangegeven bij Stap 1. Gebruiker moet dus hier het volledige device pad invoeren.
Stap 3 geeft weer dat het device pad in het upload-commando is verwerkt als een variabele.

Bedankt Nico en Bas voor aanleveren van het voorbeeldcommando.

Terugkomend op de suggestie van Nico om voor dit programmeerwerk de Arduino IDE te installeren, daarvoor mis ik toch echt de noodzaak.
Ik kon zonder het installeren van de IDE de avrdude installeren. Die installatie bevatte ook een avrdude.conf die ik kan aanroepen.

Ik kan uit Nico zijn vorige antwoord niet opmaken of hij verwacht dat ikzelf ook ga compileren tot een hex-bestand. Die bestanden heb je toch al? Dat hoeft niet opnieuw gedaan te worden, lijkt mij...
Hoor graag van je.

Oh ja, ik heb nog een Arduino gevonden dus ik kan het zelf testen. Heb ik wel even een hex-bestand nodig...

Groet,

Erik
 
« Laatst bewerkt op: 22 november 2020, 13:02:23 door erikkral »

bask185

  • Offline Offline
  • Berichten: 1041
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #1508 Gepost op: 22 november 2020, 20:48:33 »
Nee je hoeft niet een .hex te compileren dat is idd al gedaan.

Citaat
Ik kon zonder het installeren van de IDE de avrdude installeren. Die installatie bevatte ook een avrdude.conf die ik kan aanroepen.
Dat eh zullen we wel of niet zien als het je lukt een arduino daadwerkelijk te flashen  :police:

Bas

erikkral

  • Offline Offline
  • Berichten: 84
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #1509 Gepost op: 23 november 2020, 15:49:12 »
Ah fijn Bas!

Ik heb op m'n windows PC de msi-installatie gedaan en zie dat dan de volgende hex-bestanden worden uitgepakt:

Mardec
1. MARDEC.hex
2. MARDECm.hex

ArLoco
1. ARLoco.hex
2. ARLocom.hex
3. ARLocon.hex

Arsigdec
1. ArSigDec.hex
2. ArSigDecm.hex
3. ArSigDecn.hex

Wat is de betekenis van deze bestanden? Wat heb ik nodig voor een flash test?
Moet ik alle Mardec/ArLoco/Arsigdec-bestanden flashen naar een Arduino?
Of maar 1 specifieke?

NTeering

  • Offline Offline
  • Berichten: 930
    • ARduino Controlled MOdel RAilway
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #1510 Gepost op: 23 november 2020, 16:24:57 »
Citaat
Ik kon zonder het installeren van de IDE de avrdude installeren.
Waar haal je die dan vandaan? Is toch onderdeel van de IDE?

Citaat
compileren tot een hex-bestand
Ik ging ervan uit dat een onder windows gecompileerde hex-file niet zou werken onder Linux.
Daarom zou je onder Linux apart moeten compileren, dacht ik.
Maar als dat niet nodig is, ook prima.

Stap 1 van script.
Kan dat niet wat slimmer?
Het windows vb-script kan zelf de com poort bepalen waar de Arduino aan hangt.
Daartoe wordt eerst een scan gemaakt van alle COM poorten zonder aangesloten Arduino
Daarna dezelfde scan met aangesloten Arduino.
Uit het verschil volgt de gebruikte COMpoort.

Stap 2
Waarom is deze ingave nodig? Er is toch nog maar een poort aangesloten. Dat is dan toch automatisch de goede?

Stap 3
Hoe kun je via een command line parameter het gewenste programma uploaden?


Dan de hex-files:
naam.hex: hex file voor Arduino UNO en DCCNext
naamM.hex: hex file voor Arduino MEGA
naamN.hex: hex file voor Arduino Nano

Om het flashen te testen hoef je met maar een hex-file te testen. Bij voorkeur de UNO variant.
Als dat werkt zullen de andere ook wel werken.

mvg
Nico

erikkral

  • Offline Offline
  • Berichten: 84
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #1511 Gepost op: 23 november 2020, 16:47:50 »
Dag Nico,

Hieronder even een reactie op jouw opmerking. Doe het even zo, is het wat makkelijker het bij elkaar te houden

Citaat
Waar haal je die dan vandaan? Is toch onderdeel van de IDE?
Onder linux niet. Als je de details van package avrdude zie je dat er geen dependencies zijn met de arduino-IDE, alleen met andere libraries.

Citaat
Ik ging ervan uit dat een onder windows gecompileerde hex-file niet zou werken onder Linux.
Daarom zou je onder Linux apart moeten compileren, dacht ik.
Maar als dat niet nodig is, ook prima.
Het is ook een aanname van mij dat jouw Windows hex ook geflasht kan worden onder linux. Vanavond ga ik erachter komen wie gelijk heeft.

Citaat
Stap 1 van script.
Kan dat niet wat slimmer?
Het windows vb-script kan zelf de com poort bepalen waar de Arduino aan hangt.
Daartoe wordt eerst een scan gemaakt van alle COM poorten zonder aangesloten Arduino
Daarna dezelfde scan met aangesloten Arduino.
Uit het verschil volgt de gebruikte COMpoort.

Stap 2
Waarom is deze ingave nodig? Er is toch nog maar een poort aangesloten. Dat is dan toch automatisch de goede?
Deze stappen kunnen zeker slimmer. Ik wil daar later opnieuw naar kijken. Wil nu eerst kijken of ik de Arduino goed geflasht krijg.

Citaat
Stap 3
Hoe kun je via een command line parameter het gewenste programma uploaden?
Ehhmm, uploaden volgens het commando zoals het er staat? Commando word nu op het scherm getoond, script word aangepast zodat dit commando uitgevoerd word.

Dank voor de uitleg van de hex-bestanden. Hier kan ik vanavond mee testen.

bask185

  • Offline Offline
  • Berichten: 1041
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #1512 Gepost op: 23 november 2020, 18:04:19 »
Waar haal je die dan vandaan? Is toch onderdeel van de IDE?
Internet en nee, niet helemaal. Arduino gebruikt avrdude, maar het is een arduino eigen ding.

Ik ging ervan uit dat een onder windows gecompileerde hex-file niet zou werken onder Linux.
Daarom zou je onder Linux apart moeten compileren, dacht ik.
Maar als dat niet nodig is, ook prima.
?? Een .hex bestand is een tekstbestand waarin onder andere de instructies ( <-- het programma) staan voor de microcontroller (de arduino in ons geval). De .hex is dus bestemd en gebouwd voor de arduino en of dat ding in elkaar wordt gezet (= compileren) op Linux, windows, mac, unix, whatever dat maakt allemaal niks uit.

Stap 1 van script.
Kan dat niet wat slimmer?
Ja natuurlijk kan dat, een script is immers zo slims zo als de programmeur het schrijft.


Het windows vb-script kan zelf de com poort bepalen waar de Arduino aan hangt.
Daartoe wordt eerst een scan gemaakt van alle COM poorten zonder aangesloten Arduino
Daarna dezelfde scan met aangesloten Arduino.
Uit het verschil volgt de gebruikte COMpoort.

Waarom is deze ingave nodig? Er is toch nog maar een poort aangesloten. Dat is dan toch automatisch de goede?
Dat hangt er van af wat er nog meer aanhangt. Die arduino IDE kan soms al problemen geven als er 2 arduinos aan je PC hangen dus ook wanneer je de comport handmatig selecteert, kan het nog misgaan.

Bij een windows laptop bijvoorbeeld, verschijnen de bluetooth modules vaak ook als comporten in het lijstje.

Hoe kun je via een command line parameter het gewenste programma uploaden?
Door simpelweg het parameter mee te tikken in de command line of een script dit voor je te laten doen.

Om een script een lijst met comporten te laten tonen en de gebruiker vervolgens te vragen om er een te kiezen is sws een goed idee. Dan weet je namelijk zeker dat je de goede pakt.

Citaat
...Bij voorkeur de UNO variant...
Nou ik zou zeggen, UNO verplicht. De .hex bestanden zijn namelijk gecompileerd voor de UNO's atmega328p. Je krijgt ze misschien ook wel werkend op een NANO omdat die dezelfde atmega chip gebruiken, maar de NANO's atmega verschilt wel met die van de UNO. De partities zijn iets anders en de NANO heeft bijvoorbeeld A6 en A7 extra tov de UNO.

En voor het uploaden zelf is het wel 100% cruciaal dat het goede board wordt geselecteerd anders krijg je ruzie met de verschillende bootloaders.

Bas

erikkral

  • Offline Offline
  • Berichten: 84
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #1513 Gepost op: 23 november 2020, 21:27:27 »
Eerste flash is gelukt:


Op deze Arduino stond eerst ArLoco en nu heb ik er Mardec op geflasht.
Ik had een lege config verwacht maar blijkbaar haalt ie toch nog iets op vanuit het verleden.



Misschien was de Arduino een keer eerder ingezet als een Mardec. Dat weet ik niet meer.
Moeten we het flash-commando aanpassen zodat ie het het hele geheugen leeggooit?

Erik Baas

  • Offline Offline
  • Berichten: 355
Re: MARDEC, de Multifunctionele ARduino dcc DECoder.
« Reactie #1514 Gepost op: 23 november 2020, 21:32:52 »
Zou die "achtergebleven" data niet gewoon in EEPROM staan? Die kun je met een simpele sketch zelf wissen.