From f34b1e2fbd94bcc8d0ee2e2e2e43e214d0b329a1 Mon Sep 17 00:00:00 2001 From: krolyxon Date: Mon, 11 May 2026 14:01:44 +0530 Subject: Migrate to PlatformIO Now since i have been able to make PSRAM working with platformio, i don't have to use this shitty Arduino-IDE anymore which does not even allow me to use subfolders like a normal programmer would do --- src/main.cpp | 142 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 src/main.cpp (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..08d18a4 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,142 @@ +#include +#include +#include + +#include +#include +#include "libs/BleMouse.h" + +#include +#include + +#include "libs/ELECHOUSE_CC1101_SRC_DRV.h" + +#include +#include + +#include +#include +#include +#include + + +#include "ui/display.h" +#include "buttons.h" +#include "ui/menu.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