undefinedSeit ich meinen kleinen Hobbyraum umgestellt hab, ist kein Platz mehr für zwei Rechner (Musik und Basteln). Daher muß ein Rechner jetzt beides tun und der Musikrechner soll mir auch das Programmieren vom Teensy ermöglichen. Bisher hatte ich mit Sloeber Erfolg, aber mit der aktuellen Version hat es nicht mehr geklappt. Daher hab ich es mit VSCode unter Windows 10 versucht. Hier hab ich für mich und alle Bastelkollegen mal aufgeschrieben, wie und was ich alles installiert und konfiguriert hab. Danke an Dennis für die Unterstützung :-)

Weiter lesen? Klicke die Headline um den ganzen Artikel zu sehen!

Arduino IDE

Zuerst, und auch um festzustellen ob es "prinzipiell" geht, hab ich die Arduino IDE installiert (Standard-Pfade). Zum jetzigen Zeitpunkt war das Version 1.8.10. Gleich danach habe ich Teensyduino installiert (Version 1.48). Das Setup hat auch den Arduino-Ordner direkt erkannt und ich musste nur durchklicken.

Beim Start der Arduino IDE kann ich den Teensy auswählen, und das Blink-Example kompiliert perfekt und lässt sich auch auf den Teensy 3.2 aufspielen (USB hat auf COM1 geroutet, was perfekt funktioniert hat).

VSCode und IoT

Jetzt VSCode runterladen und installieren. Leider habe ich es nicht geschafft die Arduino Extension von Microsoft auf den Teensy zu aktualisieren. Daher hab ich die wieder entfernt (IDE neu starten!).

Daher bin ich auf PlatformIO ausgewichen und hab direkt zwei VSCode-Extensions installiert:

Allerdings verlangt das auch die Installation von Python, damit man PlatformIO installieren kann. Also so vorgehen:

  1. Zuerst Python herunterladen und installieren (Default).
  2. Dann die Komandozeile öffnen (cmd) und
    pip install -U platformio
    ausführen.

Damit wäre alles installiert was es braucht. Die Konfiguration von VSCode ist dann aber doch nochmal eine Herausforderung.

Konfiguration

Die Konfiguration meiner c_cpp_properties.json schaute am Ende so aus:

{
	"env": {
		"ArduinoPath": "C:/Program Files (x86)/Arduino",
		"TeensyPath": "${ArduinoPath}/hardware/teensy",
		"CompilerPath": "${ArduinoPath}/hardware/tools/arm/bin/arm-none-eabi-gcc.exe",
		"TeensyCorePath": "${TeensyPath}/avr/cores/teensy3"
	},
	"configurations": [{
		"name": "Teensy",
		"includePath": [
			"${TeensyPath}/avr/libraries/**",
			"${workspaceFolder}/lib/**",
			"${workspaceFolder}/src/**",
			"${TeensyCorePath}/**"
		],
		"defines": [
			"_DEBUG",
			"UNICODE",
			"_UNICODE",
			"USB_SERIAL",
			"__MK20DX256__",
			"F_CPU=96000000"
		],
		"compilerPath": "${CompilerPath}",
		"intelliSenseMode": "gcc-x64"
	}],
	"version": 4
}

Natürlich ist der Pfad für ArduinoPath jeweils auf die aktuelle Installation anzupassen. Dadurch kann der Lexer und Syntax-Highlighter jedenfalls auf den richtigen Satz zugreifen.

PlatformIO muß noch passend eingerichtet werden. Dadurch im Projektverzeichnis (neuer Folder) folgendes aufrufen:

platformio init --board teensy31

Um die verfügbaren Boards zu listen, kann man auch

platformio boards

auführen. Das legt die passende Verzeichnisstruktur an und man kann loslegen.

Die platformio.ini hat dann diesen Inhalt:

[env:teensy31]
platform = teensy
board = teensy31
framework = arduino
; Serial Monitor options
monitor_speed = 9600
monitor_flags =

Ausführen und Teensy-Loader

Mittels Strg + Alt+ U kann man dann schon compilieren und auf den Teensy laden. Mit Strg + Alt + A danach gleich die Serial Console öffnen lassen. Möglicherweise muss auf dem Teensy noch der Taster gedrückt werden (zumindest beim ersten Mal).

Ich wollte allerdings gerne F5 nutzen, aber bisher hab ich das nicht geschafft. VSCode hat keinen Launcher mit dem ich einfach

platformio run --target upload
platformio device monitor --baud 9600

ausführen kann, ohne gleich einen Debugger zu starten. Also muß es mit Strg+Alt+U reichen :-)

Über einen Tipp für eine launch.json würde ich mich sehr freuen.