conecting the radio module on a MEGA 2560 ?? !!
-
i have a problem to make a radio NRF24L01 working on a MEGA 2560 to create a sensor node
i am using the standard mysensor connection (its working for me on a nano)
but when i use the same connection on the mega it is not working at all
i select the good board type before uploading .....serial is giving me this message :
Starting repeater (RNNRA-, 2.0.0)
TSM:INIT
!TSM:RADIO:FAIL
!TSM:FAILURE
TSM:PDTthe radio moduleis working correctly on an other node.....
is there anithing i dont know to use a MEGA....
is the connection the same than on a nanoPS sorry for my bad english
-
@samdel the mega uses different pins. follow the instructions for mega linked from https://www.mysensors.org/build/connect_radio
-
You have to use the correct pins for MISO,MOSI,SS,SCK and Pin 2 for the interrupt. You can get them here:
https://lynx2015.files.wordpress.com/2015/08/arduino-mega-pinout-diagram.png
You also have to modify the Arduino Mysensors in Library, inside Drivers/RFM69/RFM69.h you must specify interrupt number 4 for the mega 2560 (it's 0 for the 328).#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATmega88) || defined(__AVR_ATmega8__) || defined(__AVR_ATmega88__) #define RF69_IRQ_PIN 2 #define RF69_IRQ_NUM 0 #elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__) #define RF69_IRQ_PIN 2 #define RF69_IRQ_NUM 2 #elif defined(__AVR_ATmega32U4__) #define RF69_IRQ_PIN 3 #define RF69_IRQ_NUM 0 #elif defined(__arm__)//Use pin 10 or any pin you want #define RF69_IRQ_PIN 10 #define RF69_IRQ_NUM 10 #else #define RF69_IRQ_PIN 2 #define RF69_IRQ_NUM 4 #endif
PS. I've tried using the #define MY_RF69_IRQ_NUM inside the main sketch but I couldn't get it to work.
-
i used Mfalkvidd advices ......
its working better but stil not recognised from the gatewayStarting sensor (RNNNA-, 2.0.0)
TSM:INIT
TSM:RADIO:OK
TSM:FPAR
TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
TSM:FPAR
TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
TSM:FPAR
TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
TSM:FPAR
TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
!TSM:FPAR:FAIL
!TSM:FAILURE
TSM:PDT
-
@executivul The OP is using an nrf24 radio, not rfm69. Let's not give him wrong advise
-
@samdel great work. Could you post the log from the gateway?
-
0;255;3;0;9;Starting gateway (RNNGA-, 2.0.0)
0;255;3;0;9;TSM:INIT
0;255;3;0;9;TSM:RADIO:OK
0;255;3;0;9;TSM:GW MODE
0;255;3;0;9;TSM:READY
IP: 192.168.1.19
0;255;3;0;9;No registration required
0;255;3;0;9;Init complete, id=0, parent=0, distance=0, registration=1
0;255;3;0;9;TSP:MSG:READ 1-1-255 s=255,c=3,t=7,pt=0,l=0,sg=0:
0;255;3;0;9;TSP:MSG:BC
0;255;3;0;9;TSP:MSG:FPAR REQ (sender=1)
0;255;3;0;9;TSP:CHKUPL:OK (FLDCTRL)
0;255;3;0;9;TSP:MSG:GWL OK
0;255;3;0;9;!TSP:MSG:SEND 0-0-1-1 s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=fail:0
0;255;3;0;9;TSP:MSG:READ 255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0:
0;255;3;0;9;TSP:MSG:BC
0;255;3;0;9;TSP:MSG:FPAR REQ (sender=255)
0;255;3;0;9;TSP:CHKUPL:OK (FLDCTRL)
0;255;3;0;9;TSP:MSG:GWL OK
0;255;3;0;9;TSP:MSG:SEND 0-0-255-255 s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=bc:0
0;255;3;0;9;TSP:MSG:READ 14-14-255 s=255,c=3,t=8,pt=1,l=1,sg=0:1
0;255;3;0;9;TSP:MSG:BC
0;255;3;0;9;TSP:MSG:READ 0-14-255 s=255,c=3,t=8,pt=1,l=1,sg=0:0
0;255;3;0;9;TSP:MSG:BC
0;255;3;0;9;TSP:MSG:READ 255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0:
0;255;3;0;9;TSP:MSG:BC
0;255;3;0;9;TSP:MSG:FPAR REQ (sender=255)
0;255;3;0;9;TSP:CHKUPL:OK (FLDCTRL)
0;255;3;0;9;TSP:MSG:GWL OK
0;255;3;0;9;TSP:MSG:SEND 0-0-255-255 s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=bc:0
0;255;3;0;9;TSP:MSG:READ 14-14-255 s=255,c=3,t=8,pt=1,l=1,sg=0:1
0;255;3;0;9;TSP:MSG:BC
0;255;3;0;9;TSP:MSG:READ 0-14-255 s=255,c=3,t=8,pt=1,l=1,sg=0:0
0;255;3;0;9;TSP:MSG:BC
0;255;3;0;9;TSP:MSG:READ 1-1-255 s=255,c=3,t=7,pt=0,l=0,sg=0:
0;255;3;0;9;TSP:MSG:BC
0;255;3;0;9;TSP:MSG:FPAR REQ (sender=1)
0;255;3;0;9;TSP:CHKUPL:OK (FLDCTRL)
0;255;3;0;9;TSP:MSG:GWL OK
0;255;3;0;9;!TSP:MSG:SEND 0-0-1-1 s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=fail:0
0;255;3;0;9;TSP:MSG:READ 255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0:
0;255;3;0;9;TSP:MSG:BC
0;255;3;0;9;TSP:MSG:FPAR REQ (sender=255)
0;255;3;0;9;TSP:CHKUPL:OK (FLDCTRL)
0;255;3;0;9;TSP:MSG:GWL OK
0;255;3;0;9;TSP:MSG:SEND 0-0-255-255 s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=bc:0
0;255;3;0;9;TSP:MSG:READ 14-14-255 s=255,c=3,t=8,pt=1,l=1,sg=0:1
0;255;3;0;9;TSP:MSG:BC
0;255;3;0;9;TSP:MSG:READ 0-14-255 s=255,c=3,t=8,pt=1,l=1,sg=0:0
0;255;3;0;9;TSP:MSG:BC
0;255;3;0;9;TSP:MSG:READ 1-1-255 s=255,c=3,t=7,pt=0,l=0,sg=0:
0;255;3;0;9;TSP:MSG:BC
0;255;3;0;9;TSP:MSG:FPAR REQ (sender=1)
0;255;3;0;9;TSP:CHKUPL:OK (FLDCTRL)
0;255;3;0;9;TSP:MSG:GWL OK
0;255;3;0;9;!TSP:MSG:SEND 0-0-1-1 s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=fail:0
0;255;3;0;9;TSP:MSG:READ 255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0:
0;255;3;0;9;TSP:MSG:BC
-
befor was the serial monitor of the gateway and below is the sketch i an using in the mega :
// Enable debug prints to serial monitor
#define MY_DEBUG// Enable and select radio type attached
#define MY_RADIO_NRF24#define SN "RelayButtonArray"
#define SV "1.0"// Pin Confuguration for Arduino Mega
#define MY_RF24_CE_PIN 40
#define MY_RF24_CS_PIN 53
#include <MySensors.h>
#include <SPI.h>
#include <Bounce2.h>
#define RELAY_ON 0 // switch around for ACTIVE LOW / ACTIVE HIGH relay
#define RELAY_OFF 1
//#define noRelays 8 //2-4
const int relayPin[] = {2, 4, 6, 8, 10, 12, 14, 16}; // switch around pins to your desire
const int buttonPin[] = {3, 5, 7, 9, 11, 13, 15, 17}; // switch around pins to your desireclass Relay // relay class, store all relevant data (equivalent to struct)
{
public:
int buttonPin; // physical pin number of button
int relayPin; // physical pin number of relay
boolean relayState; // relay status (also stored in EEPROM)
};Relay Relays[noRelays];
Bounce debouncer[noRelays];
MyMessage msg[noRelays];/*
void before() {
for (int sensor=1, pin=RELAY_1; sensor<=NUMBER_OF_RELAYS;sensor++, pin++) {
// Then set relay pins in output mode
pinMode(pin, OUTPUT);
// Set relay to last known state (using eeprom storage)
digitalWrite(pin, loadState(sensor)?RELAY_ON:RELAY_OFF);
}
}*/void setup() {
wait(100);
// Initialize Relays with corresponding buttons
for (int i = 0; i < noRelays; i++) {
Relays[i].buttonPin = buttonPin[i]; // assign physical pins
Relays[i].relayPin = relayPin[i];
msg[i].sensor = i; // initialize messages
msg[i].type = V_LIGHT;
pinMode(Relays[i].buttonPin, INPUT_PULLUP);
wait(100);
pinMode(Relays[i].relayPin, OUTPUT);
Relays[i].relayState = loadState(i); // retrieve last values from EEPROM
digitalWrite(Relays[i].relayPin, Relays[i].relayState ? RELAY_ON : RELAY_OFF); // and set relays accordingly
send(msg[i].set(Relays[i].relayState ? true : false)); // make controller aware of last status
wait(50);
debouncer[i] = Bounce(); // initialize debouncer
debouncer[i].attach(buttonPin[i]);
debouncer[i].interval(30);
wait(50);
}
}void presentation()
{
// Send the sketch version information to the gateway and Controller
sendSketchInfo(SN, SV);wait(100);
for (int i = 0; i < noRelays; i++)
present(i, S_LIGHT); // present sensor to gatewaywait(100);
}void loop()
{
for (byte i = 0; i < noRelays; i++) {
if (debouncer[i].update()) {int value = debouncer[i].read(); if ( value == LOW) { Relays[i].relayState = !Relays[i].relayState; digitalWrite(Relays[i].relayPin, Relays[i].relayState ? RELAY_ON : RELAY_OFF); send(msg[i].set(Relays[i].relayState ? true : false)); // save sensor state in EEPROM (location == sensor number) saveState( i, Relays[i].relayState ); } }
}
//wait(20);
}void receive(const MyMessage &message) {
if (message.type == V_LIGHT) {
if (message.sensor < noRelays) { // check if message is valid for relays..... previous line [[[ if (message.sensor <=noRelays){ ]]]
Relays[message.sensor].relayState = message.getBool();
digitalWrite(Relays[message.sensor].relayPin, Relays[message.sensor].relayState ? RELAY_ON : RELAY_OFF); // and set relays accordingly
saveState( message.sensor, Relays[message.sensor].relayState ); // save sensor state in EEPROM (location == sensor number)
}
}
wait(20);
}
-
@samdel the gateway receives the request for parens and replies, but the sensor does not "hear" the reply.
See https://forum.mysensors.org/topic/666/debug-faq-and-how-ask-for-help for information on how to troubleshoot range and power issues.
-
i double (triple) checked connections all ok
i checkes power suplies ; all ok
i have condansators installed on each nrf24
and i am testing it on my desk so no long distance to travel...
......i tried to assigne a node id ;
Starting sensor (RNNNA-, 2.0.0)
TSM:INIT
TSM:RADIO:OK
TSP:ASSIGNID:OK (ID=44)
TSM:FPAR
TSP:MSG:SEND 44-44-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
TSM:FPAR
TSP:MSG:SEND 44-44-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
TSM:FPAR
TSP:MSG:SEND 44-44-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
TSM:FPAR
TSP:MSG:SEND 44-44-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
!TSM:FPAR:FAIL
!TSM:FAILURE
TSM:PDT
TSM:INIT
TSM:RADIO:OK
TSP:ASSIGNID:OK (ID=44)
TSM:FPAR
TSP:MSG:SEND 44-44-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
TSM:FPAR
TSP:MSG:SEND 44-44-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
TSM:FPAR
TSP:MSG:SEND 44-44-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
TSM:FPAR
TSP:MSG:SEND 44-44-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
!TSM:FPAR:FAIL
!TSM:FAILURE
TSM:PDT
TSM:INITgateway ;
0;255;3;0;9;Starting gateway (RNNGA-, 2.0.0)
0;255;3;0;9;TSM:INIT
0;255;3;0;9;TSM:RADIO:OK
0;255;3;0;9;TSM:GW MODE
0;255;3;0;9;TSM:READY
IP: 192.168.1.19
0;255;3;0;9;No registration required
0;255;3;0;9;Init complete, id=0, parent=0, distance=0, registration=1
0;255;3;0;9;TSP:MSG:READ 1-1-255 s=255,c=3,t=7,pt=0,l=0,sg=0:
0;255;3;0;9;TSP:MSG:BC
0;255;3;0;9;TSP:MSG:FPAR REQ (sender=1)
0;255;3;0;9;TSP:CHKUPL:OK (FLDCTRL)
0;255;3;0;9;TSP:MSG:GWL OK
0;255;3;0;9;!TSP:MSG:SEND 0-0-1-1 s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=fail:0
0;255;3;0;9;TSP:MSG:READ 44-44-255 s=255,c=3,t=7,pt=0,l=0,sg=0:
0;255;3;0;9;TSP:MSG:BC
0;255;3;0;9;TSP:MSG:FPAR REQ (sender=44)
0;255;3;0;9;TSP:CHKUPL:OK (FLDCTRL)
0;255;3;0;9;TSP:MSG:GWL OK
0;255;3;0;9;!TSP:MSG:SEND 0-0-44-44 s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=fail:0
0;255;3;0;9;TSP:MSG:READ 61-61-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.9
0;255;3;0;9;TSP:MSG:READ 61-61-0 s=0,c=1,t=1,pt=7,l=5,sg=0:33.3
0;255;3;0;9;TSP:MSG:READ 44-44-255 s=255,c=3,t=7,pt=0,l=0,sg=0:
0;255;3;0;9;TSP:MSG:BC
0;255;3;0;9;TSP:MSG:FPAR REQ (sender=44)
0;255;3;0;9;TSP:CHKUPL:OK (FLDCTRL)
0;255;3;0;9;TSP:MSG:GWL OK
-
@samdel does it start working if you move the sensor and the gateway further apart? There have been several cases where people have had trouble when the nodes are too close.
-
The 3v3 line on mega was super noisy when I used it. I had to put a step down from the 5V rail.
-
2 metres away stillthe same result
i also tried to load an other sketch asthe one i was using was tuned by me....
still the samei finaly tried using an other arduinoboard (original one) and it is working good......
the one who was not working correctly was this one ;
https://www.amazon.fr/gp/product/B00OPO44UE/ref=ox_sc_act_title_32?ie=UTF8&psc=1&smid=A21548PJTFXT87di i have to put it to trash or is there a way to test it or to make it working ???
-
hi Hek
how do you measur the noisyness?? with a fluck in AC ?? what are the limits .?
-