Pages: [1] 2 3   Go Down
Author Topic: Gelöst: Arduino per USB an OpenWRT Router - Kann man ihn dann Programmieren?  (Read 5588 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Sr. Member
****
Karma: 5
Posts: 342
A SWL life as a coder... I'll try.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Moin,

ich möchte den Arduino per USB programmieren. Problem: er hängt auf dem Dachboden am WR703N WiFi Router mit OpenWRT. Siehe



Gibt es eine Möglichkeit den auf einem anderen PC kompilierten .hex Code per USB zu senden, sodass er Ardu in den Programmiermodus schaltet und das Hexfile annimmt? Warum möchte ich das machen: weil ich in Zukunft vermeiden will, dass ich wg. eines kleinen Fehlers im Code hoch muss, den Ardu abklemmen, am PC Programmieren und in wieder hochbringen muss. Besser ist ein HTTP Upload Interface, in dass man das Hexfile hochlädt und per BASH script (sowas wie "cat blahhexfile > /DEV/ttyACM0" den Ardu programmiert.

Machbar?
« Last Edit: November 18, 2012, 03:20:21 pm by DE8MSH » Logged


Alfeld (Leine) / Germany
Offline Offline
Full Member
***
Karma: 9
Posts: 207
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Klar smiley-wink

http://packages.debian.org/de/squeeze/avrdude

Wie du hier siehst, gibt es avrdude (das Tool zum Hochladen von .hex Files) auch für Mipsel kompiliert.
Ich kenne zwar das Packaging von OpenWRT nicht, aber man kann auch da einfach das deb-Package entpacken und nutzen smiley-wink

Gruß,
Tobias
Logged

0
Offline Offline
Sr. Member
****
Karma: 5
Posts: 342
A SWL life as a coder... I'll try.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Uhm, AVRdude ist im Repo des OpenWRT für den WR703N nicht drin. Was wird in dem USB Strom gesendet, damit Ardu in den Programmiermode geht? Man könnte den Stream als erstes senden und gleich danach das Hexfile. Könnte...

AVRdude ist drinnen. Danke Tobias.

Ok, jetzt noch Interface hinbauen *lol*.

*heh*

Code:
:/# avrdude -p m328p -P /dev/ttyACM0 -c arduino -b 115200 -C /etc/avrdude.conf -U flash:w:/tmp/Blink.cpp.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e950f
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "/tmp/Blink.cpp.hex"
avrdude: input file /tmp/Blink.cpp.hex auto detected as Intel Hex
avrdude: writing flash (1018 bytes):

Writing | ################################################## | 100% 0.17s

avrdude: 1018 bytes of flash written
avrdude: verifying flash memory against /tmp/Blink.cpp.hex:
avrdude: load data flash data from input file /tmp/Blink.cpp.hex:
avrdude: input file /tmp/Blink.cpp.hex auto detected as Intel Hex
avrdude: input file /tmp/Blink.cpp.hex contains 1018 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.13s

avrdude: verifying ...
avrdude: 1018 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

und

Code:
:/# avrdude -p m328p -P /dev/ttyACM0 -c arduino -b 115200 -C /etc/avrdude.conf -U flash:w:/tmp/_433MHzThermometer
_startarray_dewpoint_TR703N.cpp.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "/tmp/_433MHzThermometer_startarray_dewpoint_TR703N.cpp.hex"
avrdude: input file /tmp/_433MHzThermometer_startarray_dewpoint_TR703N.cpp.hex auto detected as Intel Hex
avrdude: writing flash (7032 bytes):

Writing | ################################################## | 100% 1.15s

avrdude: 7032 bytes of flash written
avrdude: verifying flash memory against /tmp/_433MHzThermometer_startarray_dewpoint_TR703N.cpp.hex:
avrdude: load data flash data from input file /tmp/_433MHzThermometer_startarray_dewpoint_TR703N.cpp.hex:
avrdude: input file /tmp/_433MHzThermometer_startarray_dewpoint_TR703N.cpp.hex auto detected as Intel Hex
avrdude: input file /tmp/_433MHzThermometer_startarray_dewpoint_TR703N.cpp.hex contains 7032 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.91s

avrdude: verifying ...
avrdude: 7032 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Würd' sagen: rennt (noch manuell).

Daaaaaaaaaaaaanke, Tobias!
« Last Edit: November 18, 2012, 03:16:05 pm by DE8MSH » Logged


Alfeld (Leine) / Germany
Offline Offline
Full Member
***
Karma: 9
Posts: 207
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Jo. Nice.

Gut zu wissen, dass soetwas auch mit Wrt machbar ist =)
Logged

0
Offline Offline
Sr. Member
****
Karma: 5
Posts: 342
A SWL life as a coder... I'll try.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yep!
Logged


Offline Offline
Sr. Member
****
Karma: 1
Posts: 353
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

da muss ich mich jetzt mal dranhängen.

Bin ja auch auf der Suche meinen Arduino aus der Ferne zu flashen. Hab z.Zt das Ariadne Projekt verfolgt. Ist aber noch nicht für meinen MEGA.
Das mit dem OpenWRT-Router wär mal ein ganz andere Ansatz.
Hab allerdings noch nie was damit zu tun gehabt. Werd mich mal die Woche etwas einlesen.
Welchen Router könnt ihr mir da empfehlen? Ich kenn nur die von AVM, und da ist lt. OpenWrt nur der 7170 freigegeben. Und das ist mir etwas zu teure "Hardware" für so einen Anwendungsfall.
Wenn der Router noch einen Ethernet-Hub hat, dann könnte man ja auf WiFi verzichten?. Ein Netzwerkkabel hab ich sowieso beim Arduino, da er als Webserver dient.

gruß/hk007
Logged

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

0
Offline Offline
Sr. Member
****
Karma: 5
Posts: 342
A SWL life as a coder... I'll try.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Moin,

empfehlen kann ich keinen, da ich nur einen habe - den WR703N. Der hat aber das große Problem, dass er nur 4MB Flash und 8MB Ram hat. Das passt's hier und da nicht. Machste da kein Extram macht es regelmäßig *BOOM*, da die 4MB voll sind, und Du fängst von vorne an. Jetzt hat meiner mit Extram zwar 8GB für Software, das ändert nichts an den 8MB Ram. Und die werden fast immer knapp!

Siehe Live Daten:

« Last Edit: November 19, 2012, 07:15:42 am by DE8MSH » Logged


Offline Offline
Sr. Member
****
Karma: 1
Posts: 353
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

danke für die Antwort.
Ein paar Fragen hab ich noch. smiley-red
- EXTRAM??? Software, die Flashspeicher auf USB-Stick emuliert???
- Ich will das Teil ja nur dazu verwenden, um einen Arduino zu flashen. Reicht da der Flash nicht? Man braucht ja nicht alle Pakete installieren oder?
- Evtl. nehme ich dann einen anderen Router mit mehr Flash/RAM. Der TP-Link ist halt schön klein, und es hat ihn schon jemand zum Laufen gebracht.

Generell gefragt: Ist es schwierig OpenWRT auf einen Router zu bringen? Ich bin zwar softwaretechnisch kein Anfänger, aber wenn ich auf C mit makefile anfangen muss, dann wirds auch für mich grenzwertig.
Gibts da gute Anleitungen im Netz?

gruß/hk007
Logged

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

0
Offline Offline
Sr. Member
****
Karma: 5
Posts: 342
A SWL life as a coder... I'll try.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich empfehle

http://wiki.openwrt.org/toh/tp-link/tl-wr703n

oder

http://wiki.openwrt.org

generell. Das ist alles beschrieben. Kompillieren musst Du nichts, da alles schon fertig - als Trunk images. Einfach im China Menü den Punkt für flashen finden und flashen  smiley-grin .

EDIT: Und das hier:

http://cmikavac.net/2012/06/03/how-to-flash-tp-link-wr703n-with-openwrt/

So ähnlich habe ich es auch gemacht.
« Last Edit: November 19, 2012, 11:18:49 am by DE8MSH » Logged


0
Offline Offline
Sr. Member
****
Karma: 5
Posts: 342
A SWL life as a coder... I'll try.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Man muss echt aufpassen, dass der Router nicht explodiert:



Habe gerade den Ardu geflasht. Da hatte ich noch knapp 1MB frei  smiley-eek. Nach dem Reboot waren es wieder um 5MB  smiley-lol.
« Last Edit: November 19, 2012, 05:03:52 pm by DE8MSH » Logged


Offline Offline
Sr. Member
****
Karma: 1
Posts: 353
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

seltsam... so ein Auf und Ab wegen der paar kb für den Arduino.
Die Grafik hab ich mir lange anschauen müssen, um zu verstehen, daß hier der freie RAM angezeigt wird.

Auf deinem Blog hab ich gesehen, daß du jede Menge Zeugs an dem Router dran hast.
Das machts wohl nicht schlanker ;-)

Brauche ich nur zum Flashen eines Arduino eigentlich einen externen USB-Stick? Dann muss ja auch gleich noch ein USB-HUB mit dran.
Wobei ich irgendwo gelesen habe, daß der USB2.0-Port des Routers Probleme mit USB 1.x Teilnehmern hat, und man aus dem Grund schon einen USB-HUB dranhängen soll.

Wo muss den eigentlich das Hex-File für den Arduino zum Flashen abgelegt werden?
Nach deinem Code liegt es auf Laufwerk W: Ist das auf deinem Rechner, oder auf dem Router?
Code:
:/# avrdude -p m328p -P /dev/ttyACM0 -c arduino -b 115200 -C /etc/avrdude.conf -U flash:w:/tmp/Blink.cpp.hex

Logged

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

0
Offline Offline
Sr. Member
****
Karma: 5
Posts: 342
A SWL life as a coder... I'll try.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Das mit dem USB 1.x und 2 weiß ich jetzt nicht. Ich habe den Hub dran weil, wie Du richtig sahst, allerhand Kram am WR habe. Und auch richtig: das nimmt Speicher. Wenn Du nur den Ardu dran haben möchtest reicht vieleicht(???) der Speicher aus. Habe ich nicht getestet, da ich gleich den USB Stick als Extram gemountet habe.

Das .hex File kopiere ich nach /tmp/. Damit also ins Ram, da /tmp/ im Ram gemountet ist. Bei Linux gibt es keine Laufwerksbuchstaben. Das :w: bedeutet, dass Du schreiben möchtest.

« Last Edit: November 20, 2012, 04:05:39 am by DE8MSH » Logged


Offline Offline
Sr. Member
****
Karma: 1
Posts: 353
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Bei Linux gibt es keine Laufwerksbuchstaben. Das :w: bedeutet, dass Du schreiben möchtest.
Ok ok, peinlich, aber für einen Windows-User sah es wie ein Laufwerk aus. Ja, die slashes sind anders, aber des Nächtens seh ich nicht mehr so gut.

Ich hab mir auf alle Fälle mal so eine TP-Link geordert, und werde es testen.
Darf ich mich bei (sicher auftretenden) Fragen melden?
Logged

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

0
Offline Offline
Sr. Member
****
Karma: 5
Posts: 342
A SWL life as a coder... I'll try.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Sicher. Immer her damit...



Kannst Dich ja in einem Monat melden. Vorher wird der Chinese Import nicht hier sein.
Logged


Offline Offline
Sr. Member
****
Karma: 1
Posts: 353
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sicher. Immer her damit...

Kannst Dich ja in einem Monat melden. Vorher wird der Chinese Import nicht hier sein.

Teil war nach 6 Tagen bei mir :-P
Heut hab ich mir mal etwas Zeit genommen:
Und schon gehts los:
- Das Teil hab ich nicht auf der TP-Link Hompage gefunden smiley-sad Da gibts nur einen 702N
- Im Internet hab ich dann die default IP entdeckt: 192.168.1.1. Göttlich. Genau die meiner Fritz!Box.....
- Und jetzt das Beste: Die Weboberfläche ist auf Chinesisch. Strrrrrrrrrike. Na ja, nach etwas Suche hab ich die IP umstellen können, damit ich meine Fritz!Box wieder frei bekomme.

Vllt find ich noch die Umstellung auf eine lesbare Sprache. Oder ich hol mir mal die nette Bedienung aus unserem China-Restaurant nach Hause. smiley-razz

--------------------------
OK, man kann die Menus mit copy/paste in den google translator eingeben.
Aber eine englische Firmware wär doch nicht schlecht.
Wobei: es soll ja eh eine andere drauf. Mal schauen, wie ich das hinkriege.

---------------------------
Update:
OpenWrt ist drauf. Dank dieser Anleitung: http://wiki.xinchejian.com/wiki/Install_OpenWRT_on_TPlink_WR703N

---------------------------
Update:
Luci läuft auch. War etwas tricky. da ich kein WLAN definiert habe, und meinem LAN Interface noch nen Gateway und DNS geben musste, damit er das Package aus dem Internet geholt hat.
Das mit dem restorefactory hab ich auch mal gemacht.


to be continued......
« Last Edit: December 03, 2012, 06:26:54 pm by hk007 » Logged

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

Pages: [1] 2 3   Go Up
Jump to: