Krolyxon
Commit 58c9c8f

Branches

Tags

Refs →

orion-rfsrcmain.cpp

125 lines · 2.5 KB · C++

1#include <Arduino.h>
2#include <USB.h>
3#include <USBHIDKeyboard.h>
4
5#include "libs/BleMouse.h"
6#include <BLEDevice.h>
7#include <BLEScan.h>
8
9#include <RF24.h>
10#include <nRF24L01.h>
11
12#include "libs/ELECHOUSE_CC1101_SRC_DRV.h"
13
14#include <WiFi.h>
15#include <esp_wifi.h>
16
17#include <SPI.h>
18#include <esp_chip_info.h>
19#include <esp_heap_caps.h>
20#include <esp_system.h>
21
22#include "ui/display.h"
23#include "ui/menu.h"
24#include "utils/buttons.h"
25
26#include "config.h"
27#include "rf/cc1101.h"
28
29// ================= USB HID =================
30USBHIDKeyboard Keyboard;
31
32// ===== BLE MOUSE =====
33BleMouse bleMouse("Orion-RF", "Orion-RF", 100);
34
35RF24 radio1(CE1_PIN, CSN1_PIN);
36RF24 radio2(CE2_PIN, CSN2_PIN);
37SPIClass *RADIO_SPI;
38
39void deactivateNRF1() {
40 digitalWrite(CSN1_PIN, HIGH);
41 digitalWrite(CE1_PIN, LOW);
42}
43
44void deactivateNRF2() {
45 digitalWrite(CSN2_PIN, HIGH);
46 digitalWrite(CE2_PIN, LOW);
47}
48
49// ================= SYSTEM INFO =================
50void printSystemUsage() {
51 esp_chip_info_t chip_info;
52
53 esp_chip_info(&chip_info);
54
55 Serial.printf("CPU cores: %d\n", chip_info.cores);
56
57 Serial.printf("Free heap: %d bytes\n",
58 heap_caps_get_free_size(MALLOC_CAP_DEFAULT));
59
60 Serial.printf("PSRAM free: %d bytes\n",
61 heap_caps_get_free_size(MALLOC_CAP_SPIRAM));
62}
63
64void showSplash() {
65 u8g2.clearBuffer();
66
67 u8g2.setFont(u8g2_font_logisoso20_tr); // big font
68 u8g2.drawStr(10, 40, "Orion-RF");
69
70 u8g2.setFont(u8g2_font_5x8_tr); // small subtitle
71 u8g2.drawStr(25, 58, "Initializing...");
72
73 u8g2.sendBuffer();
74
75 delay(1500); // 1.5 sec
76}
77
78// ================= SETUP =================
79void setup() {
80 Serial.begin(115200);
81
82 displayInit();
83 showSplash();
84
85 buttonsInit();
86 menuInit();
87
88 delay(1500);
89
90 USB.begin();
91 Keyboard.begin();
92
93 // NRF SPI safety
94 // pinMode(CSN1_PIN, OUTPUT);
95 // digitalWrite(CSN1_PIN, HIGH);
96
97 // pinMode(CSN2_PIN, OUTPUT);
98 // digitalWrite(CSN2_PIN, HIGH);
99 deactivateNRF1();
100 deactivateNRF2();
101
102 RADIO_SPI = new SPIClass(FSPI);
103 RADIO_SPI->begin(NRF_SCK, NRF_MISO, NRF_MOSI);
104
105 // ===== CC1101 SPI INIT =====
106 // SPI.begin(
107 // cc1101_SCK,
108 // cc1101_MISO,
109 // cc1101_MOSI,
110 // CC1101_CS
111 //);
112
113 // pinMode(CC1101_CS, OUTPUT);
114 // pinMode(CC1101_2_CS, OUTPUT);
115
116 // digitalWrite(CC1101_CS, HIGH);
117 // digitalWrite(CC1101_2_CS, HIGH);
118
119 printSystemUsage();
120
121 Serial.println("SYSTEM READY");
122}
123
124// ================= LOOP =================
125void loop() { menuLoop(); }