Skip to content

Instantly share code, notes, and snippets.

@anecdata
Last active August 31, 2022 02:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anecdata/62b0968ec61a2c8308016ea6be39f985 to your computer and use it in GitHub Desktop.
Save anecdata/62b0968ec61a2c8308016ea6be39f985 to your computer and use it in GitHub Desktop.
CircuitPython: basic info about a device
print(f"\nBOARD")
import os
print(f"Name: {os.uname().machine}")
import microcontroller
uid = ''.join('%02X' % _ for _ in microcontroller.cpu.uid)
print(f"CPU UID: {uid}")
import sys
print(f"Platform: {sys.platform}")
import board
print(f"board_id: {board.board_id}")
print(f"\nFLASH")
import storage
print(f"Volume: {storage.getmount("/").label}")
print(f"statvfs: {os.statvfs("/")}")
print(f"stat: {os.stat("/")}")
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 TypeError as e:
print(f"espidf: {e}")
import gc
print(f"Free (CP heap) memory: {gc.mem_free():7}")
try:
print(f"Total espidf memory: {espidf.heap_caps_get_total_size():7}")
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 TypeError as e:
print(f"espidf: {e}")
try:
print(f"NVM: {len(microcontroller.nvm):7}")
except TypeError as e:
print(f"NVM: {e}")
try:
import alarm
print(f"Sleep Memory: {len(alarm.sleep_memory):7}")
except TypeError as e:
print(f"Sleep Memory: {e}")
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}")
if wifi.radio.ipv4_address:
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}")
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 TypeError as e:
print(f"wifi: {e}")
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 TypeError as e:
print(f"mDNS: {e}")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment