Skip to content

Commit 83ffa20

Browse files
author
Devin Barillari
committed
Add Raw Crsf BackPack Target
# Conflicts: # targets/common.ini
1 parent fb2fc17 commit 83ffa20

File tree

9 files changed

+169
-1
lines changed

9 files changed

+169
-1
lines changed

hardware/targets.json

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -581,5 +581,34 @@
581581
"platform": "esp32-s3"
582582
}
583583
}
584+
},
585+
"raw-crsf": {
586+
"name": "Raw CRSF Backpack",
587+
"aat": {
588+
"esp82": {
589+
"product_name": "Generic ESP8285 / ESP8266 Receiver",
590+
"firmware": "Raw_CRSF_ESP8285_Backpack",
591+
"upload_methods": ["uart", "wifi"],
592+
"platform": "esp8285"
593+
},
594+
"esp32": {
595+
"product_name": "Generic ESP32 Receiver",
596+
"firmware": "Raw_CRSF_ESP32_Backpack",
597+
"upload_methods": ["uart", "wifi"],
598+
"platform": "esp32"
599+
},
600+
"esp32c3": {
601+
"product_name": "Generic ESP32C3 Receiver",
602+
"firmware": "Raw_CRSF_ESP32C3_Backpack",
603+
"upload_methods": ["uart", "wifi"],
604+
"platform": "esp32-c3"
605+
},
606+
"esp32s3": {
607+
"product_name": "Generic ESP32S3 Receiver",
608+
"firmware": "Raw_CRSF_ESP32S3_Backpack",
609+
"upload_methods": ["uart", "wifi"],
610+
"platform": "esp32-s3"
611+
}
612+
}
584613
}
585614
}

platformio.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,4 @@ extra_configs =
1616
targets/rx5808.ini
1717
targets/skyzone.ini
1818
targets/mfd_crossbow.ini
19+
targets/raw_crsf.ini

src/Vrx_main.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@
4343
#include "module_aat.h"
4444
#elif defined(CROSSBOW_BACKPACK)
4545
#include "mfd_crossbow.h"
46+
#elif defined(RAW_CRSF_BACKPACK)
47+
#include "raw_crsf.h"
4648
#endif
4749

4850
/////////// DEFINES ///////////
@@ -124,6 +126,8 @@ VrxBackpackConfig config;
124126
AatModule vrxModule(Serial);
125127
#elif defined(CROSSBOW_BACKPACK)
126128
MFDCrossbow vrxModule(&Serial);
129+
#elif defined(RAW_CRSF_BACKPACK)
130+
CRSFBackPack vrxModule(&Serial);
127131
#endif
128132

129133
/////////// FUNCTION DEFS ///////////
@@ -259,6 +263,7 @@ void ProcessMSPPacket(mspPacket_t *packet)
259263
DBGLN("CRSF_TLM packet too short")
260264
break;
261265
}
266+
vrxModule.SendRawTelemetry(packet->payload, packet->payloadSize);
262267
switch (packet->payload[2]) {
263268
case CRSF_FRAMETYPE_GPS:
264269
vrxModule.SendGpsTelemetry((crsf_packet_gps_t *)packet->payload);

src/module_base.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,11 @@ ModuleBase::SendBatteryTelemetry(uint8_t *rawCrsfPacket)
5959
{
6060
}
6161

62+
void
63+
ModuleBase::SendRawTelemetry(uint8_t *rawCrsfPacket, uint16_t size)
64+
{
65+
}
66+
6267
void
6368
ModuleBase::Loop(uint32_t now)
6469
{

src/module_base.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ class ModuleBase
1616
void SendLinkTelemetry(uint8_t *rawCrsfPacket);
1717
void SendBatteryTelemetry(uint8_t *rawCrsfPacket);
1818
void SendGpsTelemetry(crsf_packet_gps_t *packet) {}
19+
void SendRawTelemetry(uint8_t *rawCrsfPacket, uint16_t size);
1920
void Loop(uint32_t now);
2021
};
2122

src/raw_crsf.cpp

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#include "raw_crsf.h"
2+
3+
CRSFBackPack::CRSFBackPack(HardwareSerial *port) :
4+
m_port(port),
5+
lastSent(0),
6+
lastUpdated(0)
7+
{
8+
}
9+
10+
void
11+
CRSFBackPack::SendRawTelemetry(uint8_t *rawCrsfPacket, uint16_t size)
12+
{
13+
lastUpdated = millis();
14+
m_port->write(rawCrsfPacket, size);
15+
}
16+
17+
void
18+
CRSFBackPack::Loop(uint32_t now)
19+
{
20+
ModuleBase::Loop(now);
21+
22+
// If the GPS data is <= 10 seconds old, keep spamming it out at 10hz
23+
bool gpsIsValid = (now < lastUpdated + 10000);
24+
25+
if (now > lastSent + 100 && gpsIsValid)
26+
{
27+
lastSent = now;
28+
}
29+
}

src/raw_crsf.h

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#pragma once
2+
3+
#include "module_base.h"
4+
#include "msptypes.h"
5+
6+
#define VRX_UART_BAUD 115200
7+
8+
class CRSFBackPack : public ModuleBase
9+
{
10+
public:
11+
CRSFBackPack(HardwareSerial *port);
12+
void SendRawTelemetry(uint8_t *rawCrsfPacket, uint16_t size);
13+
void Loop(uint32_t now);
14+
15+
private:
16+
void SendHeartbeat();
17+
void SendGpsRawInt();
18+
void SendGlobalPositionInt();
19+
20+
HardwareSerial *m_port;
21+
uint32_t lastSent;
22+
uint32_t lastUpdated;
23+
};

targets/common.ini

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ build_src_filter =
9595
-<orqa.*>
9696
-<Timer_main.cpp>
9797
-<mfd_crossbow.*>
98+
-<raw_crsf.*>
9899

99100
# ------------------------- COMMON RAPIDFIRE-BACKPACK DEFINITIONS -----------------
100101
[rapidfire_vrx_backpack_common]
@@ -115,6 +116,7 @@ build_src_filter =
115116
-<orqa.*>
116117
-<Timer_main.cpp>
117118
-<mfd_crossbow.*>
119+
-<raw_crsf.*>
118120

119121
# ------------------------- COMMON RX5808-BACKPACK DEFINITIONS -----------------
120122
[rx5808_vrx_backpack_common]
@@ -135,6 +137,7 @@ build_src_filter =
135137
-<orqa.*>
136138
-<Timer_main.cpp>
137139
-<mfd_crossbow.*>
140+
-<raw_crsf.*>
138141

139142
# ------------------------- COMMON STEADYVIEW-BACKPACK DEFINITIONS -----------------
140143
[steadyview_vrx_backpack_common]
@@ -155,6 +158,7 @@ build_src_filter =
155158
-<orqa.*>
156159
-<Timer_main.cpp>
157160
-<mfd_crossbow.*>
161+
-<raw_crsf.*>
158162

159163
# ------------------------- COMMON FUSION-BACKPACK DEFINITIONS -----------------
160164
[fusion_vrx_backpack_common]
@@ -175,6 +179,7 @@ build_src_filter =
175179
-<orqa.*>
176180
-<Timer_main.cpp>
177181
-<mfd_crossbow.*>
182+
-<raw_crsf.*>
178183

179184
# ------------------------- COMMON HDZERO-BACKPACK DEFINITIONS -----------------
180185
[hdzero_vrx_backpack_common]
@@ -195,6 +200,7 @@ build_src_filter =
195200
-<orqa.*>
196201
-<Timer_main.cpp>
197202
-<mfd_crossbow.*>
203+
-<raw_crsf.*>
198204

199205
# ------------------------- COMMON SKYZONE-MSP-BACKPACK DEFINITIONS -----------------
200206
[skyzone_msp_vrx_backpack_common]
@@ -215,6 +221,7 @@ build_src_filter =
215221
-<orqa.*>
216222
-<Timer_main.cpp>
217223
-<mfd_crossbow.*>
224+
-<raw_crsf.*>
218225

219226
# ------------------------- COMMON ORQA-BACKPACK DEFINITIONS -------------------
220227
[orqa_backpack_common]
@@ -235,6 +242,7 @@ build_src_filter =
235242
; -<orqa.*>
236243
-<Timer_main.cpp>
237244
-<mfd_crossbow.*>
245+
-<raw_crsf.*>
238246

239247
# ------------------------- COMMON TIMER-BACKPACK DEFINITIONS -----------------
240248
[timer_backpack_common]
@@ -254,6 +262,7 @@ build_src_filter =
254262
-<orqa.*>
255263
; -<Timer_main.cpp>
256264
-<mfd_crossbow.*>
265+
-<raw_crsf.*>
257266

258267
# ------------------------- COMMON MFD-CROSSBOW-BACKPACK DEFINITIONS -----------------
259268
[mfd_crossbow_backpack_common]
@@ -274,6 +283,28 @@ build_src_filter =
274283
-<orqa.*>
275284
-<Timer_main.cpp>
276285
; -<mfd_crossbow.*>
286+
-<raw_crsf.*>
277287
lib_deps =
278288
${env.lib_deps}
279-
${common_env_data.mavlink_lib_dep}
289+
${common_env_data.mavlink_lib_dep}
290+
291+
# ------------------------- COMMON RAW-CRSF-BACKPACK DEFINITIONS -----------------
292+
[raw_crsf_backpack_common]
293+
build_flags =
294+
${common_env_data.build_flags}
295+
-D TARGET_VRX_BACKPACK
296+
-D RAW_CRSF_BACKPACK
297+
build_src_filter =
298+
${common_env_data.build_src_filter}
299+
-<Tx_main.cpp>
300+
; -<Vrx_main.cpp>
301+
-<rapidfire.*>
302+
-<rx5808.*>
303+
-<steadyview.*>
304+
-<fusion.*>
305+
-<hdzero.*>
306+
-<skyzone_msp.*>
307+
-<orqa.*>
308+
-<Timer_main.cpp>
309+
-<mfd_crossbow.*>
310+
; -<raw_crsf.*>

targets/raw_crsf.ini

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# ********************************
2+
# MFD Crossbow tracker backpack
3+
# ********************************
4+
5+
[env:Raw_CRSF_ESP8285_Backpack_via_UART]
6+
extends = env_common_esp8285, raw_crsf_backpack_common
7+
build_flags =
8+
${env_common_esp8285.build_flags}
9+
${raw_crsf_backpack_common.build_flags}
10+
-D PIN_BUTTON=0
11+
-D PIN_LED=16
12+
13+
[env:Raw_CRSF_ESP8285_Backpack_via_WIFI]
14+
extends = env:Raw_CRSF_ESP8285_Backpack_via_UART
15+
16+
[env:Raw_CRSF_ESP32_Backpack_via_UART]
17+
extends = env_common_esp32, raw_crsf_backpack_common
18+
build_flags =
19+
${env_common_esp32.build_flags}
20+
${raw_crsf_backpack_common.build_flags}
21+
-D PIN_BUTTON=0
22+
23+
[env:Raw_CRSF_ESP32_Backpack_via_WIFI]
24+
extends = env:Raw_CRSF_ESP32_Backpack_via_UART
25+
26+
[env:Raw_CRSF_ESP32C3_Backpack_via_UART]
27+
extends = env_common_esp32c3, raw_crsf_backpack_common
28+
build_flags =
29+
${env_common_esp32c3.build_flags}
30+
${raw_crsf_backpack_common.build_flags}
31+
-D PIN_BUTTON=9
32+
33+
[env:Raw_CRSF_ESP32C3_Backpack_via_WIFI]
34+
extends = env:Raw_CRSF_ESP32C3_Backpack_via_UART
35+
36+
[env:Raw_CRSF_ESP32S3_Backpack_via_UART]
37+
extends = env_common_esp32s3, raw_crsf_backpack_common
38+
build_flags =
39+
${env_common_esp32s3.build_flags}
40+
${raw_crsf_backpack_common.build_flags}
41+
-D PIN_BUTTON=0
42+
43+
[env:Raw_CRSF_ESP32S3_Backpack_via_WIFI]
44+
extends = env:Raw_CRSF_ESP32S3_Backpack_via_UART

0 commit comments

Comments
 (0)