Windows GUI/Controller for MySensors


  • Plugin Developer

    @tekka Is it possible to upgrade MYSbootloader from 1.1 to 1.5 via OTA?


  • Admin

    @jkandasa Technically possible but tricky...


  • Plugin Developer

    @tekka Could you please explain the steps. Otherwise on next upgrade I have open all the boxes and play with soldering iron 😞


  • Admin

    @jkandasa Please read about NRWW and RWW flash memory sections of Atmel MCUs. The trick is (in summary) to have RWW section code calling NRWW flash updating procedures in order to same-section code...


  • Admin

    I have decided it is time for me to finally learn how to do OTA uploading so I read though all the posts to learn how to do it. As I was reading through the posts I was thinking how this tool would be also be useful for troubleshooting. I'm not at home so I can't do any testing right now but I was wondering if it's possible to have the MYSController accessing my Ethernet gateway at the same time my controller (Vera) is? It seems like there could be problems with ACK messages but maybe I'm not fully understanding something? What I'd like to do is have this controller running to watch messagew but not have it interfere with normal communications with Vera. Is that possible? Thanks in advance!


  • Hero Member

    @petewill , I have Vera (lite) + Ethernet GW, and eventually I fire the MYSController in my computer in order to debug / update FW etc. They all live together and in peace 😉 Thanks to @tekka for producing such great tool!



  • @petewill yeah i 2nd that.
    i keep it up to make sure the sensors are sending and then watch the change in vera.
    so no problems running both at the same time for however long you want.


  • Admin

    @rvendrame & @mvader Great, thanks!


  • Contest Winner

    @tekka Do you have any plan of supporting DualOptiboot in the MYSController (not a request, just an inquiry). I believe (at least for myself) that your excellent tool is the best option to instrument OTA and since I have included external flash in my boards I would like to use DualOptiboot for OTA since it provides some "safety" in case RF transmission is shaky.
    I am not saying MYSBootloader is bad in any way, but since it does not need an external flash (which is a good thing), it is more sensitive to RF interference and sometimes I suppose boards will be "soft bricked" in that case.


  • Contest Winner

    @petewill I can also confirm that MYSController can coexist with Vera.
    I use node-red to abstract things. In my case, I want the Vera (and MYSController) to be left in the dark on how my controller is actually implemented and node-red is the ideal tool to do this.

    This is my "flow"
    upload-15f178c5-b7e4-4216-b469-301b48dcc060
    Using it, I can have either a serial or an ethernet gw without the controllers knowing.
    Instead, I create network serial pipes using socat that the controllers connect to.
    I can also filter out the debug prints from the gw if I want to examine something and also prevent them from "disturbing" the controllers (if they do not explicitly support the debug messages or gets bogged down by them).

    I still need to see if the node-red nodes support OTA since they key packets on '\n' currently which is not really "binary friendly" though, but for normal MySensors operation not involving binary streams, it works just fine 🙂


  • Admin

    @Anticimex The latest MYSController release supports DualOptiboot, simply check the sensebender board option (node tree, right click). Besides that, MYSBootloader will not leave you with a "soft-bricked" node but rather with a slower OTA update time in the case of RF interferences. If the OTA update fails for whatever reasons (loss of connection, power issues, etc.) MYSBootloader will re-request the FW during the next power-up. Since many community members do not have an external flash option, a slightly longer down-time for the direct update should not cause any problems. Importantly, a faulty sketch with the DualOptiboot update (e.g. no regular gw.process() calls) will result in a real "soft-bricked" node. In the end, both OTA update options have their (dis)advantages, a hardware configuration w/o external flash will only work with offline OTA updates.


  • Admin

    @Anticimex Thanks! Looks like I have some more reading to add to the list. Node-Red looks cool but well beyond my current knowledge...



  • @mvader said:

    quite a few post. so apologies if this has been asked before.
    I'm trying to upload a sketch(hex) to one of my nano's
    it's going but froze at 70%
    i had to reboot the gateway.
    this time it got to 87% and seems froze again.
    any thoughts/suggestions on why the gateway is freezing up?

    edit: i can't seem to get a sketch to upload. it gets to some random % and then the gateway freezes.
    a push of the gateway reset button seems to start it over. but then freezes at random.

    edit 2: must have been a distance thing.. i put the bridge right next to the gateway and the code uploaded quickly without freezing.
    however, i still am curious as to why the gateway fails to respond/freezes if the firmware is not able to be uploaded.

    I thought this may have been a fluke or something. but tonight i tried to OTA a mysensors sensebender board and ran into the same issue basically.
    i get to some random point 60 or 70 % and then it just stops.
    i moved my sensor right next to the gateway and reset it.
    took off again.. but then stopped at a certain point.
    and i see "firmware 130" a few times but nothing else about firmware.
    the board and gateway continue to function, the sensor sends back temp and humidity etc. but nothing else about firmware. on the left in the gui, it says FW updating. but that never changes.
    i won't post the entire debug log, but just the last part of it so you can see what i'm talking about

    9/29/2015 21:34:44	RX	3;255;4;0;2;82000100DA04
    9/29/2015 21:34:44	TX	3;255;4;0;3;82000100D90421503109410951095695479537952795
    9/29/2015 21:34:44	RX	3;255;4;0;2;82000100D904
    9/29/2015 21:34:44	TX	3;255;4;0;3;82000100D80460E874E88EE190E0A70196010E945F2C
    9/29/2015 21:34:44	RX	3;255;4;0;2;82000100D804
    9/29/2015 21:34:44	TX	3;255;4;0;3;82000100D704EF92FF92CF93DF93EC016A017B01B22E
    9/29/2015 21:34:44	RX	3;255;4;0;2;82000100D704
    9/29/2015 21:34:44	TX	3;255;4;0;3;82000100D6040F91FF90DF90CF900895BF92CF92DF92
    9/29/2015 21:34:44	RX	3;255;4;0;2;82000100D604
    9/29/2015 21:34:45	TX	3;255;4;0;3;82000100D5048064808381E090E00F90DF91CF911F91
    9/29/2015 21:34:45	RX	3;255;4;0;2;82000100D504
    9/29/2015 21:34:45	TX	3;255;4;0;3;82000100D404FC91579760835096ED91FC9151978081
    9/29/2015 21:34:45	RX	3;255;4;0;2;82000100D404
    9/29/2015 21:34:45	TX	3;255;4;0;3;82000100D304FC915397808180620CC0D6015696ED91
    9/29/2015 21:34:45	RX	3;255;4;0;2;82000100D304
    9/29/2015 21:34:45	RX	3;1;1;0;0;75.5
    9/29/2015 21:34:45	RX	3;2;1;0;1;56
    9/29/2015 21:34:45	TX	3;255;4;0;3;82000100D204FF4F6083D6015B960C935B975296ED91
    9/29/2015 21:34:45	RX	3;255;4;0;2;82000100D204
    9/29/2015 21:34:45	TX	3;255;4;0;3;82000100D1040E940D266981EBCF838DE80FF11DE35A
    9/29/2015 21:34:45	RX	3;255;4;0;2;82000100D104
    9/29/2015 21:34:45	TX	3;255;4;0;3;82000100D004ED91FC915197808185FFF1CFC6016983
    9/29/2015 21:34:45	RX	3;255;4;0;2;82000100D004
    9/29/2015 21:34:45	TX	3;255;4;0;3;82000100CF04848DF81211C00FB607FCF9CFD6015096
    9/29/2015 21:34:45	RX	3;255;4;0;2;82000100CF04
    9/29/2015 21:34:45	TX	3;255;4;0;3;82000100CE04038D10E00F5F1F4F0F731127F02EF601
    9/29/2015 21:34:45	RX	3;255;4;0;2;82000100CE04
    9/29/2015 21:34:45	TX	3;255;4;0;3;82000100CD045096ED91FC915197808185FD2EC0F601
    9/29/2015 21:34:45	RX	3;255;4;0;2;82000100CD04
    9/29/2015 21:34:46	TX	3;255;4;0;3;82000100CC045B969C915B975C968C915C97981307C0
    9/29/2015 21:34:46	RX	3;255;4;0;2;82000100CC04
    9/29/2015 21:34:46	TX	3;255;4;0;3;82000100CB04CDB7DEB76C0181E0D60158968C935897
    9/29/2015 21:34:46	RX	3;255;4;0;2;82000100CB04
    9/29/2015 21:34:46	TX	3;255;4;0;3;82000100CA04CF92DF92FF920F931F93CF93DF931F92
    9/29/2015 21:34:46	RX	3;255;4;0;2;82000100CA04
    9/29/2015 21:34:46	RX	3;255;3;0;0;59
    9/29/2015 21:34:46	TX	3;255;4;0;3;82000100C904EDCFCE010E940D26E7CFDF91CF910895
    9/29/2015 21:34:46	RX	3;255;4;0;2;82000100C904
    9/29/2015 21:34:46	TX	3;255;4;0;3;82000100C804F5CF808185FFF2CFA889B9898C9185FF
    9/29/2015 21:34:46	RX	3;255;4;0;2;82000100C804
    9/29/2015 21:34:46	TX	3;255;4;0;3;82000100C70405C0A889B9898C9186FD0FC00FB607FC
    9/29/2015 21:34:46	RX	3;255;4;0;2;82000100C704
    9/29/2015 21:34:47	TX	3;255;4;0;3;82000100C604EC01888D8823C9F0EA89FB89808185FD
    9/29/2015 21:34:47	RX	3;255;4;0;2;82000100C604
    9/29/2015 21:34:47	TX	3;255;4;0;3;82000100C504F389E02D80818F7D80830895CF93DF93
    9/29/2015 21:34:47	RX	3;255;4;0;2;82000100C504
    9/29/2015 21:34:47	TX	3;255;4;0;3;82000100C4048C9180648C93938D848D981306C00288
    9/29/2015 21:34:47	RX	3;255;4;0;2;82000100C404
    9/29/2015 21:34:47	RX	3;1;1;0;0;75.5
    9/29/2015 21:34:47	RX	3;2;1;0;1;56
    9/29/2015 21:34:47	TX	3;255;4;0;3;82000100C3048F739927848FA689B7892C93A089B189
    9/29/2015 21:34:48	RX	3;255;4;0;2;82000100C304
    9/29/2015 21:34:48	TX	3;255;4;0;3;82000100C204A80FB11DA35ABF4F2C91848D90E00196
    9/29/2015 21:34:48	RX	3;255;4;0;2;82000100C204
    9/29/2015 21:34:48	TX	3;255;4;0;3;82000100C104692781110C9400000895FC01848DDF01
    9/29/2015 21:34:48	RX	3;255;4;0;2;82000100C104
    9/29/2015 21:34:48	RX	3;1;1;0;0;75.5
    9/29/2015 21:34:48	RX	3;2;1;0;1;56
    9/29/2015 21:34:48	TX	3;255;4;0;3;82000100C00497E2892B49F080E090E0892B29F00E94
    9/29/2015 21:34:48	RX	3;255;4;0;2;82000100C004
    9/29/2015 21:34:48	TX	3;255;4;0;3;82000100BF049F73928F90E008958FEF9FEF089589E6
    9/29/2015 21:34:48	RX	3;255;4;0;2;82000100BF04
    9/29/2015 21:34:48	TX	3;255;4;0;3;82000100BE04828DDF01A80FB11D5D968C91928D9F5F
    9/29/2015 21:34:48	RX	3;255;4;0;2;82000100BE04
    9/29/2015 21:34:48	TX	3;255;4;0;3;82000100BD048FEF9FEF0895FC01918D828D981761F0
    9/29/2015 21:34:48	RX	3;255;4;0;2;82000100BD04
    9/29/2015 21:34:49	RX	3;255;3;0;0;60
    9/29/2015 21:34:49	RX	3;255;4;0;2;130
    9/29/2015 21:34:49	RX	3;1;1;0;0;75.6
    9/29/2015 21:34:49	RX	3;2;1;0;1;56
    9/29/2015 21:34:49	RX	3;255;4;0;2;130
    9/29/2015 21:34:49	RX	3;1;1;0;0;75.5
    9/29/2015 21:34:49	RX	3;2;1;0;1;56
    9/29/2015 21:34:50	RX	3;255;4;0;2;130
    9/29/2015 21:34:50	RX	3;255;4;0;2;130
    9/29/2015 21:34:50	RX	3;1;1;0;0;75.6
    9/29/2015 21:34:50	RX	3;2;1;0;1;56
    9/29/2015 21:34:51	RX	3;1;1;0;0;75.5
    9/29/2015 21:34:51	RX	3;2;1;0;1;56
    9/29/2015 21:34:51	RX	3;255;4;0;2;130
    9/29/2015 21:34:51	RX	3;1;1;0;0;75.5
    9/29/2015 21:34:51	RX	3;2;1;0;1;56
    9/29/2015 21:34:58	RX	1;1;1;0;0;72.8
    9/29/2015 21:34:58	RX	1;2;1;0;1;58
    9/29/2015 21:35:55	RX	3;1;1;0;0;75.3
    9/29/2015 21:35:55	RX	3;2;1;0;1;56
    9/29/2015 21:36:02	RX	1;1;1;0;0;72.8
    9/29/2015 21:36:02	RX	1;2;1;0;1;58
    9/29/2015 21:37:06	RX	1;1;1;0;0;72.9
    9/29/2015 21:37:06	RX	1;2;1;0;1;58
    9/29/2015 21:38:03	RX	3;1;1;0;0;75.0
    9/29/2015 21:38:03	RX	3;2;1;0;1;57
    9/29/2015 21:38:10	RX	1;1;1;0;0;72.9
    9/29/2015 21:38:10	RX	1;2;1;0;1;58
    9/29/2015 21:38:58	RX	2;1;1;0;0;72.1
    9/29/2015 21:39:07	RX	3;1;1;0;0;74.9
    9/29/2015 21:39:07	RX	3;2;1;0;1;57
    9/29/2015 21:39:14	RX	1;1;1;0;0;72.9
    9/29/2015 21:39:14	RX	1;2;1;0;1;58
    9/29/2015 21:40:03	RX	2;1;1;0;0;72.2
    9/29/2015 21:40:03	RX	2;2;1;0;1;55
    9/29/2015 21:40:11	RX	3;1;1;0;0;74.8
    9/29/2015 21:40:11	RX	3;2;1;0;1;58
    9/29/2015 21:40:17	RX	1;1;1;0;0;72.9
    9/29/2015 21:40:17	RX	1;2;1;0;1;58
    9/29/2015 21:41:15	RX	3;1;1;0;0;74.7
    9/29/2015 21:41:15	RX	3;2;1;0;1;58
    9/29/2015 21:41:21	RX	1;1;1;0;0;72.8
    9/29/2015 21:41:21	RX	1;2;1;0;1;58
    9/29/2015 21:42:18	RX	3;1;1;0;0;74.6
    9/29/2015 21:42:19	RX	3;2;1;0;1;58
    9/29/2015 21:42:25	RX	1;1;1;0;0;72.9
    9/29/2015 21:42:25	RX	1;2;1;0;1;58
    9/29/2015 21:43:22	RX	3;1;1;0;0;74.6
    9/29/2015 21:43:22	RX	3;2;1;0;1;58
    9/29/2015 21:43:29	RX	1;1;1;0;0;72.9
    9/29/2015 21:43:29	RX	1;2;1;0;1;58
    9/29/2015 21:44:26	RX	3;1;1;0;0;74.4
    9/29/2015 21:44:26	RX	3;2;1;0;1;56
    9/29/2015 21:44:33	RX	1;1;1;0;0;72.9
    9/29/2015 21:44:33	RX	1;2;1;0;1;58
    9/29/2015 21:45:23	RX	2;1;1;0;0;72.1
    9/29/2015 21:45:23	RX	2;2;1;0;1;54
    9/29/2015 21:45:30	RX	3;1;1;0;0;74.2
    9/29/2015 21:45:30	RX	3;2;1;0;1;54
    9/29/2015 21:45:37	RX	1;1;1;0;0;72.9
    9/29/2015 21:45:37	RX	1;2;1;0;1;58
    9/29/2015 21:46:27	RX	2;1;1;0;0;72.2
    9/29/2015 21:46:28	RX	2;2;1;0;1;54
    9/29/2015 21:46:41	RX	1;1;1;0;0;72.9
    9/29/2015 21:46:41	RX	1;2;1;0;1;58
    9/29/2015 21:47:38	RX	3;1;1;0;0;73.9
    9/29/2015 21:47:38	RX	3;2;1;0;1;53
    9/29/2015 21:47:45	RX	1;1;1;0;0;72.9
    9/29/2015 21:47:45	RX	1;2;1;0;1;58
    

  • Contest Winner

    @tekka ok, cool! But I installed from the link in the top post last night and I could not find DualOptiboot mentioned anywhere. Is it only by picking a Sensbender board type that option appears? Are there other settings also affected by that? My board(s) are not Sensbenders per se although they should have the same hw features.


  • Admin

    @Anticimex Yes, use Sensebender board for the DualOptiboot option. MYSController will simply initiate the FW upload (assuming that OTA update is uncommented...)


  • Admin

    @mvader please upload the entire log file to check a few things. Also, if the node is next to (or too close) you will get RF interferences (this has been observed for the large antenna and max tx power).

    EDIT: before I forget, also upload the log from the node - this will help to elicit the problem...



  • @tekka I tried from the basement.
    moved up to the fireplace mantel and then finally put it about 1 foot away from the gateway. still the same thing.
    tonight after work i will pull the complete logs and post for your review.
    thanks!


  • Contest Winner

    @tekka I think I might have found a bug (or perhaps this is considered a feature request):
    The GW "version" (1.5) is not shown in the node info although it has sent a response to a version request as shown here:
    upload-59d5fea8-52ae-4f8c-8bfa-bdb9ebac82a2
    upload-fbd28c37-06f4-46d5-bba4-be8e6f6ad412

    Also, I am not sure what the "signing" field is intended for. Showing signing request status? It says "Unknown" for both my GW and my "secure" node. The node require signing and the gw is signing messages sent to it. Perhaps reserved for future functionality?

    Still a great and very useful tool!



  • @mvader said:
    i'm not sure how to grab the log from the node, please advise.
    here is the MYSController debug log in full.
    MySensors_20150930-203313.log


  • Plugin Developer

    @tekka MYSBootloader is a great gift for us. With zero touch we can upgrade our firmware in to target board.

    In some cases I want to recompile the source code for 8 MHz or lesser frequency or different boards. As this is not a Arduino code, I do not know how to recompile this software. I hope many people facing issue with recompiling. Could you please add some document how to recompile this source code under https://github.com/mysensors/Arduino/tree/master/MYSBootloader

    Also can you post source code of MYSBootloader 1.5 version?

    Thank you!


  • Admin

    @jkandasa The source code for 1.5 will be available upon release (mid-end October if time allows).


  • Admin

    @mvader For the node log: simply connect a serial adapter to the sensebender node and retrieve the serial output.


  • Admin

    @Anticimex No, not a bug and in the feature request list (I_VERSION handling). The signing field is updated once the node sends its signing preferences.


  • Contest Winner

    @tekka Ok, but then I believe I found a bug, because I have reset my node and it did send its presentation messages, but the field did not update. I'm not at home right now so I can't get you the logs but I will see if I can replicate the steps and send you later on.


  • Admin

    @tekka Thanks for this great tool! I have been using it to monitor my nodes successfully for over a day. It's great. I do have a couple of questions.

    Is there a way to see Variables that are sent from my controller (Vera)? I see the request sent from the node but not the response from Vera. Here is a screenshot. I would expect to see numbers sent back from Vera but maybe I'm missing something.
    Variables.png

    Is there a way to send a message to a node that hasn't checked in with the controller yet? I tried to manually type in a Node and Sensor but was unable to. I'd like to be able to send commands to nodes that haven't checked in if possible. For example, if the controller wasn't running for a while but I want to start it up to send a reboot command to a node that is no longer communicating. Or, if I have a relay node that doesn't check in often but I need to change the state.

    Thanks again!!


  • Admin

    @petewill said:

    Is there a way to see Variables that are sent from my controller (Vera)?

    No, not to my knowledge - anybody?

    Is there a way to send a message to a node that hasn't checked in with the controller yet? I tried to manually type in a Node and Sensor but was unable to.

    You can manually add a node, but not a sensor: in the node tree view: right click | Add node | enter ID.

    I will add the manual sensor adding to the feature requests.


  • Admin

    @Anticimex Just had a quick look at the library code: if signing is enabled (in the GW), the I_REQUEST_SIGNING message is not published. This field is only updated if signing is disabled (in the GW). However, MYSController will reply with a "signing not supported" message.


  • Contest Winner

    @tekka right. Signing exchange is currently only done in the rf protocol, not to the controller. So are there currently any ways for the controller to populate that field?
    A future addition of a I_CONFIG message is under discussion where node properties such as signing and other things can be published to a controller, so I suppose that field in the ui is for future use then 🙂


  • Admin

    @Anticimex ~yup 🙂


  • Admin

    @tekka said:

    I will add the manual sensor adding to the feature requests.

    Great, thanks!

    As for the variables, I don't think I was clear in what I was asking. The variable is a MySensors variable. It just doesn't look like it's picked up by the MYSController. I am doing a horrible job describing this but here is that I see in the log file:

    50	10/02/15 7:30:16.689	luup_log:27: Arduino: Request: 1;2;2;0;24;Front Yard <0x308de680>
    50	10/02/15 7:30:16.689	luup_log:27: Arduino: Requesting status for: 1;2 <0x308de680>
    50	10/02/15 7:30:16.690	luup_log:27: Arduino: Request status for Variable1 <0x308de680>
    50	10/02/15 7:30:16.690	luup_log:27: Arduino: Sending: 1;2;1;0;24;8 <0x308de680>
    

    I'm not seeing the '8' in the MYSController though. Hopefully that makes a little more sense.

    Thanks again for all the hard work!



  • @tekka said:

    @mvader please upload the entire log file to check a few things. Also, if the node is next to (or too close) you will get RF interferences (this has been observed for the large antenna and max tx power).

    EDIT: before I forget, also upload the log from the node - this will help to elicit the problem...

    I have to do more testing over the weekend, but i updated my gateway to 1.5, as my nodes where 1.5 but gate was 1.4, the 1st one i tried, worked without issue.
    dont know if it was a fluke/lucky or updating to 1.5 on the gateway solved my issue.. i'll post more as i test more nodes



  • This post is deleted!

  • Admin

    @petewill said:

    As for the variables, I don't think I was clear in what I was asking. The variable is a MySensors variable. It just doesn't look like it's picked up by the MYSController. I am doing a horrible job describing this but here is that I see in the log file:

    50	10/02/15 7:30:16.689	luup_log:27: Arduino: Request: 1;2;2;0;24;Front Yard <0x308de680>
    50	10/02/15 7:30:16.689	luup_log:27: Arduino: Requesting status for: 1;2 <0x308de680>
    50	10/02/15 7:30:16.690	luup_log:27: Arduino: Request status for Variable1 <0x308de680>
    50	10/02/15 7:30:16.690	luup_log:27: Arduino: Sending: 1;2;1;0;24;8 <0x308de680>
    

    I'm not seeing the '8' in the MYSController though. Hopefully that makes a little more sense.

    The controller receives messages from the GW but does not intercept messages sent from other controllers (due to the architecture). Similarly, messages sent with MYSController won't appear in Vera.

    But this leads me to an interesting idea...let's see 🙂



  • looking for some help with OTA and a sensebender board.
    if i manually reset the board, then it will take the OTA and that works fine.
    however, that's the only way i can get it to work.
    it doesn't respond to a reboot command (I assume this is because it's sleeping)
    and even if i select the battery/sleeping option, when a transmission does come in, it doesn't reset or start an OTA.
    the only way so far is to physically PF the device and then the OTA works.
    what am i missing?
    thanks!

    EDIT: so this does seems to work.. i spent all morning trying to come up with hack-y ways to get this to work.
    using the default sensebender sketch the OTA wait time is set to 300 milli seconds. which is like .3 seconds.
    i changed that 3000 (3 seconds) set the FW and waited for the next transmission..boom off it went (the OTA).
    so for anyone running into this issue. try this solution.
    I cant imagine 3 seconds vs .3 seconds is going to make a huge difference in battery life.



  • Looking for help to interpret log data after an OTA update. I am just learning, and successfully OTA'ed a simple DS18B temperature sketch to a node using MysController. Now I am trying to OTA an DHT22 node (the example sketch in 1.5 version, no changes to it.) The firmware OTA seems to go fine, but the Pro Mini never seems to start. Below is the log, I have bolded the log entries I don't understand. As shown, the first bold section comes right after the OTA. The second 16 minutes later is because I pushed the reset button on the pro mini. Any help understanding the log entry is appreciated.

    10/5/2015 7:04:01 RX 2;255;4;0;2;820001000200
    10/5/2015 7:04:01 TX 2;255;4;0;3;8200010001000C94AE010C94AE010C94ED020C94AE01
    10/5/2015 7:04:01 RX 2;255;4;0;2;820001000100
    10/5/2015 7:04:01 TX 2;255;4;0;3;8200010000000C9486010C94D11A0C94FE1A0C94AE01
    10/5/2015 7:04:01 RX 2;255;4;0;2;820001000000
    10/5/2015 7:04:01 INFO BL version=257
    10/5/2015 7:04:01 INFO Send FW info to node 2: type=82, version=1, blocks=0x0570, CRC=0x9AEC
    10/5/2015 7:04:01 TX 2;0;4;0;1;820001007005EC9A
    10/5/2015 7:04:01 RX 2;255;4;0;0;820001007005EC9A0101

    10/5/2015 7:07:23 RX 24;1;1;0;0;60.5
    10/5/2015 7:07:23 RX 24;2;1;0;1;59
    10/5/2015 7:11:41 RX 24;1;1;0;0;60.5
    10/5/2015 7:11:41 RX 24;2;1;0;1;59
    10/5/2015 7:13:24 RX 23;0;1;0;1;55.7
    10/5/2015 7:15:59 RX 24;1;1;0;0;60.5
    10/5/2015 7:15:59 RX 24;2;1;0;1;59
    10/5/2015 7:18:27 CHILD New child discovered, node id=23, child id=1
    10/5/2015 7:18:27 RX 23;1;1;0;0;63.0
    10/5/2015 7:18:27 RX 23;0;1;0;1;55.9
    10/5/2015 7:20:14 INFO BL version=257
    10/5/2015 7:20:14 INFO Send FW info to node 2: type=82, version=1, blocks=0x0570, CRC=0x9AEC
    10/5/2015 7:20:14 TX 2;0;4;0;1;820001007005EC9A
    10/5/2015 7:20:14 RX 2;255;4;0;0;820001007005EC9A0101

    10/5/2015 7:21:50 TX 2;0;3;0;13;0
    10/5/2015 7:23:32 RX 23;0;1;0;1;56.0
    10/5/2015 7:24:26 RX 24;3;1;0;24;78


  • Admin

    @tekka said:

    The controller receives messages from the GW but does not intercept messages sent from other controllers (due to the architecture). Similarly, messages sent with MYSController won't appear in Vera.

    But this leads me to an interesting idea...let's see 🙂

    Oh, sorry. I thought it did. I can see my light (relays) messages when turning on/off with my Vera but maybe that's the ACKs?


  • Admin

    @novicit The bold section is the bootloader sending/requesting the current node configuration. Did you set a static node ID in your sketch?



  • @tekka Thank you for your response. The sketch does not have a static ID - the line is "gw.begin();" So it should receive a node ID. I had MysController set to "AutoID" and it successfully issued the next free ID, which was 2. How would I test further to see why it does not begin execution. (I am using ethernet gateway with authentication, but the configuration is set to 'false', so a node not asking for Atsha response does not get one. Other non-atsha nodes work fine-as shown in the log. Don't know if this would make a difference.)



  • @tekka, In thinking about your question .... As the sketch begins execution after OTA'ing, it then asks for a node id to be issued (even though it has received one from the MysController) - and since I am using an ethernet gateway (& Domoticz) which does not automatically issue a node ID, the pro mini just sits there and waits for a node id? Would it then work if I put in a static node ID, even if it is different than the one issued by Myscontroller? And the node then adopts the static ID. ??



  • @tekka I tried 2 new nodes with static id assigned [gw.begin(incomingMessage, 21, false);] and [gw.begin(NULL, 23, false);] ---- still same frozen response.

    10/5/2015 17:18:46 TX 3;255;4;0;3;1400010000000C9486010C94D81A0C94051B0C94AE01
    10/5/2015 17:18:46 RX 3;255;4;0;2;140001000000
    10/5/2015 17:18:47 INFO BL version=257
    10/5/2015 17:18:47 INFO Send FW info to node 3: type=14, version=1, blocks=0x0570, CRC=0xE30B
    10/5/2015 17:18:47 TX 3;0;4;0;1;1400010070050BE3
    10/5/2015 17:18:47 RX 3;255;4;0;0;1400010070050BE30101
    10/5/2015 17:20:32 RX 1;0;1;0;0;19.5

    and:

    10/5/2015 16:59:29 TX 2;255;4;0;3;1400010000000C9486010C94D11A0C94FE1A0C94AE01
    10/5/2015 16:59:29 RX 2;255;4;0;2;140001000000
    10/5/2015 16:59:29 INFO BL version=257
    10/5/2015 16:59:29 INFO Send FW info to node 2: type=14, version=1, blocks=0x0570, CRC=0x2E9E
    10/5/2015 16:59:29 TX 2;0;4;0;1;1400010070059E2E
    10/5/2015 16:59:29 RX 2;255;4;0;0;1400010070059E2E0101
    10/5/2015 17:00:59 RX 24;1;1;0;0;62.8

    Any idea what the nodes are waiting for?

    I also reset the gateway to see if it sent anything that cleared the freeze, but no response. Hmmm.


  • Admin

    @novicit Can you temporarily use a serial gateway with debug enabled and upload a debug-enabled sketch to see what's going on on both sides? Please post the node and gateway log for further hints.



  • Can I set up Hydroponic Greenhouse automation with MYSController???



  • @tekka just wondering.. is there anywhere a documentation how the OTA works?
    I'm currently trying to write a little perl-script with OTA support and had a hard time misreading the source code of the MYSController and OTABootloader.



  • @tekka, problem solved! I took a debug log from the node per your suggestion and was surprised to get:
    radio init fail
    radio init fail
    radio init fail
    This of course surprised me after it just finished downloading 20kb+. Turns out after I made the first test of OTA which worked fine, my home network automatically synchronized my laptops & desktop. This brought over a copy of myconfig.h which had softspi enabled! (I had been setting up the gateway on a different computer). So when I went to OTA on the second and third nodes it picked up the synched myconfig.h. Ugh, such little strange things that take so much time to find.
    @tekka, my apologies for using some of your time. And my Thanks for your great work and sharing with the community!! Hopefully others will avoid similar mistakes by reading this.


  • Hero Member

    Hi @tekka , I'm trying to create a simple thermostat device and I'm usually using your fantastic controller for prototype testing and debugging. Now I would need the possibility to send setpoint values from the controller and the current version of MYSController does not seem to support the following:

    V_HVAC_SETPOINT_COOL 44 HVAC cold setpoint S_HVAC
    V_HVAC_SETPOINT_HEAT 45 HVAC/Heater setpoint S_HVAC, S_HEATER
    V_HVAC_FLOW_MODE 46 Flow mode for HVAC ("Auto", "ContinuousOn", "PeriodicOn") S_HVAC

    I would greatly appreciate it is these features were implemented to your fantastic controller also.

    Best regards,
    Tomas



  • sorry if this has been asked before.
    but I have a nano with mySbootloader installed and when i look at it in the serial monitor its just all gibberish.
    i tried different speeds, but still the same.
    is it not possible if you have that bootloader installed? or do i need to do something else.?
    thx


  • Admin

    @korttoma is implemented in 0.1.2.284 - release pending


  • Admin

    @mvader this is not related to MYSBootloader. Try doubling the baud rate setting, i.e. 230400....


  • Contest Winner

    @tekka Would it be possible in a future version to have the controller save the detected network nodes? Right know, I have to re-present the nodes in order for them to appear properly in the tree every time MYSController is restarted since it starts up with an empty tree.



  • Hi @tekka , I've gone through the steps in your guide using MQTTGateway as gw sketch.
    When I start my new node (burned with mysbootloader) I only see the repeating message "FIND_PARENT" in MySensor Debug window and "RX 0;0;3;0;9;read: 0-0-255 s=255,c=3,t=7,pt=0,l=0,sg=0:" in the MYSController Debug window.
    The message appears every time the led is blinking on the node (approx every 2 seconds).

    Any idea why it doesn't request node id? Have also tried with AutoID without success.

    Thx!


  • Admin

    @Anticimex is implemented in the upcoming release 🙂


  • Admin

    @rubal MYSController does not support MQTT gw. Please use a different controller or change to a serial/tcp gw.


  • Contest Winner

    @tekka sweet! Any ETA on the next release?


  • Admin

    @Anticimex wanna beta-test? 😉


  • Contest Winner

    @tekka for sure 🙂



  • @tekka - i do 🙂 i use it every day


  • Admin

    @cdr said:

    I changed the channel in the mysensors config.h to 77, this was the reason no node would ever show up since the default mysbootloader uses the default channel 76.

    I think I am running into the same thing. How did you fix this? I have many nodes so switching back to 76 is not a good option for me.



  • @petewill said:

    running into the sam

    You can edit myconfig.h and have te recompile after change.


  • Admin

    @cdr I've never recompiled a bootloader before but when I did some searching it seems that I need the .c file to do this. Maybe I'm missing something and I can recompile the .hex? How did you end up doing it? Thanks!


  • Admin

    I did some more testing and my issue definitely appears to be a result of changing the channel in MyConfig.h. I just built a serial gateway with channel 76 selected and everything worked perfectly. The only problem is I have over 20 nodes located throughout my house so re-uploading the code so they use that channel is not something I'd like to do if I can avoid it. Does anyone know how I can recompile the bootloader so I can change the channel?

    I tried the files @siklosi posted here http://forum.mysensors.org/topic/2319/how-to-make-complie-mysbootloader/7 but it did not work.



  • in firmware_config.csv file what is the first column "type" for? And where do I get "type" codes?


  • Admin

    @niccodemi type can be any numeric value used to identify a specific firmware type - this value (together with FW version and the FW CRC) is used to automatically update the nodes.



  • @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 !


  • Contest Winner

    @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).


  • Admin

    @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 ?)


  • Admin

    @Fabien perhaps, will have to get some RFM69 hardware first...


  • Admin

    @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.


  • Admin

    @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


  • Admin

    @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,


  • Admin

    @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?


  • Admin

    @p0lar Please provide MYSController log with DEBUG enabled for further troubleshooting.



  • Yes I can reboot the node. trying to upload dallastemp to it.

    MySensors_20160102-104854.log


  • Admin

    @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

    MyConfig.h



  • 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?


  • Admin

    @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


  • Admin

    @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 me

    thank you for having a look..



  • stebra_id_reassign_attempt.PNG

    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

    1. i upload ethernet gateway to the Arduino Nano, then flash MYSBootloader on it,
    2. upload some sketch (which?) on Arduino Mini nodes, and then flash MYSBootloader on it, and then I can program it OTA?
    3. 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


  • Admin

    @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


Log in to reply
 

Suggested Topics

  • 3
  • 6
  • 2
  • 6
  • 3
  • 13
  • 37
  • 198

0
Online

11.2k
Users

11.1k
Topics

112.5k
Posts