Skip to content

Instantly share code, notes, and snippets.

@anecdata
Last active November 14, 2023 04:14
Show Gist options
  • Select an option

  • Save anecdata/b3bd4f1fb98c29296de458066399bdf6 to your computer and use it in GitHub Desktop.

Select an option

Save anecdata/b3bd4f1fb98c29296de458066399bdf6 to your computer and use it in GitHub Desktop.
repl.py
# SPDX-FileCopyrightText: 2023 anecdata
#
# SPDX-License-Identifier: Unlicense
import time
import supervisor
import microcontroller
import os
import sys
import board
import storage
import gc
__version__ = "0.3.1"
print(f"\nTIME")
print(f"rtc: {time.localtime()}")
print(f"s: {time.monotonic()}")
try:
print(f"ns: {time.monotonic_ns()}")
except:
print(f"ns: {type(e).__name__}: {e.args}")
print(f"ms: {supervisor.ticks_ms()}")
print(f"\nBOARD")
print(f"Name: {os.uname().machine}")
uid = ''.join('%02X' % _ for _ in microcontroller.cpu.uid)
print(f"CPU UID: {uid}")
try:
for cpu in microcontroller.cpus:
print(f"temp[{microcontroller.cpus.index(cpu)}]: {microcontroller.cpus[microcontroller.cpus.index(cpu)].temperature} °C")
print(f"freq[{microcontroller.cpus.index(cpu)}]: {microcontroller.cpus[microcontroller.cpus.index(cpu)].frequency} Hz")
except:
print(f"temp: {microcontroller.cpu.temperature} °C")
print(f"freq: {microcontroller.cpu.frequency} Hz")
print(f"Platform: {sys.platform}")
print(f"board_id: {board.board_id}")
print(f"\nFLASH")
print(f"Volume: {storage.getmount("/").label}")
print(f"statvfs: {os.statvfs("/")}")
print(f"\nMEMORY")
try:
import espidf
print(f"Total PSRAM (CP heap + espidf): {espidf.get_total_psram():7}")
print(f"Reserved PSRAM (espidf): {espidf.get_reserved_psram():7}")
except Exception as e:
print(f"espidf: {type(e).__name__}: {e.args}")
try:
print(f"C Stack: {supervisor.runtime.next_stack_limit:7}")
except Exception as e:
print(f"C Stack: {type(e).__name__}: {e.args}")
try:
print(f"Py Stack: {os.getenv('CIRCUITPY_PYSTACK_SIZE'):7}")
except Exception as e:
print(f"Py Stack: {type(e).__name__}: {e.args}")
print(f"Free (CP heap) memory: {gc.mem_free():7}")
try:
print(f"CP heap start size: {os.getenv('CIRCUITPY_HEAP_START_SIZE'):7}")
except Exception as e:
print(f"CP heap start size: {type(e).__name__}: {e.args}")
try:
print(f"Total espidf memory: {espidf.heap_caps_get_total_size():7}")
try:
print(f"PSRAM espidf memory: {os.getenv('CIRCUITPY_RESERVED_PSRAM'):7}")
except Exception as e:
print(f"PSRAM espidf memory: {type(e).__name__}: {e.args}")
print(f"Free espidf memory: {espidf.heap_caps_get_free_size():7}")
print(f"Largest espidf free memory block: {espidf.heap_caps_get_largest_free_block():7}")
except Exception as e:
print(f"espidf: {type(e).__name__}: {e.args}")
try:
print(f"NVM: {len(microcontroller.nvm):7}")
except Exception as e:
print(f"NVM: {type(e).__name__}: {e.args}")
try:
import alarm
print(f"Sleep Memory: {len(alarm.sleep_memory):7}")
except Exception as e:
print(f"Sleep Memory: {type(e).__name__}: {e.args}")
print(f"\nPYTHON")
print(f"Python: {sys.version}")
print(f"Implementation: {sys.implementation}")
print(f"\nWIFI")
try:
import wifi
mac = ':'.join('%02X' % _ for _ in wifi.radio.mac_address)
print(f"MAC address: {mac}")
print(f"hostname: {wifi.radio.hostname}")
print(f"{wifi.radio.ap_active=}")
print(f"{wifi.radio.ipv4_address_ap=}")
print(f"{wifi.radio.connected=}")
if not wifi.radio.ipv4_address:
print(f"{wifi.radio.ipv4_address=}")
else:
print(f"IPv4 address: {wifi.radio.ipv4_address}")
print(f"Subnet: {wifi.radio.ipv4_subnet}")
print(f"Gateway: {wifi.radio.ipv4_gateway}")
print(f"DNS: {wifi.radio.ipv4_dns}")
try:
print(f"AP RSSI: {wifi.radio.ap_info.rssi}")
print(f"AP SSID: {wifi.radio.ap_info.ssid}")
bssid = ':'.join('%02X' % _ for _ in wifi.radio.ap_info.bssid)
print(f"AP BSSID: {bssid}")
print(f"AP authmode: {wifi.radio.ap_info.authmode}")
print(f"AP channel: {wifi.radio.ap_info.channel}")
print(f"AP country: {wifi.radio.ap_info.country}")
except Exception as e:
print(f"ap_info: {type(e).__name__}: {e.args}")
except Exception as e:
print(f"wifi: {type(e).__name__}: {e.args}")
print(f"\nmDNS")
try:
import mdns
server = mdns.Server(wifi.radio)
print(f"mDNS hostname: {server.hostname}")
print(f"mDNS instance name: {server.instance_name}")
except Exception as e:
print(f"mDNS: {type(e).__name__}: {e.args}")
print(f"\nRUN")
print(f"Safe Mode Reason {repr(supervisor.runtime.safe_mode_reason)}")
print(f"Reset Reason {repr(microcontroller.cpu.reset_reason)}")
print(f"Run Reason {repr(supervisor.runtime.run_reason)}")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment