aboutsummaryrefslogtreecommitdiff
path: root/src-arduino/utils/sysinfo.cpp
diff options
context:
space:
mode:
authorkrolyxon <me@krolyxon.com>2026-06-20 00:24:34 +0530
committerkrolyxon <me@krolyxon.com>2026-06-20 00:24:34 +0530
commit7e4cfad53699fabbecb6696508e5addcffc1b095 (patch)
treeebff581b0989df578c312247e1dad514c956572b /src-arduino/utils/sysinfo.cpp
parent1f800b74329d4f8b1511b4cf2a0d031439e1038d (diff)
restructure to use rust source tree primarily
Diffstat (limited to 'src-arduino/utils/sysinfo.cpp')
-rw-r--r--src-arduino/utils/sysinfo.cpp84
1 files changed, 84 insertions, 0 deletions
diff --git a/src-arduino/utils/sysinfo.cpp b/src-arduino/utils/sysinfo.cpp
new file mode 100644
index 0000000..091ad0f
--- /dev/null
+++ b/src-arduino/utils/sysinfo.cpp
@@ -0,0 +1,84 @@
+#include "ui/display.h"
+#include "buttons.h"
+#include <Arduino.h>
+#include <esp_chip_info.h>
+#include <esp_heap_caps.h>
+
+void runSystemInfoFeature() {
+ esp_chip_info_t chip_info;
+
+ esp_chip_info(&chip_info);
+
+ while (true) {
+ // u8g2.clearBuffer();
+
+ // char buf[32];
+
+ // sprintf(buf, "Cores: %d", chip_info.cores);
+ // u8g2.drawStr(0, 14, buf);
+
+ // sprintf(buf, "Heap: %d",
+ // heap_caps_get_free_size(MALLOC_CAP_DEFAULT));
+ // u8g2.drawStr(0, 28, buf);
+
+ // u8g2.drawStr(0, 60, "BACK to exit");
+
+ // Get RAM info
+ size_t freeHeap = heap_caps_get_free_size(MALLOC_CAP_DEFAULT);
+ size_t totalHeap = heap_caps_get_total_size(MALLOC_CAP_DEFAULT);
+ int ramUsage = 100 - ((freeHeap * 100) / totalHeap);
+
+ // Get Flash info
+ // uint32_t flashSize = spi_flash_get_chip_size();
+ uint32_t flashSize = ESP.getFlashChipSize();
+ uint32_t flashUsed = ESP.getSketchSize();
+ int flashUsage = (flashUsed * 100) / flashSize;
+
+ // Temperature (approx)
+ uint8_t temperature = temperatureRead();
+
+ // Chip info
+ esp_chip_info_t chip_info;
+ esp_chip_info(&chip_info);
+
+ u8g2.clearBuffer();
+ u8g2.setFont(u8g2_font_6x12_tr);
+
+ char buf[32];
+
+ // Box 1 - RAM
+ u8g2.drawFrame(0, 0, 128, 12);
+ sprintf(buf, "RAM: %d%% used", ramUsage);
+ u8g2.drawStr(4, 9, buf);
+
+ // Box 2 - Flash
+ u8g2.drawFrame(0, 12, 128, 12);
+ sprintf(buf, "Flash: %d%% used", flashUsage);
+ u8g2.drawStr(4, 21, buf);
+
+ // Box 3 - Temp (FULL WIDTH now)
+ u8g2.drawFrame(0, 24, 128, 12);
+ sprintf(buf, "Temp: %d C", temperature);
+ u8g2.drawStr(4, 33, buf);
+
+ // Box 4 - Chip info (FULL WIDTH)
+ u8g2.drawFrame(0, 36, 128, 12);
+ sprintf(buf, "Cores: %d Rev: %d", chip_info.cores, chip_info.revision);
+ u8g2.drawStr(4, 45, buf);
+
+ // Box 5 - PSRAM (KB)
+ u8g2.drawFrame(0, 48, 128, 12);
+ sprintf(buf, "PSRAM: %lu KB",
+ heap_caps_get_free_size(MALLOC_CAP_SPIRAM) / 1024);
+ u8g2.drawStr(4, 57, buf);
+
+ u8g2.sendBuffer();
+
+ if (btnBack()) {
+ delay(200);
+ return;
+ }
+
+ delay(100);
+ }
+}