Offline
Sr. Member
Karma: 1
Posts: 294
|
 |
« on: October 28, 2012, 08:47:41 am » |
Hi, neue Frage/Diskussion: Das Flashen über den USB-Anschluss ist ja schön und einfach. Aber die Steuerungen bleiben bei mir ja nicht auf dem Schreibtisch. Da wäre es dann schön, wenn man nicht mit einem Notebook ran muss, oder den Arduino wieder aus der Schaltung ausbauen muss, wenn man am Programm was ändern will. Was haben wir für Möglichkeiten: 1.) ein laaaanges USB-Kabel: Spezifikation für USB ist m.E. nur bis 5m. Habs zwar schon mal 10-15 Meter geschafft, aber ist Glücksache und reicht mir auch nicht. 2.) USB-Extender: Muss ich auch extra ein Kabel hinlegen 3.) Flashen über das Ethernet-Shield: Das wär natürlich der Hit (Wenn man ein Shield verbaut hat). Hab aber dazu noch nie was gelesen. 4.) USB over IP: Also noch einen kleinen Switch vor den Arduino (wenn Shield verbaut) und dann einen USB-Server dran. Die kosten halt auch ein paar Euro. Habt ihr euch dazu auch schon Gedanken gemacht?? Hab zum Punkt 3.) noch was gefunden: https://github.com/codebendercc/Ariadne-Bootloader/blob/master/README.md
|
|
|
|
« Last Edit: October 28, 2012, 11:28:24 am by hk007 »
|
Logged
|
Arduino 1.0.1|Arduino UNO & MEGA
|
|
|
|
Switzerland
Offline
Faraday Member
Karma: 69
Posts: 3256
|
 |
« Reply #1 on: October 29, 2012, 06:03:36 am » |
Genau das hätte ich Dir vorgeschlagen. Bedenke aber, dass dieser Bootloader fast doppelt so gross ist, als der optiboot des UNOs. Falls Du sehr grosse Sketches laden willst, könnte das in's Gewicht fallen. Und zur Zeit musst Du den Arduino noch von Hand resetten, damit der Bootloader überhaupt aktiv wird. Wenn Du das remote machen willst, müsstest Du also noch die entsprechende Möglichkeit in all Deine Sketches einbauen.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Sr. Member
Karma: 1
Posts: 294
|
 |
« Reply #2 on: October 29, 2012, 06:33:43 am » |
Und es gibt ihn leider nur für Uno, 2009. Nicht für meinen MEGA 2560  Das mit dem Reset hab ich mir noch nicht angeschaut. Momentan verfolge ich mehr die Idee mit dem IP-over-Ethernet. Ob ich dazu einen Printserver vergewaltigen kann??? hmmmmmm... Von der Hardware ist das auch nichts anderes, als ein USB-Device-Server. Bräuchte nur eine Software, die mir eine virtuelle COM simuliert.
|
|
|
|
|
Logged
|
Arduino 1.0.1|Arduino UNO & MEGA
|
|
|
|
Switzerland
Offline
Faraday Member
Karma: 69
Posts: 3256
|
 |
« Reply #3 on: October 29, 2012, 08:00:08 am » |
Und es gibt ihn leider nur für Uno, 2009. Nicht für meinen MEGA 2560 Die Anpassung für den Mega2560 dürften relativ einfach sein, programmiertechnisch sind die Prozessoren ziemlich ähnlich. Momentan verfolge ich mehr die Idee mit dem IP-over-Ethernet. Du meintest wohl eher USB-over-IP? Von der Hardware ist das auch nichts anderes, als ein USB-Device-Server. Ja, aber software-technisch ist das etwas völlig anderes. Das dürfte massiv mehr Aufwand sein. Wenn Du Dich aber sowieso mit zusätzlicher Hardware abgefunden hast, wieso nicht einen zweiten Arduino für die Programmierung einsetzen? Damit kannst Du den Reset steuern, eine serielle Schnittstelle steht auch zur Verfügung und die Software dürfte relativ einfach sein.
|
|
|
|
|
Logged
|
|
|
|
|
|
|
Offline
Sr. Member
Karma: 1
Posts: 294
|
 |
« Reply #5 on: October 29, 2012, 01:43:55 pm » |
Und es gibt ihn leider nur für Uno, 2009. Nicht für meinen MEGA 2560 Die Anpassung für den Mega2560 dürften relativ einfach sein, programmiertechnisch sind die Prozessoren ziemlich ähnlich. Mag sein, aber dafür hängt mir die Hose zu tief. Das bring ich nicht. Momentan verfolge ich mehr die Idee mit dem IP-over-Ethernet. Du meintest wohl eher USB-over-IP? Ja sicher, sorry Von der Hardware ist das auch nichts anderes, als ein USB-Device-Server. Ja, aber software-technisch ist das etwas völlig anderes. Das dürfte massiv mehr Aufwand sein. Wenn Du Dich aber sowieso mit zusätzlicher Hardware abgefunden hast, wieso nicht einen zweiten Arduino für die Programmierung einsetzen? Damit kannst Du den Reset steuern, eine serielle Schnittstelle steht auch zur Verfügung und die Software dürfte relativ einfach sein. Interessanter Ansatz, aber wie soll dass funktionieren?
|
|
|
|
|
Logged
|
Arduino 1.0.1|Arduino UNO & MEGA
|
|
|
|
Offline
Sr. Member
Karma: 1
Posts: 294
|
 |
« Reply #6 on: October 29, 2012, 01:50:02 pm » |
Hi, ja kenn ich. Aaaaaber: Dafür brauchst du ein dediziertes Kabel. Also eine Punkt zu Punkt Verbindung zwischen den beiden Extender-Partnern. Zwischen dem Arduino und meinem PC liegen aber 2 Switches. Da geht das nicht. Stimmt, es werden nur 2 Ader-Paare für normales 100BASE-TX verwendet. Aber aufgrund der o.g. Situation bringt mir das auch nichts.
|
|
|
|
|
Logged
|
Arduino 1.0.1|Arduino UNO & MEGA
|
|
|
|
Switzerland
Offline
Faraday Member
Karma: 69
Posts: 3256
|
 |
« Reply #7 on: October 29, 2012, 07:24:39 pm » |
Interessanter Ansatz, aber wie soll dass funktionieren? Ganz einfach. Du nimmst einen zweiten Arduino mit Ethernet-Anschluss (Arduino Ethernet oder einen UNO mit Ethernet-Shield). Den schliesst du über gekreuzte RX/TX-Leitungen (Pins 0 und 1) plus z.b. Pin 5 an Reset an Deinen eigentlich Arduino an. Der Sketch dort drauf muss jetzt nur noch ein avrdude simulieren (den kompilierten Sketch seriell übertragen), fertig ist der Remote-Update. Dies wird noch einfacher, wenn Du dem Programmier-Arduino eine SD-Karte spendierst. Dann kannst Du den neuen Sketch dort zwischenspeichern und bist während dem Upload auf den "Haupt"-Arduino nicht mit Netzwerkverkehr beschäftigt. Alternativ könntest Du den Bootloader auch umgehen und per SPI direkt ICSP-Programmer spielen, aber das dürfte dann schon ein bisschen komplizierter sein.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Sr. Member
Karma: 1
Posts: 294
|
 |
« Reply #8 on: October 30, 2012, 06:20:42 am » |
Hi, die Idee mit dem USB over IP kann ich wohl in die Tonne treten. Hab das mit einigen Herstellern diskutiert. Diese Geräte sind nur dafür da, um Drucker oder Speichermedien ans Netzwerk zu binden. Ganz einfach. Du nimmst einen zweiten Arduino mit Ethernet-Anschluss (Arduino Ethernet oder einen UNO mit Ethernet-Shield). Den schliesst du über gekreuzte RX/TX-Leitungen (Pins 0 und 1) plus z.b. Pin 5 an Reset an Deinen eigentlich Arduino an. Der Sketch dort drauf muss jetzt nur noch ein avrdude simulieren (den kompilierten Sketch seriell übertragen), fertig ist der Remote-Update. Wenn ich da jetzt weiterdenke: Programm seriell übertragen.... Ich hab noch einen COM-Port-Server rumliegen. Wenn ich den jetzt zur Datenübertragung an RX und TX hänge. Dann müsste nur noch irgendwie der ResetPin angesteuert werden, damit der Bootloader anspringt. Vllt. geht das ja mit einer der Steuerleitungen (DTR oder so....) Kann an dann auch die Arduino IDE verwenden? Wenn ich den COM-Port des Servers einstelle, dann sollten doch die Daten an die richtige Stelle kommen oder? Oder ich klemm noch einen seriellen ISP-Programmieradapter dazwischen.
|
|
|
|
|
Logged
|
Arduino 1.0.1|Arduino UNO & MEGA
|
|
|
|
Switzerland
Offline
Faraday Member
Karma: 69
Posts: 3256
|
 |
« Reply #9 on: October 30, 2012, 08:21:34 am » |
Ich hab noch einen COM-Port-Server rumliegen. Wenn ich den jetzt zur Datenübertragung an RX und TX hänge. Das sollte gehen und DTR geht an Reset, dann wird auch zur richtigen Zeit "geresettet". Allerdings sind diese Geräte meist auf den RS232-Standard ausgerichtet und der macht den Arduino mit seinen +/- 15V sehr schnell kaputt. Du müsstest also einen Konverter wie MAX232 vorne dran hängen, aber dann sollte das funktionieren. Kann an dann auch die Arduino IDE verwenden? Solange Du die Software hast, die Dir einen serielle Schnittstelle simuliert (für die Windows-Fraktion: COM-Port), müsste das möglich sein.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Sr. Member
Karma: 1
Posts: 294
|
 |
« Reply #10 on: October 31, 2012, 12:39:09 pm » |
Kann an dann auch die Arduino IDE verwenden? Solange Du die Software hast, die Dir einen serielle Schnittstelle simuliert (für die Windows-Fraktion: COM-Port), müsste das möglich sein. Jetzt hab ich noch was nicht ganz verstanden: Plan 1.) Serieller COM-port Server, dann Pegelwandler und dann auf RX und TX vom Arduino Plan 2.) Serieller COM-port Server, dann RS232-ISP-Programmer und dann auf die ISP-Schnittstelle. Sind ja zwei Paar Stiefel. Gehen beide Möglichkeiten aus der Arduino IDE? Und auf welchen Programmer muss ich dann die Arduino IDE einstellen, wenn ich das vorhabe? Wobei: Gibts eigentlich noch RS232-ISP-Programmer, die auch einen MEGA2560 programmieren können?
|
|
|
|
|
Logged
|
Arduino 1.0.1|Arduino UNO & MEGA
|
|
|
|
Switzerland
Offline
Faraday Member
Karma: 69
Posts: 3256
|
 |
« Reply #11 on: October 31, 2012, 12:56:34 pm » |
Plan 1.) Serieller COM-port Server, dann Pegelwandler und dann auf RX und TX vom Arduino Sollte gehen, aber DTR mittels Kondensator (Impuls) nach RESET nicht vergessen. Und ich gehe davon aus, dass der Pegelwandler ein MAX232 oder ähnliches ist. Plan 2.) Serieller COM-port Server, dann RS232-ISP-Programmer und dann auf die ISP-Schnittstelle. Sind ja zwei Paar Stiefel. Beides sollte möglich sein. Als Programmer müsstest Du den verwendeten einstellen (für den ist es egal, ob er direkt von einer seriellen Schnittstelle angesprochen wird, oder ob das über den COM-Server-Zwischenschritt geht).
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Sr. Member
Karma: 1
Posts: 294
|
 |
« Reply #12 on: October 31, 2012, 03:36:45 pm » |
Plan 2.) Serieller COM-port Server, dann RS232-ISP-Programmer und dann auf die ISP-Schnittstelle. Sind ja zwei Paar Stiefel. Beides sollte möglich sein. Als Programmer müsstest Du den verwendeten einstellen (für den ist es egal, ob er direkt von einer seriellen Schnittstelle angesprochen wird, oder ob das über den COM-Server-Zwischenschritt geht). OK. reden wir mal von Plan 2. Ganz bin ich noch nicht klar. Ich habe noch ein altes Pollin Eval-board gefunden. Das hat einen RS232-ISP-Programmierer on Board. Also einen ohne zwischengeschalteten µC, nur Widerstände, Z-Diode und nen Transistor. Was muss ich für so einen Programmer bei Arduino einstellen? -> AVRISP???
|
|
|
|
|
Logged
|
Arduino 1.0.1|Arduino UNO & MEGA
|
|
|
|
Switzerland
Offline
Faraday Member
Karma: 69
Posts: 3256
|
 |
« Reply #13 on: November 01, 2012, 05:13:00 am » |
Was muss ich für so einen Programmer bei Arduino einstellen? -> AVRISP??? Ich kenn solche Teile nicht, aber ich habe meine Zweifel, dass dies funktionieren wird. Der ICSP ist mehr oder weniger ein SPI-Bus mit Reset-Leitung. Wie bekommst Du von der seriellen Schnittstelle das Clock-Signal des SPI? Ich verwende einen USB-TinyISP, der ist in der Liste aufgeführt. Ich verstehe auch nicht, wieso Du den komplizierten Weg über den ISP gehen willst, das bringt tendenziell nur mehr Probleme. Dein Plan 1 ist einfacher und zuverlässiger zu implementieren. Plan 2 bringt Dir nur Vorteile, wenn Du den Bootloader auch von remote wechseln willst.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Sr. Member
Karma: 1
Posts: 294
|
 |
« Reply #14 on: March 07, 2013, 05:37:52 pm » |
Jetzt hab ich noch mal was altes ausgegraben: Interessanter Ansatz, aber wie soll dass funktionieren? Ganz einfach. Du nimmst einen zweiten Arduino mit Ethernet-Anschluss (Arduino Ethernet oder einen UNO mit Ethernet-Shield). Den schliesst du über gekreuzte RX/TX-Leitungen (Pins 0 und 1) plus z.b. Pin 5 an Reset an Deinen eigentlich Arduino an. Der Sketch dort drauf muss jetzt nur noch ein avrdude simulieren (den kompilierten Sketch seriell übertragen), fertig ist der Remote-Update. Dies wird noch einfacher, wenn Du dem Programmier-Arduino eine SD-Karte spendierst. Dann kannst Du den neuen Sketch dort zwischenspeichern und bist während dem Upload auf den "Haupt"-Arduino nicht mit Netzwerkverkehr beschäftigt. Hat das schon mal jemand gemacht? Oder gibts da einen fertigen Sketch dafür??? Würd mich brennend interessieren 
|
|
|
|
|
Logged
|
Arduino 1.0.1|Arduino UNO & MEGA
|
|
|
|
|