Pages: [1]   Go Down
Author Topic: Android Handy mit Bluetooth: => Firmware übertragen  (Read 968 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich würde gerne eine Arduino UNO Firmware (Sketch) per Bluetooth von meinem Android Handy auf den Arduino UNO (mit Bluetooth-Shield) übertragen.

Was meint Ihr, würde das funktionieren?
Logged

Germany S-H
Offline Offline
Faraday Member
**
Karma: 170
Posts: 3206
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich würde gerne eine Arduino UNO Firmware (Sketch) per Bluetooth von meinem Android Handy auf den Arduino UNO (mit Bluetooth-Shield) übertragen.

Was meint Ihr, würde das funktionieren?

Wenn Du zuerst einen Bluetooth-fähigen Bootloader machst und auf dem Arduino installierst, der einen Sketch per Bluetooth empfangen kann, warum nicht? Stellt sich nur die Frage, wie Du das Pairing der Bluetooth-Geräte hinbekommen möchtest. Und ob Du komplett neue Bootloader programmieren kannst. Und wie fit Du in Bluetooth-Programmierung bist.

Mal angenommen, Du löst das Problem, z.B. indem der neue Bluetooth-Bootloader unter Mißachtung jeglicher Sicherheit ein Pairing mit dem erstbesten Bluetooth-Gerät automatisch macht: Wenn dann am Ende Dein neuer Bluetooth-Bootloader allerdings schon 15 KB groß ist, verringert sich die maximale Programmgröße für den Sketch um ebendiese 15 KB abzgl. der 0,5 KB, die ein normaler Arduino-Bootloader groß ist.

Mit dem normalen Arduino-Bootloader funktioniert das natürlich nicht, da der Arduino-Bootloader nur über Hardware-Serial, nicht aber über Bluetooth Daten austauschen kann.
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21872
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich sehe das Problem nicht auf der Arduinoseite. Wenn Du ein Bluetooth-Modul hast, das sich Arduino gegenüber als serielle Schnittstelle verhält ist das auf der Arduino-Seite kein Problem den Upload nicht über Kabel sondern über eine Radioverbindung zu übertragen. Das Problem sehe ich auf der Android Seite da dieses das Protokoll des AVR-ISP-Programmierers (STK500) emulieren muß.
Gibt es dafür ein Programm oder APP? Woher bekommst Du das Hex-File des Sketches? Gibt es  den AVR-GCC für Android?

Grüße Uwe
Logged

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

Ich kenne mich zwar nicht genug mit Android aus,
kann aber sagen, dass es eine ARM Version von avrdude gibt,
da ich gestern den Spaß auf dem RaspberryPi in Betrieb genommen habe...

Müsste also irgendwie machbar sein.
Im schlimmsten Fall müsstest du mal eins dieser Linux-Emulations-Dinger probieren...
Gruß,
Tobias
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Fragen über Fragen smiley

Danke, tja mal sehen, werd mir das mal anschauen und mir durch den Kopf gehen lassen.

Kann ja nicht so schwer sein smiley-wink
Logged

Switzerland
Offline Offline
Faraday Member
**
Karma: 111
Posts: 5242
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Ich sehe das Problem nicht auf der Arduinoseite. Wenn Du ein Bluetooth-Modul hast, das sich Arduino gegenüber als serielle Schnittstelle verhält ist das auf der Arduino-Seite kein Problem den Upload nicht über Kabel sondern über eine Radioverbindung zu übertragen. Das Problem sehe ich auf der Android Seite da dieses das Protokoll des AVR-ISP-Programmierers (STK500) emulieren muß.

Hmmh, da er von einem Bluetooth-Shield spricht, dürfte problematisch sein, dass der Reset-Impuls zum Starten des Bootloaders auch den Bluetooth-Chip resetted und somit die Verbindung abbricht. Bei einem externen Bluetooth-Modul hast Du immer noch das Problem, dass der Arduino irgendwie zur richtigen Zeit einen Reset erhalten muss.
Man müsste also auch in der "Firmware" eine Möglichkeit/einen Befehl einbauen, der zumindest einen Soft-Reset auslöst.
Logged

Deutschland
Offline Offline
Jr. Member
**
Karma: 0
Posts: 56
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Vielleicht zu einfach, aber kann man nicht einfach den Hardware resetknopf mit gnd verbinden, wenn man mit dem Uploaden des Sketches fertig ist??

Das wäre dann genau eine Lötstelle auf dem Arduino selbst die an DigitalPin XY angesteuert wird und via 3-Fuß Transistor dann auf GND gebracht wird smiley

Gruß Flo
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21872
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Vergiß das mit einem Hardwareselbstreset. Der Resetimpuls muß mehrer Taktzyklen anliegen und ein von Arduino angesteuerter Transistor resettiert sich sofort nach dem Resetimpuls.

@pylon
Du hast recht, das mit dem Reset hatte ich nicht bedacht.
Müßte das aber mit dem Arduino Uno mit dem ATmega8U2 bzw 16U2 anders funktionieren als es beim 2009 mit dem FT232 funktionierte?

Grüße Uwe


Logged

Switzerland
Offline Offline
Faraday Member
**
Karma: 111
Posts: 5242
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Du hast recht, das mit dem Reset hatte ich nicht bedacht.
Müßte das aber mit dem Arduino Uno mit dem ATmega8U2 bzw 16U2 anders funktionieren als es beim 2009 mit dem FT232 funktionierte?

Ich glaube, das funktioniert beim UNO ziemlich ähnlich wie beim 2009. Allerdings ist mir nicht ganz klar, was Du damit ansprechen wolltest. Die Beschaltung der Reset-Leitung ist sehr ähnlich, auch wenn sie sich im Detail unterscheidet.
Der Hardware-Reset lässt sich schon bewerkstelligen, allerdings nicht einfach mit einem Transistor. Aber ein 555 Timer sollte mehr als genügen. Wie gesagt, das setzt voraus, dass bei einem Reset des Arduino das Bluetooth-Modul nicht resetted wird und dass das relativ enge Timing der aktuellen Bootloader eingehalten werden kann.
Logged

Pages: [1]   Go Up
Jump to: