For many applications (battery powered low-power applications included) the number of GPIO pins on ANY ESP8266 (e.g. ESP-12F module) is just too limited for any serious applications (when using a SPI LoRa module).
For example, a battery powered weather station with some I2C based sensors:
- Use SPI for the LoRa module.
- Use shared I2C bus for sensors, FRAM (or whatever that can be connected via I2C).
- Use ADC pin for battery voltage monitoring.
- Use one GPIO for switching peripheral power (e.g. enable/disable battery monitor voltage divider).
- Use deep sleep with auto wake-up from internal timer (requires a dedicated GPIO pin).
This just doesn’t fit on an ESP8266 because it has too little GPIO’s available (and some of the GPIO’s have strict pull-up/pull-down limitations which limits their usability).
Due to limited number of usable GPIO ports the ESP8266 when used in combination with a SPI LoRa module, will be unsuitable for many/most LoRaWAN applications.
If you know a pin mapping for ESP8266 where the SPI LoRa module (with DIO0 and DIO1) and the I2C bus (e.g. using a simple I2C sensor) are both working successfully I would be delighted to know it.