Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert sind; Die von diesem Forum gesetzten Cookies düfen nur auf dieser Website verwendet werden und stellen kein Sicherheitsrisiko dar. Cookies auf diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.
  • Willkommen zur 3D-Druck-Community, einer nichtkommerziellen,
  • werbefreien und privaten Plattform rund um das Thema 3D-Drucken
  • vorrangig im deutschsprachigen Raum. Von User für User.
Hallo, Gast! Anmelden Registrieren


Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
[Tipp] EEPROM am RAMPS + Arduino Due nachrüsten
#1
Information 
Mahlzeit!

Wer ebenso wie ich ein RAMPS + Arduino Due als günstige 32bit Elektronik betreiben möchte und nicht auf ein EEPROM verzichten mag, steht zwangsweise bei dieser Kombination vor einem Problem. Der Arduino Due besitzt nämlich kein EEPROM und somit ist es nicht möglich mal eben irgendwelche geänderten Parameter per Konsole zu speichern.

Ich will euch hier zeigen, wie ihr relativ simpel ein EEPROM für den Due nachrüsten könnt.
Das ganze erfordert ein wenig Geschick beim Löten, dafür aber sehr geringe finanzielle Mittel und zeitlich ist man mit geschätzt 30 Minuten eigentlich gut dabei. (ich habe nicht auf die Uhr geschaut, es ging aber sehr fix von der Hand alles)

Die Kosten für das EEPROM + passender IC-Sockel beliefen sich bei mir jetzt auf 2,56€ + Versandkosten.

Was brauchen wir?

- Lötkolben
- Kabel
- EEPROM, hier ein 24LC256 (gibt es auf eBay oder Aliexpress)
- optional: passender IC-Sockel fürs EEPROM
- optional: ein Stück Lochrasterplatine
- optional: Dupont Crimps und Stecker


Folgender Schaltplan ist nötig:
[Bild: https://i.imgur.com/fal621I.jpg]

Oben im Bild sehr ihr die Kabel die ich verwende. Dafür habe ich ein altes und bereits zerschnittenes CAT5-Netzwerkkabel verwendet. CAT5-Netzwerkkabel sind vollkommen ausreichend, günstig, und ihr habt den Vorteil das ihr aus einem Stück von solch einem Kabel insgesamt 8 dünne Datenleitungen erhaltet. Perfekt für unseren Zweck. (die Kabel lassen sich auch super für die SPI-Verkabelung von TMC2130 Treibern verwenden!)
[Bild: https://i.imgur.com/kfxe3xV.jpg]

Ich habe mich dafür entschieden, dass ich den IC-Sockel zuerst auf ein zugeschnittenes Stück Lochrasterplatine löte.
Erstens weil die Beinchen wirklich sehr fein sind und ich dort nur ungern die Kabel irgendwie direkt anlöten wollte, zweitens weil ich nicht so kleinen Schrumpfschlauch hätte um dann die Beinchen mit den angelöteten Kabeln zu isolieren und drittens weil ich mir davon versprochen habe das die ganze Lötgeschichte deutlich einfacher von der Hand geht.
[Bild: https://i.imgur.com/oK4B4bm.jpg]


Fertig gelötet sieht das ganze dann so aus:
[Bild: https://i.imgur.com/zlHrdCg.jpg]
[Bild: https://i.imgur.com/eUUwN97.jpg]

Dann ging es ans Crimpen der Kabel. Ich habe mich für einen 4-fach Dupont Gehäuse entschieden. Hat den Vorteil gegenüber 1-fach Gehäusen, dass ihr im Endeffekt nichts vertauschen könnt. Vorausgesetzt ihr markiert euch am Ende dann die Richtung wie der 4er-Stecker drauf muss.
[Bild: https://i.imgur.com/YJ5IBA4.jpg]
So sieht das Ding dann gecrimpt aus. EEPROM steckt bereits im Sockel und ist bereit um aufs RAMPS gesteckt zu werden:
[Bild: https://i.imgur.com/PM3u5j6.jpg]
Achtet darauf, dass ihr das EEPROM korrekt herum einsteckt. Ich kann euch nicht sagen was passiert wenn ihr es falsch gesteckt in Betrieb nehmt. Im schlimmsten Falle ist es danach kaputt, daher bitte vorher versichern!
Das 24LC256 hat zwei Markierungen an denen ihr euch orientieren könnt. Einmal einen kleinen Kreis (kleiner Pfeil) der den Pin 1 markiert und dann die Einkerbung am Gehäuse selbst.
[Bild: https://i.imgur.com/yJShJxL.png]

Gesteckt wird das ganze auf den I2C Steckplatz:
[Bild: https://i.imgur.com/G37djmd.jpg]
Damit wären wir dann auch schon durch.
Zum Schluss habe ich noch einen kurzen Funktionstest durchgeführt.
Dazu müsst ihr natürlich erst einmal sicherstellen, dass das EEPROM bei euch in der Firmware aktiviert ist. Ist dies nicht der Fall so müsst ihr dies erst aktivieren, also eure Firmware neu flashen.

Verbindet euch dann einfach mit einem Remote-Host eurer Wahl (bei mir ist dies OctoPrint).
Zu Testzwecken habe ich den Filamentdurchmesser welcher in der Firmware gespeichert ist von 1,75mm auf 3,00mm gewechselt, per M500 gespeichert. Dann per M503 angerufen und dann mit M502 alles auf die Hardcoded-Settings zurückgesetzt. Nun kann ich versichert sein, dass das EEPROM funktioniert und bin mit diesem kleinen Projekt am Ende angelangt.
[Bild: https://i.imgur.com/gaqR94y.png]
[Bild: https://i.imgur.com/8CSBeJ9.png]

Das ganze was ich hier gemacht habe ist natürlich nicht zwingend notwendig.
Ihr braucht nicht zwingend einen IC-Sockel, genau so wenig braucht ihr zwingend das Stück Lochrasterplatine oder die Dupont Steckergehäuse und Crimps dafür. Ihr könnt auch einfach eiskalt die Kabel von unten an das RAMPS anlöten, hochführen und dann direkt an die Beine vom EEPROM anlöten. Ob das jetzt eine elegante Lösung ist überlasse ich jedem selbst.
_____________________________________________________________________________________________
WICHTIGER NACHTRAG:
Ich hatte Probleme beim kompilieren der Marlin-Firmware mit aktivierten UBL.
Es war mir kein erfolgreiches Kompilieren möglich.
Der Grund dafür war eine fehlende Definition in den Konfigurationsdateien wenn man das RAMPS4DUE als Board ausgewählt hat.

Folgendes müsst ihr euch in die configuration_adv.h eintragen, damit die Firmware erfolgreich durchkompiliert wird von der Arduino IDE:
Code:
#define I2C_EEPROM
#define E2END 0x7FFF
Wichtig ist dabei offenbar, dass ihr den Wert hinter E2END auf das von euch gewählte EEPROM anpasst.
Da Marlin laut Aussagen der Entwickler maximal 32 kbyte EEPROMS unterstützt ist dies der maximal zu verwendende Wert. Auch wenn ich in meinem Fall eins mit 256 kbyte verwendet habe. 32 kbyte sind jedoch mehr als genug, wenn man bedenkt, dass ein Mega2560 mit 4 kbyte ausgestattet ist.
https://github.com/MarlinFirmware/Marlin/issues/11029
 
to top
#2
Wichtig anzumerken ist noch.
Gleichzeitig ein i2c eeprom und ein i2c OLED Display zu verwenden, sorgt für Konflikte und funktioniert deshalb nicht.
 
to top
#3
ist das eine erfahrung oder eine vermutung?

eeprom wird ja nicht ständig gelesen
Ein Leben ohne 3D-Druck ist möglich, aber sinnlos.
 
to top
#4
Das ist eine Erfahrung die ich gemacht habe und noch keine Lösungsmöglichkeit dafür gefunden habe.
 
to top
#5
Wenn die Leitungen nur für I2C verwendet werden, kann es ja höchstens ein Adressenkonflikt sein oder Missbeschaltung der Pullups, wenn man davon ausgehen kann, dass alle I2C-Teilnehmer mit dem gleichen Pegel arbeiten. Welches OLED-Display hast du denn verwendet? Dafür findet sich sicher eine Lösung.

Übrigens Finde ich deine Anleitung super!


Gesendet von iPhone mit Tapatalk
"Nicht alles was im Internet steht, ist die Wahrheit!"
    - Julius Caesar
 
to top
#6
Ich habe mir dieses Modul aus China bestellt. Es kostet 45 Cent und hat Jumper für den Schreibschutz und die Adresswahl bei mehreren Modulen am I2C Bus.
Die hier beschriebene Lösung benötigt natürlich weniger Platz ;-)
Die Sollbruchstelle des Toilettenpapiers hat ihre Lösungsstruktur geändert.
 
to top
#7
Danke für die Anleitung. Ich bin das selbst seit 2 Tagen am versuchen, bekomms aber noch nicht richtig zum laufen. Ich habe das gleiche Board, das mein Vorredner verlinkt hat. Die Diode leuchtet auch rot, die Verkabelung scheint zu passen. Welche Firmware verwendest du?
Ich möchte gerne Marlin 2.0 verwenden, weiss aber nicht genau welches Board ich dort nun einstellen muss, damit das EEprom auch funktioniert.
 
to top
#8
Mein Speicher ist noch unterwegs. Dann möchte ich es aber auch mit Marlin 2 betreiben.
Aktuell kann ich dir leider noch nicht weiterhelfen. Ausser Konfiguration in Marlin (wie oben beschrieben) würde ich aber auch erst einmal nichts ändern.

Du könntest einmal versuchen einen neuen Arduino Sketch zu erstellen in dem du nur den EEPROM nutzt. Ohne Marlin. z.B. http://www.learningaboutelectronics.com/Articles/24LC256-EEPROM-circuit-with-an-arduino.php
Die Sollbruchstelle des Toilettenpapiers hat ihre Lösungsstruktur geändert.
 
to top
#9
Danke für die Info @th33xitus, da hatte ich wohl Tomaten auf den Augen.
Due, Mosfets und AT24C256er sind bestellt, wenn alles da und umgebaut ist gebe ich auch gerne nochmal kurz eine Rückmeldung. Smile
Grüße,
Jannis

- 9 von 10 Stimmen in meinem Kopf sagen, ich sei verrückt. Die 10te summt die Melodie von Tetris. -
 
to top
#10
So, heute ist alles angekommen und ich hab direkt alles umgebaut, Marlin2 läuft schon, allerdings bekomme ich das I2C noch nicht zum laufen.
Hab dieses Modul ( https://www.amazon.de/Speicher-AT24C256-Arduino-Raspberry-Dataloging/dp/B01MT06Q0A ), angeschlossen ist es über +,-, SDA und SCL direkt aufs Ramps.
In der conf_adv.h hab ich

#define I2C_EEPROM
#define E2END 0x7FFF

Ohne irgendein if oder so drum. Muss ich das Ding noch irgendwie Jumpern? Hab da jetzt erstmal nichts verändert.
Hab wie im Startpost den Filamentdurchmesser geändert, gespeichert, geladen und geprüft, er speichert aber nichts ab?

*Edit sagt:

Funktioniert nun einwandfrei, die Kontakte in einem der Jumper waren leider so verbogen das sie nicht richtig gesteckt haben und die Brücke nicht geschlossen war, hab es ein wenig beigebogen und jetzt funktioniert das speichern tadellos. Vielen Dank für die Anleitung! Smile
Grüße,
Jannis

- 9 von 10 Stimmen in meinem Kopf sagen, ich sei verrückt. Die 10te summt die Melodie von Tetris. -
 
to top
  


Möglicherweise verwandte Themen...
Thread Verfasser Replies Views Last Post
  Ramps macht Probleme SchokiDrucker 17 1.252 Vor 3 Stunden
Last Post: Ekenom
  Upgrade Ramps auf 32 Bit und TMC2130 via SPI Speedy 0 173 31.05.2020, 11:51
Last Post: Speedy
  [Tipp] BLTouch testen mit Arduino solaris 16 1.649 24.03.2019, 15:26
Last Post: solaris
  [Frage] Arduino Mega 2560 defekt - noch zu retten? c1olli 7 568 22.03.2019, 12:49
Last Post: c1olli
  Ramps 1.4 Qualmt ( Heatbed ) r4ph4 12 809 20.03.2019, 22:29
Last Post: r4ph4



Browsing: 1 Gast/Gäste