💬 Easy/Newbie PCB for MySensors
-
@sundberg84, had to migrate my gateway to Ethernet in the meantime but now I am on the PIR/ battery case. i have my booster to 5V in.. will post the results of it...
-
Hello
I think there is a mistake in your code (on github) to mesure battery.
The array have 4 values, but you divide by 3. So you get to high result.
https://github.com/sundberg84/HomeAutomation/blob/master/BatteryMeasurer/BatteryMeasurer.ino
On line 77Everything else is ok in my case :) the board works well with 2 battery AA, and 47uF cap (not with 4.7uF) .
-
Hello
I think there is a mistake in your code (on github) to mesure battery.
The array have 4 values, but you divide by 3. So you get to high result.
https://github.com/sundberg84/HomeAutomation/blob/master/BatteryMeasurer/BatteryMeasurer.ino
On line 77Everything else is ok in my case :) the board works well with 2 battery AA, and 47uF cap (not with 4.7uF) .
Nice catch @barrydou
The bat array is declared to hold 3 elements
int batArray[3];but then 4 values are fetched
batteryPcnt = (batArray[0] + batArray[1] + batArray[2] + batArray[3]);batArray[3] is outside of the array, so the ram here could hold any value.
The code should probably be changed to this
batteryPcnt = (batArray[0] + batArray[1] + batArray[2]); -
@mfalkvidd : I think you have to change the condition in if too :
if (batLoop > 1) {With that, batLoop = 2 when entering in the if (so the 3 values of the array are filled : 0, 1, 2), calculating the average and reseting the batLoop to 0.
If not modify, the array will be set with batArray[3] just before entering theif (batLoop > 2) {Other way is to set the batArray size to 4 values, and divide by 4 (I'm actually trying that).
-
@mfalkvidd : I think you have to change the condition in if too :
if (batLoop > 1) {With that, batLoop = 2 when entering in the if (so the 3 values of the array are filled : 0, 1, 2), calculating the average and reseting the batLoop to 0.
If not modify, the array will be set with batArray[3] just before entering theif (batLoop > 2) {Other way is to set the batArray size to 4 values, and divide by 4 (I'm actually trying that).
@barrydou @mfalkvidd - thanks.
Wouldnt it be easiest to just "+ batArray[3]" so it isbatteryPcnt = (batArray[0] + batArray[1] + batArray[2]the declaration = 3 elements
batterypct = 3 elements
batloop > 2 should be correct (0,1 and 2)I dont think the code has made any faulty readings since the declaration is only for 3 elements, making batArray[3] never used? (Or always been 0). The batteryPcnt is then divived by 3.
-
@barrydou @mfalkvidd - thanks.
Wouldnt it be easiest to just "+ batArray[3]" so it isbatteryPcnt = (batArray[0] + batArray[1] + batArray[2]the declaration = 3 elements
batterypct = 3 elements
batloop > 2 should be correct (0,1 and 2)I dont think the code has made any faulty readings since the declaration is only for 3 elements, making batArray[3] never used? (Or always been 0). The batteryPcnt is then divived by 3.
-
We must be ordering EasyPCB alof from PCBway since they used it as an example board for this youtuber:
-
We must be ordering EasyPCB alof from PCBway since they used it as an example board for this youtuber:
@sundberg84 haha gorgeous, I think they only sent open hardware boards, and ran some batches from boards available on openhardware, as except the perfboards they send as free gifts the other real PCBs are MySWeMosIRShield by @emc2 and the RollerShutterNode by @Scalz
https://www.openhardware.io/view/385/MySWeMosIRShield-IR-blaster-shield-for-WeMos-D1
https://www.openhardware.io/view/22/Roller-Shutter-Node -
Looks nice in red ;)
-
hello, i have a stupid question... on the 3 rows below VCC and GD on your prototyping area; are the rows connected horizontally like a breadboard? thanks
-
hello, i have a stupid question... on the 3 rows below VCC and GD on your prototyping area; are the rows connected horizontally like a breadboard? thanks
@pierre1410 - no stupid questions, simple answer though, no :)

-
Hello Sundberg84 et al,
I purchased Easy Newbie PCB (Rev 10) with the hope of jumping into the IoT rave... I tried to create the Gateway - and it works perfectly. I also found and created an advanced Water Sprinkler MyS project by Pete and Co!... that also worked perfectly.However, I cant seem to get simpler beginner sketches to work with EasyNewbie. I have soldered the need components (the regulated version). I plan to connect to a 4 relay module, but for now, I am simulating the relay with a simple LED attached to D2. I have uploaded the following sketch which was originally written for version 1.0 MySensors - but have been corrected using guidelines I found for converting 1.0 - 2.0 version. but still no cheese - the controller (Domoticz) displays the Node, but not the complete child nodes, - the LED connected to pin D2 (or D3, D5..) on the Easy Newbie doesn't light up even when I toggle the switches and devices on controller. Don't know what I might be doing wrong, please help.
// Example sketch showing how to control physical relays. // This example will remember relay state even after power failure. // Enable debug prints #define MY_DEBUG // Enable and select radio type attached #define MY_RADIO_NRF24 #define MY_NODE_ID 4 // Set this to fix your Radio ID or use AUTO or 1 #define MY_REGISTRATION_FEATURE // Forece registration #define MY_REGISTRATION_RETRIES 5 #include <Wire.h> #include <TimeLib.h> #include <SPI.h> #include <MySensors.h> #include <LCD.h> #include <LiquidCrystal.h> #include <LiquidCrystal_I2C.h> // For Debug #ifdef DEBUG_ON #define DEBUG_PRINT(x) Serial.print(x) #define DEBUG_PRINTLN(x) Serial.println(x) #else #define DEBUG_PRINT(x) #define DEBUG_PRINTLN(x) #define SERIAL_START(x) #endif //#define RELAY_1 2 // Arduino Digital I/O pin number for first relay (second on pin+1 etc) #define RELAY_PIN 3 #define NUMBER_OF_RELAYS 4 // Total number of attached relays #define RELAY_ON 0 // GPIO value to write to turn on attached relay #define RELAY_OFF 1 // GPIO value to write to turn off attached relay #define SKETCH_NAME "Base Relay Node" #define SKETCH_VERSION "0.1.2" #define CHILD_ID 0 MyMessage msg(1,V_LIGHT); //void before() void setup() { for (int sensor=1, pin=RELAY_PIN; 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 presentation() { sendSketchInfo(SKETCH_NAME, SKETCH_VERSION); // Fetch relay status for (int sensor=1, pin=RELAY_PIN; sensor<=NUMBER_OF_RELAYS; sensor++, pin++) { // Register all sensors to gw (they will be created as child devices) // present(sensor, S_BINARY); present(sensor, S_LIGHT); // Then set relay pins in output mode pinMode(pin, OUTPUT); // Set relay to last known state (using eeprom storage) boolean savedState = loadState(sensor); digitalWrite(pin, savedState?RELAY_ON:RELAY_OFF); send(msg.set(savedState? 1 : 0)); } DEBUG_PRINTLN(F("Sensor Presentation Complete")); } void loop() { // Alway process incoming messages whenever possible // Sleep until interrupt comes in on motion sensor. Send update every two minute. // sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR), CHANGE, SLEEP_TIME); // update Relays; for (int sensor=1, pin=RELAY_PIN; sensor<=NUMBER_OF_RELAYS; sensor++, pin++) { // Register all sensors to gw (they will be created as child devices) // present(sensor, S_BINARY); send(msg.set(sensor).set(false), false); wait(50); } } void incomingMessage(const MyMessage &message) { // We only expect one type of message from controller. But we better check anyway. if (msg.type==V_STATUS) { // Change relay state digitalWrite(msg.sensor-1+RELAY_PIN, msg.getBool()?RELAY_ON:RELAY_OFF); // Store state in eeprom saveState(msg.sensor, msg.getBool()); // Write some debug info Serial.print("Incoming change for sensor:"); Serial.print(msg.sensor); Serial.print(", New status: "); Serial.println(msg.getBool()); } } -
Hello Sundberg84 et al,
I purchased Easy Newbie PCB (Rev 10) with the hope of jumping into the IoT rave... I tried to create the Gateway - and it works perfectly. I also found and created an advanced Water Sprinkler MyS project by Pete and Co!... that also worked perfectly.However, I cant seem to get simpler beginner sketches to work with EasyNewbie. I have soldered the need components (the regulated version). I plan to connect to a 4 relay module, but for now, I am simulating the relay with a simple LED attached to D2. I have uploaded the following sketch which was originally written for version 1.0 MySensors - but have been corrected using guidelines I found for converting 1.0 - 2.0 version. but still no cheese - the controller (Domoticz) displays the Node, but not the complete child nodes, - the LED connected to pin D2 (or D3, D5..) on the Easy Newbie doesn't light up even when I toggle the switches and devices on controller. Don't know what I might be doing wrong, please help.
// Example sketch showing how to control physical relays. // This example will remember relay state even after power failure. // Enable debug prints #define MY_DEBUG // Enable and select radio type attached #define MY_RADIO_NRF24 #define MY_NODE_ID 4 // Set this to fix your Radio ID or use AUTO or 1 #define MY_REGISTRATION_FEATURE // Forece registration #define MY_REGISTRATION_RETRIES 5 #include <Wire.h> #include <TimeLib.h> #include <SPI.h> #include <MySensors.h> #include <LCD.h> #include <LiquidCrystal.h> #include <LiquidCrystal_I2C.h> // For Debug #ifdef DEBUG_ON #define DEBUG_PRINT(x) Serial.print(x) #define DEBUG_PRINTLN(x) Serial.println(x) #else #define DEBUG_PRINT(x) #define DEBUG_PRINTLN(x) #define SERIAL_START(x) #endif //#define RELAY_1 2 // Arduino Digital I/O pin number for first relay (second on pin+1 etc) #define RELAY_PIN 3 #define NUMBER_OF_RELAYS 4 // Total number of attached relays #define RELAY_ON 0 // GPIO value to write to turn on attached relay #define RELAY_OFF 1 // GPIO value to write to turn off attached relay #define SKETCH_NAME "Base Relay Node" #define SKETCH_VERSION "0.1.2" #define CHILD_ID 0 MyMessage msg(1,V_LIGHT); //void before() void setup() { for (int sensor=1, pin=RELAY_PIN; 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 presentation() { sendSketchInfo(SKETCH_NAME, SKETCH_VERSION); // Fetch relay status for (int sensor=1, pin=RELAY_PIN; sensor<=NUMBER_OF_RELAYS; sensor++, pin++) { // Register all sensors to gw (they will be created as child devices) // present(sensor, S_BINARY); present(sensor, S_LIGHT); // Then set relay pins in output mode pinMode(pin, OUTPUT); // Set relay to last known state (using eeprom storage) boolean savedState = loadState(sensor); digitalWrite(pin, savedState?RELAY_ON:RELAY_OFF); send(msg.set(savedState? 1 : 0)); } DEBUG_PRINTLN(F("Sensor Presentation Complete")); } void loop() { // Alway process incoming messages whenever possible // Sleep until interrupt comes in on motion sensor. Send update every two minute. // sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR), CHANGE, SLEEP_TIME); // update Relays; for (int sensor=1, pin=RELAY_PIN; sensor<=NUMBER_OF_RELAYS; sensor++, pin++) { // Register all sensors to gw (they will be created as child devices) // present(sensor, S_BINARY); send(msg.set(sensor).set(false), false); wait(50); } } void incomingMessage(const MyMessage &message) { // We only expect one type of message from controller. But we better check anyway. if (msg.type==V_STATUS) { // Change relay state digitalWrite(msg.sensor-1+RELAY_PIN, msg.getBool()?RELAY_ON:RELAY_OFF); // Store state in eeprom saveState(msg.sensor, msg.getBool()); // Write some debug info Serial.print("Incoming change for sensor:"); Serial.print(msg.sensor); Serial.print(", New status: "); Serial.println(msg.getBool()); } }@eme - hi!
Im very sorry, code is not my strong side.
Do you think its a problem with the hardware?
Do you have any logs? -
@eme - hi!
Im very sorry, code is not my strong side.
Do you think its a problem with the hardware?
Do you have any logs?@sundberg84 I have the Domoticz log below. but just incase it doesn't reveal much, do you have a working sketch for EasyNewbie and a 4-relay module block?
2019-04-05 22:28:20.172 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:28:21.229 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:28:22.169 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:28:55.333 Status: MySensors: Node: 3, Sketch Name: Base Relay Node 2019-04-05 22:28:56.459 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:29:00.141 Status: LUA: All based event fired 2019-04-05 22:29:53.736 Status: User: Eme initiated a switch command (29/Light/On) 2019-04-05 22:29:54.297 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:29:57.701 Status: User: Eme initiated a switch command (29/Light/Off) 2019-04-05 22:29:58.206 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:30:00.533 Status: User: Eme initiated a switch command (28/Light/On) 2019-04-05 22:30:00.534 Status: LUA: All based event fired 2019-04-05 22:30:01.729 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:30:07.427 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:30:07.095 Status: User: Eme initiated a switch command (27/Light/On) 2019-04-05 22:30:13.674 Status: User: Eme initiated a switch command (29/Light/On) 2019-04-05 22:30:15.706 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:30:19.773 Status: User: Eme initiated a switch command (26/Light/On) 2019-04-05 22:30:20.138 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:30:55.858 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:30:55.427 Status: User: Eme initiated a switch command (26/Light/Off) 2019-04-05 22:30:59.611 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:30:59.256 Status: User: Eme initiated a switch command (29/Light/Off) 2019-04-05 22:31:00.280 Status: LUA: All based event fired 2019-04-05 22:31:02.813 Status: User: Eme initiated a switch command (27/Light/Off) 2019-04-05 22:31:03.242 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:31:06.944 Status: User: Eme initiated a switch command (28/Light/Off) 2019-04-05 22:31:07.393 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:31:22.892 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:31:22.527 Status: User: Eme initiated a switch command (26/Light/On) 2019-04-05 22:32:00.351 Status: LUA: All based event fired ``` -
@sundberg84 I have the Domoticz log below. but just incase it doesn't reveal much, do you have a working sketch for EasyNewbie and a 4-relay module block?
2019-04-05 22:28:20.172 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:28:21.229 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:28:22.169 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:28:55.333 Status: MySensors: Node: 3, Sketch Name: Base Relay Node 2019-04-05 22:28:56.459 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:29:00.141 Status: LUA: All based event fired 2019-04-05 22:29:53.736 Status: User: Eme initiated a switch command (29/Light/On) 2019-04-05 22:29:54.297 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:29:57.701 Status: User: Eme initiated a switch command (29/Light/Off) 2019-04-05 22:29:58.206 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:30:00.533 Status: User: Eme initiated a switch command (28/Light/On) 2019-04-05 22:30:00.534 Status: LUA: All based event fired 2019-04-05 22:30:01.729 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:30:07.427 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:30:07.095 Status: User: Eme initiated a switch command (27/Light/On) 2019-04-05 22:30:13.674 Status: User: Eme initiated a switch command (29/Light/On) 2019-04-05 22:30:15.706 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:30:19.773 Status: User: Eme initiated a switch command (26/Light/On) 2019-04-05 22:30:20.138 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:30:55.858 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:30:55.427 Status: User: Eme initiated a switch command (26/Light/Off) 2019-04-05 22:30:59.611 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:30:59.256 Status: User: Eme initiated a switch command (29/Light/Off) 2019-04-05 22:31:00.280 Status: LUA: All based event fired 2019-04-05 22:31:02.813 Status: User: Eme initiated a switch command (27/Light/Off) 2019-04-05 22:31:03.242 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:31:06.944 Status: User: Eme initiated a switch command (28/Light/Off) 2019-04-05 22:31:07.393 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:31:22.892 (My Sensors Gateway) Light/Switch (Light) 2019-04-05 22:31:22.527 Status: User: Eme initiated a switch command (26/Light/On) 2019-04-05 22:32:00.351 Status: LUA: All based event fired ```@eme sorry I don't. The most common "issue" is that power is to weak for 4 relays or noice is introduced in the radio from the relay.
It's very hard to understand without real logs. Sorry
-
I eventually got it to work. I am not using the EasyNewbie to power the load (its for 24volts swimming pool light). Couldn't get the 4th relay to work - not sure why its not responding to the controller. but I noticed some bug with my batch of 16 PCB -
Okay I think I have seen some bugs... my batch of EasyNewbie Rev 10 has some hardware issues - The provisions to attach sensors are not correctly marked. D6 doesn't actually connect to D6 pin on the Arduino (must have failed a via somewhere). I am not sure how many pins are used for the radio and other components, but if you intend to use this for a small project, I will avoid D8 - D13 as they appears to be taken. D1 and D2 are used for the TX & RX so you only have D2 - D6 to play with (more than enough pins for a newbie if you ask me).
-
I eventually got it to work. I am not using the EasyNewbie to power the load (its for 24volts swimming pool light). Couldn't get the 4th relay to work - not sure why its not responding to the controller. but I noticed some bug with my batch of 16 PCB -
Okay I think I have seen some bugs... my batch of EasyNewbie Rev 10 has some hardware issues - The provisions to attach sensors are not correctly marked. D6 doesn't actually connect to D6 pin on the Arduino (must have failed a via somewhere). I am not sure how many pins are used for the radio and other components, but if you intend to use this for a small project, I will avoid D8 - D13 as they appears to be taken. D1 and D2 are used for the TX & RX so you only have D2 - D6 to play with (more than enough pins for a newbie if you ask me).
@eme good you found the issue. First time I ever hear of a comfirmed PCB hardware bug, so its very rare. Very strange the silkscreen were moved or not aligned correctly as well. From where did you order the PCB?
The documentation states which pins connect to what on the PCB, so make sure you check that out. D9-D13 are used by the radio as in all MySensors projects. D8 for the extra flash. You can find the MysX documentation here as well if you need to find out more about the pins.

-
@Sunberg84 I bought them off Ebay via this very site... The Packing List reads Shipped by Abdera's Sundberg Ostra Gransgatan 2, Lonsboda, Sverige 28070, SE. I believe that's you.
Well I am forced to solder directly to the Nano pins, and so far so good. I think you should help with a 4 relay sketch that works. My appears to be a hit and run, works in the morning and fails after a while. but I am learning as I go. -
@Sunberg84 I bought them off Ebay via this very site... The Packing List reads Shipped by Abdera's Sundberg Ostra Gransgatan 2, Lonsboda, Sverige 28070, SE. I believe that's you.
Well I am forced to solder directly to the Nano pins, and so far so good. I think you should help with a 4 relay sketch that works. My appears to be a hit and run, works in the morning and fails after a while. but I am learning as I go.@eme Thats me - ok, good to know then - but I guess you mean the Mini pins and not Nano since the PCB doesnt support the Nano?
-
@eme Thats me - ok, good to know then - but I guess you mean the Mini pins and not Nano since the PCB doesnt support the Nano?
@sundberg84 Yes you are right I meant to say ProMini not Nano - I have 18 of these PCB - not so happy I have to solder directly to the Arduino - that's exactly what I was avoiding in the first place. Do you have a good relay block sketch that works? Much appreciated if you can help.
One last thing, I am trying to run a node off a 12Volts battery, can you explain this image below again?
- Will this work for a 5V Promini?
- What are the blue lines? and
- what are the red lines?
