Microcontroller projects

First this page was dedicated to AVR® controller from ATMEL®. The projects were in German and mostly Assembler. In meantime I often use Arduino so other controller that can directly be programmed in Arduino as Cortex-M4 (Teensy3) or ESP8266 (Wemos) are found in new projects. Even as my English isn't perfect I switched the language so more people are able to use the information on these pages (older projects are still in German).

The projects are marked to show there progress:


Kleine USB-Bibliothek für ATMEL®-USB-AVRs® (|||)

Die Kleine USB-Bibliothek in Bascom, C und Assembler wurde erweitert. Sie unterstützt nun die Controller: ATmega32u4, ATmega32u2, AT90USB162 und AT90USB1287, und kann leicht an andere Controller angepasst werden. Interessante und kostengünstige Boards um die Bibliothek zu nutzen sind zum Beispiel das Entwicklungsboard AT90USBKEY von ATMEL mit dem AT90USB1287 und das Mikrocontroller-Board Teensy 2.0 mit dem ATmega32u4.
Die neue Version der Bibliothek lässt sich jetzt besonders leicht einbinden und programmieren. Die Bibliothek existiert in den zwei Varianten: HID (Datentransfer, Tastatur, Maus) und VENDOR (schneller Datentransfer, USB-EIA232).

Teensy2

Kleine USB-HID-Bibliothek (|||)

Die HID-Klasse ermöglicht eine Kommunikation unter Windows ohne spezifische Treiber! Die Übertragungsgeschwindigkeit (64 kByte/s) reicht für die meisten Anwendungen. Für den Datentransfer stehen zwei Endpunkte (Buffer) mit je 64 Byte zur Verfügung, die in festen Zeitabständen (1ms, Interrupt-Transfers) abgefragt werden. Es stehen zusätzlich zur normalen Datenkommunikations-Firmware auch Beispielprogramme zur Emulation einer Maus oder einer Tastatur zur Verfügung.
AT90USBKEY

Kleine (schnelle) USB-VENDOR-Bibliothek (|||)

Will man größere Datenmengen schneller (bis 1216 kByte/s) übertragen, so kann man Bulk-Transfers nutzen. Allerdings ist die Bus-Bandbreite nicht garantiert, so dass diese Lösung für zeitkritische Anwendungen nicht geeignet ist. Am Bus sollten nicht zu viele Geräte angeschlossen sein. Für die Bulk-Transfers wird eine VENDOR-Klasse (herstellerspezifische Klasse) genutzt. Auch hier stehen zwei Endpunkte (Buffer) mit je 64 Byte zur Verfügung. Die Bibliothek kann aber leicht auf bis zu 6 Endpunkte erweitert werden. Die Bibliothek benötigt Treiber unter Windows. Der Zugriff erfolgt über die "libusb" sowohl unter Linux, wie auch unter Windows. Zusätzlich zur normalen Datenkommunikations-Firmware gibt es auch eine experimentelle Firmware zur Emulation einer seriellen Schnittstelle (EIA232).



Creative-Lab IoT-board  (|||)

Everyone is talking about IoT and MQTT. MQTT is a publisher/subscriber protocol and it is quite simple to implement this protocol on two Wemos D1 mini boards (ESP8266) over Wifi. To read the impulse LEDs of my new five smartmeters (who aren't smart at all for the moment), I needed 5 microcontroller interrupts. This was difficult with only Wemos board, because there weren't enough interrupt pins. So I decided to combine the Teensy 2.0 board (mega32u4) with the Wemos-board.
Features:
  • The board can be powered either with the USB mini or the USB micro connector.
  • EIA232 of Teensy or Wemos can be used (selectable with jumper).
  • I2C Bus connector, pull ups if needed (jumper) and header for I2C RTC (DS3231 on photo)
  • 2 EIA485 header if max485 (or 487) is soldered (Wemos or Teensy)
  • Up to 10 Interrupt pins, 9 AD pins, PWM Pins etc.
cl IoT-board



NEW!! Tips and Tricks for Teensy and Wemos

Tips and Tricks for Teensy2 (mega32u4) Tips and Tricks for Wemos D1 mini (pro) (ESP8266)
Arduino: Using Timer1 and 3 in CTC mode, fast PWM, Teensy as I2C slave, ... Using external antenna, Wemos as I2C master with Teensy and MQTT publisher, ...



Experimentierboard MICES2 (|||)

MICES2 Low-Cost-Experimentierboard für AVR-Controller mit folgenden Eigenschaften:
  • Einseitige Platine (200 mm x 150 mm, 11 Drahtbrücken), gut lötbar, Dateien frei verfügbar
  • Versorgung wahlweise über USB oder über externes Netzteil
  • Verbindung der Baugruppen mit Drahtbrücken (oder flexiblen Steckbrücken)
  • Integriertes Programmiergerät (USB, Kompatibel zum AVRISP mk2)
  • 16 LEDs, 4 Taster (davon 2 entprellt), 8 Schalter, 4-stelliges Siebensegmentdisplay
  • Serielle Schnittstelle, I2C-Schnittstelle, 1-Wire-Schnittstelle
  • D/A-Wandler, Mikrofonschaltung, Audio-Verstärker, 2 Potentiometer 0 V -5 V
  • externes EEPROM, externe Echtzeituhr (RTC)
  • Anschlüsse für Matrixtastatur, Schrittmotor (Treiber), LCD
  • Feld mit Lötaugen um die Platine zu erweitern
  • Schrittweiser Ausbau der Platine (beliebige Bestückung)
  • Neben dem ATmega32A kann zusätzlich der für das Programmiergerät verwendete ATmega32U4 in der Schaltung verwendet werden (2 Controller!), zum Beispiel um Daten über USB an den PC zu senden (siehe: Kleine USB-Bibliothek mit dem Teensy 2.0.



Creative-Lab RT soldering station (|||)

A cheap and compact SMD solder station built around a Teensy 2.0. It uses active soldering tips from Weller (RT series) including a heating element and a temperature sensor (standard 3.5 mm jack). The SMD soldering station has a very fast heat up time. RT soldering station



Efficient alarm clock with low electromagnetic radiation,
big display and music player  (|||)

alarm clock Yes I'm getting older! So I needed an alarm clock with bright LEDs to be seen in the night without glasses. Features of the clock:



CO22 "The mobile measurement station" (|||)

Mobile Messstation zum Erfassen von CO2, Temperatur und Luftfeuchtigkeit. Automatisches Logging auf USB-Stick. PC Software um im stationären Betrieb auf dem PC zu loggen und Graphiken zu erstellen. Kommunikation mit dem PC per USB (Teensy2 mit USB-Bibliothek). solar power



Teensylogger (|||)

Teensylogger Der Teensylogger dient dazu den Energiverbrauch eines Einfamilienhauses zu erfassen. Er loggt dazu bis zu 8 S0-Schnittstellen und kann im Schaltschrank eingebaut werden. Die Daten können zum Beispiel im Minutentakt über die serielle Schnittstelle ausgelesen werden. Zusätzlich werden die Daten als Viertelstundenwerte für einen Monat und als Tageswerte für über ein Jahr in einem externen EEprom abgespeichert.



LeafCANlog (|||)

LeafCANlog is a CAN bus (OBD2) logger and display for the EV Nissan Leaf. It's build around an AT90CAN128 and uses a VDrive2 (FTDI) to log on USB-Sticks. LeafCANlog



USBammeter (|| )

USBammeter Das USBammeter misst Spannung, Strom und Leistung am USB-Anschluss und gibt die Daten über ein LCD-Display und zusätzlich über die serielle Schnittstelle aus.



Arduino library for NT7534 in parallel mode (|||)

An Arduino library for displays with an NT7534 chip in parallel mode, like the GTK-281 from GEM-TECH. GTK-281



DIY cellphone hacks (| )

DIY cellphone After showing an article of a DIY cellphone in the German MAKE journal to my eldest girl, we had to build two of them. Soldering was no problem with my new RT soldering station. The purchased LCD Displays where of very poor quality (the PCBs were too thin and bended, and so the display had bad contact). We decided to tweak the phone an use an 128*128 OLED Display. The housing is printed with PLA. The arduino file had to be adapted.



Kyub hacks (|| )

The Kyub is a special MIDI keyboard in the shape of a cube with capacitive sensing and an internal accelerometer based on a Teensy 2.0. More info at kyubmusic.com. Here you find hacks to power the Kyub over MIDI and to connect the Kyub direct to a synth. The software was reprogrammed in assembler. Kyub



Selbstbau USB Programmieradapter (|||)

[AVRISP with Teensy 2.0](png/avrispmk2_teensy.png Unter Windows 7-10 nutzt man besser ein Teensy-Board mit einem ATmega32u4, das mit Software aus dem Lufa-Projekt von Dean Camera programmiert wurde.
[avrispmk2 von Ulli](png/avrispmk2.jpg Das erste Projekt war der AVRISP mkII Klon von Christian Ulrich. Unter Windows XP läuft der Klon sehr gut. Er ist einfach aufzubauen, billig und nutzt einen ATmega8. Das USB-Protokoll ist rein softwaremäßig implementiert.