Can't figure out what I'm doing wrong with test setup
-
I'm trying to test everything out before I build a bunch of sensors, but I can't seem to get any output at the serial monitor in the arduino program. Here's my setup (I'm not sure I set everything up correctly, I tried to follow the directions as well as I could):
Nano and NRF24L01+PA+LNA Antenna version - connected exactly how the guy in the youtube getting started video did it. That said, I had a slightly different version of the radio as mine wasn't labeled and didn't have white squares, so I assume they are pinned the same? Also, I included the capacitor between GND and VCC with the white stripe to GND (4.7uF).
Then I connected 5V and GND from the nano's 6 pin interface section to a pro mini at the top connections (TX0, RX1, VCC, GND) to VCC and GND to power it for testing. The pro mini is then connected to a NRF24L01+ 2.4GHz Wireless Transceiver as shown in the "Wiring it up" section. I then connect the door open/close sensor to GND and pin 3 on the pro mini as shown in the binary sensor page.
The nano has the SerialGateway example installed and the pro mini has the BinarySwitchSleepSensor example installed.
So, I plug in the nano via USB to my computer and then pull up the arduino program and go to Serial Monitor for COM3 (where the nano is plugged in) -- I get one output and it always seems to be some unicode character and two digits. And then nothing else. I pull the magnets on the sensor apart, nothing. I'm not sure what I'm doing incorrectly. Can anyone assist?
-
I'm trying to test everything out before I build a bunch of sensors, but I can't seem to get any output at the serial monitor in the arduino program. Here's my setup (I'm not sure I set everything up correctly, I tried to follow the directions as well as I could):
Nano and NRF24L01+PA+LNA Antenna version - connected exactly how the guy in the youtube getting started video did it. That said, I had a slightly different version of the radio as mine wasn't labeled and didn't have white squares, so I assume they are pinned the same? Also, I included the capacitor between GND and VCC with the white stripe to GND (4.7uF).
Then I connected 5V and GND from the nano's 6 pin interface section to a pro mini at the top connections (TX0, RX1, VCC, GND) to VCC and GND to power it for testing. The pro mini is then connected to a NRF24L01+ 2.4GHz Wireless Transceiver as shown in the "Wiring it up" section. I then connect the door open/close sensor to GND and pin 3 on the pro mini as shown in the binary sensor page.
The nano has the SerialGateway example installed and the pro mini has the BinarySwitchSleepSensor example installed.
So, I plug in the nano via USB to my computer and then pull up the arduino program and go to Serial Monitor for COM3 (where the nano is plugged in) -- I get one output and it always seems to be some unicode character and two digits. And then nothing else. I pull the magnets on the sensor apart, nothing. I'm not sure what I'm doing incorrectly. Can anyone assist?
@linus72982 have you set the right baud rate in the serial monitor? Please post a picture of your setup and sketch
-
I'm trying to test everything out before I build a bunch of sensors, but I can't seem to get any output at the serial monitor in the arduino program. Here's my setup (I'm not sure I set everything up correctly, I tried to follow the directions as well as I could):
Nano and NRF24L01+PA+LNA Antenna version - connected exactly how the guy in the youtube getting started video did it. That said, I had a slightly different version of the radio as mine wasn't labeled and didn't have white squares, so I assume they are pinned the same? Also, I included the capacitor between GND and VCC with the white stripe to GND (4.7uF).
Then I connected 5V and GND from the nano's 6 pin interface section to a pro mini at the top connections (TX0, RX1, VCC, GND) to VCC and GND to power it for testing. The pro mini is then connected to a NRF24L01+ 2.4GHz Wireless Transceiver as shown in the "Wiring it up" section. I then connect the door open/close sensor to GND and pin 3 on the pro mini as shown in the binary sensor page.
The nano has the SerialGateway example installed and the pro mini has the BinarySwitchSleepSensor example installed.
So, I plug in the nano via USB to my computer and then pull up the arduino program and go to Serial Monitor for COM3 (where the nano is plugged in) -- I get one output and it always seems to be some unicode character and two digits. And then nothing else. I pull the magnets on the sensor apart, nothing. I'm not sure what I'm doing incorrectly. Can anyone assist?
Welcome @linus72982 Great to have you here!
Are you using a 3.3 or 5V pro mini? It sounds like you are powering the pro mini with 5V on Vcc. If the pro mini is 3.3V it needs to be powered with 5V or higher through the RAW pin, or 3.3V on the Vcc pin.
Which speed are you using for the serial monitor? Try using 115200.
The most common problems and instructions on how to read the serial debug output is available in https://forum.mysensors.org/topic/666/debug-faq-and-how-ask-for-help
Start with getting the gateway to start properly (it will say when it has started on the serial output). When that is done, connect the pro mini to serial and start looking at the output. Post the output here if you need help reading it.
-
Okay, the serial monitor baud wasn't set correctly, changing it to 115200 allowed me to see the data -- the gateway is starting up, but still nothing from the sensor. My pro mini is a 3.3V, I have it powered via 5V from the Nano currently to the VCC pin -- it sounds like I need to switch that to the RAW pin. I'll do that after work and if I still can't get anything, I'll post some pics.
-
I connected to the RAW input instead, the red LED still comes on so hopefully I didn't torch it (if I did, I have 9 others). Anyway, still no output, just Gateway started in the serial monitor. Here are some pics of the setup:
The first two pics are either side of the gateway radio.
The next one is of the nano.
The next two are the connections to the radio from the pro mini
The last two are both sides of the pro mini
-
Okay, I made a lot of progress with your guys' help. I added a capacitor and checked the output from the pro mini. It said Radio Init Failed or something similar. I checked for that error and it looks like bad power or wiring. I tried rewiring and checking power -- nothing wrong, so I switched out the radio and that seemed to work. Now when I check the serial monitor for the nano, I get this:
0;0;3;0;9;gateway started, id=0, parent=0, distance=0
0;0;3;0;14;Gateway startup complete.like usual, but now I also get this when I separate the magnets:
0;0;3;0;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0,sg=0:
255;255;3;0;3;
0;0;3;0;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0,sg=0:
255;255;3;0;3;
0;0;3;0;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0,sg=0:
255;255;3;0;3;So, one more problem left -- I only ever can get three outputs from separating and repairing the magnets. Those three above. Thereafter, I get nothing when I separate even if I wait for minutes. I try to separate and repair a few different times, tried waiting in between each, still nothing after the first three. When I restart the serial monitor, I get three more, but no more after that.
Thanks so much for your help so far, I'm getting close -- any ideas about this last glitch? Is that just a problem with the serial monitor or is it a problem with my setup?
-
I wrote up a python serial reading script and figured out that I only ever can get one response for separating the magnets before it stops, so it can't be the arduino serial monitor as I just tested it on my own and still it stalls out. Not sure if there's a setting for this somewhere in the sketch or what.
-
The message read by the gateway was an internal message of subtype 3, which is a request for node id. The node will send this message if no manual node id is set in the sketch. If using automatic node id, a controller needs to be connected to the gateway, and the controller needs to be able to hand out node ids.
Read about this on the api page on the mysensors web.
-
So, the actual message is a subtype 9, trace-log a message and it's sending "read: 255-255-0 s=255,c=3,t=3,pt=0,l=0,sg=0: 255;255;3;0;3;" correct? So, it's trace-logging a node-id request? The thing is, these messages only happen when I separate or re-pair the magnet sensors.
Two questions: Is this a normal message -- I mean, is everything working well? I don't care how node-ids get passed out. I assume the serial gateway example sketch has it handing out node-ids?
If everything is working well -- how do I get my sensor open/closed messages? I don't seem to be getting those. I know the sensor is doing something as the trace-log messages only happen when I trigger the sensor.
I'm not sure where to go from here.
-
So, the actual message is a subtype 9, trace-log a message and it's sending "read: 255-255-0 s=255,c=3,t=3,pt=0,l=0,sg=0: 255;255;3;0;3;" correct? So, it's trace-logging a node-id request? The thing is, these messages only happen when I separate or re-pair the magnet sensors.
Two questions: Is this a normal message -- I mean, is everything working well? I don't care how node-ids get passed out. I assume the serial gateway example sketch has it handing out node-ids?
If everything is working well -- how do I get my sensor open/closed messages? I don't seem to be getting those. I know the sensor is doing something as the trace-log messages only happen when I trigger the sensor.
I'm not sure where to go from here.
@linus72982 You need a "controller" to issue node id's. If you don't have one you can assign a fixed id. This will allow your sketch to move on and show it's real Tricks.
-
I have the nano connected to the gateway radio -- isn't that the controller?
-
If I do fixed ID's, where do I do that? I assume I do that in the BinarySwitchSleepSensor sketch, I'm just not sure where. It looks like there is already a PRIMARY_CHILD_ID and SECONDARY_CHILD_ID assigned (3 and 4 respectively). Is that what those are?
-
Okay, I tooled around and figured it out. I assigned a manual id in the begin() on the pro mini. But, I still have a problem:
I get the sensor open and closed messages just fine -- for about 30 seconds. After that, I get nothing through the serial port. I restart the serial monitor and I can get 30 seconds more. I opened my Python script and same thing. I get about 10 seconds of messages on that. I'm not sure what's going on here. Does anyone else know?
-
I have the nano connected to the gateway radio -- isn't that the controller?
@linus72982 said:
I have the nano connected to the gateway radio -- isn't that the controller?
The nano is the gateway.
See https://www.mysensors.org/about/network for a description of the different parts. https://www.mysensors.org/controller/ has a list of supported controllers.
-
Okay, I tooled around and figured it out. I assigned a manual id in the begin() on the pro mini. But, I still have a problem:
I get the sensor open and closed messages just fine -- for about 30 seconds. After that, I get nothing through the serial port. I restart the serial monitor and I can get 30 seconds more. I opened my Python script and same thing. I get about 10 seconds of messages on that. I'm not sure what's going on here. Does anyone else know?
@linus72982 said:
Okay, I tooled around and figured it out. I assigned a manual id in the begin() on the pro mini. But, I still have a problem:
I get the sensor open and closed messages just fine -- for about 30 seconds. After that, I get nothing through the serial port. I restart the serial monitor and I can get 30 seconds more. I opened my Python script and same thing. I get about 10 seconds of messages on that. I'm not sure what's going on here. Does anyone else know?
Great progress!
My guess would be a power problem or an error in the sketch. Could you post your sketch so we can take a look? -
Ahh, I got a bit tripped up in the terminology. The controller is my computer. I'm going to be using a custom python script to control, I'm using the gateway as a sort of dongle from the radio network to the computer. Either way, I prefer the hard-coded node-ids so handing out IDs is moot now, anyway.
So, to my problem, it can't be power because everything works again when I restart the serial controller. It also works more when I stop and restart my python serial monitor. It's weird, there is no communication from the computer to the gateway when I restart the monitor so I don't think it can be anything in the gateway at all, it has to be from the USB, operating system of the computer (win 10), or the monitors (unlikely because I'm using two different ones). It's almost like there's a timeout on the port or something.
In any case, here's the sketch in case my reasoning above isn't sound and there is something there that is affecting operation (this sketch is, literally, just the example SerialGateway from MySensors but with the added arguments in the begin() line:
/** * The MySensors Arduino library handles the wireless radio link and protocol * between your home built sensors/actuators and HA controller of choice. * The sensors forms a self healing radio network with optional repeaters. Each * repeater and gateway builds a routing tables in EEPROM which keeps track of the * network topology allowing messages to be routed to nodes. * * Created by Henrik Ekblad <henrik.ekblad@mysensors.org> * Copyright (C) 2013-2015 Sensnology AB * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors * * Documentation: http://www.mysensors.org * Support Forum: http://forum.mysensors.org * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * version 2 as published by the Free Software Foundation. * ******************************* * * DESCRIPTION * * Simple binary switch example * Connect button or door/window reed switch between * digitial I/O pin 3 (BUTTON_PIN below) and GND. * http://www.mysensors.org/build/binary */ #include <MySensor.h> #include <SPI.h> #include <Bounce2.h> #define CHILD_ID 3 #define BUTTON_PIN 3 // Arduino Digital I/O pin for button/reed switch MySensor gw; Bounce debouncer = Bounce(); int oldValue=-1; // Change to V_LIGHT if you use S_LIGHT in presentation below MyMessage msg(CHILD_ID,V_TRIPPED); void setup() { gw.begin(NULL, CHILD_ID, false); // Setup the button pinMode(BUTTON_PIN,INPUT); // Activate internal pull-up digitalWrite(BUTTON_PIN,HIGH); // After setting up the button, setup debouncer debouncer.attach(BUTTON_PIN); debouncer.interval(5); // Register binary input sensor to gw (they will be created as child devices) // You can use S_DOOR, S_MOTION or S_LIGHT here depending on your usage. // If S_LIGHT is used, remember to update variable type you send in. See "msg" above. gw.present(CHILD_ID, S_DOOR); } // Check if digital input has changed and send in new value void loop() { debouncer.update(); // Get the update value int value = debouncer.read(); if (value != oldValue) { // Send in the new value gw.send(msg.set(value==HIGH ? 1 : 0)); oldValue = value; } } -
I did a little reading and found out my earlier statement that there is no communication between the computer and the gateway when I start the serial monitor is incorrect. Starting a connection resets the board, auto-reset. I know this is happening because there is a green led blink when I click on the serial monitor.
So, now there are more options for what it could be -- I'll check power and some other things and come back. Let me know if there's anything in the sketch that looks like it could be doing it. I don't know C well at all.
-
I did a little reading and found out my earlier statement that there is no communication between the computer and the gateway when I start the serial monitor is incorrect. Starting a connection resets the board, auto-reset. I know this is happening because there is a green led blink when I click on the serial monitor.
So, now there are more options for what it could be -- I'll check power and some other things and come back. Let me know if there's anything in the sketch that looks like it could be doing it. I don't know C well at all.
@linus72982 what does the serial monitor on your node show when you strart the node now. Any radio failures?
Your sketch looks fine.