Die Qual der Wahl: SAMD21, 32U4 oder doch ESP8266

Da immer wieder die Frage „Welchen µC einsetzen?“ kommt, hier ein kurzer Vergleich:

SAMD21 32U4 ESP8266/ESP12
Bezeichnung ATSAMD21G18A ATMEGA32U4 ESP8266EX
RAM 32KB 2.5KB  64KB
ROM Flash 256KB ROM 32KB, EEPROM 1k Flash 4MB
GPIOs 38 20 16
UARTs bis zu 6 1 2*
ADC 14 12 1
Taktfrequenz 48MHz@3.3V 8MHz@3.3V / 16MHz@5V 80Mhz@3.3V
Stromverbrauch Blinksketch 20.5mA 15.4mA 20.3mA**

* ESP hat zwar 2x UARTs aber der 2. hat nur TX. (GPIO2).
** WLAN aus. Beim Start ca. 300mA für 100ms

Der ESP8266 hat WLAN, aber dadurch wird auch mehr Strom verbraucht. Sogar mit ausgeschaltetem WLAN braucht er beim starten kurzzeitig ca 100mA, was dazu führt, dass er versorgt durch den KNX-Transceiver nicht starten kann, da nicht so viel Strom zur Verfügung steht. Für die Anwendungen mit externer Stromversorgung ist der ESP8266 sehr interessant, da die Sketches über OverTheAir-Update (also über die WLAN Verbindung) aktualisiert werden können.

Der 32U4 wird im Arduino Leonardo, Micro und etc. verwendet. USB Support ist vorhanden, was einfache Firmware-Updates erlaubt. Allerdings hat der 32u4 – verglichen mit SAMD – weniger Interrupts und nur einen UART.

SAMD21 ist ein 32bit ARM Cortex M0+ Mikrocontroller. Dieser findet Einsatz im Arduino Zero/M0. Er hat bis zu 6 UARTs, die man an unterschiedliche GPIOs legen kann. USB ist auch on-board. Viele Interrupts, 3x PWM Timer mit bis zu 8x PWM-Pins möglich (+ 4x PWM Pins sind über zusätzliche „nicht PWM-Timer“ möglich), 12bit ADC und und und…

Damit hat man nun nach wie vr die Qual der Wahl. Aber dank dieser Übersicht kann man sich ein erstes Bild machen wohin die Reise in Zukunft gehen kann/soll.

KONNEKTING M0dularis+

Nachdem mein letzter Versuch einen Controller für die Hutschiene zu bauen leider fehlgeschlagen ist (bzw. sich Anforderung und Umsetzung nicht vereinen ließen), habe ich einen neuen Versuch gestartet:

Wieder ist die Grundidee:

  • Möglichst leicht zu löten
  • Modular und Flexibel
M0dularis+ Platine
Ein recht aktueller Entwurf der Controllerplatine

„KONNEKTING M0dularis+“ weiterlesen

Auf dem Weg zum eigenen Reflow-Ofen

Damit das löten künftiger Platinen einfacher wird (SMD Teile werden ja nicht größer, eher kleiner), bin ich am basteln eines Reflow-Ofens. Natürlich keiner in „Industrie-Größe“, eher „Schreibtisch-Größe“. Ausgangsquelle ist ein normaler Mini-Backofen, wie man ihn überall (auch bei ebay.de) für wenig Geld findet.

Natürlich kann man den nicht einfach so „out of the box“ verwenden, sondern benötigt eine Steuerung. Die Platine habe ich nach einer im Netz gefundenen Vorlage bereits entworfen:

Und auch schon zur Fertigung in Auftrag gegeben. Und heute Nacht kam die Versandmitteilung per Foto-Beweis:

In den nächsten 2 Wochen wird die Platine dann eintreffen. Zeit die Bauteile zu bestellen …

Panelizing mit Eagle

Wenn man ein und das selbe Board-Layout mehrfach in einer .brd Datei haben möchte (um z.B. bei einem PCB Hersteller in einem 10x10cm Raster leicht mehrere Platinen zu bekommen), dann geht man am besten wie folgt vor:

  1. Sicherheitskopie der .brd Datei erstellen. z.B. meinboard_panelize.brd
  2. Diese File öffnen
  3. Das ULP Script „panelize.ulp“ ausführen.
  4. Alles markieren  und kopieren.
  5. Kopie 1..n mal einfügen und ausrichten

Boards trennen

Viele PCB Hersteller verlangen extra Gebühren wenn man zwischen den Boards einen „V-Cut“ (eine V-förmige Fräsung zum leichten auseinander brechen/separieren der einzelnen Boards). Hintergrund ist wohl der, dass man einen V-Cut nicht in Eagle vorgeben/definieren kann und ein Mitarbeiter muss auf die Milling-Linien (die mal ein V-Cut werden sollen) manuell einen V-Cut parametrieren/einrichten.

Was hingegen normalerweise nichts kostet, ist „Milling“ an sich. Also Ausfräsungen. Die kann man sich recht einfach zu nutze machen. Einfach eine Trennlinie im Layer „Milling“ einzeichnen und dieser den Style „longdash“ oder „dashdot“ geben. Dann kann man später entlag dieser Linie mit einer kleinen Bügel-Eisensäge die nicht gefrästen Verbindungen trennen und so die Boards separieren. Sind die Boards nicht zu klein und fein, kann man entlang dieser Linie die Boards auch vorsichtig auseinander brechen. Es bleiben recht kurze Stummel stehen, die man mit einer Feile ratz-ratz beseitigen kann.

 

beta5: aktueller Stand

Aktuell pausiert die beta5 Entwicklung zugunsten von diversen Hardwareprojekten ein wenig.

Für beta5 wird, wie bereits in anderen Kanälen angekündigt, der Gerätespeicher (EEPROM, …) neu aufgeteilt. Und in diesem Zug ändert sich auch das Programmier-Protokoll. Für den Benutzer wird das eine weitgehend unsichtbare Änderung sein. Intern ist es aber ein doch recht großer Umbau. Und dieser wird seine Zeit in Anspruch nehmen…

Wenn aber jemand Feedback zu beta4 geben möchte: Nur her damit … Wir sind gespannt.

Release BETA 4 

Hallo zusammen,

nach fast genau 6 Monaten Entwicklungszeit und zahlreichen Codeänderungen, stellen wir Euch stolz KONNEKTING 1.0.0 Beta4 vor.
Wir sind nun, ohne externen Libs, bei sage und schreibe 12238 (in Worten: Zwölftausendzweihundertachtunddreißig) Zeilen Code angelangt. Dies verteilt sich auf die Sprachen wie folgt:

java: 8090 (66.11%)
cpp: 2824 (23.08%)
xml: 1010 (8.25%)
sh: 263 (2.15%)
ansic: 51 (0.42%)

(bin eben selbst erschrocken als ich das hab ausrechnen lassen… *Hammer*, oder?)

„Release BETA 4 “ weiterlesen