Windows GUI/Controller for MySensors
-
@petewill did you have any success finding out how to change default channel?
-
I recently switch to RFM69 and I know it's not yet compatible with MYSBootloader. But I can't find information about RFM69 and dualoptiboot support for OTA in MYSController (without a sensebender). Is it possible ? I have to make special config ? Thank !
-
@Fabien DualOptiboot is completely radio agnostic. You should not need any custom config to use OTA with DualOptiboot and rfm69. You do need an external flash on your board though.
-
@Anticimex ok but in MYSController is there a way in the GUI for setting the bootloader (DualOptiboot or MYSBootloader) or is ti automatic. I ask this because you have to tell MYSBootloader your are running SenseBender (DualOptiboot).
-
@Fabien yes, select "sensebender"...this will do the trick
-
Thank you @tekka I don't test your new bootloader beacuse I think you don't have RFM69 version (perhaps in th future ?)
-
@Fabien perhaps, will have to get some RFM69 hardware first...
-
@niccodemi said:
@petewill did you have any success finding out how to change default channel?
Sorry, don't know how I missed this. No, I haven't. I got sidetracked (kids) and I haven't had a chance to work on it further.
-
@niccodemi I just was able to upload the bootloader using the files provided by @siklosi posted here http://forum.mysensors.org/topic/2319/how-to-make-complie-mysbootloader/7. The difference is I used a USBASP (V2.0) instead of an UNO. It worked the first time uploading the blink sketch!! It was a pain getting the USBASP to work on Windows 8.1 but after I got the driver installed (and the wiring connections correct) it worked great. I haven't uploaded any sensor sketches yet but hopefully I'll have time to play with it soon.
-
@petewill thanks, I tried ch77 and it works great.
-
Hi, download link for MYSController is broken. Error on attempt to download. thank you
-
@balloonguy Not on my side. Please try again.
-
@tekka thanks for the quick response - i have tried the {http://goo.gl/9DCWNo} with no luck, all i get is a "this page is not available" message. I have tried with different browsers and different pc's - still the same response.
BTW- Merry Christmas.
-
@balloonguy just tried this link. Everything is working, MYSController.zip file with md5 checksum dfe98f9e7ed6e1c3d5c418a862c23ee0 is downloaded.
-
Hi @tekka
When editing/adding items to the firmware_config.csv file, what should go in the types column? Could you please explain it?
Thanks,
-
@drock1985 said:
When editing/adding items to the firmware_config.csv file, w
The type field is intended for defining a FW type, e.g. a node with a DHT humidity/temperature sensor may be FW type 1, whereas a node with a different sensor FW type 2 and so on...
-
Now that I have sensors that have the correct bootloader I have been able to upload firmware a few times. But now that I have made changed to the sketch and copied the new hex file over I even bumped the version tag in the file. I can't get it to flash. Nothing I do makes it upload the new code? Thoughts?
-
@p0lar are you still able to remotely reboot node?
-
@p0lar Please provide MYSController log with DEBUG enabled for further troubleshooting.
-
Yes I can reboot the node. trying to upload dallastemp to it.
-
@p0lar I do not see any DEBUG nor bootloader messages. Can you update the GW sketch with DEBUG enabled? Also, what bootloader did you flash?
-
Its turned on in MySensors.h and reuploaded
-
But i dont see anything. UNO ethernet GW with SoftSPI enabled
-
Bootloader on the sensors is the one from your firmware directory. on the GW its the standard arduino one... do I need yours on the GW?
-
@p0lar No, GW should have normal (i.e. Arduino) bootloader. However, without DEBUG output it's gonna be hard to diagnose what's wrong - can you double-check your settings and re-upload the GW sketch just to be on the safe side.
Also, I'd like to see the log during a manual reset (not remote reboot) of your node.
-
Thanks. Ill check that when I get back into town end of this week.
-
Hi @tekka,
tried now some evenings to change node-id / clear the eeprom. No luck. FW update works always. After reading the bootloader code I expected myscontroller to send a invalid fwrequestresponse packet with special crc for the bootloader commands. Never showed up in the log.
Myscontroller .282 on Win xp and msbootloader 1.1 on nano. 47uF on nrf. No transmission errors.Any ideas where to look next ? Maybe .278 will do the trick ?
Thanks for your efforts ,
stebra
-
@stebra please post the myscontroller log with gw DEBUG enabled that shows OTA update and ID reassign request.
-
MySensors_20160110-115615_stebra.log
hi tekka,
here is the log. Contains:
[2016-01-10 12:02:26.390 Info] INFO *** Logging START *** // stebra : succesful reboot of node 6 via myscontroller
[2016-01-10 12:02:59.000 Info] INFO *** Logging START *** // stebra : succesful FW update of node 6 via myscontroller
[2016-01-10 12:05:35.109 Info] INFO *** Logging START *** // stebra : ID reassign attempt of node 6 to node 12 via myscontroller
[2016-01-10 12:05:48.328 Info] INFO Send FW info to node 6: type=1E, version=1, blocks=0x0448, CRC=0xA87A // here the behaviour is unexpected for me[2016-01-10 12:06:37.437 Info] INFO *** Logging START *** // stebra: Clear eeprom attempt on node 6
[2016-01-10 12:06:44.812 Info] INFO Send FW info to node 6: type=1E, version=1, blocks=0x0448, CRC=0xA87A // here the behaviour is unexpected for methank you for having a look..
-
and also a ss for another reassign attempt node 6--> 12.
FIRMWARE_CONFIG_REQUEST is not answered from myscontroller. therefore no reassign of node id.
-
Maybe I should open a new topic for this, but I cannot flash bootloader, I always get
Arduino: 1.6.7 (Windows 10), Board: "ATmega328 internal 8Mhz with MYSBootloader"
***failed;
avrdude: verification error, first mismatch at byte 0x0000
0x3f != 0xff
avrdude: verification error; content mismatch
Error while burning bootloader.Here is the verbose message
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -cstk500v1 -PCOM4 -b19200 -Uflash:w:C:\Program Files (x86)\Arduino\hardware\arduino\avr/bootloaders/MySensors/MYSBootloader.hex:i -Ulock:w:0xFF:m Reading | ################################################## | 100% 0.01s avrdude: verifying ... avrdude: 1 bytes of lock verified avrdude: reading input file "0x06" avrdude: writing efuse (1 bytes): Writing | ################################################## | 100% 0.01s avrdude: 1 bytes of efuse written avrdude: verifying efuse memory against 0x06: avrdude: load data efuse data from input file 0x06: avrdude: input file 0x06 contains 1 bytes avrdude: reading on-chip efuse data: Reading | ################################################## | 100% 0.01s avrdude: verifying ... avrdude: 1 bytes of efuse verified avrdude: reading input file "0xDA" avrdude: writing hfuse (1 bytes): Writing | ################################################## | 100% 0.01s avrdude: 1 bytes of hfuse written avrdude: verifying hfuse memory against 0xDA: avrdude: load data hfuse data from input file 0xDA: avrdude: input file 0xDA contains 1 bytes avrdude: reading on-chip hfuse data: Reading | ################################################## | 100% 0.01s avrdude: verifying ... avrdude: 1 bytes of hfuse verified avrdude: reading input file "0xE2" avrdude: writing lfuse (1 bytes): Writing | ################################################## | 100% 0.01s avrdude: 1 bytes of lfuse written avrdude: verifying lfuse memory against 0xE2: avrdude: load data lfuse data from input file 0xE2: avrdude: input file 0xE2 contains 1 bytes avrdude: reading on-chip lfuse data: Reading | ################################################## | 100% 0.01s avrdude: verifying .. avrdude: 1 bytes of lfuse verified avrdude done. Thank you. avrdude: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Joerg Wunsch System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" Using Port : COM4 Using Programmer : stk500v1 Overriding Baud Rate : 19200 AVR Part : ATmega328P Chip Erase delay : 9000 us PAGEL : PD7 BS2 : PC2 RESET disposition : dedicated RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 200 StabDelay : 100 CmdexeDelay : 25 SyncLoops : 32 ByteDelay : 0 PollIndex : 3 PollValue : 0x53 Memory Detail : Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00 signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 Programmer Type : STK500 Description : Atmel STK500 Version 1.x firmware Hardware Version: 2 Firmware Version: 1.18 Topcard : Unknown Vtarget : 0.0 V Varef : 0.0 V Oscillator : Off SCK period : 0.1 us avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.02s avrdude: Device signature = 0x1e950f avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file "C:\Program Files (x86)\Arduino\hardware\arduino\avr/bootloaders/MySensors/MYSBootloader.hex" avrdude: writing flash (32722 bytes): Writing | ################################################## | 100% 0.00s avrdude: 32722 bytes of flash written avrdude: verifying flash memory against C:\Program Files (x86)\Arduino\hardware\arduino\avr/bootloaders/MySensors/MYSBootloader.hex: avrdude: load data flash data from input file C:\Program Files (x86)\Arduino\hardware\arduino\avr/bootloaders/MySensors/MYSBootloader.hex: avrdude: input file C:\Program Files (x86)\Arduino\hardware\arduino\avr/bootloaders/MySensors/MYSBootloader.hex contains 32722 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% -0.00s avrdude: verifying ... avrdude: 32722 bytes of flash verified avrdude: reading input file "0xFF" avrdude: writing lock (1 bytes): Error while burning bootloader. Writing | ***failed; ################################################## | 100% 0.07s avrdude: 1 bytes of lock written avrdude: verifying lock memory against 0xFF: avrdude: load data lock data from input file 0xFF: avrdude: input file 0xFF contains 1 bytes avrdude: reading on-chip lock data: Reading | ################################################## | 100% 0.01s avrdude: verifying ... avrdude: verification error, first mismatch at byte 0x0000 0x3f != 0xff avrdude: verification error; content mismatch avrdude done. Thank you.
I get same message with both 3.3v and 5v pro mini that is linked in the store.
I am using Funduino uno as a ips, and I can flash blink f.eks. using uno as isp, but I cannot flash bootloader. This is the step 6 from the instructions that is failing. Any ideas how to fix this? I would really like OTA as my network is slowly growing.
Thanks for any tips!
-
I think I have flashed MYSBootloader finaly, after ~6hours of trying and reading (persistent guy )
The instructions are for the older version I guess, right board should be copied from MYSController/bootloader/boards.txt, not from this topic post#75. Now I am trying to figure how to flash the sketch, but I guess that is explained somewhere on the topic
-
Just one more question, I didn't find it answered on the topic (maybe too tired), but:
I have existing network with ethernet gateway and some nodes, and all is working fine. To make it OTA update-able, I need to- i upload ethernet gateway to the Arduino Nano, then flash MYSBootloader on it,
- upload some sketch (which?) on Arduino Mini nodes, and then flash MYSBootloader on it, and then I can program it OTA?
- Or something else?
Or did I miss the point completely?
-
so from what I know.
you DONT need the MYSBootloader on the gateway. just normal arduino bootloader. you DO need the MYSBootloader on ALL the sensors you with to connect to your gateway.
Do the MYSBootloader first then use this tool to upload the firmware to your sensors OTA
-
@dakipro I use the settings mentioned in #75 in Atmel studio, however, AVRDUDE does not support the upper two bits of the lock fuse (therefore the error message 0xFF!=0x3F). Changing the lock bits to 0x3F should do the job.
And yes, as @p0lar pointed out, only the nodes and not the gateway should have MYSBootloader.
-
HMM i cant build a DEBUG version of the ethernet gateway... even when I try to define it and print hello world it wont... weird.. any ideas?
-
Aha, I get it now. Then I just flash MYSBootloader on the sensor, and attach the radio and it will automatically connect to the gateway (it has some sort of sketch/communication with MySensors built in)? And then I use the MYSController to upload my sketch as described?
Or how do I upload a initial sketch if I cannot use arduino anymore?
Btw, I love MYSController, i use it all the time in development as it shows all that is going on with the sensors, thank you very much for developing it!
-
correct. you build the .hex file in arduino studio or whatever and copy it to the MY gui firmware folder and edit the csv file and then reload.
http://forum.mysensors.org/topic/1066/bootloader/8
This should help
-
This post is deleted!
-
I thinking I am build a DEBUG version of the GW code. but I dont think the logging is working in the app with my eth GW. am I mising something?
So. when I build a DEBUG version of the GW code I get this in the serial console hex size=29k so its bigger.
0;0;3;0;9;gateway started, id=0, parent=0, distance=0
0;0;3;0;9;read: 1-1-0 s=1,c=1,t=0,pt=7,l=5,sg=0:71.6
1;1;1;0;0;71.6
0;0;3;0;9;read: 2-2-0 s=1,c=1,t=16,pt=0,l=1,sg=0:0
2;1;1;0;16;0the NON DEBUG I get this. hex size = 26k
1;1;1;0;0;69.8
1;0;1;0;1;35.0
1;1;1;0;0;71.6
1;0;1;0;1;36.0
1;1;1;0;0;73.4
1;0;1;0;1;37.0
2;1;1;0;16;0
-
@p0lar said:
So. when I build a DEBUG version of the GW code I get this in the serial console hex size=29k so its bigger.
0;0;3;0;9;gateway started, id=0, parent=0, distance=0
0;0;3;0;9;read: 1-1-0 s=1,c=1,t=0,pt=7,l=5,sg=0:71.6
1;1;1;0;0;71.6
0;0;3;0;9;read: 2-2-0 s=1,c=1,t=16,pt=0,l=1,sg=0:0
2;1;1;0;16;0that looks good
-
Still nothing in the MySensors Debug tab... and only the NON debug info in the log files. maybe this is a ethernet GW issue? So I get debug info in the Arduino Serial monitor but no debug via TCP?
[GENERAL]
VERSION=0.1.2.282[COMMUNICATION]
COM=COM1
SPEED=4
IP=10.1.1.200
PORT=5003
TCPACTIVE=1[STATUS]
LOGGING=1
DEBUGGING=1
SENDMSG=1
LOGPARSE=1
AUTOFW=0
AUTOID=1
UTCTIME=0
CLOSECONFIRM=0
FILTERLOG=1
SAVENODES=1
METRICSYSTEM=0
-
@tekka : I tested the ID reassign by hardcoding the functionality in the serial gw sketch. Reboot node 6, wait for FW_CONFIG_REQUEST, answer with FW_CONFIG_RESPONSE.
Works as expected & described in the MYSBootloader code. Please give me some hint why MYSController does not send the FW_CONFIG_RESPONSE packet with the bootloader commands after the reboot.
I trigger the reassign via the node´s context menu in the gui, MYSBootloader Commands --> reassign ID. Anything wrong with that ?
Maybe someone else has an idea what is happening/not happening ? @tekka could you find something in the log file?
Thanks a lot...
-
Has anyone tested successfully reassigning the node-id with MYSBootloader 1.1 and MYSController 1.2.282 ? Would give me some new motivation to hear it's possible and has been done before. At the very moment I m at a dead end.
If it is not working for you, I would also appreciate your feedback.
-
@tekka
Is the (dev branch) MQTTClientGateway supported by MYSController?I'm in the process of moving from Vera and Ethernet GW, to Openhab with MQTTClient gateway and would love to have the OTA functionality your bootloader and controller provides. I looked at this a while back, but ran out of time to play!
So yeah.. Can MYSController talk with the MQTTClientGateway ( over Ethernet) ?
Cheers,
Greg
-
In answer to my own question... No..it doesnt seem to.. ;-(
I tried with the IP address of my MQTT client gateway board, and port 5003 ( same port that works for my 1.4 Ethernet GW )
It says it connects, but no data flows in....@tekka @hek - Is it unlikely that the MQTTClient Gateway will be usable with MYSController??
If not, would this work?
Have two networks -
1 for MYSController to perform OTA's using a serial gateway on the PC we typically do sketch changes on.2 for normal MySensors operation. When you want to invoke an update, you could send a I_REBOOT command ( MQTT message in my case), which would reboot the node and if i understand correctly, look for an update on the other network channel.
I guess you would loose all the other functionility of MYSController, but at least we could do OTA.
Cheers,
Greg
-
@stebra The log looks normal - is the node directly communicating with the gw or via a repeater? Does the clearEEPROM option work?
-
@gregl MYSController is currently not supporting MQTT, I'll add it to my feature request w/o ETA.
-
@tekka
No repeater, clear eeprom via MYSController gui does not work. Clear eeprom via sketch works, node gets new id after reboot.
My assumption is that MYSController does not respond to the FW_CONFIG_REQU after reboot.
-
@tekka You might not have to. I've been working on Node-Red as a controller and more.
With my kit, you need Node-Red, node-red-contrib-mysensors , Mosquitto, and some of my flows which I have available ( http://forum.mysensors.org/topic/2802/flow-to-turn-serialgateway-into-mqtt-serialgateway ).
And it makes this:
http://forum.mysensors.org/topic/2815/flow-to-turn-serialgateway-with-mqtt-flow-to-ethernetgatewayThe only flaw is that when you first connect MYSController, you need to send a junk topic so that MYSController can receive data. It's a bug/peculiarity with Node-Red, but honestly not a big deal. I'm also working on how to fix even that.
-
@tekka
Can you verify it works for you? Do you see any response packets with the bl commands in your log?
-
First time i try OTA. Everything went well until fw update (Pro mini). It sends/recieve like 20-30 packages, and then ends. I need to reconnect Myscontroller and it will start to flow again. I can see there is requests from node on gw led, but nothing comes through in Myscontroller (.282). Using 2.0b ethernet gw. Its just like either GW stops sending to Myscontroller or Myscontroller doesnt accept it. Also getting in domoticz that "MySensors: Connection reset!" Do i need to disconnect Domoticz while I do updates?
Any clues?
Edit: Sorry, jepp - needs to disconnect Domoticz and it works... I bet its those new gateway pings from Domoticz killing it.
-
A quick one: How long does the OTA takes for Blink sketch?
I press update FW, it start rolling and the node changes status from "fw updating" to "booting" but then goes back to fw updating... have been going like this for a long time now (1000 packages sent/recieved).
Also - is it possible to upload via fdti with MYSBootloader or you need to use OTA?
Edit: somethings is not right, its rebooting or starting over again:
2016-01-16 21:09:41 RX 14;255;4;0;2;0A0001002F00 2016-01-16 21:09:43 TX 14;255;4;0;3;0A0001002F008083E1EBF0E0808184608083E0EBF0E0 2016-01-16 21:09:43 RX 14;255;4;0;2;0A0001002F00 2016-01-16 21:09:45 DEBUG Undefined firmware/type for node=14 2016-01-16 21:09:45 INFO BL version=257 2016-01-16 21:09:45 INFO Send FW info to node 14: type=A, version=1, blocks=0x0048, CRC=0xD098 2016-01-16 21:09:45 TX 14;0;4;0;1;0A000100480098D0 2016-01-16 21:09:45 RX 14;255;4;0;0;FFFFFFFFFFFFFFFF0101 2016-01-16 21:09:46 DEBUG FW update started, node id = 14 2016-01-16 21:09:46 TX 14;255;4;0;3;0A0001004700E1F30E940000F9CF0895F894FFCFFFFF 2016-01-16 21:09:46 RX 14;255;4;0;2;0A0001004700 2016-01-16 21:09:47 TX 14;255;4;0;3;0A0001004700E1F30E940000F9CF0895F894FFCFFFFF 2016-01-16 21:09:47 RX 14;255;4;0;2;0A0001004700 2016-01-16 21:09:48 TX 14;255;4;0;3;0A00010046002C020E947000C0E0D0E00E948B002097
-
Fortunately a helpful guy gave me your bootloader 1.3 beta, which fixes the problem with nonworking bootloader commands. It seems I was not the first one asking you...
For all others trying the bootloader commands in bootloader 1.1 : this does not work at all, and you are only wasting your time.
I would really appreciate if the code for bl 1.3 was on github also. I do not mind if its beta only...
Below the working debug output for a reassign nodeid 8 --> nodeid 88
16.01.2016 23:06:46 RX 8;255;3;0;9;0108A000B9F7FFFEDA7221F0001E950F09 16.01.2016 23:06:48 RX 0;0;3;0;9;read: 8-8-0 s=255,c=4,t=0,pt=6,l=10,sg=0:1E00010048047AA801 16.01.2016 23:06:48 INFO BL version=259 16.01.2016 23:06:48 INFO Executing bootloader command section 16.01.2016 23:06:48 TX 8;255;4;0;1;0200580000007ADA 16.01.2016 23:06:48 RX 8;255;4;0;0;1E00010048047AA80103 16.01.2016 23:06:48 RX 0;0;3;0;9;send: 0-0-8-8 s=255,c=4,t=1,pt=6,l=8,sg=0,st=ok:02005800000 16.01.2016 23:06:48 RX 0;0;3;0;9;read: 88-88-255 s=255,c=3,t=7,pt=1,l=1,sg=0:0
-
@stebra The 1.3 is a closed beta and is not supposed to be distributed (ping @niccodemi). It is not supported in any terms nor should it be used in a productive environment, the compatibility to any library version is not guaranteed.
Currently, there is ongoing work for MYSBootloader 2.0 and the ETA is tbd, same for the code.
-
@sundberg84 Please upload MYSController log with DEBUG enabled.
-
Hello @tekka,
is the feature 'save nodes' supposed to be working or WIP? With every start of MYSController I get a blank page and have to wait for every sensor to appear. At the moment that's not a big problem for me because of only 3 sensors, but already got a doubled ID once because new sensor requested an ID before the old #1 was recognized.
Thanks a lot for your work with the controller, it's great.
-
@tekka
Hi, just found this so downloaded and installed. Went to config to see what was there and selected TCP/IP tab to turn it off as it is not on a network and I only need Serial. The thing locks up and crashes and I have to use Task Manager to end it.Is there some way to start it without it trying to access 192.168.0.5?
-
-
Hello everyone,
I am new to the forum, I really appreciate your community.
I embarked on the adventure of MySensors and naturally, I leaned on OTA. To do so, I followed your tutorial but I have a problem when sending the FW on the node.
My setup:
• 1 Arduino Mega with nRF24L01+ which I use serial gateway
• 1 Arduino mini pro 3.3 volts for 8 mhz node (single sketch that sends a random data every 5 seconds)
• Arduino IDE 1.6.7
• MySensors libraries 1.5.3
• MYSController_0_1_2_282The mini pro flashed with the bootloader (MYSBootloader 1.1), I can detect through MYSController application where it is named "Booting: 65 ... - 65 ...", I right click on it and send the skit "blink" .
Sometimes I manage to push the "blink" directly and other times must be repeated 2-3 times (that's a lot of times, I grant you ). What is troubling is that at that time, I see the LED 13 of the mini pro flashed at a steady pace, but in MYSController, it is always named "booting ..." and to name the sketch "null".
Afterwards, when I try to put my sketch, it loads but still in a loop with an error when it reaches 100% "FW update on the failed node = 1" and then starts again at 0% and so on.
I hope you will refer me.
Thank you.
-
@tekka
Using the SerialGateway:
Is there a tutorial at all for using this? I can figure out a lot of stuff, but...Is it possible to assign the ID to a new node? I want to group Nodes numerically as in Area-1: = 10,11,12 then Area-2: = 20,21,22,23 etc
How?
-
Tutorial would be awesome
I have a specific case that fails uploading sketch to 3.3v pro mini. I have a combined sketch which works fine if uploaded to 3.3v via cable, sketch also uploads fine OTA on 5v pro mini. When I try to upload sketch to 3.3v it fails eventually. If I upload "blink" from MysController, it uploads and works fine.
I am suspecting that i am not flashing bootloader properly maybe. This is my boards.txt## Arduino Pro or Pro Mini (3V3 & 5V, 16 MHz) w/ ATmega328 MYSBootloader ## ------------------------------------------------- proMYSBL.name=ATmega328 16Mhz MYSBootloader proMYSBL.upload.tool=avrdude proMYSBL.upload.protocol=arduino proMYSBL.upload.maximum_size=30720 proMYSBL.upload.maximum_data_size=2048 proMYSBL.upload.speed=115200 proMYSBL.bootloader.tool=avrdude proMYSBL.bootloader.low_fuses=0xF7 proMYSBL.bootloader.high_fuses=0xDA proMYSBL.bootloader.extended_fuses=0x06 proMYSBL.bootloader.unlock_bits=0x3F proMYSBL.bootloader.lock_bits=0x0F proMYSBL.bootloader.file=MySensors/MYSBootloader.hex proMYSBL.build.mcu=atmega328p proMYSBL.build.f_cpu=16000000L proMYSBL.build.board=AVR_UNO proMYSBL.build.core=arduino proMYSBL.build.variant=standard ## Arduino Pro or Pro Mini (3V3 & 5V, 8 MHz) w/ ATmega328 MYSBootloader ## ------------------------------------------------- proMYSBL8.name=ATmega328 internal 8Mhz with MYSBootloader proMYSBL8.upload.tool=avrdude proMYSBL8.upload.protocol=arduino proMYSBL8.upload.maximum_size=30720 proMYSBL8.upload.maximum_data_size=2048 proMYSBL8.upload.speed=57600 proMYSBL8.bootloader.tool=avrdude proMYSBL8.bootloader.low_fuses=0xE2 proMYSBL8.bootloader.high_fuses=0xDA proMYSBL8.bootloader.extended_fuses=0x06 proMYSBL8.bootloader.unlock_bits=0x3F proMYSBL8.bootloader.lock_bits=0x3F proMYSBL8.bootloader.file=MySensors/MYSBootloader.hex proMYSBL8.build.mcu=atmega328p proMYSBL8.build.f_cpu=8000000L proMYSBL8.build.board=AVR_UNO proMYSBL8.build.core=arduino proMYSBL8.build.variant=standard
I can burn 5v bootloader with both "boards" from ArduinoIDE using Uno as ISP. And on two 5v I have, OTA works great, it is just 3.3v with larger sketch (sketch is combination of several sensors) that eventually gives
14.02.2016 18.00.53 TX 1;255;4;0;3;C900FFFF72057500000101010101731B731B01000000 14.02.2016 18.00.53 RX 1;255;4;0;2;C900FFFF7205 14.02.2016 18.01.27 ERROR FW upload failed for node=1 14.02.2016 18.01.27 INFO BL version=257 14.02.2016 18.01.27 INFO Send FW info to node 1: type=C9, version=FFFF, blocks=0x0580, CRC=0x6F0D 14.02.2016 18.01.27 TX 1;0;4;0;1;C900FFFF80050D6F 14.02.2016 18.01.27 RX 1;255;4;0;0;0A0001004800FFFF0101 14.02.2016 18.01.27 DEBUG FW update started, node id = 1 14.02.2016 18.01.27 TX 1;255;4;0;3;C900FFFF7F05FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 14.02.2016 18.01.27 RX 1;255;4;0;2;C900FFFF7F05 14.02.2016 18.01.57 ERROR FW upload failed for node=1 14.02.2016 18.01.57 INFO BL version=257 14.02.2016 18.01.57 INFO Send FW info to node 1: type=C9, version=FFFF, blocks=0x0580, CRC=0x6F0D 14.02.2016 18.01.57 TX 1;0;4;0;1;C900FFFF80050D6F 14.02.2016 18.01.57 RX 1;255;4;0;0;0A0001004800FFFF0101 14.02.2016 18.01.57 DEBUG FW update started, node id = 1 14.02.2016 18.01.57 TX 1;255;4;0;3;C900FFFF7F05FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 14.02.2016 18.01.57 RX 1;255;4;0;2;C900FFFF7F05 14.02.2016 18.01.57 TX 1;255;4;0;3;C900FFFF7E05FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
This is the "universal" sketch I am trying to upload, it is a combination of few sensors
/** * 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. * ******************************* * * REVISION HISTORY * Version 1.0 - Henrik Ekblad * * DESCRIPTION * Motion Sensor example using HC-SR501 * http://www.mysensors.org/build/motion * */ // Enable debug prints // #define MY_DEBUG // Enable and select radio type attached //#define MY_RADIO_NRF24 //#define MY_RADIO_RFM69 //Hum #include <SPI.h> #include <MySensor.h> //temp #include <DHT.h> //lux #include <BH1750.h> #include <Wire.h> #include <Vcc.h> // library for internal reference Vcc reading // Reference values for ADC and Battery measurements const float VccMin = 1.0*2.5 ; // Minimum expected Vcc level, in Volts. Example for 1 rechargeable lithium-ion. const float VccMax = 1.0*3.0 ; // Maximum expected Vcc level, in Volts. //const float VccMin = 2.0*0.6 ; // Minimum expected Vcc level, in Volts. for 2xAA Alkaline. //const float VccMax = 2.0*1.5 ; // Maximum expected Vcc level, in Volts.for 2xAA Alkaline. const float VccCorrection = 3.30/3.42 ; // Measured Vcc by multimeter divided by reported Vcc Vcc vcc(VccCorrection); // instantiate internal voltage measurement lib const float tempThreshold = 0.02 ; // send only if change > treshold (Celcius) const float humThreshold = 0.05 ; // send only if change > treshold (% RG) const float voltageThreshold = 0.01 ; // send only if change > treshold (Volt) const float luxThreshold = 1 ; // send only if change > treshold (Lux) const int heartbeat = 60 ; // heartbeat every hour (x times SLEEP_TIME) unsigned long lastHeartbeat = 0 ; float lastHumidity = 0 ; float lastTemperature = 0 ; float lastVoltage = 0 ; boolean lastTripped = false ; // flags to indicate if transmission is needed, heartbeat and/or changes > treshold boolean txHumidity = true ; // flags to indicate if transmit is needed (time & change driven) boolean txTemperature = true ; boolean txLux = true ; boolean txVoltage = true ; boolean txTripped = true ; unsigned long SLEEP_TIME = 30000; // Sleep time between reports (in milliseconds) #define DIGITAL_INPUT_SENSOR 3 // The digital input you attached your motion sensor. (Only 2 and 3 generates interrupt!) #define INTERRUPT DIGITAL_INPUT_SENSOR-2 // Usually the interrupt = pin -2 (on uno/nano anyway) #define HUMIDITY_SENSOR_DIGITAL_PIN 4 //Humidity #define CHILD_ID_PIR 1 // Id of the PIR sensor child #define CHILD_ID_HUM 2 //Id of the HUMIDITY sensor child #define CHILD_ID_TEMP 3 //Id of the TEMPERATURE sensor child #define CHILD_ID_LIGHT 4 //lux sensor #define VOLTAGE_CHILD_ID 7 //battery level MySensor gw; DHT dht; boolean metric = true; BH1750 lightSensor; // Initialize motion message MyMessage msgMotion(CHILD_ID_PIR, V_TRIPPED); //Initialize temp and hum message MyMessage msgHum(CHILD_ID_HUM, V_HUM); MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP); //Battery Voltage MyMessage msgVolt(VOLTAGE_CHILD_ID, V_VOLTAGE); // Node voltage // V_LIGHT_LEVEL should only be used for uncalibrated light level 0-100%. // If your controller supports the new V_LEVEL variable, use this instead for // transmitting LUX light level. MyMessage msgLight(CHILD_ID_LIGHT, V_LIGHT_LEVEL); // MyMessage msg(CHILD_ID_LIGHT, V_LEVEL); uint16_t lastlux; void setup() { analogReference(INTERNAL); // use the 1.1 V internal reference for voltage measurement gw.begin(NULL, 104); //message callback thing, nodeid pinMode(DIGITAL_INPUT_SENSOR, INPUT); // sets the motion sensor digital pin as input dht.setup(HUMIDITY_SENSOR_DIGITAL_PIN); metric = gw.getConfig().isMetric; lightSensor.begin(); // Send the sketch version information to the gateway and Controller gw.sendSketchInfo("MotHumTemLuxBat", "1.0"); // Register all sensors to gw (they will be created as child devices) gw.present(CHILD_ID_HUM, S_HUM); gw.present(CHILD_ID_TEMP, S_TEMP); gw.present(CHILD_ID_PIR, S_MOTION); gw.present(CHILD_ID_LIGHT, S_LIGHT_LEVEL); gw.present(VOLTAGE_CHILD_ID, S_MULTIMETER); } void loop() { //delay(dht.getMinimumSamplingPeriod()); // will this inrerrupt with the motion sensor? // TEMPerature and HUMIdity // first read all sensors before possible transmission (save battery) readTempHum(); //PIR boolean tripped = digitalRead(DIGITAL_INPUT_SENSOR) == HIGH; //Serial.println(tripped); gw.send(msgMotion.set(tripped?"1":"0")); // Send tripped value to gw readLux(); // LUX // read battery Voltage float voltage = vcc.Read_Volts() ; if ( abs(voltage - lastVoltage) >= voltageThreshold ){ // update only if threshold exceeded lastVoltage = voltage ; txVoltage = true ; } sendSensors(); //over the air updates, after send and before sleep just listen to messages gw.wait(200); // Sleep until interrupt comes in on motion sensor. Send update every minute. gw.sleep(INTERRUPT,CHANGE, SLEEP_TIME); } void readLux(void){ uint16_t lux = lightSensor.readLightLevel();// Get Lux value //Serial.println(lux); if (lux != lastlux) { if ( abs(lux - lastlux) >= luxThreshold ){ // update only if threshold exceeded lastlux = lux ; txLux = true ; } } } void readTempHum(void) { // SHT2x sensor delay(dht.getMinimumSamplingPeriod()); // will this inrerrupt with the motion sensor? float humidity = dht.getHumidity(); float temperature = dht.getTemperature(); // save battery by sending changes only & reading SHT first (>50ms) Serial.print("temp: "); Serial.println(temperature); Serial.println(humidity); //if (isnan(temperature)) { // Serial.println("Failed reading temperature from DHT"); //} else if (temperature != lastTemperature) { if ( abs(humidity - lastHumidity) >= humThreshold ){ // update only if threshold exceeded lastHumidity = humidity ; txHumidity = true ; } if ( abs(temperature - lastTemperature) >= tempThreshold ){ lastTemperature = temperature ; txTemperature = true ; } // Serial.print("SHT_ temp: "); // // Serial.print(temperatureSHT); // Serial.print(" SHT_ hum: "); // Serial.println(humidity); //} } // send to gateway depending on tx.. settings void sendSensors() { lastHeartbeat++ ; // update Heartbeatcount every call if ( lastHeartbeat > heartbeat) { // if heartbeat update all sensors & battery status txTemperature = txHumidity = txVoltage = txLux = true ; gw.sendBatteryLevel(vcc.Read_Perc(VccMin, VccMax, true)); lastHeartbeat = 0 ; } if (txTemperature){ gw.send(msgTemp.set(lastTemperature, 2)); // Send in deg C txTemperature = false ; } if (txLux){ gw.send(msgLight.set(lastlux)); // Send in Lux txLux = false ; } if (txHumidity){ gw.send(msgHum.set(lastHumidity, 1)); // Send in %RH txHumidity = false ; } if (txVoltage){ gw.send(msgVolt.set(lastVoltage,2)); //send battery in Volt txVoltage = false ; } if (txTripped){ gw.send(msgMotion.set(lastTripped?"1":"0")); // Send tripped value to gw txTripped = false ; } }
I am using the latest stable version of mysensors on both gateway and when compiling the sketches.
If someone can test this on 3.3v or can look at the code and perhaps figure out what could be the problem, I would really appreciate it.
Keep up the great work guys, I am loving the mysensors&co projects!
-
I'm having some issues with the MYSBootloader, I've uploaded a sketch perfectly with the ISP connection after burning the fuses and bootloader, all using the Arduino IDE. Now when i come to update the sketch using FTDI I can't upload due to a error of:
avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x0a
I'm assuming the timing in my fuses have been incorrectly set. Could anyone shine some light onto this?
The settings i used were L:0xE2 H:0xD8 E:0x06. The boards.txt reflects this too, its also set to 8Mhz, with a baud rate of 57600.
-
Sorry, just getting around to try to get MYSController setup and I can't seem to get it sorted out to connect to my serial GW that is attached to my VeraLite.
Here is what I have done to try to get connected:
- ssh into Vera and enter this command.
ser2net -C 5003:raw:0:/dev/ttyACM0:115200
I also tried
ser2net -C 5003:raw:0:/dev/ttyUSB0:115200
Next I launch MYSController on my PC and in the config window under TCP/IP tab set the IP to the IP of Vera and port to 5003.
Hit connect and I get the following....
2/17/2016 13:04:54 INFO Connected to 192.168.0.108:5003 2/17/2016 13:04:54 INFO Unknown message, Msg= Port already in use by another process, dc=1 2/17/2016 13:04:54 RX Port already in use by another process
For those of you have have done this before...any suggestion?
-
@samuel235 said:
Now when i come to update the sketch using FTDI
I think you are supposed to be uploading the sketches OTA and they won't upload via USB anymore (unless I missed an update, which is possible).
-
@petewill - You are correct regarding no usb/ftdi uploads. Everything has to be done OTA. I'm using a standard arduino bootloader at the moment, attempting to troubleshoot ftdi with that :).
-
@samuel235 are you using a Windows PC to upload your sketches? FTDI recently released drivers that stops FTDI clones from working with the new drivers. This happened to me and my errors looked very similar. The solution for me was to uninstall the drivers and re-install the older ones. I got the info from this post: http://www.eevblog.com/forum/microcontrollers/ftdi-gate-2-0/msg854401/#msg854401
Also, I had to log in to my computer as an admin to make all these changes. For some reason using a standard account then typing in an admin password at the UAC prompt did not help. Maybe it was a coincidence but tried many times and only after doing it in admin context did I get it to work. Also, make sure you turn off Windows update for drivers. Let me know if you get stuck and I'll do my best to help.
-
@petewill - I am using a windows system. I was reading about this new driver release the other day and didn't think anything of it. I didn't realize that it could apply to myself when I was reading it.
Just out of curiosity, what does your FTDI converter come under in device manager, i always thought it was supposed to be a USB device, mine comes directly under Ports (COM & LPT). I know its obviously a port, I just for some reason thought it should be under Universal Serial Bus controller?
Just to let you know, windows hasn't automatically updated my drivers. I'm still on the search for an older version.
-
@samuel235 I changed the view like this:
Then it shows like this:
I am using version 2.8.30.0 and I downloaded them from the FTDI site.
-
@petewill, what device/converter are you using for FTDI uploads?
-
@samuel235 I'm using a Windows 8.1 PC with the Arduino 1.6.6 IDE. My FTDI adapter looks like this:
-
@petewill - Right okay, well my adapter is slightly different in the sense that it is all in one with a USB 2.0 adapter on the end of the board rather than a USB MiniB that you run a cable to the USB port on the PC. But apart from that the chip on-board is pretty much standard i think, from what i have found out on the internet anyway. Just for reference, this is what mine is http://www.ebay.co.uk/itm/161791651010?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT.
However, when purchasing some Arduino Mini Pros, i have gotten another. http://www.ebay.co.uk/itm/161795041342?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT. We will see if they're both the same functionality when it arrives.
-
@samuel235 A quick way to test if it's your adapter or the drivers is to plug it in to a Mac or a Linux computer and try to upload from there.
-
@petewill - As soon as my Mini Pros arrive I will start to troubleshoot this with more depth. Thank you
-
@Anticimex Can you please share the Nodes Code?
-
@vikasjee not straight away as it contain pushbullet secrets so I need to launder it a bit first. And I have also changed it around in quite a bit and have added some experimental debugging facilities that don't really work so are you sure you still want it? if it is the multi controller support you are after it should still be a valid reference.
-
Here is my current nodeconfig:
[{"id":"c1f1131a.3e0ef","type":"subflow","name":"Manual preprocessor","info":"Processes manual specific input","in":[{"x":50,"y":30,"wires":[{"id":"b73bbc01.48c44"}]}],"out":[{"x":264,"y":30,"wires":[{"id":"b73bbc01.48c44","port":0}]}]},{"id":"b73bbc01.48c44","type":"change","z":"c1f1131a.3e0ef","name":"Topic=Manual","rules":[{"t":"set","p":"topic","to":"Manual"}],"action":"","property":"","from":"","to":"","reg":false,"x":156,"y":30,"wires":[[]]},{"id":"c542f76c.3abd08","type":"subflow","name":"Vera postprocessor","info":"Processes Vera specific output","in":[{"x":50,"y":30,"wires":[]}],"out":[{"x":160,"y":30,"wires":[{"id":"c542f76c.3abd08","port":0}]}]},{"id":"c1bbb0ac.3e445","type":"subflow","name":"MYS postprocessor","info":"Processes MYSController specific output","in":[{"x":50,"y":30,"wires":[]}],"out":[{"x":160,"y":30,"wires":[{"id":"c1bbb0ac.3e445","port":0}]}]},{"id":"56bd1bfc.a942e4","type":"subflow","name":"MyC postprocessor","info":"Processes MyController specific output","in":[{"x":50,"y":30,"wires":[]}],"out":[{"x":160,"y":30,"wires":[{"id":"56bd1bfc.a942e4","port":0}]}]},{"id":"6bb8370.f9447c8","type":"subflow","name":"MyC preprocessor","info":"Processes MyController specific input","in":[{"x":50,"y":30,"wires":[{"id":"287b2c2e.d784d4"}]}],"out":[{"x":330,"y":30,"wires":[{"id":"287b2c2e.d784d4","port":0}]}]},{"id":"287b2c2e.d784d4","type":"change","z":"6bb8370.f9447c8","name":"Topic=MyController","rules":[{"t":"set","p":"topic","to":"MyController"}],"action":"","property":"","from":"","to":"","reg":false,"x":184,"y":30,"wires":[[]]},{"id":"9a01ec1d.65fe1","type":"subflow","name":"MYS preprocessor","info":"Processes MYSController specific input","in":[{"x":50,"y":30,"wires":[{"id":"ab4674a4.54b988"}]}],"out":[{"x":320,"y":30,"wires":[{"id":"ab4674a4.54b988","port":0}]}]},{"id":"ab4674a4.54b988","type":"change","z":"9a01ec1d.65fe1","name":"Topic=MYSController","rules":[{"t":"set","p":"topic","to":"MYSController"}],"action":"","property":"","from":"","to":"","reg":false,"x":183,"y":30,"wires":[[]]},{"id":"fb0fe50f.04f018","type":"subflow","name":"Vera preprocessor","info":"Processes Vera specific input","in":[{"x":54,"y":36,"wires":[{"id":"fb4a1920.04b5e8"}]}],"out":[{"x":288,"y":36,"wires":[{"id":"fb4a1920.04b5e8","port":0}]}]},{"id":"fb4a1920.04b5e8","type":"change","z":"fb0fe50f.04f018","name":"Topic=Vera","rules":[{"t":"set","p":"topic","to":"Vera"}],"action":"","property":"","from":"","to":"","reg":false,"x":158,"y":36,"wires":[[]]},{"id":"87ad6845.785298","type":"subflow","name":"MYS dbg mgt","info":"","in":[{"x":25,"y":28,"wires":[{"id":"a5f38922.5a0c78"}]}],"out":[{"x":787,"y":25,"wires":[{"id":"87b5da5b.784a28","port":0}]},{"x":615,"y":70,"wires":[{"id":"c58c8cac.3a737","port":0}]}]},{"id":"7d24de87.82db2","type":"function","z":"87ad6845.785298","name":"Debug from Data from Ping","func":"if (msg.messageType == 3 && msg.subType == 9) {\n return [ msg, null, null ];\n} else if (msg.messageType == 3 && msg.subType == 18) {\n return [ null, null, msg ];\n} else {\n return [ null, msg, null ];\n}\n","outputs":"3","noerr":0,"x":302,"y":28.5,"wires":[["a49c42e6.5b63c"],["a49c42e6.5b63c","c58c8cac.3a737"],["c58c8cac.3a737"]]},{"id":"a5f38922.5a0c78","type":"mysdecenc","z":"87ad6845.785298","name":"Decode","x":117,"y":28,"wires":[["7d24de87.82db2"]]},{"id":"c58c8cac.3a737","type":"mysdecenc","z":"87ad6845.785298","name":"Encode","x":520,"y":71,"wires":[[]]},{"id":"a49c42e6.5b63c","type":"mysdecenc","z":"87ad6845.785298","name":"Encode","x":523,"y":25,"wires":[["87b5da5b.784a28"]]},{"id":"87b5da5b.784a28","type":"mysdebug","z":"87ad6845.785298","name":"Debug decorate","x":671,"y":26,"wires":[[]]},{"id":"a2721ec7.5d8de","type":"pushbullet-config","z":"","name":"somename"},{"id":"8160ff88.7e9f","type":"subflow","name":"MYS Pushbullet publisher","info":"","in":[{"x":68,"y":79,"wires":[{"id":"108590a6.ef7a6f"}]}],"out":[]},{"id":"e2dea93.f1d2158","type":"pushbullet","z":"8160ff88.7e9f","config":"a2721ec7.5d8de","pushtype":"note","title":"Lock status","chan":"noneofyourbusiness","name":"Lock status","x":1042,"y":1072,"wires":[]},{"id":"69c63289.9639cc","type":"function","z":"8160ff88.7e9f","name":"Format","func":"if (msg.payload == 1) {\n msg.payload = \"Locked\";\n} else {\n msg.payload = \"Unlocked\";\n}\nreturn msg;\n","outputs":1,"noerr":0,"x":905,"y":1072,"wires":[["e2dea93.f1d2158"]]},{"id":"9afa4e84.6505b","type":"switch","z":"8160ff88.7e9f","name":"Message type","property":"messageType","rules":[{"t":"eq","v":"0"},{"t":"eq","v":"1"},{"t":"eq","v":"2"},{"t":"eq","v":"3"},{"t":"else"}],"checkall":"true","outputs":5,"x":417,"y":129,"wires":[["a1c9e060.5e362"],["7ee958f8.8116a8"],["7ee958f8.8116a8"],["6aa07c4a.955f84"],[]]},{"id":"108590a6.ef7a6f","type":"mysdecenc","z":"8160ff88.7e9f","name":"MySensors decode","x":198,"y":79,"wires":[["9afa4e84.6505b"]]},{"id":"a1c9e060.5e362","type":"switch","z":"8160ff88.7e9f","name":"PresentationSubtype","property":"subType","rules":[{"t":"eq","v":"0"},{"t":"eq","v":"1"},{"t":"eq","v":"2"},{"t":"eq","v":"3"},{"t":"eq","v":"4"},{"t":"eq","v":"5"},{"t":"eq","v":"6"},{"t":"eq","v":"7"},{"t":"eq","v":"8"},{"t":"eq","v":"9"},{"t":"eq","v":"10"},{"t":"eq","v":"11"},{"t":"eq","v":"12"},{"t":"eq","v":"13"},{"t":"eq","v":"14"},{"t":"eq","v":"15"},{"t":"eq","v":"16"},{"t":"eq","v":"17"},{"t":"eq","v":"18"},{"t":"eq","v":"19"},{"t":"eq","v":"20"},{"t":"eq","v":"21"},{"t":"eq","v":"22"},{"t":"eq","v":"23"},{"t":"eq","v":"24"},{"t":"eq","v":"25"},{"t":"eq","v":"26"},{"t":"eq","v":"27"},{"t":"eq","v":"28"},{"t":"eq","v":"29"},{"t":"eq","v":"30"},{"t":"eq","v":"31"},{"t":"eq","v":"32"},{"t":"eq","v":"33"},{"t":"eq","v":"34"},{"t":"else"}],"checkall":"true","outputs":36,"x":723,"y":275,"wires":[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]]},{"id":"7ee958f8.8116a8","type":"switch","z":"8160ff88.7e9f","name":"SetReqSubtype","property":"subType","rules":[{"t":"eq","v":"0"},{"t":"eq","v":"1"},{"t":"eq","v":"2"},{"t":"eq","v":"3"},{"t":"eq","v":"4"},{"t":"eq","v":"5"},{"t":"eq","v":"6"},{"t":"eq","v":"7"},{"t":"eq","v":"8"},{"t":"eq","v":"9"},{"t":"eq","v":"10"},{"t":"eq","v":"11"},{"t":"eq","v":"12"},{"t":"eq","v":"13"},{"t":"eq","v":"14"},{"t":"eq","v":"15"},{"t":"eq","v":"16"},{"t":"eq","v":"17"},{"t":"eq","v":"18"},{"t":"eq","v":"19"},{"t":"eq","v":"20"},{"t":"eq","v":"21"},{"t":"eq","v":"22"},{"t":"eq","v":"23"},{"t":"eq","v":"24"},{"t":"eq","v":"25"},{"t":"eq","v":"26"},{"t":"eq","v":"27"},{"t":"eq","v":"28"},{"t":"eq","v":"29"},{"t":"eq","v":"30"},{"t":"eq","v":"31"},{"t":"eq","v":"32"},{"t":"eq","v":"33"},{"t":"eq","v":"34"},{"t":"eq","v":"35"},{"t":"eq","v":"36"},{"t":"eq","v":"37"},{"t":"eq","v":"38"},{"t":"eq","v":"39"},{"t":"eq","v":"40"},{"t":"eq","v":"41"},{"t":"eq","v":"42"},{"t":"eq","v":"43"},{"t":"eq","v":"44"},{"t":"eq","v":"45"},{"t":"else"}],"checkall":"true","outputs":47,"x":740,"y":903,"wires":[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],["69c63289.9639cc"],[],[],[],[],[],[],[],[],[],[]]},{"id":"6aa07c4a.955f84","type":"switch","z":"8160ff88.7e9f","name":"InternalSubtype","property":"subType","rules":[{"t":"eq","v":"0"},{"t":"eq","v":"1"},{"t":"eq","v":"2"},{"t":"eq","v":"3"},{"t":"eq","v":"4"},{"t":"eq","v":"5"},{"t":"eq","v":"6"},{"t":"eq","v":"7"},{"t":"eq","v":"8"},{"t":"eq","v":"9"},{"t":"eq","v":"10"},{"t":"eq","v":"11"},{"t":"eq","v":"12"},{"t":"eq","v":"13"},{"t":"eq","v":"14"},{"t":"eq","v":"15"},{"t":"eq","v":"16"},{"t":"else"}],"checkall":"true","outputs":18,"x":739,"y":1397,"wires":[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]]},{"id":"8f98bd26.70674","type":"subflow","name":"DOM postprocessor","info":"Processes Domoticz specific output","in":[{"x":33,"y":143,"wires":[{"id":"699b5758.9664a8"}]}],"out":[{"x":951,"y":150,"wires":[{"id":"78766dd2.878994","port":0}]}]},{"id":"699b5758.9664a8","type":"mysdecenc","z":"8f98bd26.70674","name":"","x":139,"y":143,"wires":[["1ecc685.fe13398"]]},{"id":"1ecc685.fe13398","type":"switch","z":"8f98bd26.70674","name":"Type is SET?","property":"messageType","rules":[{"t":"eq","v":"1"},{"t":"else"}],"checkall":"true","outputs":2,"x":289,"y":143,"wires":[["73b9b1e.f8c465"],["78766dd2.878994"]]},{"id":"78766dd2.878994","type":"mysdecenc","z":"8f98bd26.70674","name":"","x":846,"y":150,"wires":[[]]},{"id":"73b9b1e.f8c465","type":"switch","z":"8f98bd26.70674","name":"Is V_LOCK_STATUS?","property":"subType","rules":[{"t":"eq","v":"36"},{"t":"else"}],"checkall":"true","outputs":2,"x":476,"y":127,"wires":[["5e7ebd41.a18144"],["78766dd2.878994"]]},{"id":"5e7ebd41.a18144","type":"function","z":"8f98bd26.70674","name":"Invert payload","func":"if (msg.payload == 1)\n msg.payload = 0;\nelse\n msg.payload = 1;\nreturn msg;","outputs":1,"noerr":0,"x":670,"y":113,"wires":[["78766dd2.878994"]]},{"id":"6f018651.90fe78","type":"subflow","name":"DOM preprocessor","info":"Processes Domoticz specific input","in":[{"x":31,"y":188,"wires":[{"id":"b03550b3.4fcab"}]}],"out":[{"x":894,"y":197,"wires":[{"id":"38029d29.c7fd62","port":0}]}]},{"id":"c7e52cc0.381ad","type":"mysdecenc","z":"6f018651.90fe78","name":"Decode","x":311,"y":230,"wires":[["c88ee733.377118"]]},{"id":"c88ee733.377118","type":"switch","z":"6f018651.90fe78","name":"Type is SET?","property":"messageType","rules":[{"t":"eq","v":"1"},{"t":"else"}],"checkall":"true","outputs":2,"x":446,"y":190,"wires":[["d409083c.2bf6f8"],["38029d29.c7fd62"]]},{"id":"38029d29.c7fd62","type":"mysdecenc","z":"6f018651.90fe78","name":"Encode","x":785,"y":197,"wires":[[]]},{"id":"d409083c.2bf6f8","type":"switch","z":"6f018651.90fe78","name":"Is V_LOCK_STATUS?","property":"subType","rules":[{"t":"eq","v":"36"},{"t":"else"}],"checkall":"true","outputs":2,"x":544,"y":122,"wires":[["a1467944.5eb988"],["38029d29.c7fd62"]]},{"id":"a1467944.5eb988","type":"function","z":"6f018651.90fe78","name":"Invert payload","func":"if (msg.payload == 1)\n msg.payload = 0;\nelse\n msg.payload = 1;\nreturn msg;","outputs":1,"noerr":0,"x":663,"y":57,"wires":[["38029d29.c7fd62"]]},{"id":"b03550b3.4fcab","type":"change","z":"6f018651.90fe78","name":"Topic=Domoticz","rules":[{"t":"set","p":"topic","to":"Domoticz"}],"action":"","property":"","from":"","to":"","reg":false,"x":157,"y":188,"wires":[["c7e52cc0.381ad"]]},{"id":"5454541d.ababac","type":"subflow","name":"Fake sensors","in":[{"x":35,"y":30,"wires":[{"id":"ff04f8fa.00fb08"}]}],"out":[{"x":666,"y":30,"wires":[{"id":"30e6a3cb.cf195c","port":0}]}]},{"id":"666dc361.99923c","type":"mysencap","z":"5454541d.ababac","name":"Temp","nodeid":"1","childid":0,"subtype":0,"internal":0,"ack":false,"msgtype":"1","presentation":true,"presentationtype":"6","presentationtext":"FakeTempSensor","fullpresentation":true,"firmwarename":"FakeTemp","firmwareversion":"0.0","x":350,"y":30,"wires":[["30e6a3cb.cf195c"]]},{"id":"ff04f8fa.00fb08","type":"function","z":"5454541d.ababac","name":"Generate temp","func":"msg.payload = \"25\"\nreturn msg;","outputs":1,"noerr":0,"x":185,"y":30,"wires":[["666dc361.99923c"]]},{"id":"30e6a3cb.cf195c","type":"mysdecenc","z":"5454541d.ababac","name":"MySensors encode","x":515,"y":30,"wires":[[]]},{"id":"6580173d.9a7fe8","type":"serial-port","serialport":"/dev/ttyMyController","serialbaud":"115200","databits":"8","parity":"none","stopbits":"1","newline":"\\n","bin":"false","out":"char","addchar":true},{"id":"65355d72.9acaa4","type":"serial-port","serialport":"/dev/ttyDomoticz","serialbaud":"115200","databits":"8","parity":"none","stopbits":"1","newline":"\\n","bin":"false","out":"char","addchar":true},{"id":"13cc7d6f.ec3383","type":"serial-port","serialport":"/dev/ttyMysC","serialbaud":"115200","databits":"8","parity":"none","stopbits":"1","newline":"\\n","bin":"false","out":"char","addchar":true},{"id":"5af61127.a509f","type":"serial-port","z":"","serialport":"/dev/ttyUSB0","serialbaud":"115200","databits":"8","parity":"none","stopbits":"1","newline":"\\n","bin":"false","out":"char","addchar":true},{"id":"29d1b211.d62e4e","type":"serial-port","serialport":"/dev/ttyVera","serialbaud":"115200","databits":"8","parity":"none","stopbits":"1","newline":"\\n","bin":"false","out":"char","addchar":true},{"id":"56e6890.fa91978","type":"debug","z":"faef2a18.0510d8","name":"CTRLR debug","active":true,"console":"false","complete":"payload","x":748,"y":465,"wires":[]},{"id":"933030f1.6ccfd","type":"serial out","z":"faef2a18.0510d8","name":"Vera","serial":"29d1b211.d62e4e","x":821,"y":196,"wires":[]},{"id":"54370c66.abc8f4","type":"serial in","z":"faef2a18.0510d8","name":"MySensorsGW","serial":"5af61127.a509f","x":77.5,"y":146,"wires":[["396eb79f.c69148"]]},{"id":"6dae78cf.925188","type":"serial out","z":"faef2a18.0510d8","name":"MySensorsGW","serial":"5af61127.a509f","x":750,"y":533,"wires":[]},{"id":"cbef03e5.3411","type":"serial in","z":"faef2a18.0510d8","name":"MYSController","serial":"13cc7d6f.ec3383","x":76,"y":527,"wires":[["992c7345.66d39"]]},{"id":"9b7faefd.64805","type":"serial out","z":"faef2a18.0510d8","name":"MYSController","serial":"13cc7d6f.ec3383","x":844,"y":243,"wires":[]},{"id":"91697766.6e9688","type":"inject","z":"faef2a18.0510d8","name":"Send version request","topic":"MySensors test","payload":"0;255;3;0;2;","payloadType":"string","repeat":"","crontab":"","once":false,"x":122,"y":434,"wires":[["5feb3ddb.a014c4"]]},{"id":"5be5bb8c.a41a44","type":"serial in","z":"faef2a18.0510d8","name":"Domoticz","serial":"65355d72.9acaa4","x":59.5,"y":631,"wires":[["1b7cf599.e4830a","80399396.7fc67"]]},{"id":"cb8a2201.3475e","type":"serial out","z":"faef2a18.0510d8","name":"Domoticz","serial":"65355d72.9acaa4","x":828,"y":343,"wires":[]},{"id":"439009ab.bc6ff8","type":"serial in","z":"faef2a18.0510d8","name":"MyController","serial":"6580173d.9a7fe8","x":70.5,"y":581,"wires":[["47f782c.fb8087c"]]},{"id":"be681116.4197f","type":"serial out","z":"faef2a18.0510d8","name":"MyController","serial":"6580173d.9a7fe8","x":838,"y":293,"wires":[]},{"id":"6cab82ec.93547c","type":"subflow:5454541d.ababac","z":"faef2a18.0510d8","name":"","x":237,"y":193,"wires":[["396eb79f.c69148","26c64377.d939bc"]]},{"id":"a7dc7c6f.58238","type":"inject","z":"faef2a18.0510d8","name":"Trig fakes","topic":"","payload":"","payloadType":"none","repeat":"","crontab":"","once":false,"x":92,"y":193,"wires":[["6cab82ec.93547c"]]},{"id":"1b7cf599.e4830a","type":"subflow:6f018651.90fe78","z":"faef2a18.0510d8","name":"","x":315,"y":631,"wires":[["1c964876.e369b8"]]},{"id":"e62acc9e.19d53","type":"subflow:8f98bd26.70674","z":"faef2a18.0510d8","name":"","x":664,"y":343,"wires":[["cb8a2201.3475e","d994688d.266b98"]]},{"id":"10218729.efde79","type":"subflow:8160ff88.7e9f","z":"faef2a18.0510d8","name":"","x":881,"y":153,"wires":[]},{"id":"396eb79f.c69148","type":"subflow:87ad6845.785298","z":"faef2a18.0510d8","name":"","x":429,"y":146,"wires":[["fe9c2881.0163d8","1ed4947e.e12b6c"],["e62acc9e.19d53","28097d6b.d7f682","6b5d7d4b.94a284","ebe581f9.141a8","10218729.efde79"]]},{"id":"fe9c2881.0163d8","type":"debug","z":"faef2a18.0510d8","name":"MYS debug","active":true,"console":"false","complete":"payload","x":638,"y":84,"wires":[]},{"id":"1ed4947e.e12b6c","type":"file","z":"faef2a18.0510d8","name":"","filename":"/home/pi/MySensors/gw_out.log","appendNewline":true,"createDir":true,"overwriteFile":"false","x":702,"y":118,"wires":[]},{"id":"28461cae.d7b9e4","type":"subflow:fb0fe50f.04f018","z":"faef2a18.0510d8","name":"","x":316,"y":475,"wires":[["1c964876.e369b8"]]},{"id":"20753984.df8ac6","type":"serial in","z":"faef2a18.0510d8","name":"Vera","serial":"29d1b211.d62e4e","x":55,"y":475,"wires":[["28461cae.d7b9e4"]]},{"id":"992c7345.66d39","type":"subflow:9a01ec1d.65fe1","z":"faef2a18.0510d8","name":"","x":315,"y":527,"wires":[["1c964876.e369b8"]]},{"id":"47f782c.fb8087c","type":"subflow:6bb8370.f9447c8","z":"faef2a18.0510d8","name":"","x":313,"y":581,"wires":[["1c964876.e369b8"]]},{"id":"1c964876.e369b8","type":"subflow:87ad6845.785298","z":"faef2a18.0510d8","name":"","x":553,"y":527,"wires":[["56e6890.fa91978","eeac51f0.1153b"],["6dae78cf.925188"]]},{"id":"28097d6b.d7f682","type":"subflow:56bd1bfc.a942e4","z":"faef2a18.0510d8","name":"","x":659,"y":293,"wires":[["be681116.4197f"]]},{"id":"6b5d7d4b.94a284","type":"subflow:c1bbb0ac.3e445","z":"faef2a18.0510d8","name":"","x":660,"y":243,"wires":[["9b7faefd.64805"]]},{"id":"ebe581f9.141a8","type":"subflow:c542f76c.3abd08","z":"faef2a18.0510d8","name":"","x":660,"y":196,"wires":[["933030f1.6ccfd"]]},{"id":"eeac51f0.1153b","type":"file","z":"faef2a18.0510d8","name":"","filename":"/home/pi/MySensors/gw_in.log","appendNewline":true,"createDir":true,"overwriteFile":"false","x":799,"y":498,"wires":[]},{"id":"5feb3ddb.a014c4","type":"subflow:c1f1131a.3e0ef","z":"faef2a18.0510d8","name":"","x":321,"y":434,"wires":[["1c964876.e369b8"]]},{"id":"26c64377.d939bc","type":"debug","z":"faef2a18.0510d8","name":"","active":true,"console":"false","complete":"false","x":419,"y":229,"wires":[]},{"id":"80399396.7fc67","type":"debug","z":"faef2a18.0510d8","name":"Domoticz out","active":true,"console":"false","complete":"payload","x":289,"y":676,"wires":[]},{"id":"d994688d.266b98","type":"debug","z":"faef2a18.0510d8","name":"Domoticz in","active":true,"console":"false","complete":"payload","x":850,"y":406,"wires":[]}]
You will need @tbowmo's mysensors node-red plugin for this flow. And be aware that the debug log management in this flow is NOT working as it is really supposed to.
To create the socat pipes I use a number of shell scripts of this form executed as root:
#!/bin/bash while sleep 1; do socat PTY,link=/dev/ttyVera,mode=666,group=dialout,raw TCP-LISTEN:5003,reuseaddr done
Typically, you can invoke such a script using
sudo ./socat_vera.sh &
which would let the script execute in the background. The while loop make sure the pipe stays available even if there is nothing connected to it.
For sure there are a lot of different things about this that can be improved and optimized, but that is what I am currently using in my testing environment.
-
Ditto on the "very very cool" I looking for a app I could actually see what my sensor builds were doing. Prefect!
Thanks
-
hi again, I noticed that domoticz would lose connection to the Gateway when I would ask one of the nodes to restart. Is that expected behavior?
For example when I want to introduce a new node/code to domoticz, the moment I hit reboot on some node domoticz would report that it has lost TCP connection with the gateway and it would wait 30s or something and then reconnect to the gateway, which is ok to restart but it will then miss the introduction/presentation data sent by the sensor. This is one of the coolest features of MysController, to update and reset remote nodes, without the need to reopen all the nodes and hitting reset or removing the battery etc.
Anyone noticing this, is there some workaround for this?
-
Hi tekka,
I have tested MYSController, and it was a massive success ! thanks a lot for your work.
I have just one question, in the csv file there is a type.
According to my reading this is to tag a node type, but where are the already known types ?
Type 1 => only temperature
Type 2 => only humidity
Type 3 => temp & hum
etc
Is there another config file where to specify user types ?Type,Name,Version,File,Comments
10,Blink,1,Blink.hex,blinking example
20,TimeReporter,1,TimeReporter.hex,TimeReporter
100,Sensebender Micro,1,SensebenderMicro.cpp.hex,Sensebender Micro
110,Sensebender Blink,1,SensebenderBlink.cpp.hex,Sensebender Blink
-
@hek - would it be possible to get a subforum for MYSController stood up in the Controllers forum? This thread is getting pretty long and off topic (also, the RSS feed stops at the 27th post)
-
I'll have a talk with @tekka about it. But you always have the optaion to start a new thread.
-
@DomoJimbo No, you are free to choose the node types. This information is used for OTA FW updates.
-
Hello,
for Linux, it works with wine, with TCP and serial.
regards
Thomas
-
I'Ve done the steps witch you describe but it doesn't show up in the ArduinoIDE.
Step 1, added the lines to boards.txt
Step 2, made a directory \MySensors under
D:\Program Files\Arduino\hardware\arduino\avr\bootloaders
Step 3, copied the .hex file into D:\Program Files\Arduino\hardware\arduino\avr\bootloaders\MySensorsWhat did i do wrong???
-
@MarkV you might want to check your "AppData" folder, I noticed the same behaviour and had to change boards.txt in this location.
C:\Users{{user}}\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10
GL
-
Guys,
I'm trying to get this working with my nano clone but am having no luck.
When I flash the boot loader the nano doesn't send the request (the light on the nano comes on red and stays on).
I'm presuming it's because I haven't updated the fuse settings etc for the nano? Would someone be so kind as to offer some help with regards what I need to change?
Edit: I'm up and running!
-
Did anyone figure out how to get MySensors debug messages to show? My sketch has debug uncommented and I can see them via serial, but not in the app?
-
@Mark-Swift The MySensors debug tab only shows gateway debug messages (not sensor debug).
-
@tekka Yeah, I get that, that's what I'm struggling with. I have the debug line uncommented on my ESP8266 gateway, but see nothing in the mysensors debug tab? I'm using the latest beta build as I run 2.0.0.
Also, I've asked a couple of times, is the default firmware pre release 1.3 bootloader (16mhz) suitable in its default state for both my Uno's and Nano's?
Thanks in advance,
Mark
-
@Mark-Swift the ESP8266 GW is not sending debug msgs over TCP/IP - only over the serial console.
And yes, MYSBootloader 1.3pre/16Mhz is suitable for Uno and Nano V3 (both share the same atmega328p mcu)
-
@tekka That explains it then Thank you very much for the confirmations!
-
@Mark-Swift : If you're happy to modify the MySensors library in an unsupported way, I've added a logMessage function to transmit text/debug messages from remote nodes:
https://github.com/peterdey/MySensors-Arduino/commit/f5f339b71620ec3cd896304a2ca6aba40ad40218Found it useful, particularly in conjunction with MYSController OTA firmware updates.
-
@pdey Let me get this straight, this allows me to see the serial debug messages from my nodes running the modified boot loader? That would be a dream come true, I really miss debug messages...
Thank you!
-
@Mark-Swift: You'll need to replace Serial.Print with node.logMessage - but yes, I use it for transmitting debug messages, wirelessly, to the controller.
No gateway modifications required (the gateway will just pass the message over to the controller). Old versions of MYSController (e.g. 0.1.2.276) would actually show the debug messages as a LOG_MESSAGE in the "Messages" tab; later versions hide it away in the "Debug" tab.
-
@pdey That's fantastic, the only thing I was missing with the modified boot loader was debug...
@hek @tekka Any reason why we can't implement this into development, it seems a great feature.
Now if I can only figure out how to apply @pdey 's fix to the current dev branch....
-
Hi @tekka ,
Just starting testing beta version and it looks really nice. Thanks for sharing this great tool.
I usually use it to debug mysensors network.I think I have found a little bug regarding message subtype.
For example, when I choose to send a message using as subtype V_VAR1, it sends out as V_VAR4.
To actually send it as V_VAR1 I have to choose as Subtype V_HVAC_FLOW_STATE.Can someone try this in their MYSController Beta 1.0.0beta so as to verify if it is only happening to me, or is a funny bug in the beta.
Once againg, thank you very much.
Regards.
Gonzalo
-
@gonzalonal @tekka
Yes I can confirm the exact same behaviour gonzalonal describes. Please say if you need any more details tekka (with the @ function).
-
@Dirk_H @gonzalonal This has been fixed in the most recent build (3314). Thanks for reporting.
=> update pushed.
-
@pdey Filtering I_LOG_MESSAGE from the main message tab can be (de)activated in the settings.