Created
September 14, 2021 22:20
-
-
Save anecdata/8406efc94533ec9cf58760cd7f9f2da9 to your computer and use it in GitHub Desktop.
CircuitPython Issue #5305 "minimum" reproducible example #2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import struct | |
import board | |
import busio | |
import microcontroller | |
import supervisor | |
import os | |
import gc | |
import time | |
import random | |
import rtc | |
from digitalio import DigitalInOut, Direction, Pull | |
from analogio import AnalogIn | |
import storage | |
import terminalio | |
import displayio | |
import espidf | |
import adafruit_adt7410 | |
import adafruit_bme280 | |
import adafruit_bus_device | |
import adafruit_ds3231 | |
import adafruit_htu21d | |
import adafruit_lis3dh | |
import adafruit_ms8607 | |
import adafruit_register | |
import adafruit_sht4x | |
import simpleio | |
import adafruit_ahtx0 | |
import adafruit_bme680 | |
import adafruit_dht | |
import adafruit_framebuf | |
import adafruit_htu31d | |
import adafruit_lps35hw | |
import adafruit_pcf8523 | |
import adafruit_requests | |
import adafruit_shtc3 | |
import adafruit_am2320 | |
import adafruit_bmp280 | |
import adafruit_dotstar | |
import adafruit_ht16k33 | |
import adafruit_mcp9808 | |
import adafruit_pct2075 | |
import adafruit_sgp30 | |
import adafruit_si7021 | |
import adafruit_bh1750 | |
import adafruit_bmp3xx | |
import adafruit_dps310 | |
import adafruit_hts221 | |
import adafruit_lc709203f | |
import adafruit_mpu6050 | |
import adafruit_pm25 | |
import adafruit_sht31d | |
import adafruit_tmp117 | |
def mem(): | |
mem = {} | |
mem["gc_free"] = gc.mem_free() | |
mem["idf_total"] = str(espidf.heap_caps_get_total_size()) | |
mem["idf_free"] = str(espidf.heap_caps_get_free_size()) | |
mem["idf_largest"] = str(espidf.heap_caps_get_largest_free_block()) | |
return mem | |
# print after serial is available | |
start = time.monotonic_ns() | |
while not supervisor.runtime.serial_connected: | |
print(".", end="") | |
print("-"*49) | |
print("serial connected in", (time.monotonic_ns() - start) / 1_000_000_000, "seconds") | |
print("-"*49) | |
print("Reload...", mem()) | |
print("\nboot_out.txt:") | |
with open("/boot_out.txt", "r") as f: | |
line = f.readline() | |
while line != "": | |
print(line, end="") | |
line = f.readline() | |
previous_traceback = supervisor.get_previous_traceback() | |
if not previous_traceback: | |
previous_traceback = repr(previous_traceback) # None | |
print("\nTraceback:") | |
print(previous_traceback) | |
print("\nReset Reason:", microcontroller.cpu.reset_reason) | |
print("Run Reason:", supervisor.runtime.run_reason) | |
try: | |
print("NVM:", len(microcontroller.nvm), microcontroller.nvm[0]) | |
except TypeError as e: | |
print("NVM:", e) | |
try: | |
import alarm | |
print("Sleep Memory:", len(alarm.sleep_memory), alarm.sleep_memory[0]) | |
except ImportError as e: | |
print("Sleep Memory:", e) | |
print("CPU UID:", "".join("%x" % x for x in microcontroller.cpu.uid)) | |
for _ in os.listdir(): | |
# adafruit-circuitpython-bundle-6.x-mpy-20210827 | |
if "-bundle-" in _: | |
cp_lib_bundle = _ | |
print(cp_lib_bundle) | |
led = None | |
try: | |
led = DigitalInOut(board.LED) | |
except: | |
print("LED exception") | |
if led: | |
led.switch_to_output(False) | |
print("-"*49) | |
print("Storage...", mem()) | |
cirpyname = storage.getmount("/").label | |
print(cirpyname, os.getcwd(), os.listdir()) | |
print(" ", os.statvfs("/")) | |
print(" ", os.stat("/")) | |
print("-"*49) | |
print("-"*49) | |
loop = 1 | |
while True: | |
print(loop, time.monotonic(), mem()) | |
if led: | |
led.value = not led.value | |
buf = [] | |
for _ in range(10, 20): | |
x = bytearray(2 ** _) | |
buf.append(x) | |
print(gc.mem_free(), end=" ") | |
print() | |
gc.collect() | |
time.sleep(1) | |
loop += 1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
On the hunch that code bulk can be a contributor, drastically simplified the code, but imported the
.py
versions of a ton of libraries to stress the compilation to bytecodes/Issue conditions:
boot.py
file is present (can be empty).py
format>>>
REPL