Ethernut
Ethernut ist ein Open-Source-Hardware- und Software-Projekt zum Betrieb von Embedded-Ethernet-Systemen und wird überwiegend im Forschungsbereich und in industriellen Anwendungen eingesetzt.
Entwicklungsgeschichte
Nach der rasanten Entwicklung des Internets als Kommunikationsmedium für menschliche Benutzer erschien vielen Entwicklern die Idee eines Internets der Dinge als logische Weiterentwicklung. So entstanden um das Jahr 2000 mehrere freie und kommerzielle Projekte mit dem Ziel, eingebettete Systeme in bestehende TCP/IP-Netze zu integrieren. Die Herausforderung bestand darin, dass die zu dieser Zeit üblichen 8-Bit-Mikroprozessoren selten über mehr als 64 Kilobyte Speicher verfügten. So veröffentlichte der britische Entwickler Dave Hudson im Jahr 2000 den offenen Quellcode eines Echtzeitbetriebssystemkerns mit integrierten TCP/IP-Stack unter dem Namen Liquorice.
Ein weiteres Problem bestand darin, dass es zu dieser Zeit kaum geeignete Hardware gab. Unter anderem waren fast alle verfügbaren Netzwerk-Controller mit PCI-Bus für einfache Mikrocontroller ungeeignet. Für die Mikrocontroller-Familie Atmel AVR existierte bereits eine große Zahl freier Entwicklungswerkzeuge und so wurde im Jahr 2001 ein erstes Board auf Basis des ATmega103 und einem veralteten, aber noch in Produktion befindlichen, Ethernet-Controller mit ISA-Bus unter BSD-Lizenz veröffentlicht. Es zählt damit zu den Pionieren freier Hardware<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20010210064709
| {{#ifeq: 20010210064709 | *
| {{#if: Archivseite mit Ethernut als freier Hardware aus dem Jahr 2001 | {{#invoke:WLink|getEscapedTitle|Archivseite mit Ethernut als freier Hardware aus dem Jahr 2001}} | {{#invoke:Webarchiv|getdomain|http://www.egnite.de/index_js.htm}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20010210064709}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: Archivseite mit Ethernut als freier Hardware aus dem Jahr 2001 | {{#invoke:WLink|getEscapedTitle|Archivseite mit Ethernut als freier Hardware aus dem Jahr 2001}} | {{#invoke:Webarchiv|getdomain|http://www.egnite.de/index_js.htm}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20010210064709}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: Archivseite mit Ethernut als freier Hardware aus dem Jahr 2001 | {{#invoke:WLink|getEscapedTitle|Archivseite mit Ethernut als freier Hardware aus dem Jahr 2001}} | {{#invoke:Webarchiv|getdomain|http://www.egnite.de/index_js.htm}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: Archivseite mit Ethernut als freier Hardware aus dem Jahr 2001 | {{#invoke:WLink|getEscapedTitle|Archivseite mit Ethernut als freier Hardware aus dem Jahr 2001}} | {{#invoke:Webarchiv|getdomain|http://www.egnite.de/index_js.htm}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: Archivseite mit Ethernut als freier Hardware aus dem Jahr 2001 | {{#invoke:WLink|getEscapedTitle|Archivseite mit Ethernut als freier Hardware aus dem Jahr 2001}} | {{#invoke:Webarchiv|getdomain|http://www.egnite.de/index_js.htm}} }} ({{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: Archivseite mit Ethernut als freier Hardware aus dem Jahr 2001 | {{#invoke:WLink|getEscapedTitle|Archivseite mit Ethernut als freier Hardware aus dem Jahr 2001}} | {{#invoke:Webarchiv|getdomain|http://www.egnite.de/index_js.htm}} }}
}}}}}}}}{{#if:
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20010210064709|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.egnite.de/index_js.htm}}
|| {{#if: || }}
}}{{#if: Archivseite mit Ethernut als freier Hardware aus dem Jahr 2001
| {{#if: {{#invoke:WLink|isBracketedLink|Archivseite mit Ethernut als freier Hardware aus dem Jahr 2001}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://www.egnite.de/index_js.htm%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.egnite.de/index_js.htm%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://www.egnite.de/index_js.htm }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}}</ref>.
Hudson stellte die Arbeit an Liquorice nach einem Jahr ein. Der Quellcode wurde in das neu gegründete Projekt Ethernut übernommen, um die freie Hardware und Software zusammenzuführen. Nach ersten Veröffentlichungen im Entwicklerforum AVR Freaks wechselte das Projekt im Jahr 2002 zum Webportal SourceForge.
Hardware
2015 waren vier verschiedene Referenz-Designs (Ethernut 1, Ethernut 2, Ethernut 3 und Ethernut 5) als betriebsbereit aufgebaute Platinen erhältlich.<ref>egnite.de: <templatestyles src="Webarchiv/styles.css" />{{#if:20150923234258
| {{#ifeq: 20150923234258 | *
| {{#if: Ethernut – Single Board Computer | {{#invoke:WLink|getEscapedTitle|Ethernut – Single Board Computer}} | {{#invoke:Webarchiv|getdomain|http://www.egnite.de/produkte/ethernut.html}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20150923234258}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: Ethernut – Single Board Computer | {{#invoke:WLink|getEscapedTitle|Ethernut – Single Board Computer}} | {{#invoke:Webarchiv|getdomain|http://www.egnite.de/produkte/ethernut.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20150923234258}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: Ethernut – Single Board Computer | {{#invoke:WLink|getEscapedTitle|Ethernut – Single Board Computer}} | {{#invoke:Webarchiv|getdomain|http://www.egnite.de/produkte/ethernut.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: Ethernut – Single Board Computer | {{#invoke:WLink|getEscapedTitle|Ethernut – Single Board Computer}} | {{#invoke:Webarchiv|getdomain|http://www.egnite.de/produkte/ethernut.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: Ethernut – Single Board Computer | {{#invoke:WLink|getEscapedTitle|Ethernut – Single Board Computer}} | {{#invoke:Webarchiv|getdomain|http://www.egnite.de/produkte/ethernut.html}} }} ({{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: Ethernut – Single Board Computer | {{#invoke:WLink|getEscapedTitle|Ethernut – Single Board Computer}} | {{#invoke:Webarchiv|getdomain|http://www.egnite.de/produkte/ethernut.html}} }}
}}}}}}}}{{#if:
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20150923234258|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.egnite.de/produkte/ethernut.html}}
|| {{#if: || }}
}}{{#if: Ethernut – Single Board Computer
| {{#if: {{#invoke:WLink|isBracketedLink|Ethernut – Single Board Computer}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://www.egnite.de/produkte/ethernut.html%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.egnite.de/produkte/ethernut.html%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://www.egnite.de/produkte/ethernut.html }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}}</ref>
In allen Ausführungen sind die gleichen funktionellen Baugruppen enthalten:
- Ethernet-Schnittstelle
- RS232-Schnittstelle
- Stromversorgung
- Nahezu alle I/O-Pins des Mikrocontrollers verfügbar
Die Designs unterscheiden sich vor allem im verwendeten Mikrocontroller (Ethernut 1 & 2: 8-bit AVR, Ethernut 3 & 5: 32-bit Arm) und der Speicherverfügbarkeit. So ist ab dem Ethernut 3 ein Slot für MMC-Speicherkarten verfügbar.
Software
Nut/OS
Das Betriebssystem für die Boards heißt Nut/OS. Es ist ein modulares Echtzeitbetriebssystem, das unter der BSD-Lizenz veröffentlicht ist.
Merkmale:
- Kooperatives Multithreading
- Garantierte Interrupt-Antwortzeiten
- Priorisierte Ereignisbehandlung
- Verschiedene konfigurierbare Timer
- Dynamische Speicherverwaltung
- Techniken zur Prozesssynchronisation
- Gute Portierbarkeit auf andere Architekturen
Nut/Net
Der Netzwerk-Stack der Ethernut-Software heißt Nut/Net. Er stellt eine umfangreiche API für verschiedene Protokolle zur Verfügung.
Unterstützte Protokolle:
Konfiguration und Anwendungen
Die Einrichtung von Nut/OS und Nut/Net ist denkbar einfach. Nach dem Herunterladen der Dateien wird ein Konfigurationswerkzeug ausgeführt, welches nach wenigen Einstellungen die Bibliotheken für die ausgewählte Hardware erstellt.
Bei der Programmierung der Anwendung in C werden nun die Bibliotheken von Nut/OS und Nut/Net benutzt. Zusätzlich steht dem Anwendungsprogrammierer die C-Standardbibliothek zur Verfügung. Neben C wird C++ weitestgehend unterstützt. Des Weiteren existiert ein Lua-Interpreter, so dass Lua-Skripte auf dem Board ausgeführt werden können.
Ethernut liefert eine Vielzahl von einfach gehaltenen Beispielprogrammen mit, um den Einstieg in Nut/OS zu erleichtern.
Unterstützte Architekturen
- Atmel AVR (z. B.: ATmega103, ATmega128, ATmega2561, AT90CAN128 u. a.)
- Atmel AVR32 (z. B.: AT32UC3A, AT32UC3B u. a.)
- ARM7 (z. B.: AT91R40008, AT91SAM7X, LPC-E2294, Game Boy Advance u. a.)
- ARM9 (z. B.: AT91SAM9260, AT91SAM9XE u. a.)
- ARM Cortex M (z. B. STM32, LPC17)
Folgende Architekturen werden zwar prinzipiell unterstützt, werden aber aktuell nicht aktiv gewartet:
Bluetooth Stack
Die Forschungsgruppe für verteilte Systeme der ETH Zürich hat ein verteiltes Sensornetz mit Sensorknoten auf AVR-Basis entwickelt. Diese Sensorknoten kommunizieren über Bluetooth miteinander. Als Softwarebasis wird der Open-Source-Bluetooth-Stack BTNut verwendet. Der BTNut-Stack basiert auf Nut/OS und erweitert es um Bluetooth-Funktionalität. Obwohl der BTNut-Stack in erster Linie für die BTNode-Sensorknoten entwickelt wurde, lässt sich der Bluetooth-Stack auch auf andere Applikationen portieren.
Verbreitung
Durch die frühe Verfügbarkeit und das offene Konzept der Hardware stießen Ethernut-Boards zunächst im Forschungsbereich auf Interesse, wo man sich mit verschiedenen Aspekten des Ubiquitous Computing auseinandersetzte<ref>Marius Strobl et al.: Rapid Prototyping Embedded Systems Using Ethernut Boards (PDF; 981 kB)</ref><ref>John Regehr, Usit Duongsaa: Preventing Interrupt Overload (PDF; 264 kB)</ref><ref>M. Can Filibeli et al.: Embedded web server-based home appliance networks (PDF; 832 kB)</ref>. Unter anderem diente es als erste eingebettete Plattform für Contiki<ref>Adam Dunkels: Full TCP/IP for 8-Bit Architectures (PDF; 88 kB)</ref>. Die freizügige Lizenz macht aber auch den kommerziellen Einsatz unkomplizierter und sowohl Hardware als auch Software fanden Einzug in zahlreiche Produkte.
Laut eigener Aussage verkaufte der deutsche Hersteller, die egnite GmbH, bisher ca. 33.000 Ethernuts (Stand: Dezember 2013). Weitere Hersteller kompatibler Hardware sind Achatz electronics (Niederlande), proconX (Australien), Propox (Polen), SOC Robotics (Kanada), HW group s.r.o. (Tschechien), thermotemp Embedded-IT (Deutschland). Des Weiteren wird das Nut/OS-Betriebssystem als Basis für das BTNode-Sensornetz der ETH Zürich verwendet.<ref>Jan Beutel: <templatestyles src="Webarchiv/styles.css" />{{#if:20131224101700
| {{#ifeq: 20131224101700 | *
| {{#if: Fast-prototyping Using the BTnode Platform | {{#invoke:WLink|getEscapedTitle|Fast-prototyping Using the BTnode Platform}} | {{#invoke:Webarchiv|getdomain|http://www.date-conference.com/proceedings/PAPERS/2006/DATE06/PDFFILES/08G_3.PDF}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20131224101700}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: Fast-prototyping Using the BTnode Platform | {{#invoke:WLink|getEscapedTitle|Fast-prototyping Using the BTnode Platform}} | {{#invoke:Webarchiv|getdomain|http://www.date-conference.com/proceedings/PAPERS/2006/DATE06/PDFFILES/08G_3.PDF}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20131224101700}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: Fast-prototyping Using the BTnode Platform | {{#invoke:WLink|getEscapedTitle|Fast-prototyping Using the BTnode Platform}} | {{#invoke:Webarchiv|getdomain|http://www.date-conference.com/proceedings/PAPERS/2006/DATE06/PDFFILES/08G_3.PDF}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: Fast-prototyping Using the BTnode Platform | {{#invoke:WLink|getEscapedTitle|Fast-prototyping Using the BTnode Platform}} | {{#invoke:Webarchiv|getdomain|http://www.date-conference.com/proceedings/PAPERS/2006/DATE06/PDFFILES/08G_3.PDF}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: Fast-prototyping Using the BTnode Platform | {{#invoke:WLink|getEscapedTitle|Fast-prototyping Using the BTnode Platform}} | {{#invoke:Webarchiv|getdomain|http://www.date-conference.com/proceedings/PAPERS/2006/DATE06/PDFFILES/08G_3.PDF}} }} ({{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: Fast-prototyping Using the BTnode Platform | {{#invoke:WLink|getEscapedTitle|Fast-prototyping Using the BTnode Platform}} | {{#invoke:Webarchiv|getdomain|http://www.date-conference.com/proceedings/PAPERS/2006/DATE06/PDFFILES/08G_3.PDF}} }}
}}}}}}}}{{#if:
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20131224101700|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.date-conference.com/proceedings/PAPERS/2006/DATE06/PDFFILES/08G_3.PDF}}
|| {{#if: || }}
}}{{#if: Fast-prototyping Using the BTnode Platform
| {{#if: {{#invoke:WLink|isBracketedLink|Fast-prototyping Using the BTnode Platform}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://www.date-conference.com/proceedings/PAPERS/2006/DATE06/PDFFILES/08G_3.PDF%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.date-conference.com/proceedings/PAPERS/2006/DATE06/PDFFILES/08G_3.PDF%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://www.date-conference.com/proceedings/PAPERS/2006/DATE06/PDFFILES/08G_3.PDF }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}} (PDF; 2,2 MB)</ref>
Ähnliche Geräte
- Arduino
- Banana Pi
- BeagleBoard
- Cubieboard
- Intel Galileo
- Orange Pi
- PandaBoard
- Raspberry Pi
- Tinkerforge
Weblinks
|X|x= |0|-= |S|s= – Sammlung von Bildern |1|= – Sammlung von Bildern{{#if:
| {{#switch: {{#invoke:TemplUtl|faculty|1}}/{{#invoke:TemplUtl|faculty|1}}
|1/= und Videos
|1/1=, Videos und Audiodateien
|/1= und Audiodateien}}
| , Videos und Audiodateien
}}
|#default= – }}{{#if:
| {{#ifeq: {{#invoke:Str|left||9}}
| category:
| FEHLER: Ohne Category: angeben!}}}}Vorlage:Wikidata-Registrierung
Einzelnachweise
<references />
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Archiv-URL
- Wikipedia:Vorlagenfehler/Parameter:URL
- Wikipedia:Vorlagenfehler/Parameter:Linktext
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Linktext fehlt
- Seiten mit defekten Dateilinks
- Wikipedia:Vorlagenfehler/Schwesterprojekt
- Einplatinencomputer
- Freie Hardware
- Freie Software