N
Sorry for the year late grave-dig on this, I wanted this answer for myself and I landed on this post.
Here we see a crcOn parameter in the driver
https://github.com/pycom/pycom-micropython-sigfox/blob/4481a1c283be97640592ea2a0440830e336064de/drivers/sx127x/sx1276/sx1276.c#L364
Here we see the lora micropython module invoking these functions
https://github.com/pycom/pycom-micropython-sigfox/blob/4481a1c283be97640592ea2a0440830e336064de/esp32/mods/modlora.c#L1093-L1101
The arguments and parameters formatted:
RadioModems_t modem = MODEM_LORA,
uint32_t bandwidth = init_data->bandwidth,
uint32_t datarate = init_data->sf,
uint8_t coderate = init_data->coding_rate,
uint32_t bandwidthAfc = 0,
uint16_t preambleLen = init_data->preamble,
uint16_t symbTimeout = symbol_to,
bool fixLen = LORA_FIX_LENGTH_PAYLOAD_OFF,
uint8_t payloadLen = 0,
bool crcOn = true, <-- CRC enabled.
bool freqHopOn = 0,
uint8_t hopPeriod = 0,
bool iqInverted = init_data->rxiq,
bool rxContinuous = true
This is the same for both tx and rx.
This setup function is invoked when in LORA (Raw) mode: https://github.com/pycom/pycom-micropython-sigfox/blob/4481a1c283be97640592ea2a0440830e336064de/esp32/mods/modlora.c#L821
TL;DR; Yes, CRC is enabled internally.