Diese Woche kamen die Platinen endlich vom Fertiger. Leider fehlt noch ein Bauteil für den Aufbau. Aber ich habe das ganze schon mal provisorisch zusammengesteckt um ein „Vorab“ Bild zu machen:
Weitere Platinen sind unterwegs …
Das Projekt steht nicht still. In diesem Moment sind zwei, bzw. drei Platinentypen vom Fertiger in China zu mir unterwegs. Darin enthalten:
Die Prototypen für den M0dularis+ Controller und eine Top-Platine, sowie eine Abdeckung/Blende für das Gehäuse, passend zur Top-Platine:
Parallel warte ich noch auf die Lieferung der vielen Einzelteile.
Reflow Ofen: Läuft ….
Wie schon in einem meiner letzten Artikel erwähnt, bin ich dabei einen DIY Reflow-Ofen zu bauen. Die Platinen liegen schon eine Weile hier, und meine ist mittlerweile bereits bestückt, programmiert und eingebaut:
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
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:
- Sicherheitskopie der .brd Datei erstellen. z.B. meinboard_panelize.brd
- Diese File öffnen
- Das ULP Script „panelize.ulp“ ausführen.
- Alles markieren und kopieren.
- 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?)