Krolyxon
Commit 360d2d2

Branches

Tags

Refs →

orion-rffirmwarefirmware.ino

128 lines · 2.2 KB

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