I am using stm32 and LoRaMaC for end node in region US915.
I can successfully receive downlink messages when the end node is configured to used low datarate (DR1, DR2), but I cannot receive any user-defined downlink message when using DR3, DR4. I still sometimes able to receive MAC messages (with f_port 0), though. Maybe, TTN has some limitations for this?
Device is located close to the gateway
This may be a bit of a long shot, but matches a problem that I’ve encountered personally.
I recommend checking the pinout between the STM32 and the radio as well as enabling timestamps on your terminal, as it may be the case that the IRQ interrupts are not correctly read out in the code (through DIO pins). MAC-only messages are mostly very short since the payload might fit in the FOpts part of the header and therefore can be received within a shorter interval. On slower datarate, a millisecond here or there is less of a problem than on high DR.
So pay close attention to the DIO configuration as well as timing of the Rx windows (enable verbose/debug mode if available) by looking at any timestamps you can get in your terminal.
What rssi values are you seeing? Search forum for recommended min distance and use of absorbers to manage levels. Longer or shorter duration may impact reaction to saturation and channel bleed allowing for marginally better signal discrimination. Remember this is a long range technology by nature…