Node with ESP8266 and RFM95W

Thanks, effectively is displaying that, but where should I check the package sent?

Hi I’m having the same error (wemos d1 mini, RFM95). What was your problem?

Running Things4U (esp-lmic-v1.5). Tnx!

To be more specific I got this error too:

wdt reset
load 0x4010f000, len 1264, room 16
tail 0
chksum 0x42
csum 0x42
hal_init: ESP architecture

followed by a reboot. Tried both the normal LMIC-master library as the Things4u lmic-v1.5 , different pin settings.
Weird thing is I get the exact same behaviour when my protoshield is not connected; wiring seems to check out (or did I fry it while soldering…?).

RFM95 (sx1276, 868mhz) with what seems the correct settings in the cpp’s, connected to a Wemos D1 mini (via DIO0, DIO1, NCK, NSS, MISO, MOSI, 3v and gnd); same pin mapping as the others.

This combination (or similar) can be used.
The Wemos D1 module (same as the above) will work withe the Dragino Rev 1.3 module (I did not look at the other versions).

The following is the pin mapping, jumper configuration and wire link required for use with the LMIC library

// Wemos D1 (Rev 1) pin mapping and jumper settings for use with Dragino Lora Shield Rev 1.3
// Lora Shield - install jumpers SV1-1 to SV1-2, SV2-1 to SV2-2, SV3-1 to SV3-2
// Lora Shield - remove jumpers J_D101, J_D102, J_D105
// Add link from J_D101 pin closest to the aerial connector to D3 on the Arduino header
lmic_pinmap pins = {
.nss = 15, // CS
.rxtx = 4, // For placeholder only, Do not connected on RFM92/RFM95
.rst = 2, // Needed on RFM92/RFM95? (probably not) D0/GPIO16
.dio = {16, 5, 4}, // Specify pin numbers for DIO0, 1, 2

Connect all the grounds on the radio to ground.

Are you going to add an SMA connector for an antenna? In that case maybe an edge mount one?

Are you going to mount the radio and the ESP module back to back on the PCB? Remember to ground everything properly, and add enough capacitors to the 3.3V. Also add enough via’s to connect the ground pours. I had issues with a previous design where the microcontroller reset when the radio transmitted. All due to bad grounding.

Thanks for the advices
(I’m a beginner with kicad)

First attempt here here

Modifications to the diagram

1 Like

Could you perhaps share the kicad sources on github?

it wold be nice if you could add a LDO 3V3 regulator, so it would be possible to power it from a LiPo

yes. The spirit of this dev is opensource.
Just need to finish the diagram to get sure.
I’m wondering about shortening the segment between antenna PIN and SMA connector to avoid antenna loss of power.

yes. This is the idea.
There are already made chinese regulators. I wonder, maybe we could add a USB 5V --> Lipo 3.7 v --> Regulator 3.3vv line

Another idea would be to add a solar cell connector + regulator, to allow charging during sleep mode

As I’m new to Lorawan GW, I wonder if it would be usefull to add a buzzer (alerting when WIFI is disconnected or when GW in TRX error) and if it would be usefull to have a small 128x64 oled display soldered on the PCB ( with a switch to reduce energy drain). I’m about to finish the PCB , making 2 extra option would be ok too

Do you think DIO1 and DIO0 could be moved to GPIO9 and GPIO10 , to free GPIO4 and GPIO5 for the OLED display ?

If mods are good, I will post the package on GitHub

Reading all above and since some time has passed with possibly new methods, what would be the best pinmapping for an RFM95 with a Nodemcu 1.0?
Can I just take any GPIO pins and assign them in the LMIC or does it not work that way?
To answer my own question:
See this post Node with ESP8266 and RFM95W
which refers to this page:
// Pin mapping
const lmic_pinmap lmic_pins = {
.nss = 15,
.rst = 16,
.dio = {5, 4, LMIC_UNUSED_PIN},
This is the setup that now works with my nocemcu.

I think the GPIO9 and GPIO10 are intended only for internal use of ESP8266, I had to use the GPIO4 and GPIO5 in my hat to Wemos D1-mini, as in your schematics. I´m using this same hardware for a LUA single-channel gateway or for a node

I want to use a sensor with I2C Pin #4 and 5 on ESP12E, it seems impossible to have I2C (for sensor) and SPI (for RFM95) at the same time?

1 Like

Wemos D1 Mini use ESP12 so all needed pins are there

The trick is to optimize wiring:

  • especially DIO pins pulled together with OR diode to GPIO15 not another one, this one has pull down resistor what we need (or leave them unconnected and use LMIC no DIO pin Pull Request
  • you can also leave SS pin of RFM95 tied to ground if you only have one SPI device

As you can see, there is some options, just need to choose the one you prefer :wink:

This WeMos D1 shield works fine with RFM95 + I2C, WS2812 Led and PushPutton (Radio Reset is not connected) checkout schematics


My first hand made node :


It uses almost no current in sleep mode. Range tests at around 875 meters so far (no los)


Cool, I like the way the wires are routed. Looks pretty clean to put the rfm next to the controller.

What is “almost no current”? would be good to know for battery life purposes.