Compare commits

..

12 Commits

Author SHA1 Message Date
fb07967c4c Merge pull request 'dev' (#15) from dev into main
Reviewed-on: #15
2026-01-22 22:26:18 +00:00
6ade2c2dc6 Merge pull request 'dev' (#14) from dev into main
Reviewed-on: #14
2026-01-09 19:21:14 +00:00
b7f2978e66 Merge pull request 'Update README.md' (#13) from dev into main
Reviewed-on: #13
2025-12-19 22:47:39 +00:00
98a1e9c466 Merge pull request 'dev' (#12) from dev into main
Reviewed-on: #12
2025-12-19 22:45:12 +00:00
60384d4367 Merge pull request 'dev' (#11) from dev into main
Reviewed-on: Arcmyx/pynamics-pybricks-utils#11
2025-12-11 14:29:29 +00:00
a91e79a02a Merge pull request 'dev' (#10) from dev into main
Reviewed-on: Arcmyx/pynamics-pybricks-utils#10
2025-12-11 14:27:04 +00:00
ffd89e5698 Update README.md 2025-12-09 00:12:35 +00:00
17db936432 Merge pull request 'dev' (#9) from dev into main
Reviewed-on: Arcmyx/pynamics-pybricks-utils#9
2025-12-09 00:10:54 +00:00
d3a740e705 Merge pull request 'dev' (#7) from dev into main
Reviewed-on: Arcmyx/pybricks-utils#7
2025-12-08 17:04:25 +00:00
960fd598c9 Merge pull request 'dev' (#5) from dev into main
Reviewed-on: Arcmyx/pybricks-utils#5
2025-12-08 14:21:45 +00:00
f3460290e5 Merge pull request 'Update utils/BatteryDiagnostics.py' (#3) from dev into main
Reviewed-on: Arcmyx/pybricks-utils#3
2025-12-07 21:49:05 +00:00
345da15b22 Merge pull request 'dev' (#2) from dev into main
Reviewed-on: Arcmyx/pybricks-utils#2
2025-12-07 21:31:02 +00:00

View File

@@ -1,42 +1,11 @@
import usys
import micropython
from pybricks import version
class MicroPythonDiagnostics:
def __init__(self, hub):
pass
def printVersionDiagnostics():
print("[Hub Diagnostics - MicroPython - Version] Hub version information:", version)
print("[Hub Diagnostics - MicroPython - Version] MicroPython version:", usys.version)
print("[Hub Diagnostics - MicroPython - Version] Pybricks version information:", usys.version_info)
print("[Hub Diagnostics - MicroPython - Version] MicroPython information:", usys.implementation)
def performMemoryDiagnostics():
print("[Hub Diagnostics - MicroPython - Memory] Memory information (retrieved from the MicroPython environment):")
micropython.mem_info(1)
print("[Hub Diagnostics - MicroPython - Memory] Testing heap lock and unlock.")
print("[Hub Diagnostics - MicroPython - Memory] Allocating memory while heap is unlocked:")
try:
x = 5000
print("[Hub Diagnostics - MicroPython - Memory] [SUCCESS] There was no MemoryError raised. The value of the new variable x is", x)
except MemoryError:
print("[Hub Diagnostics - MicroPython - Memory] [FAIL] Allocation failed. Your memory may be faulty.")
print("[Hub Diagnostics - MicroPython - Memory] Locking the heap:")
micropython.heap_lock()
print("[Hub Diagnostics - MicroPython - Memory] Heap was locked. Attempting to allocate memory (this should fail):")
try:
y = 10000
print("[Hub Diagnostics - MicroPython - Memory] [FAIL] There was no MemoryError raised. Heap lock failed.")
except MemoryError:
print("[Hub Diagnostics - MicroPython - Memory] [SUCCESS] Allocation failed. Test successful. The heap was successfully locked.")
# Attempt to add gc to this for memory diagnostics, in addition test machine.soft_reset() and add that first to reset the heap.
print("[Hub Diagnostics - MicroPython - Memory] Unlocking the heap:")
micropython.heap_unlock()
print("[Hub Diagnostics - MicroPython - Memory] Heap was unlocked. Attempting to allocate memory (this should succeed):")
try:
z = 17000
print("[Hub Diagnostics - MicroPython - Memory] [SUCCESS] There was no MemoryError raised. The value of the new variable y is", x)
except MemoryError:
print("[Hub Diagnostics - MicroPython - Memory] [FAIL] Allocation failed. The heap failed to unlock.")
def printAll():
printVersionDiagnostics()
performMemoryDiagnostics()
print("[Hub Diagnostics - MicroPython] Hub version information:", version)
print("[Hub Diagnostics - MicroPython] MicroPython version:", usys.version)
print("[Hub Diagnostics - MicroPython] Pybricks version information:", usys.version_info)
print("[Hub Diagnostics - MicroPython] MicroPython information:", usys.implementation)