diff options
Diffstat (limited to 'src-arduino/main.cpp')
| -rw-r--r-- | src-arduino/main.cpp | 125 |
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(); } |
