<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[RFM69 not initialising (required reset could be the cause)]]></title><description><![CDATA[<p dir="auto">Hi,<br />
I'm having issues getting my RFM69HCW to work with MySensors.<br />
If I try a bare bones setup with the RFM69 library directly it also failed, until I found a helpful post suggesting resetting the radio before starting.<br />
So once I added a wire for the reset pin and pulsed it high-&gt;low in setup it all started working flawlessly!</p>
<pre><code>pinMode(RFM69_RST_PIN, OUTPUT);
digitalWrite(RFM69_RST_PIN, HIGH);
delay(100);
digitalWrite(RFM69_RST_PIN, LOW);
delay(100);
</code></pre>
<p dir="auto">So now I'm wondering if something similar is required in MySensors to get this to work ?<br />
I tried adding the same block into the my MySensors code but it still fails when trying to initialise the transport</p>
<pre><code>0;255;3;0;9;MCO:BGN:INIT GW,CP=RRNGA--,VER=2.2.0-beta
0;255;3;0;9;TSM:INIT
0;255;3;0;9;TSF:WUR:MS=0
0;255;3;0;9;!TSM:INIT:TSP FAIL
0;255;3;0;9;TSM:FAIL:CNT=1
0;255;3;0;9;TSM:FAIL:PDT
0;255;3;0;9;TSM:FAIL:RE-INIT
0;255;3;0;9;TSM:INIT
</code></pre>
<p dir="auto">Thanks guys</p>
]]></description><link>https://forum.mysensors.org/topic/5954/rfm69-not-initialising-required-reset-could-be-the-cause</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 23:46:57 GMT</lastBuildDate><atom:link href="https://forum.mysensors.org/topic/5954.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 29 Jan 2017 09:13:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to RFM69 not initialising (required reset could be the cause) on Sat, 24 Mar 2018 03:29:39 GMT]]></title><description><![CDATA[<p dir="auto">I had the same issue today with a RFM69HW connected to a Wemos D1 Mini. The above solution worked, thank you so much. I had no idea what was going on.<br />
I also have a RFM69W connected to a generic ESP12-E and with the same code I didn't need to reset. Seems to be hardware related.</p>
]]></description><link>https://forum.mysensors.org/post/87486</link><guid isPermaLink="true">https://forum.mysensors.org/post/87486</guid><dc:creator><![CDATA[Chris03]]></dc:creator><pubDate>Sat, 24 Mar 2018 03:29:39 GMT</pubDate></item><item><title><![CDATA[Reply to RFM69 not initialising (required reset could be the cause) on Sun, 29 Jan 2017 17:35:25 GMT]]></title><description><![CDATA[<p dir="auto">Yep that did it, removed the lines from the transport and put them in before() and it's now working like a charm.</p>
<p dir="auto">Kind of interesting how this has only seemingly affected me and none of the other many users of the RFM69 :/</p>
<p dir="auto">Thanks for the help and pointing me in the right direction scalz!</p>
]]></description><link>https://forum.mysensors.org/post/58470</link><guid isPermaLink="true">https://forum.mysensors.org/post/58470</guid><dc:creator><![CDATA[OpticFroggy]]></dc:creator><pubDate>Sun, 29 Jan 2017 17:35:25 GMT</pubDate></item><item><title><![CDATA[Reply to RFM69 not initialising (required reset could be the cause) on Tue, 08 Aug 2017 08:00:41 GMT]]></title><description><![CDATA[<p dir="auto">oki. so the pullup was keeping it high.<br />
you can try to put it in your sketch instead of the lib. no need of 100ms. from datasheet it's 100us<br />
Try in preHwInit(), or in before() . This should work</p>
<pre><code>void preHwInit(void)
{
  // Reset the RFM69 Radio
  pinMode(5, OUTPUT);
  digitalWrite(5, HIGH);
  delayMicroseconds(100);
  digitalWrite(5, LOW);
  // wait until chip ready
  delay(5);
}
</code></pre>
]]></description><link>https://forum.mysensors.org/post/58468</link><guid isPermaLink="true">https://forum.mysensors.org/post/58468</guid><dc:creator><![CDATA[scalz]]></dc:creator><pubDate>Tue, 08 Aug 2017 08:00:41 GMT</pubDate></item><item><title><![CDATA[Reply to RFM69 not initialising (required reset could be the cause) on Sun, 29 Jan 2017 17:16:03 GMT]]></title><description><![CDATA[<p dir="auto">So I've managed to now get it working by editing the RFM69 transport as such:</p>
<p dir="auto">MyTransportRFM69.cpp</p>
<pre><code>bool transportInit(void)
{
+    // Reset the RFM69 Radio
+    pinMode(5, OUTPUT);
+    digitalWrite(5, HIGH);
+    delay(100);
+    digitalWrite(5, LOW);
+    delay(100);

    // Start up the radio library (_address will be set later by the MySensors library)
    if (_radio.initialize(MY_RFM69_FREQUENCY, _address, MY_RFM69_NETWORKID)) {
#ifdef MY_RFM69_ENABLE_ENCRYPTION
</code></pre>
<p dir="auto">Once those lines to reset it were added it works flawlessly every time now :confused:<br />
The adafruit breakout has a pull-high on the RST pin and as far as I'm aware reading the RFM69 datasheet, it does a power on reset also, so I'm not sure why this is neccessary.</p>
]]></description><link>https://forum.mysensors.org/post/58466</link><guid isPermaLink="true">https://forum.mysensors.org/post/58466</guid><dc:creator><![CDATA[OpticFroggy]]></dc:creator><pubDate>Sun, 29 Jan 2017 17:16:03 GMT</pubDate></item><item><title><![CDATA[Reply to RFM69 not initialising (required reset could be the cause) on Sun, 29 Jan 2017 09:39:49 GMT]]></title><description><![CDATA[<p dir="auto">Hey,</p>
<p dir="auto">The Hardware I'm using is an Arduino Pro mini (3.3v) and an RFM69HCW on the Adafruit breakout board.</p>
<p dir="auto">The LPL sketch that works is below, as for the MySensors one It's basically just the examples (as a serial gateway and node) that won't work.</p>
<pre><code>// Sample RFM69 sender/node sketch, with ACK and optional encryption, and Automatic Transmission Control
// Sends periodic messages of increasing length to gateway (id=1)
// It also looks for an onboard FLASH chip, if present
// **********************************************************************************
// Copyright Felix Rusu 2016, http://www.LowPowerLab.com/contact
// **********************************************************************************
// License
// **********************************************************************************
// This program is free software; you can redistribute it
// and/or modify it under the terms of the GNU General
// Public License as published by the Free Software
// Foundation; either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will
// be useful, but WITHOUT ANY WARRANTY; without even the
// implied warranty of MERCHANTABILITY or FITNESS FOR A
// PARTICULAR PURPOSE. See the GNU General Public
// License for more details.
//
// Licence can be viewed at
// http://www.gnu.org/licenses/gpl-3.0.txt
//
// Please maintain this license information along with authorship
// and copyright notices in any redistribution of this code
// **********************************************************************************
#include &lt;RFM69.h&gt;         //get it here: https://www.github.com/lowpowerlab/rfm69
#include &lt;RFM69_ATC.h&gt;     //get it here: https://www.github.com/lowpowerlab/rfm69
//#include &lt;SPIFlash.h&gt;      //get it here: https://www.github.com/lowpowerlab/spiflash
#include &lt;SPI.h&gt;           //included with Arduino IDE install (www.arduino.cc)

//*********************************************************************************************
//************ IMPORTANT SETTINGS - YOU MUST CHANGE/CONFIGURE TO FIT YOUR HARDWARE ************
//*********************************************************************************************
#define NODEID        2    //must be unique for each node on same network (range up to 254, 255 is used for broadcast)
#define NETWORKID     100  //the same on all nodes that talk to each other (range up to 255)
#define GATEWAYID     1
//Match frequency to the hardware version of the radio on your Moteino (uncomment one):
#define FREQUENCY   RF69_433MHZ
//#define FREQUENCY   RF69_868MHZ
//#define FREQUENCY     RF69_915MHZ
#define ENCRYPTKEY    "sampleEncryptKey" //exactly the same 16 characters/bytes on all nodes!
#define IS_RFM69HW    //uncomment only for RFM69HW! Leave out if you have RFM69W!
//*********************************************************************************************
//Auto Transmission Control - dials down transmit power to save battery
//Usually you do not need to always transmit at max output power
//By reducing TX power even a little you save a significant amount of battery power
//This setting enables this gateway to work with remote nodes that have ATC enabled to
//dial their power down to only the required level (ATC_RSSI)
//#define ENABLE_ATC    //comment out this line to disable AUTO TRANSMISSION CONTROL
// #define ATC_RSSI      -80
//*********************************************************************************************

#ifdef __AVR_ATmega1284P__
  #define LED           15 // Moteino MEGAs have LEDs on D15
  #define FLASH_SS      23 // and FLASH SS on D23
#else
  #define LED           9 // Moteinos have LEDs on D9
  #define FLASH_SS      8 // and FLASH SS on D8
#endif

#define SERIAL_BAUD   38400

int TRANSMITPERIOD = 200; //transmit a packet to gateway so often (in ms)
char payload[] = "123 ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char buff[20];
byte sendSize=0;
boolean requestACK = false;
// SPIFlash flash(FLASH_SS, 0xEF30); //EF30 for 4mbit  Windbond chip (W25X40CL)

#ifdef ENABLE_ATC
  RFM69_ATC radio;
#else
  RFM69 radio;
#endif

void setup() {

  pinMode(5, OUTPUT);
  digitalWrite(5, HIGH);
  delay(100);
  digitalWrite(5, LOW);
  delay(100);

  Serial.begin(SERIAL_BAUD);
  radio.initialize(FREQUENCY,NODEID,NETWORKID);
#ifdef IS_RFM69HW
  radio.setHighPower(); //uncomment only for RFM69HW!
#endif
  radio.encrypt(ENCRYPTKEY);
  //radio.setFrequency(919000000); //set frequency to some custom frequency

//Auto Transmission Control - dials down transmit power to save battery (-100 is the noise floor, -90 is still pretty good)
//For indoor nodes that are pretty static and at pretty stable temperatures (like a MotionMote) -90dBm is quite safe
//For more variable nodes that can expect to move or experience larger temp drifts a lower margin like -70 to -80 would probably be better
//Always test your ATC mote in the edge cases in your own environment to ensure ATC will perform as you expect
#ifdef ENABLE_ATC
  radio.enableAutoPower(ATC_RSSI);
#endif

  char buff[50];
  sprintf(buff, "\nTransmitting at %d Mhz...", FREQUENCY==RF69_433MHZ ? 433 : FREQUENCY==RF69_868MHZ ? 868 : 915);
  Serial.println(buff);

#ifdef ENABLE_ATC
  Serial.println("RFM69_ATC Enabled (Auto Transmission Control)\n");
#endif
}

long lastPeriod = 0;
void loop() {
  //process any serial input
  if (Serial.available() &gt; 0)
  {
    char input = Serial.read();
    if (input &gt;= 48 &amp;&amp; input &lt;= 57) //[0,9]
    {
      TRANSMITPERIOD = 100 * (input-48);
      if (TRANSMITPERIOD == 0) TRANSMITPERIOD = 1000;
      Serial.print("\nChanging delay to ");
      Serial.print(TRANSMITPERIOD);
      Serial.println("ms\n");
    }

    if (input == 'r') //d=dump register values
      radio.readAllRegs();
    //if (input == 'E') //E=enable encryption
    //  radio.encrypt(KEY);
    //if (input == 'e') //e=disable encryption
    //  radio.encrypt(null);
  }

  //check for any received packets
  if (radio.receiveDone())
  {
    Serial.print('[');Serial.print(radio.SENDERID, DEC);Serial.print("] ");
    for (byte i = 0; i &lt; radio.DATALEN; i++)
      Serial.print((char)radio.DATA[i]);
    Serial.print("   [RX_RSSI:");Serial.print(radio.RSSI);Serial.print("]");

    if (radio.ACKRequested())
    {
      radio.sendACK();
      Serial.print(" - ACK sent");
    }
    Serial.println();
  }

  int currPeriod = millis()/TRANSMITPERIOD;
  if (currPeriod != lastPeriod)
  {
    lastPeriod=currPeriod;

  Serial.print("Sending[");
  Serial.print(sendSize);
  Serial.print("]: ");
  for(byte i = 0; i &lt; sendSize; i++)
  Serial.print((char)payload[i]);

  if (radio.sendWithRetry(GATEWAYID, payload, sendSize))
  Serial.print(" ok!");
  else Serial.print(" nothing...");


    sendSize = (sendSize + 1) % 31;
    Serial.println();
  }
}
</code></pre>
]]></description><link>https://forum.mysensors.org/post/58425</link><guid isPermaLink="true">https://forum.mysensors.org/post/58425</guid><dc:creator><![CDATA[OpticFroggy]]></dc:creator><pubDate>Sun, 29 Jan 2017 09:39:49 GMT</pubDate></item><item><title><![CDATA[Reply to RFM69 not initialising (required reset could be the cause) on Sun, 29 Jan 2017 09:27:18 GMT]]></title><description><![CDATA[<p dir="auto">Hi.</p>
<p dir="auto">looks strange.<br />
Actually you don't need to reset the rfm69 with Mysensors nor Lowpowerlab libs. But that will be an upcoming, optional feature in the next driver.</p>
<p dir="auto">What's your hardware and sketch?</p>
]]></description><link>https://forum.mysensors.org/post/58424</link><guid isPermaLink="true">https://forum.mysensors.org/post/58424</guid><dc:creator><![CDATA[scalz]]></dc:creator><pubDate>Sun, 29 Jan 2017 09:27:18 GMT</pubDate></item></channel></rss>