-board = None
-if microcontroller is not None:
-    if microcontroller == "esp8266":  # TODO more conservative board-guessing
-        board = "feather_huzzah"
-    elif microcontroller == "samd21":
-        board = "feather_m0_express"
-    elif microcontroller == "pyboard":
-        microcontroller = "stm32"
-        board = "pyboard"
+board_id = None
+
+if platform is not None:
+    if platform == "esp8266":  # TODO more conservative board-guessing
+        board_id = "feather_huzzah"
+    elif platform == "samd21":
+        board_id = "feather_m0_express"
+    elif platform == "pyboard":
+        platform = "stm32"
+        board_id = "pyboard"
+    elif platform == "linux":
+        from Adafruit_GPIO import Platform
+        if Platform.platform_detect() == Platform.RASPBERRY_PI:
+            if Platform.pi_version() == 1:
+                board_id = "raspi_1"
+            elif Platform.pi_version() == 2:
+                board_id = "raspi_2"
+            elif Platform.pi_version() == 3:
+                board_id = "raspi_3"
+        elif Platform.platform_detect() == Platform.BEAGLEBONE_BLACK:
+            board_id = "beaglebone_black"