Marlin 2.0.72 lässt sich nicht compilieren

#6462984
Lesenswert?

moin,
ich wollte mal die neuste marlin auf einen 3d-drucker bringen.
leider bekomme ich haufenweise fehlermeldungen von type:
Error while detecting libraries included by 
D:\Temp\arduino_build_123770\sketch\src\gcode\sd\M30.cpp
die alte 2.0.x-bugfix geht einwandfrei.
arduino ist 1.8.13 auf w10.
hatt da einer mal einen tip dazu?
danke.
#6463693
Lesenswert?

Thomas schrieb:
> welche CPU hat dein 3D Controller
> 2.x und höher ist eigentlich nur für 32 Bit

Soweit ich weiss, ist es leicht anders: 32 Bit-Controller werden erst ab 
2.0 unterstützt, aber die 8-Bit-AVRs funktionieren immer noch.

@Threadstarter. Wo Dein Problem liegt, weiss ich nicht, aber ich würde 
es an Deiner Stelle einfach mal mit platformio statt der ArduinoIDE 
versuchen.
Ich selbst habe die 2.0.7.2 jedenfalls gerade vor 2-3 Wochen völlig 
problemlos mit platformio kompiliert.
#6463861
Lesenswert?

moin,
es ist ein mks base v1.5 board also atmega 2560.

ich habe es erstmal mit einer alten 2.0.x gemacht, die geht.
einen teil habe ich hinbekommen. aber der z_min schalter, soll auf pin 
18 sein, ist nicht da.
hat zufällig jemand ein schaltbild dieses board? habe da leider nix 
gefunden.
Gast #6463938
Lesenswert?

versuch mal ne ältere arduino IDE..
ich hab die ..72 auf (ich glaube*) 1.8.10 compiliert für mein 2560 
controllerboard (GT2560A+)
das ging problemlos.

'sid

*(meine mich zu erinnern dass das meine arduino ide version ist.. bin am 
falschen Rechner und kann nciht nachsehen grad)
Gast #6463939
Lesenswert?

Horst S. schrieb:
> ich habe es erstmal mit einer alten 2.0.x gemacht, die geht.
> einen teil habe ich hinbekommen. aber der z_min schalter, soll auf pin
> 18 sein, ist nicht da.
> hat zufällig jemand ein schaltbild dieses board? habe da leider nix
> gefunden.

Äh D18 gell?

ich hab nur das von der v1.1 finden können
https://reprap.org/mediawiki/images/b/b7/MKS_BASE_PINS.pdf

glaub nicht, dass die das Pinout geändert haben um ehrlich zu sein,
aber beschwören wollt ich das nicht.

Bilder von v1.4
https://ae01.alicdn.com/kf/HTB1STMIKFXXXXc_aXXXq6xXFXXXL/MKS-Gen-V1-4-3D-Printer-Control-Board-Motherboard-of-MEGA2560-RAMPS-1-4-With-USB.jpg

sehen mir auch nach D18 aus

Im Zweifel entferne das board mal komplett vom Strom und allen Steckern 
und pieps den Endstop-Anschluss mal gegen den AVR durch, dann kannste 
den Pin identifizieren.

ich tippe aber eher auf fehlerhaften Endstop(schalter) um ehrlich zu 
sein.

'sid
#6464083
Lesenswert?

moin,
danke für die infos.
der endschalter Z_Min geht mit der alten firmware die auf dem board war.
der liegt wohl nur nicht auf pin 18 (PINS.H->RAMPS.H).
gibt es irgendwo eine liste die zeigt wie die virtuellen pinnamen 
(A1...,D1....) mit den tatsächlichen prozessorpins (PA01...,PB01..) 
verheiratet sind?
das mit der adruino version 1.8.0 werde ich mal testen.
Gast #6464120
Lesenswert?

In den marlin sourcen sind in einem unterordner alle pins definiert für 
die verschiedenen board typen.

Kompilieren der neuen marlin stände geht nur noch einfach mit 
PlatformIO.

Ich nutze bei mir für den leveling sensor den filament runout pin vom 
zweiten extruder auf dem gt2560 board. Kann aber prinzipiell frei 
gewählt werden...

Rene
#6464163
Lesenswert?

moin,
so langsam wird ein schuh draus......
in der neuen firmware ist
#define SERIAL_PORT_2 1
das sind dann PD2 (RX1) pin 19 und PD3 (TX1) pin 18.
das sind aber auch Z_MIN und Z_MAX endschalter.
" ich dachte das der SERIAL_PORT_2 für das TFT28 verwendet wird.
ist wohl aber nicht so. aber wo hängt dann das TFT28 drann? "
denken schon mal ganz gut, aber docus finden und lesen deutlich besser.
es hängt am SPI.
also kann SERIAL_PORT_2 wieder weg und die z-endschalter sind wieder 
frei.

statt der 1.8.0 also die 1.8.8.

danke
Gast #6464263
Lesenswert?

vorsicht: MEINUNG!

Horst S. schrieb:
> moin,
> was ist besser an platformio im vergleich zu arduino?
Für Dich als Endanwender GARNIX!

Für Entwickler ist platformIO nett da man für dieverse 
Prozessorstrukturen leichter anpassen kann.

Endanwender die platformio nutzen tun das gewöhnlich weil sie sich dann 
für "besser" halten als sie sind ;)

'sid
#6464349
Lesenswert?

sid schrieb:
>> was ist besser an platformio im vergleich zu arduino?
> Für Dich als Endanwender GARNIX!

also zumindest für mich als "Endanwender": Ich kann in plattformio z.B. 
ohne Hampeleien bei jedem Projekt bestimmen, ob ich die jeweils "neueste 
Library im System" benutzen möchte, oder eine ganz bestimmte (bzw. immer 
die "heute aktuell gewesene").
Bei der Original-IDE ist es mir schon unzählige Male passiert, dass ein 
älteres Projekt nicht mehr kompiliert, weil es zwischendurch zig 
inkompatible Lib-Änderungen gab. Ja, geht auch "irgendwie" mit der 
Original-IDE, aber eher umständlich...
#6464359
Lesenswert?

Jan L. schrieb:
> Bei der Original-IDE ist es mir schon unzählige Male passiert, dass ein
> älteres Projekt nicht mehr kompiliert, weil es zwischendurch zig
> inkompatible Lib-Änderungen gab. Ja, geht auch "irgendwie" mit der
> Original-IDE, aber eher umständlich...

Ist halt beides Pfusch.
Zu einem ernsthaften Projekt hat man alle Abhängigkeiten getrennt 
vorliegen. Z.B. in einem git repo.
Man KANN dann einfach diese Abhängigkeiten aktualisieren (und muss dann 
evt. Änderungen im Code vornehmen). Man MUSS aber nicht und das Projekt 
kompiliert auch nach 100 Jahren noch.

Man hat solche Abhängigkeiten nicht einfach in 3 Versionen (alt, mittel, 
neu) zentral liegen und irgendwelche Projekte hängen dann direkt davon 
ab.
Das ist halt Projektorganisation der Generation Arduino. Und dann 
wundern.
#6464383
Lesenswert?

Cyblord -. schrieb:
> Jan L. schrieb:
>> Bei der Original-IDE ist es mir schon unzählige Male passiert, dass ein
>> älteres Projekt nicht mehr kompiliert, weil es zwischendurch zig
>> inkompatible Lib-Änderungen gab. Ja, geht auch "irgendwie" mit der
>> Original-IDE, aber eher umständlich...
>
> Ist halt beides Pfusch.

inwiefern "beides"? Wenn ich in platformio LibXY angebe mit @5.6, dann 
compiliert das auch "in 100 Jahren noch". Und das ohne gleich mit 
GIT-Kanonen auf Projektspatzen geschossen zu haben.

> Zu einem ernsthaften Projekt hat man alle Abhängigkeiten getrennt

auch "nicht-ernsthafte" Projekte ärgern, wenn sich z.B. nach einem Jahr 
herausstellt, dass die Haloween-Kürbis-Schreck-Elektronik für die Kids 
nicht mehr compiliert :)

> vorliegen. Z.B. in einem git repo.
> Man KANN dann einfach diese Abhängigkeiten aktualisieren (und muss dann

wenn dann die "gegnerische" Lib auch im Git(hub) hängt, ok - ansonsten 
artet das dann leicht in "Arbeit" aus.

> Man hat solche Abhängigkeiten nicht einfach in 3 Versionen (alt, mittel,

?

> neu) zentral liegen und irgendwelche Projekte hängen dann direkt davon
> ab.
> Das ist halt Projektorganisation der Generation Arduino. Und dann
> wundern.
Gast #6464409
Lesenswert?

Horst S. schrieb:
> mit der 1.8.8er gehts auch nicht.

Kannst Du mal deine configs anhängen,
dann guck ich ob ich das bei mir compiliert bekomme und kann Dir
ggf sagen was wann wo wie eingestellt ist.
(ich würd dir auch die hex anhängen wenn Du magst, kann aber deine 
config nicht kontrollieren macht von daher eher wenig Sinn mMn)

'sid
#6464516
Lesenswert?

Jan L. schrieb:
> wenn dann die "gegnerische" Lib auch im Git(hub) hängt, ok - ansonsten
> artet das dann leicht in "Arbeit" aus.

Tut es nicht. Denn abgeschlossene Projekte muss man nicht mehr updaten. 
Auch deren Abhängigkeiten nicht mehr.
Selbst bei aktiven Projekten muss man das meist nicht.
Man hat aber dadurch immer für jedes Projekt genau Die Abhängigkeiten 
die man damals erwartet hat und mit denen dort gearbeitet wurde.
Will man ein Projekt nach X Jahren nochmal kompilieren kommt man um so 
was gar nicht drum rum.
Gast #6465788
Lesenswert?

Hmmm
ulkig..

Hi Horst.. ich hab ne saubere Kopie von 1.8.8 auf den Laptop geworfen
(hab leider deine Configs vergessen zu kopieren, hole ich nach wenn Du 
möchtest)
um sicherzugehen, dass ich keine versteckten libs shortcuts oder 
geänderten Einstellungen auf dem PC hab die helfen.

Kurz: 2.0.7.2 kompiliert!

Hier die Erklärung und 'einfache Lösung' zum 'nachmachen'

Das Problem ist, dass Marlin von mal zu mal aufgeblähter wird durch die
unterschiedlichen Plattformen und Ergänzungen und so weiter
Die Grenze für Windows wurde glaube ich mit 2.0.7.0 überschritten,
ab dann ist die Kommando Zeile die Arduino IDE aufruft
mit dem AVR-gcc Linker über 32kB und wird nichtmehr vollständig von 
Windoof erfasst.
(wenn Du vollständige Ausgabe anklickst in den arduino einstellungen ist 
das die letzte Zeile for der Fehlermeldung:
"avr-gcc: error: CreateProcess: no such file or directory"

AAABER: da sind auch all die für Dich nutzlosen Dateien drin
(configurationen für teensy und stm boards, für Displays die du nciht 
hast und so weiter und so fort)

geh also in den Ordner Marlin/src/HAL
und lösche dort die Unterverzeichnisse
LINUX, die drei STM und die drei TEENSY

dann kompilier nochmal, das sollte schon reichen um auf unter 30kB zu 
kommen im Linker Schritt.

(Ausser AVR und shared kannst Du alle Unterverzeichnisse löschen wenn Du 
willst.. für dein board sollten die beiden reichen)

Da ist wie gesagt noch ne Tonne mehr was gelöscht werden kann,
müstest also vermutlich ab 2.0.9 nochmal was radieren gehen ;)

WEnn DU ne andere Fehlermeldung hattes sag bescheid,
ich kompilier dir das auch gern, nur eben völlig ungeprüft
(ich hab n anderes board und kenne deine Einstellungen nicht)
hab nur wie gesagt die configs vergessen rüberzukopieren und ehrlich 
gesagt keine Lust gehabt den Laptop wieder anzumachen ;)
Wollte nur eben posten, bevor ich es vergesse..

Ansonsten sag kurz bescheid, dann mach ich die SchleppBüchse nochmal an 
bevor ich ins Bett gehe ;)

'sid
Gast #6466142
Lesenswert?

Nachtrag:
Hab mir deine configs dann auch ohne Rückmeldung nochmal vorgenommen...

NOPE!
Kannste vergessen.. DU musst schon die aktuellen Configs als Vorbild
nehmen und kannst NICHT einfach die Configuration einer älteren Marlin 
Version rüberkopieren

(kurz: SanityCheck failed!)

Ich hatte keine Lust zu schauen was wo genau fehlt.. war mehr als nur 
ein zwei kleine Neuerungen (scheint auch ne Config aus der 2.0.0.0 zu 
sein)

Aber steht ja oben was zu tun ist.. und ja ich hab Dein Grafikdisplay 
gesehen (wundere mich warum Dein Drucker zwei Displays braucht... aber 
nundenn)
kompiliert auch mit der u8glib von Oskar (ohne a-pack trick für's 
library)
(AVR und shared behalten, alle anderen HAL-unterordner weg)
allerdings nur mit der originalen config
(auf das MKS 1.5 und deine beiden Displays umkonfiguriert um sicher zu 
sein, dass da nichts klemmt)
aber sonst Deine Configuration nicht übernommen, mach das mal schön 
alleine,
dass Du auch weisst was zu tun ist das nächste Mal.

'sid
Gast #6466380
Lesenswert?

Soweit ich weiss ist das ein serielles Display;
also den SERIAL_PORT_2 (SERIAL_PORT ist der USB Anschluss)
die baudrate muss natürlich passen (muss auch am display selbst 
eingestellt werden)
und ich meine es gibt ne MKSTFT_AUX Zeile die du auskommentieren musst.
genau weiss ich das aber nicht.

'sid

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren