From 7e4cfad53699fabbecb6696508e5addcffc1b095 Mon Sep 17 00:00:00 2001 From: krolyxon Date: Sat, 20 Jun 2026 00:24:34 +0530 Subject: restructure to use rust source tree primarily --- src-arduino/main.cpp | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 src-arduino/main.cpp (limited to 'src-arduino/main.cpp') 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 +#include +#include + +#include "BleMouse.h" +#include +#include + +#include +#include + +#include "ELECHOUSE_CC1101_SRC_DRV.h" + +#include +#include + +#include +#include +#include +#include + +#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(); } -- cgit v1.2.3