If you are not using SX1278 module then modify module declaration in config.h find and replace SX1278 with your module name. Read more about supported modules at RadioLib Wiki.
If you are using SX126X module then un-comment USE_SX126X define and replace MODULE_NAME with your module name if using module other than SX1268
Software configuration
go to esp32_loraprs.ino and make next changes based on your requirements in initializeConfig()
set cfg.IsClientMode to false if you are planning to run server mode for APRS-IS iGate / Digipeater
for server mode fill cfg.WifiSsid and cfg.WifiKey with your WiFI AP data
for server mode fill cfg.AprsLogin and cfg.AprsPass with APRS-IS login callsign and pass
for server mode fill cfg.AprsFilter, see http://www.aprs-is.net/javAPRSFilter.aspx for various formats, do not include filter directive, just space separated values
lora bandwidth cfg.LoraBw, 125 kHz (also tested with 20.6 KHz and SF9 with frequency correction)
lora spread factor cfg.LoraSf, 12 (should decode down to -20dB, chosen with the goal for minimum signal decode)
lora coding rate cfg.LoraCodingRate, 7
lora output power cfg.LoraPower, 20 (max 20 dBm ~ 100mW, change to lower value if needed)
sync word cfg.LoraSync, 0x34
consider minimum decode level based on on BW + SF and required throughput
uses LoRa built-in checksum calculation to drop broken packets
Frequency drift and calibration
note, that there a is significant frequency drift on temperature changes for different modules, especially on 868 MHz, drift seems to be acceptable on 433 MHz, so it could be used for bandwidths, which are less than 125 MHz, but it needs testing for each module
you need to use external TCXO if you are planning to use modules for narrow bandwidths less than 125 kHz
or calibrate clients based on server frequency drift report by changing cfg.LoraFreq, for example, let client and server run for an 30-60 minutes and if server reports err: -1500, then set client frequency to about 1000 kHz less, e.g. instead of 433.775 set it to 433.774, this will give couple of additional dB
alternatively automatic calibration could be done on server or client side by enabling automatic frequency correction by setting cfg.EnableAutoFreqCorrection to true, might be suitable for experiments where only one client is operating or if server broadcast messages, so clients can correct their frequency. Use it either on client side to tune all clients to server frequency if TX is enabled on iGate side or to tune server to single client for test purposes
APRS iGate configuration
other useful options are
cfg.EnableSignalReport set to true to enable signal report, it will be added as a comment to APRS-IS submitted location
cfg.EnablePersistentAprsConnection set to false to avoid keeping connection open to APRS-IS
cfg.EnableRfToIs set to true to forward RF traffic to APRS-IS
cfg.EnableIsToRf set to true to forward APRS-IS traffic to RF, see also cfg.AprsFilter for traffic filtering
cfg.EnableRepeater set to true to enable packet repeater
cfg.EnableBeacon set to true to enable periodic beacons specified in cfg.AprsRawBeacon with period specified in cfg.AprsRawBeaconPeriodMinutes into RF and APRS-IS if cfg.EnableRfToIs is enabled
cfg.LoraUseIsr set to true to enable LoRa incoming packet handling using interrupts in continous RX mode suitable for speech data, otherwise set to false for single packet polling mode
BLE support
iOS does not support serial over Bluetooth and requires BLE support, this enables APRS applications such as official aprs.fi to work with the modem
to enable BLE support set cfg.BtEnableBle to true
USB serial support
Enable USB serial support by setting cfg.UsbSerialEnable/CFG_USB_SERIAL_ENABLE to true
When USB serial is enable Bluetooth and TCP/IP KISS server will be disabled
KISS over TCP/IP
Enable KISS over TCP/IP server by setting KissEnableTcpIp/CFG_KISS_TCP_IP to true
Bluetooth is NOT going to be disabled if enabled by setting name in cfg.BtName/CFG_BT_NAME
Default port is 8001
Additionally, it is possible to run modem in WiFi AP mode by setting to cfg.WifiEnableAp/CFG_WIFI_ENABLE_AP to true in this case cfgWifiSsid/CFG_WIFI_SSID and cfg.WifiKey/CFG_WIFI_KEY will be used.
APRSDroid configuration
when setting up APRSDroid, use "TNC (KISS)" connection protocol in Connection Preferences -> Connection Protocol
Use TNC (plaintext TNC2) for interoperability with text based LoRa APRS trackers, which do NOT use AX25, set cfg.EnableTextPackets/CFG_TEXT_PACKETS to true to enable this modem mode of operation. If you need compatibility with https://www.lora-aprs.info/ then also set cfg.EnableTextPackets3/CFG_TEXT_PACKETS_3 to true.