aboutsummaryrefslogtreecommitdiff
path: root/src-arduino/main.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/main.cpp
parent1f800b74329d4f8b1511b4cf2a0d031439e1038d (diff)
restructure to use rust source tree primarily
Diffstat (limited to 'src-arduino/main.cpp')
-rw-r--r--src-arduino/main.cpp125
1 files changed, 125 insertions, 0 deletions
diff --git a/src-arduino/main.cpp b/src-arduino/main.cpp
new file mode 100644
index 0000000..a82dd59
--- /dev/null
+++ b/src-arduino/main.cpp
@@ -0,0 +1,125 @@
+#include <Arduino.h>
+#include <USB.h>
+#include <USBHIDKeyboard.h>
+
+#include "BleMouse.h"
+#include <BLEDevice.h>
+#include <BLEScan.h>
+
+#include <RF24.h>
+#include <nRF24L01.h>
+
+#include "ELECHOUSE_CC1101_SRC_DRV.h"
+
+#include <WiFi.h>
+#include <esp_wifi.h>
+
+#include <SPI.h>
+#include <esp_chip_info.h>
+#include <esp_heap_caps.h>
+#include <esp_system.h>
+
+#include "ui/display.h"
+#include "ui/menu.h"
+#include "utils/buttons.h"
+
+#include "config.h"
+#include "rf/cc1101.h"
+
+// ================= USB HID =================
+USBHIDKeyboard Keyboard;
+
+// ===== BLE MOUSE =====
+BleMouse bleMouse("Orion-RF", "Orion-RF", 100);
+
+RF24 radio1(CE1_PIN, CSN1_PIN);
+RF24 radio2(CE2_PIN, CSN2_PIN);
+SPIClass *RADIO_SPI;
+
+void deactivateNRF1() {
+ digitalWrite(CSN1_PIN, HIGH);
+ digitalWrite(CE1_PIN, LOW);
+}
+
+void deactivateNRF2() {
+ digitalWrite(CSN2_PIN, HIGH);
+ digitalWrite(CE2_PIN, LOW);
+}
+
+// ================= SYSTEM INFO =================
+void printSystemUsage() {
+ esp_chip_info_t chip_info;
+
+ esp_chip_info(&chip_info);
+
+ Serial.printf("CPU cores: %d\n", chip_info.cores);
+
+ Serial.printf("Free heap: %d bytes\n",
+ heap_caps_get_free_size(MALLOC_CAP_DEFAULT));
+
+ Serial.printf("PSRAM free: %d bytes\n",
+ heap_caps_get_free_size(MALLOC_CAP_SPIRAM));
+}
+
+void showSplash() {
+ u8g2.clearBuffer();
+
+ u8g2.setFont(u8g2_font_logisoso20_tr); // big font
+ u8g2.drawStr(10, 40, "Orion-RF");
+
+ u8g2.setFont(u8g2_font_5x8_tr); // small subtitle
+ u8g2.drawStr(25, 58, "Initializing...");
+
+ u8g2.sendBuffer();
+
+ delay(1500); // 1.5 sec
+}
+
+// ================= SETUP =================
+void setup() {
+ Serial.begin(115200);
+
+ displayInit();
+ showSplash();
+
+ buttonsInit();
+ menuInit();
+
+ delay(1500);
+
+ USB.begin();
+ Keyboard.begin();
+
+ // NRF SPI safety
+ // pinMode(CSN1_PIN, OUTPUT);
+ // digitalWrite(CSN1_PIN, HIGH);
+
+ // pinMode(CSN2_PIN, OUTPUT);
+ // digitalWrite(CSN2_PIN, HIGH);
+ deactivateNRF1();
+ deactivateNRF2();
+
+ RADIO_SPI = new SPIClass(FSPI);
+ RADIO_SPI->begin(NRF_SCK, NRF_MISO, NRF_MOSI);
+
+ // ===== CC1101 SPI INIT =====
+ // SPI.begin(
+ // cc1101_SCK,
+ // cc1101_MISO,
+ // cc1101_MOSI,
+ // CC1101_CS
+ //);
+
+ // pinMode(CC1101_CS, OUTPUT);
+ // pinMode(CC1101_2_CS, OUTPUT);
+
+ // digitalWrite(CC1101_CS, HIGH);
+ // digitalWrite(CC1101_2_CS, HIGH);
+
+ printSystemUsage();
+
+ Serial.println("SYSTEM READY");
+}
+
+// ================= LOOP =================
+void loop() { menuLoop(); }