]> Repositories - hackapet/Adafruit_Blinka.git/blobdiff - src/adafruit_blinka/agnostic/__init__.py
Agnostic now a package. Interactive testing now relies on monotonic. time now under...
[hackapet/Adafruit_Blinka.git] / src / adafruit_blinka / agnostic / __init__.py
diff --git a/src/adafruit_blinka/agnostic/__init__.py b/src/adafruit_blinka/agnostic/__init__.py
new file mode 100644 (file)
index 0000000..85670bf
--- /dev/null
@@ -0,0 +1,31 @@
+"""Allows useful indirection to test Pin naming logic by switching platform in testing
+    or provide bootstrapping logic for board identification where auto-detection is not
+    feasible (e.g. multiple ESP8266 boards architecturally identical). Once runtime
+    environment is established, can choose various routes to make available and re-export
+    common modules and operations, depending on platform support
+"""
+import gc
+import sys
+gc.collect()
+
+try:
+    microcontroller = sys.platform
+except:
+    microcontroller = None
+
+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"
+
+implementation = sys.implementation.name
+if implementation == "micropython":
+    from utime import sleep
+elif implementation == "circuitpython":
+    from time import sleep
+gc.collect()