Pages: [1] 2   Go Down
Author Topic: Flash over IP  (Read 2435 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Sr. Member
****
Karma: 2
Posts: 374
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote

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 Offline
Sr. Member
****
Karma: 2
Posts: 374
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Und es gibt ihn leider nur für Uno, 2009. Nicht für meinen MEGA 2560 smiley-sad
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.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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.

Quote
Momentan verfolge ich mehr die Idee mit dem IP-over-Ethernet.

Du meintest wohl eher USB-over-IP?

Quote
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

Wien
Online Online
Edison Member
*
Karma: 28
Posts: 1880
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi,

es gibt usb-extender über cat6-kabel. übertragung bis 100m. ich verwende in der firma dutzende vga<>cat6-adapter. funktioniert einwandfrei. z.B.:

http://www.gdsys.de/produkte/kvm-extender/signal-extender/usb-extender/?gclid=CKC8_PXVprMCFUFb3god7GoAQg
http://www.lindy.de/usb-extender-cat-5/42805.html
http://www.delock.de/produkte/F_656_USB-1-1---USB-2-0_61733/merkmale.html

oder gib usb-extender bei ebay oder amzon ein. fängt bei 10-15€ an.


es wäre zu prüfen, wieviele von den acht adern des cat6-kabels wirklich benutzt werden. man kann ja 2 ethernet-verbindungen (10er oder 100er, nicht 1000er) über ein cat6-kabel laufen lassen, weil ethernet nur 4 adern braucht. dazu gibt es kleine peitschen, die das auf beiden seiten aufteilen. wäre möglich, daß man auch ethernet und usb(mit obigem konverter) auf diese art über ein kabel bekommt.

gruß stefan
Logged

Offline Offline
Sr. Member
****
Karma: 2
Posts: 374
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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.

Quote
Quote
Momentan verfolge ich mehr die Idee mit dem IP-over-Ethernet.
Du meintest wohl eher USB-over-IP?
Ja sicher, sorry

Quote
Quote
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.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Offline Offline
Sr. Member
****
Karma: 2
Posts: 374
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi,
es gibt usb-extender über cat6-kabel. übertragung bis 100m. ich verwende in der firma dutzende vga<>cat6-adapter. funktioniert einwandfrei. z.B.:

http://www.gdsys.de/produkte/kvm-extender/signal-extender/usb-extender/?gclid=CKC8_PXVprMCFUFb3god7GoAQg
http://www.lindy.de/usb-extender-cat-5/42805.html
http://www.delock.de/produkte/F_656_USB-1-1---USB-2-0_61733/merkmale.html

oder gib usb-extender bei ebay oder amzon ein. fängt bei 10-15€ an.

es wäre zu prüfen, wieviele von den acht adern des cat6-kabels wirklich benutzt werden. man kann ja 2 ethernet-verbindungen (10er oder 100er, nicht 1000er) über ein cat6-kabel laufen lassen, weil ethernet nur 4 adern braucht. dazu gibt es kleine peitschen, die das auf beiden seiten aufteilen. wäre möglich, daß man auch ethernet und usb(mit obigem konverter) auf diese art über ein kabel bekommt.

gruß stefan

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.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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 Offline
Sr. Member
****
Karma: 2
Posts: 374
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

Quote
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.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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.

Quote
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 Offline
Sr. Member
****
Karma: 2
Posts: 374
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Quote
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.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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.

Quote
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 Offline
Sr. Member
****
Karma: 2
Posts: 374
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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 Offline
Sr. Member
****
Karma: 2
Posts: 374
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Jetzt hab ich noch mal was altes ausgegraben:

Quote
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 smiley-eek-blue smiley-eek-blue smiley-eek-blue
Logged

Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Pages: [1] 2   Go Up
Jump to: