kopia lustrzana https://github.com/pjalocha/esp32-ogn-tracker
OGN_AKR board
rodzic
8b212afe59
commit
43d97fdc3e
|
@ -0,0 +1 @@
|
||||||
|
build
|
2
Makefile
2
Makefile
|
@ -3,7 +3,7 @@
|
||||||
# project subdirectory.
|
# project subdirectory.
|
||||||
#
|
#
|
||||||
|
|
||||||
PROJECT_NAME := app-template
|
PROJECT_NAME := esp32-ogn-tracker
|
||||||
|
|
||||||
include $(IDF_PATH)/make/project.mk
|
include $(IDF_PATH)/make/project.mk
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,84 @@
|
||||||
|
#define DEFAULT_AcftType 1 // [0..15] default aircraft-type: glider
|
||||||
|
#define DEFAULT_GeoidSepar 40 // [m]
|
||||||
|
#define DEFAULT_CONbaud 115200
|
||||||
|
#define DEFAULT_PPSdelay 100
|
||||||
|
#define DEFAULT_FreqPlan 0
|
||||||
|
|
||||||
|
|
||||||
|
// #define WITH_HELTEC // HELTEC module: PCB LED on GPI025
|
||||||
|
// #define WITH_HELTEC_V2 // HELTEC module v2
|
||||||
|
// #define WITH_TTGO // TTGO module: PCB LED on GPIO2, GPIO25 free to use as DAC2 output
|
||||||
|
// #define WITH_TBEAM // T-Beam module
|
||||||
|
// #define WITH_TBEAM_V10 // T-Beam module
|
||||||
|
// #define WITH_M5_JACEK // JACEK M5 ESP32 OGN-Tracker
|
||||||
|
// #define WITH_FollowMe // by Avionix
|
||||||
|
#define WITH_OGN_AKR // by Aeroklub Krakowski
|
||||||
|
|
||||||
|
// #define WITH_ILI9341 // 320x240 M5stack
|
||||||
|
// #define WITH_ST7789 // IPS 240x240 ST7789
|
||||||
|
// #define WITH_TFT_LCD // TFT LCD
|
||||||
|
// #define WITH_OLED // OLED display on the I2C: some TTGO modules are without OLED display
|
||||||
|
// #define WITH_OLED2 // 2nd OLED display, I2C address next higher
|
||||||
|
// #define WITH_U8G2_OLED // I2C OLED through the U8g2 library
|
||||||
|
// #define WITH_U8G2_SH1106 // correct controller for the bigger OLED
|
||||||
|
// #define WITH_U8G2_FLIP // flip the OLED screen (rotate by 180deg)
|
||||||
|
|
||||||
|
#define WITH_RFM95 // RF chip selection: both HELTEC and TTGO use sx1276 which is same as RFM95
|
||||||
|
|
||||||
|
// #define WITH_SLEEP // with software sleep mode controlled by the long-press on the button
|
||||||
|
|
||||||
|
// #define WITH_AXP // with AXP192 power controller (T-BEAM V1.0)
|
||||||
|
// #define WITH_BQ // with BQ24295 power controller (FollowMe)
|
||||||
|
|
||||||
|
// #define WITH_LED_RX
|
||||||
|
// #define WITH_LED_TX
|
||||||
|
|
||||||
|
// #define WITH_GPS_ENABLE // use GPS_ENABLE control line to turn the GPS ON/OFF
|
||||||
|
#define WITH_GPS_PPS // use the PPS signal from GPS for precise time-sync.
|
||||||
|
#define WITH_GPS_CONFIG // attempt to configure higher GPS baud rate and airborne mode
|
||||||
|
|
||||||
|
// #define WITH_GPS_UBX // GPS understands UBX
|
||||||
|
#define WITH_GPS_MTK // GPS understands MTK
|
||||||
|
// #define WITH_GPS_SRF
|
||||||
|
// #define WITH_MAVLINK
|
||||||
|
|
||||||
|
// #define WITH_GPS_UBX_PASS // to pass directly UBX packets to/from GPS
|
||||||
|
// #define WITH_GPS_NMEA_PASS // to pass directly NMEA to/from GPS
|
||||||
|
|
||||||
|
// #define WITH_BMP180 // BMP180 pressure sensor
|
||||||
|
#define WITH_BMP280 // BMP280 pressure sensor
|
||||||
|
// #define WITH_BME280 // BMP280 with humidity (but still works with BMP280)
|
||||||
|
// #define WITH_MS5607 // MS5607 pressure sensor
|
||||||
|
// #define WITH_MS5611 // MS5611 pressure sensor
|
||||||
|
|
||||||
|
// #define WITH_BMX055 // BMX055 magnetic and IMU sensor
|
||||||
|
|
||||||
|
// #define WITH_LORAWAN // LoRaWAN connectivity
|
||||||
|
// #define WITH_FANET // FANET transmission and reception
|
||||||
|
|
||||||
|
#define WITH_PFLAA // PFLAU and PFLAA for compatibility with XCsoar and LK8000
|
||||||
|
// #define WITH_POGNT
|
||||||
|
// #define WITH_GDL90
|
||||||
|
// #define WITH_PGAV5
|
||||||
|
#define WITH_LOOKOUT
|
||||||
|
|
||||||
|
#define WITH_CONFIG // interpret the console input: $POGNS to change parameters
|
||||||
|
|
||||||
|
// #define WITH_BEEPER // with digital buzzer
|
||||||
|
// #define WITH_SOUND // with analog sound produced by DAC on pin 25
|
||||||
|
|
||||||
|
// #define WITH_KNOB
|
||||||
|
// #define WITH_VARIO
|
||||||
|
|
||||||
|
#define WITH_SD // use the SD card in SPI mode and FAT file system
|
||||||
|
#define WITH_SPIFFS // use SPIFFS file system in Flash
|
||||||
|
#define WITH_SPIFFS_FAT
|
||||||
|
#define WITH_LOG // log own positions and other received to SPIFFS
|
||||||
|
#define WITH_SDLOG // log own position and other data to uSD card
|
||||||
|
|
||||||
|
// #define WITH_STRATUX
|
||||||
|
#define WITH_BT_SPP // Bluetooth serial port for smartphone/tablet link
|
||||||
|
// #define WITH_WIFI // attempt to connect to the wifi router for uploading the log files
|
||||||
|
|
||||||
|
// #define WITH_ENCRYPT // Encrypt (optionally) the position
|
||||||
|
|
114
main/hal.cpp
114
main/hal.cpp
|
@ -170,45 +170,45 @@ PSRM32 = SDIO ?
|
||||||
/*
|
/*
|
||||||
https://randomnerdtutorials.com/esp32-pinout-reference-gpios/
|
https://randomnerdtutorials.com/esp32-pinout-reference-gpios/
|
||||||
|
|
||||||
GPIO HELTEC TTGO JACEK M5_JACEK T-Beam T-Beamv10 FollowMe Restrictions
|
GPIO HELTEC TTGO JACEK M5_JACEK T-Beam T-Beamv10 FollowMe OGN_AKR Restrictions
|
||||||
|
|
||||||
0 Button Button . LCD/DC LCD/DC Can lock the boot, better not pull it down
|
0 Button Button . LCD/DC LCD/DC . Can lock the boot, better not pull it down
|
||||||
1 CONS/TxD CONS/TxD CONS/TxD CONS/TxD CONS/TxD CONS/TxD Console/Program
|
1 CONS/TxD CONS/TxD CONS/TxD CONS/TxD CONS/TxD CONS/TxD CONS/TxD Console/Program
|
||||||
2 SD/MISO . LCD/MOSI LCD/MOSI LED/DBG Bootstrap: LOW to enter UART download mode
|
2 SD/MISO . LCD/MOSI LCD/MOSI LED/DBG LED/DBG Bootstrap: LOW to enter UART download mode
|
||||||
3 CONS/RxD CONS/RxD CONS/RxD CONS/RxD CONS/RxD CONS/RxD Console/Program
|
3 CONS/RxD CONS/RxD CONS/RxD CONS/RxD CONS/RxD CONS/RxD CONS/RxD Console/Program
|
||||||
4 OLED/SDA OLED/SDA ADC/CS LCD/BCKL LCD/BCKL PERF/RST
|
4 OLED/SDA OLED/SDA ADC/CS LCD/BCKL LCD/BCKL PERF/RST RF_RST
|
||||||
5 RF/SCK RF/SCK RF/SCK GPS/ANT RF/SCK RF/SCK RF/CS PWM at boot
|
5 RF/SCK RF/SCK RF/SCK GPS/ANT RF/SCK RF/SCK RF/CS RF/CS PWM at boot
|
||||||
6 SD/CLK SD/CLK SD/CLK SPI flash
|
6 SD/CLK SD/CLK SD/CLK SPI flash
|
||||||
7 SD/DATA0 SD/DATA0 SPI flash
|
7 SD/DATA0 SD/DATA0 SPI flash
|
||||||
8 SD/DATA1 SD/DATA1 SPI flash
|
8 SD/DATA1 SD/DATA1 SPI flash
|
||||||
9 SD/DATA2 SD/DATA2 SPI flash
|
9 SD/DATA2 SD/DATA2 SPI flash
|
||||||
10 SD/DATA3 SD/DATA3 SPI flash
|
10 SD/DATA3 SD/DATA3 SPI flash
|
||||||
11 SD/CMD SD/CMD SD/CMD SPI flash
|
11 SD/CMD SD/CMD SD/CMD SPI flash
|
||||||
12 GPS/RxD GPS/RxD SD/CS GPS/RxD GPS/TxD SD/MISO HSPI/MISO JTAG/TDI Bootstrap: select output voltage to power the flash chip
|
12 GPS/RxD GPS/RxD SD/CS GPS/RxD GPS/TxD SD/MISO SD/MISO HSPI/MISO JTAG/TDI Bootstrap: select output voltage to power the flash chip
|
||||||
13 GPS/Ena GPS/Ena SD/SCK LCD/SCL LCD/CLK LCD/CLK SD/MOSI HSPI/MOSI JTAG/TCK
|
13 GPS/Ena GPS/Ena SD/SCK LCD/SCL LCD/CLK LCD/CLK SD/MOSI SD/MOSI HSPI/MOSI JTAG/TCK
|
||||||
14 RF/RST RF/RST Beeper ? LED/PCB . SD/CLK HSPI/CLK JTAG/TMS PWM at boot
|
14 RF/RST RF/RST Beeper ? LED/PCB . SD/CLK SD/SCK HSPI/CLK JTAG/TMS PWM at boot
|
||||||
15 OLED/SCL OLED/SCL SD/MOSI GPS/TxD . HSPI/CS0 JTAG/TDO PWM at boot
|
15 OLED/SCL OLED/SCL SD/MOSI GPS/TxD . HSPI/CS0 SD/CS JTAG/TDO PWM at boot
|
||||||
16 OLED/RST OLED/RST RF/IRQ GPS/Tx RAM/CS GPS/TX U2_RXD
|
16 OLED/RST OLED/RST RF/IRQ GPS/Tx RAM/CS GPS/TX GPS/TX U2_RXD
|
||||||
17 Beeper Beeper RF/RST GPS/Rx Beeper GPS/RX U2_TXD
|
17 Beeper Beeper RF/RST GPS/Rx Beeper GPS/RX GPS/RX U2_TXD
|
||||||
18 RF/CS RF/CS RF/MISO RF/CS RF/SCK RF/CS VSPI/CLK
|
18 RF/CS RF/CS RF/MISO RF/CS RF/SCK RF/CS RF/SCK VSPI/CLK
|
||||||
19 RF/MISO RF/MISO RF/MOSI RF/MISO RF/MISO RF/MISO RF/MISO VSPI/MISO
|
19 RF/MISO RF/MISO RF/MOSI RF/MISO RF/MISO RF/MISO RF/MISO RF/MISO VSPI/MISO
|
||||||
20 not listed
|
20 not listed
|
||||||
21 LED? RF/CS I2C/SCL I2C/SDA I2C/SDA I2C/SDA VSPI/QUADHP
|
21 LED? RF/CS I2C/SCL I2C/SDA I2C/SDA I2C/SDA I2C/SDA VSPI/QUADHP
|
||||||
22 . PWR/ON I2C/SDA I2C/CLK I2C/SCL VSPI/QUADWP
|
22 . PWR/ON I2C/SDA I2C/CLK I2C/SCL I2C/SCL VSPI/QUADWP
|
||||||
23 . PWR/LDO RF/RST RF/MOSI RF/RST RF/MOSI VSPI/MOSI
|
23 . PWR/LDO RF/RST RF/MOSI RF/RST RF/MOSI RF/MOSI VSPI/MOSI
|
||||||
24 not listed
|
24 not listed
|
||||||
25 LED Speaker . Speaker Speaker Speaker TT/RX
|
25 LED Speaker . Speaker Speaker Speaker TT/RX Speaker
|
||||||
26 RF/IRQ RF/IRQ SCL RF/IRQ RF/IRQ RF/IRQ PWR/Good
|
26 RF/IRQ RF/IRQ SCL RF/IRQ RF/IRQ RF/IRQ PWR/Good EncoderA
|
||||||
27 RF/MOSI RF/MOSI SDA RF/MOSI RF/MOSI TT/TX
|
27 RF/MOSI RF/MOSI SDA RF/MOSI RF/MOSI TT/TX EncoderB
|
||||||
28 not listed
|
28 not listed
|
||||||
29 not listed
|
29 not listed
|
||||||
30 not listed
|
30 not listed
|
||||||
31 not listed
|
31 not listed
|
||||||
32 . . GPS/TxD ? . TT/RST XTAL
|
32 . . GPS/TxD ? . TT/RST GPS/PPS XTAL
|
||||||
33 . . OLED/RST ? . GPS/EN XTAL
|
33 . . OLED/RST ? . GPS/EN RF/IRQ XTAL
|
||||||
34 GPS/PPS GPS/PPS GPS/RxD KNOB/Sense GPS/TxD GPS/PPS
|
34 GPS/PPS GPS/PPS GPS/RxD KNOB/Sense GPS/TxD GPS/PPS Button
|
||||||
35 GPS/TxD GPS/TxD GPS/PPS BAT/Sense AXP/IRQ RF/IRQ
|
35 GPS/TxD GPS/TxD GPS/PPS BAT/Sense AXP/IRQ RF/IRQ Vbat/Sense
|
||||||
36 . . BAT/Sense BAT/Ext. . Vbat/Sense
|
36 . . BAT/Sense BAT/Ext. . Vbat/Sense LED/TX
|
||||||
37 . . GPS/PPS
|
37 . . GPS/PPS
|
||||||
38 . . Button Button
|
38 . . Button Button
|
||||||
39 . . Button Button Button
|
39 . . Button Button Button
|
||||||
|
@ -237,6 +237,11 @@ GPIO HELTEC TTGO JACEK M5_JACEK T-Beam T-Beamv10 Foll
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef WITH_OGN_AKR
|
||||||
|
#define PIN_LED_PCB GPIO_NUM_2 // debug LED
|
||||||
|
#define PIN_LED_TX GPIO_NUM_36 // debug LED
|
||||||
|
#endif
|
||||||
|
|
||||||
// #define PIN_LED_TX GPIO_NUM_??
|
// #define PIN_LED_TX GPIO_NUM_??
|
||||||
// #define PIN_LED_RX GPIO_NUM_??
|
// #define PIN_LED_RX GPIO_NUM_??
|
||||||
|
|
||||||
|
@ -291,6 +296,15 @@ GPIO HELTEC TTGO JACEK M5_JACEK T-Beam T-Beamv10 Foll
|
||||||
#define PIN_RFM_MOSI GPIO_NUM_23 // SPI MOSI
|
#define PIN_RFM_MOSI GPIO_NUM_23 // SPI MOSI
|
||||||
#endif // FollowMe
|
#endif // FollowMe
|
||||||
|
|
||||||
|
#ifdef WITH_OGN_AKR
|
||||||
|
#define PIN_RFM_IRQ GPIO_NUM_33 // 39 // packet done on receive or transmit
|
||||||
|
#define PIN_RFM_SS GPIO_NUM_5 // SPI chip-select
|
||||||
|
#define PIN_RFM_SCK GPIO_NUM_18 // SPI clock
|
||||||
|
#define PIN_RFM_MISO GPIO_NUM_19 // SPI MISO
|
||||||
|
#define PIN_RFM_MOSI GPIO_NUM_23 // SPI MOSI
|
||||||
|
#define PIN_RFM_RST GPIO_NUM_4 // RFM RESET
|
||||||
|
#endif
|
||||||
|
|
||||||
#define RFM_SPI_HOST VSPI_HOST // or H or VSPI_HOST ?
|
#define RFM_SPI_HOST VSPI_HOST // or H or VSPI_HOST ?
|
||||||
#define RFM_SPI_DMA 1 // DMA channel
|
#define RFM_SPI_DMA 1 // DMA channel
|
||||||
#define RFM_SPI_SPEED 4000000 // [Hz] 4MHz SPI clock rate for RF chip
|
#define RFM_SPI_SPEED 4000000 // [Hz] 4MHz SPI clock rate for RF chip
|
||||||
|
@ -378,6 +392,12 @@ GPIO HELTEC TTGO JACEK M5_JACEK T-Beam T-Beamv10 Foll
|
||||||
#define PIN_PERIPH_RST GPIO_NUM_4 // Reset: high-active
|
#define PIN_PERIPH_RST GPIO_NUM_4 // Reset: high-active
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef WITH_OGN_AKR // L86-M33 GPS with PPS
|
||||||
|
#define PIN_GPS_TXD GPIO_NUM_17
|
||||||
|
#define PIN_GPS_RXD GPIO_NUM_16
|
||||||
|
#define PIN_GPS_PPS GPIO_NUM_32 // high active
|
||||||
|
#endif
|
||||||
|
|
||||||
#define CONS_UART UART_NUM_0 // UART0 for the console (the system does this for us)
|
#define CONS_UART UART_NUM_0 // UART0 for the console (the system does this for us)
|
||||||
#define GPS_UART UART_NUM_1 // UART1 for GPS data read and dialog
|
#define GPS_UART UART_NUM_1 // UART1 for GPS data read and dialog
|
||||||
|
|
||||||
|
@ -396,10 +416,10 @@ uint8_t BARO_I2C = (uint8_t)I2C_BUS;
|
||||||
#define PIN_I2C_SDA GPIO_NUM_27 // SDA pin
|
#define PIN_I2C_SDA GPIO_NUM_27 // SDA pin
|
||||||
#endif // JACEK
|
#endif // JACEK
|
||||||
|
|
||||||
#ifdef WITH_M5_JACEK
|
#if defined(WITH_M5_JACEK) || defined(WITH_OGN_AKR)
|
||||||
#define PIN_I2C_SCL GPIO_NUM_22 // SCL pin
|
#define PIN_I2C_SCL GPIO_NUM_22 // SCL pin
|
||||||
#define PIN_I2C_SDA GPIO_NUM_21 // SDA pin
|
#define PIN_I2C_SDA GPIO_NUM_21 // SDA pin
|
||||||
#endif // M5_JACEK
|
#endif // M5_JACEK || WITH_OGN_AKR
|
||||||
|
|
||||||
#if defined(WITH_HELTEC) || defined(WITH_HELTEC_V2) || defined(WITH_TTGO)
|
#if defined(WITH_HELTEC) || defined(WITH_HELTEC_V2) || defined(WITH_TTGO)
|
||||||
#define PIN_I2C_SCL GPIO_NUM_15 // SCL pin
|
#define PIN_I2C_SCL GPIO_NUM_15 // SCL pin
|
||||||
|
@ -459,6 +479,10 @@ uint8_t BARO_I2C = (uint8_t)I2C_BUS;
|
||||||
#define PIN_BEEPER GPIO_NUM_17
|
#define PIN_BEEPER GPIO_NUM_17
|
||||||
#endif // HELTEC || TTGO
|
#endif // HELTEC || TTGO
|
||||||
|
|
||||||
|
#ifdef WITH_OGN_AKR
|
||||||
|
#define PIN_BEEPER GPIO_NUM_25
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef WITH_M5_JACEK
|
#ifdef WITH_M5_JACEK
|
||||||
|
|
||||||
#define PIN_GPS_ANT GPIO_NUM_5 // internal(H) or external(L) GPS antenna
|
#define PIN_GPS_ANT GPIO_NUM_5 // internal(H) or external(L) GPS antenna
|
||||||
|
@ -478,13 +502,13 @@ uint8_t BARO_I2C = (uint8_t)I2C_BUS;
|
||||||
#undef PIN_I2C_SDA
|
#undef PIN_I2C_SDA
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WITH_FollowMe
|
#if defined(WITH_FollowMe) || defined(WITH_OGN_AKR)
|
||||||
#define PIN_SD_MISO GPIO_NUM_12 // SD card in simple SPI mode, using HSPI IOMUX pins
|
#define PIN_SD_MISO GPIO_NUM_12 // SD card in simple SPI mode, using HSPI IOMUX pins
|
||||||
#define PIN_SD_MOSI GPIO_NUM_13
|
#define PIN_SD_MOSI GPIO_NUM_13
|
||||||
#define PIN_SD_SCK GPIO_NUM_14
|
#define PIN_SD_SCK GPIO_NUM_14
|
||||||
#define PIN_SD_CS GPIO_NUM_15
|
#define PIN_SD_CS GPIO_NUM_15
|
||||||
#define SD_SPI_DMA 2
|
#define SD_SPI_DMA 2
|
||||||
#endif // FollowMe
|
#endif // FollowMe || WITH_OGN_AKR
|
||||||
|
|
||||||
#ifdef WITH_M5_JACEK // the three buttons below the LCD
|
#ifdef WITH_M5_JACEK // the three buttons below the LCD
|
||||||
|
|
||||||
|
@ -506,6 +530,10 @@ uint8_t BARO_I2C = (uint8_t)I2C_BUS;
|
||||||
#define PIN_BUTTON GPIO_NUM_38
|
#define PIN_BUTTON GPIO_NUM_38
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef WITH_OGN_AKR
|
||||||
|
#define PIN_BUTTON GPIO_NUM_34
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(WITH_TTGO) || defined(WITH_HELTEC) || defined(WITH_HELTEC_V2)
|
#if defined(WITH_TTGO) || defined(WITH_HELTEC) || defined(WITH_HELTEC_V2)
|
||||||
#define PIN_BUTTON GPIO_NUM_0
|
#define PIN_BUTTON GPIO_NUM_0
|
||||||
#endif
|
#endif
|
||||||
|
@ -923,7 +951,7 @@ void RFM_RESET_SetOutput (void) { gpio_set_direction(PIN_RFM_RST, GPIO_M
|
||||||
void RFM_RESET_SetLevel (uint8_t High) { gpio_set_level(PIN_RFM_RST, High&1); }
|
void RFM_RESET_SetLevel (uint8_t High) { gpio_set_level(PIN_RFM_RST, High&1); }
|
||||||
|
|
||||||
#if defined(WITH_RFM95) || defined(WITH_SX1272) || defined(WITH_SX1262) // for RFM95 reset is low-active
|
#if defined(WITH_RFM95) || defined(WITH_SX1272) || defined(WITH_SX1262) // for RFM95 reset is low-active
|
||||||
void RFM_RESET(uint8_t On) { if(On&1) { RFM_RESET_SetOutput(); RFM_RESET_SetLevel(0); } else RFM_RESET_SetInput(); }
|
void RFM_RESET(uint8_t On) { if(On&1) { RFM_RESET_SetOutput(); RFM_RESET_SetLevel(0); } else { RFM_RESET_SetOutput(); RFM_RESET_SetLevel(1); } }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WITH_RFM69 // for RFM69 reset is high-active
|
#ifdef WITH_RFM69 // for RFM69 reset is high-active
|
||||||
|
|
Ładowanie…
Reference in New Issue