Forum: Mikrocontroller und Digitale Elektronik An die Ardunio Gemeinde


von Draco (Gast)


Lesenswert?

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.

von Old P. (Gast)


Lesenswert?

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

von Dennis S. (sixeck)


Lesenswert?

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

von Draco (Gast)


Lesenswert?

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. ;)

von As-I-Roved-Out (Gast)


Lesenswert?

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

von Dirk D. (dicky_d)


Lesenswert?

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.

von Xman (Gast)


Lesenswert?

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.

von Michael U. (amiga)


Lesenswert?

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
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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
von Cpp (Gast)


Lesenswert?

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.

von Karl (Gast)


Lesenswert?

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!

von Nobody (Gast)


Lesenswert?

Cpp schrieb:
> Nur für den Atmega32u4 sehe ich ihn nicht.

caterina

von Selbsternannter Weltverbesserer (Gast)


Lesenswert?

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

von Michael U. (amiga)


Lesenswert?

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
von Michael B. (laberkopp)


Lesenswert?

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.

von Nobody (Gast)


Lesenswert?

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.

von Axel S. (a-za-z0-9)


Lesenswert?

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"

von Michael U. (amiga)


Lesenswert?

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

von Wolfgang (Gast)


Lesenswert?

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.

von Dirk D. (dicky_d)


Lesenswert?

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?

von Rene K. (xdraconix)


Angehängte Dateien:

Lesenswert?

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.

von Nobody (Gast)


Lesenswert?

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.

von Rene K. (xdraconix)


Lesenswert?

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.

von Nobody (Gast)


Lesenswert?

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.

von Philipp_K59 (Gast)


Lesenswert?

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.

von Michael U. (amiga)


Lesenswert?

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
Noch kein Account? Hier anmelden.