Ich bin gerade am überlegen ob ich mir einen Arduino Leonardo Board zulegen möchte. Verbaut ist darauf ein Mega32u4. Preislich gesehen ist das Board ja der Hammer, für 7€ bekommt man ja gerade mal den 32u4 zu kaufen, da hab ich ja aber alles schon mit On-Board (USB, Quarz, etc...) meine Frage ist nun: Da ist ja dieser Arduino Bootloader drauf, das will ich aber nicht. Ich will die USB Schnittstelle als CDC (UART) nutzen und wie gewohnt den AVR in normalen C programmieren. Sind diese Bootloader schreibgeschützt? Kann ich die auswechseln? Kann ich den AVR ganz einfach über die ISP proggen mit nem STK500 wie normale AVR auch? Oder bin ich zwingend auf diesen Arduino IDE Quatsch mit diesen ominösen "Sketches" (Also wer sich das ausgedacht hat, gehört erschossen!) angewiesen? Über Hilfestellungen dahingehend bin ich sehr dankbar.
Draco schrieb: > > Da ist ja dieser Arduino Bootloader drauf, das will ich aber nicht. Ich > will die USB Schnittstelle als CDC (UART) nutzen und wie gewohnt den AVR > in normalen C programmieren. Sind diese Bootloader schreibgeschützt? > Kann ich die auswechseln? Kann ich den AVR ganz einfach über die ISP > proggen mit nem STK500 wie normale AVR auch? Und warum nicht gleich einen nativen Atmega? > Oder bin ich zwingend auf > diesen Arduino IDE Quatsch mit diesen ominösen "Sketches" (Also wer sich > das ausgedacht hat, gehört erschossen!) angewiesen? Ob erschossen oder nicht, wer zwingt Dich? Old-Papa
Deine Fragen klingen zwar wie von einem gemeinen arduino User, aber klar ist es möglich, den 32u4 komplett ohne arduino Umgebung zu programmieren, gerne auch mit ISP.... Würde allerdings nicht so große Töne spucken Draco schrieb: > Also wer sich das ausgedacht hat, gehört erschosse Wenn ich das nicht schon vorher wissen würde...
Old P. schrieb: > Und warum nicht gleich einen nativen Atmega? Wie gesagt: das Board ist klein - alles verbaut was ich brauche - warum das Rad neu erfinden. Außerdem bezahle ich ja für den Mega32u4 nativ mehr als auf dem Baord. Warum dann das Pferd von hinten aufzäumen?! Old P. schrieb: > Ob erschossen oder nicht, wer zwingt Dich? DAS ist ja genau diese Frage hier - ob möglich den Bootloader zu überschreiben oder nicht. ;)
Wie üblich im Bereich Arduino und wohl den meisten anderen Themen dieser Welt sollte erst ausführlich recherchiert werden. Arduino ist komplett public und daher nicht schreibgeschützt. Spasseshalber in eine populäre Suchmaschine "Arduino ohne bootloader" eingegeben und umgehend Treffer gefunden die teilweise schon >6Jahre alt sind. Glaubst du mit dieser Idee der Erste zu sein? :D
Du kannst das ding ganz normal per icsp programmieren, du kannst den Bootloader aber auch drauf lassen oder ihn durch einen passenden deiner Wahl ersetzen und trotzdem dein Kompilat aus der Sprache deiner Wahl ohne Programiergerät direkt per USB auf die Kiste zu bekommen, da bist du frei.
Natürlich ist das möglich. Es gibt keine Möglichkeit, den Bootloader "unlöschbar" zu machen. Wenn du das Datenblatt gelesen hättest wüsstest du das.
Hallo, such Dir den Schaltplan des Boards, der ict mit Sicherheit irgendwo zu finden, und Du weißt, was drauf gelötet ist. "Arduino" bringt bei Hardware für mich zum Ausdruck, daß jemand die Teile so zusammengelötet hat, daß man die mit möglichst wenig Aufwand nitzen kann, eagl wie, egal wofür. Ein Mega32u4 hat ein Datenblatt, ich kenne keinen dieser AVR, die man irgendwi gegen ein Erase schützen könnte und dann ist auch der Bootloader weg. Um die Fuses muß man sich natürlich auch kümmern. Gruß aus Berlin Michael
:
Bearbeitet durch User
Hier ist es eher wichtig, ob der ISP Verbinder bestückt ist. Wenn ja, kannst du den MC wie jeden anderen AVR programmieren. Habe ich mit meinen 2009ern immer so gemacht und ich habe nie die Arduino IDE benutzt. Beim erstenmal habe ich allerdings den Bootloader auf Platte gesichert, um ihn evtl. mal zu benutzen.
:
Bearbeitet durch User
Eigentlich sollte man den Source-Code für den Bootloader finden: https://github.com/arduino/Arduino/tree/master/hardware/arduino/avr/bootloaders Nur für den Atmega32u4 sehe ich ihn nicht.
Cpp schrieb: > Eigentlich sollte man den Source-Code für den Bootloader finden: Den Bootloader kann man einfach aus der Arduino IDE über ISP laden. Draco schrieb: > Oder bin ich zwingend auf > diesen Arduino IDE Quatsch mit diesen ominösen "Sketches" (Also wer sich > das ausgedacht hat, gehört erschossen!) angewiesen? Die IDE Ist auch nur ein hässlicher Texteditor und allem was man sonst auch verwendet (gcc, avr-dude) in einem Paket. Bevor du wen erschießt, leg bitte etwas besseres vor!
Draco schrieb: > Außerdem bezahle ich ja für den Mega32u4 nativ > mehr als auf dem Baord. Du schreibst in Rätseln. http://www.duden.de/rechtschreibung/nativ "nativ" => "angeboren, erblich, vererbt" http://www.dict.cc/englisch-deutsch/native.html "native" => "einheimisch, ursprünglich,..." bzw. "Einheimischer, Ureinwohner,..." Mit freundlichen Grüßen Selbsternannter Weltverbesserer
Hallo, Karl schrieb: > Die IDE Ist auch nur ein hässlicher Texteditor und allem was man sonst > auch verwendet (gcc, avr-dude) in einem Paket. Bevor du wen erschießt, > leg bitte etwas besseres vor! den häßlichen Texteditor kann man auch durch einen externen ersetzen ohne die die restliche Funktionalität zu verlieren. Ich habe noch nichts anderes gefunden, mit dem ich "mal schnell" den ESP8266 porgramieren und flashen kann. Alles per Knopfdruck, egal, ob per serieller oder OTA. Gut möglich, daß man das auch anders realisieren kann, ich will aber um ein Loch für einen Dübel zu bohren nicht erst eine Bohrmaschine bauen müssen. Da nehme ich lieber eine fertige. Gruß aus Berlin Michael
:
Bearbeitet durch User
Michael U. schrieb: > Ich habe noch nichts anderes gefunden, mit dem ich "mal schnell" den > ESP8266 porgramieren und flashen kann. Alles per Knopfdruck, egal, ob > per serieller oder OTA. Ich kann dir nicht folgen. Der Arduino Leonardo hat keinen ESP8266. Ja, es gibt ein Ethernet Shield - mit dem WS100.
Michael U. schrieb: > Ich habe noch nichts anderes gefunden, mit dem ich "mal schnell" den > ESP8266 porgramieren und flashen kann. Alles per Knopfdruck, egal, ob > per serieller oder OTA. Geht mir auch so! Unterstützt alle, für mich relevanten, µC.
Draco schrieb: > Ich bin gerade am überlegen ob ich mir einen Arduino Leonardo Board > zulegen möchte. Verbaut ist darauf ein Mega32u4. > Da ist ja dieser Arduino Bootloader drauf, das will ich aber nicht. Ich > will die USB Schnittstelle als CDC (UART) nutzen und wie gewohnt den AVR > in normalen C programmieren. Sind diese Bootloader schreibgeschützt? > Kann ich die auswechseln? Kannst du, mußt du aber nicht. Wie sich der USB-Anschluß des Mega32u4 verhält, bestimmt die Software. Der Bootloader initialisiert ihn als (vermutlich) DFU Gerät. Aber sobald der Bootloader die Anwendung startet, kann die natürlich mit dem USB machen was sie lustig ist. CDC, HID oder was auch immer. > Kann ich den AVR ganz einfach über die ISP > proggen mit nem STK500 wie normale AVR auch? Ja. Wenn du den Bootloader löschen oder austauschen willst, ist das sogar der einzige Weg. Und auch die Fuses gehen nur so zu ändern. Arduinos kann man recht einfach in "nacktem" C programmieren. Dabei muß man noch nicht mal auf den Komfort der Arduino-Umgebung verzichten (Komfort wie: Bootloader-Unterstützung, semiautomatische Konfiguration anhand der Board-bezeichnung etc.). Für Linux gibt es dafür das Package "arduino-mk". Dann kann man mit einem sehr simplen Makefile seine eigenen Programme für jedes Arduino-Board übersetzen lassen. Z.B. für das Blink-Demo und Arduino nano sieht das so aus:
1 | /*
|
2 | * blink.c - blink LED @ PB5=D13 with 1Hz
|
3 | * for ATmega328 (i.e. Arduino nano)
|
4 | */
|
5 | |
6 | #include <avr/io.h> |
7 | #include <util/delay.h> |
8 | |
9 | void init_io(void) |
10 | {
|
11 | // 1 = output, 0 = input
|
12 | DDRB = 0b00100000; // PB5=D13 is output |
13 | DDRC = 0; // inputs |
14 | DDRD = 0; // inputs |
15 | // turn on pullups on all inputs
|
16 | PORTB = 0b11011111; |
17 | PORTC = 0xFF; |
18 | PORTD = 0xFF; |
19 | }
|
20 | |
21 | int main(void) |
22 | {
|
23 | init_io(); |
24 | |
25 | while (1) |
26 | {
|
27 | PORTB |= 0b00100000; |
28 | _delay_ms(100); |
29 | |
30 | PORTB &= ~(0b00100000); |
31 | _delay_ms(900); |
32 | }
|
33 | |
34 | return 0; |
35 | }
|
und hier noch das Makefile:
1 | # Makefile |
2 | |
3 | # build a naked project |
4 | NO_CORE = Yes |
5 | BOARD_TAG = nano328 |
6 | MCU = atmega328p |
7 | HEX_MAXIMUM_SIZE = 30720 |
8 | F_CPU = 16000000L |
9 | |
10 | # upload via arduino bootloader |
11 | AVRDUDE_ARD_PROGRAMMER = arduino |
12 | AVRDUDE_ARD_BAUDRATE = 57600 |
13 | |
14 | include /usr/share/arduino/Arduino.mk |
Zum compilieren einfach "make" und zum Upload mittels Bootloader dann "make upload"
Hallo, und warum nicht genau den Source so in die Arduino-IDE kopieren, compile und flash anklicken? Die ArduinoIDE sollte doch unter Linux auch laufen und einen Editor eigener Wahl kann man einstellen. Gruß aus Berlin Michael
Draco schrieb: > Wie gesagt: das Board ist klein - alles verbaut was ich brauche - warum > das Rad neu erfinden. Was ist an diesem Monsterboard klein? Guck dir mal den Arduino Pro Micro an. Der passt ein paar Mal auf das Leonardo-Board und hat den selben Prozessortyp.
Michael U. schrieb: > Hallo, > > und warum nicht genau den Source so in die Arduino-IDE kopieren, compile > und flash anklicken? Ist das etwas was du machen würdest? regelmässig code kopieren?
Michael U. schrieb: > Hallo, > > und warum nicht genau den Source so in die Arduino-IDE kopieren, compile > und flash anklicken? Häää? Ist das dein Ernst? Wolfgang schrieb: > Was ist an diesem Monsterboard klein? Guck dir mal den Arduino Pro Micro > an. Der passt ein paar Mal auf das Leonardo-Board und hat den selben > Prozessortyp. Ja genau so ein Klon habe ich ja, eines des Leonardo Pro Micro. Sie Bild.
Ein Leonardo sieht so aus: https://www.arduino.cc/en/Main/ArduinoBoardLeonardo Und ein Micro so: https://www.arduino.cc/en/Main/ArduinoBoardMicro Was du da hast ist was ganz anderes. Aber ganz sicher kein: "Leonardo Pro Micro" Denn sowas gibts nicht.
Nobody schrieb: > Ein Leonardo sieht so aus: > https://www.arduino.cc/en/Main/ArduinoBoardLeonardo > Und ein Micro so: https://www.arduino.cc/en/Main/ArduinoBoardMicro > > Was du da hast ist was ganz anderes. > Aber ganz sicher kein: "Leonardo Pro Micro" > Denn sowas gibts nicht. Klon... ich sagte ja: Klon! Aber schön zu sehen, das der Klon noch ne ganze Ecke kleiner ist als der Original Leonardo Pro Micro.
Rene K. schrieb: > als der Original Leonardo Pro Micro. OK, du willst nicht runter, von deiner Sprachverwirrung.... Der klare Nachteil dieser Clone ist, dass ihm "wichtige" Beinchen fehlen.
Nobody schrieb: > Der klare Nachteil dieser Clone ist, dass ihm "wichtige" Beinchen > fehlen. Welche Beinchen denn? SPI ist bei den meisten Klons als Pin (zB. 9/10/11) rausgeführt und wenn man extras möchte kann man sich ja vorher informieren. Wenn man noch weiterdenkt kann man auch gleich nen eigenes PCB machen.
Hallo, Rene K. schrieb: > Michael U. schrieb: >> Hallo, >> >> und warum nicht genau den Source so in die Arduino-IDE kopieren, compile >> und flash anklicken? > > Häää? Ist das dein Ernst? natürlich ist das mein Ernst. Hier aus dem Forum so kopiert, neues Projekt in der IDE geöffnet und vorhandenen Kram (setup(), loop()) gelöscht und Deinen Code rein. Compile für den Nano ergibt Build-Optionen wurden verändert, alles wird neu kompiliert Der Sketch verwendet 198 Bytes (0%) des Programmspeicherplatzes. Das Maximum sind 30.720 Bytes. Globale Variablen verwenden 0 Bytes (0%) des dynamischen Speichers, 2.048 Bytes für lokale Variablen verbleiben. Das Maximum sind 2.048 Bytes. Wenn nur eine main() drin ist, wird garnichts automatisch eingebunden. Keine Ahnung, ob das Verhalten unter Linux da anders ist als hier unter Windows, würde mich aber wundern. Gruß aus Berlin Michael
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.