Last active
November 14, 2023 04:14
-
-
Save anecdata/b3bd4f1fb98c29296de458066399bdf6 to your computer and use it in GitHub Desktop.
repl.py
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
| # 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