Node with ESP8266 and RFM95W

Hi Ewout, I get the first warning as well, but ignore this as I know that ESP8266 should be able to run this software. You see in the output that the ESP architecture is recognized (I put that Serial in a a debug).

The second watchdog reset message is something I do not get. From doing other things with the ESP8266 I know that I get that if the ESP8266 needs time to process its WiFi stack procesing and it does not get enough time to do it as it is working on user programs.

  • I do run the library not in that location but in my sketch directory together with my other libraries.

Are you only running the lmic stack, or also doing WiFi or other work?

I see that after the wdt that the stack resets again, and see that it tries to read somehing from the rfm95 chip. Maybe re-check connections to the RFM95.

Hi @Ewoud - just to let you know you’re not alone :smile: I have a NodeMCU ESP8266 wired up to a bare SX1276 and get a very similar error. Have to triple-check my wiring and try another module just to make sure it’s no hardware snafu.

wdt reset
load 0x4010f000, len 1264, room 16
tail 0
chksum 0x42
csum 0x42
~ld
Starting
DALLAS #:1
FAILURE
C:\Users\MyUser\Documents\Arduino\libraries\arduino-lmic-v1.5-master\src\lmic\radio.cpp:659

Cheers, JW

Oh oh …

I did check the connections again and they are the same as in things4u.github.io is mentioned …

What ESP8266 mcu are you using?

Seems like the code is expecting a sx1272 radio and not the sx1276/RFM95.
Can you please check you used the correct radio type in config.h?

I started with a generic Ali* NodeMCU ESP8266 but also tried a Wemos D1 mini with the same results.

My config.h looks sensible:

#define CFG_eu868 1
//#define CFG_us915 1
//#define CFG_sx1272_radio 1
#define CFG_sx1276_radio 1

Comparing the RFM95 and SX1276 I do notice there are RXEN/TXEN pins I haven’t wired in. I hard wired them to switch to RX mode to wake the chip up, but to no avail.

All my wiring checks out OK, so may need to wire up the other bare SX1276 I have lying around.

/JW

In radio.cpp line 659 is executed only when CFG_sx1272 is defined. And as you defined CFG_sx1276 in config.cpp this is strange.

Hi Maarten,

Could check only now. I am using a sx1276 (nicerf) but not the rfm95 (will check setup with the rfm later to see if this fixes it). In config.h checked if it is setup ok;
#define CFG_eu868 1
//#define CFG_us915 1
//#define CFG_sx1272_radio 1
#define CFG_sx1276_radio 1

Will make a library setup within sketch dir and test also with the rfm95 later on. maybe its wiring with the nicerf module (or the module itself) thats not working.

Ewoud

Hi Maarten,

Used a RFM95 instead of the nicerf (not so nice after all;) and boots up now;
hal_init: ESP architecture
os_init() finished
LMIC_reet() finished
LMIC_setSession() finished
LMICsetAddrMode() finished
Init done
Time: 0
Send, txCnhl: 0
Opmode check: ok

looks ok.

cheers

Hi Maarten,

So if I read your diagram correctly should it be connected like this?
(DIO3 and GPIO3 should not be connected right?)

Connect:
DIO1 <–> GPIO4
DIO0 <–> GPIO5
MISO <–> GPIO12
MOSI <–> GPIO13
SCK <–> GPIO14
NSS <–> GPIO15
RESET<–> GPIO16

And leave open:
DIO3 <–> GPIO3

Thanks!

Rene

Great! good to hear.Time to hookup a sensor.
Only if the ESP8266 boads would have more free GPIO pins available,

Hi Rene,

I think you mean DIO2 instead of DIO3. However, in order to get the node stable on a USB power adapter (and not on my Serial port) I did connect DIO2 of the RFM95 to D3/GPIO3 on the ESP and connected both of them with a 10K resistor to VCC 3.3V.

I need to test this further, but it seems to make my ESP node more stable.

However, when programming the NodeMCU board you have to temporarily disconnect the D3 pin otherwise the system will not load the firmware.

2 Likes

Hey Maarten,

I got everything connected and uploaded the sketch to the ESP.
However now I’m getting this error on the serial console:

wdt reset
load 0x4010f000, len 1264, room 16
tail 0
chksum 0x42
csum 0x42
~ld
Starting
hal_init: ESP architecture
FAILURE
/home/rvweert/data/Arduino/libraries/lmic-v1.5/src/lmic/radio.cpp:657

Any idea what might cause this?
Thanks! - Rene

1 Like

This can mean two things

  1. you defined your code to use a RFM95W/SX1276 while a RFM92W/SX1272 is connected… to change this, in your .ino change the below line (change into SX1276):
    #define CFG_sx1272_radio 1

  2. your wiring is incorrect, or module just not working

Hi Niels,

I have a RFM95W/SX1276 and it is also defined like this (I assume you mean in config.h):

#define CFG_eu868 1
//#define CFG_us915 1
//#define CFG_sx1272_radio 1
#define CFG_sx1276_radio 1

So seems alright… I’ll double check my wiring then, thanks!

that seems to be correct indeed …

Thanks for the confirmation of this, BoRRoZ - we’d be hoping to find a way to patch or intercept the firmware on theRN2483. Seems a lost opportunity for some lightweight, low-cost use cases.

I agree… (and I think it will happen in future versions)
but doing it yourself… mmmm :fearful:

1 Like

Okay, I’ve got it running and first message was sent and received!
Now, the signal is really weak, it doesn’t work anymore if I am more than 300m from the gateway. So I suspect my antenna not to be really working, for now I soldered a 10cm wire to the ANT pin of the RFM95W. Does anyone have suggestions on how to improve this considering the device needs to be as small as possible?

Thanks!

René

Firstly try to make your antenna 8.6cm long. This is a quarter wavelength at 868MHz. Anything longer or shorter will perform worse.

What you can do to make the antenna more compact is to coil the antenna (helical antenna), by winding it around something like a pencil. This will however perform a little less good, but is a good compromise. Similar antennas are commonly used and available for 433MHz here.

Thanks jpmeijers, it works! Don’t have to drive to a gateway anymore now :wink: (still waiting on a part for my own)…