Skip to content

Bug Reports

Found a bug in the MySensors library? Let us know here.
171 Topics 1.3k Posts
  • ACK -aka ECHO beeing missed by Serial Gateway with RF24 radios. V2.3.2

    8
    0 Votes
    8 Posts
    57 Views
    G
    First let me say that the test "network" consists of a single node and a Serial GW with a Domoticz controller only. No repeater nodes are present and it operates at 250Kbd on a frequency outside of the WiFi spectrum verified to have no traffic. The test subjects are within 10 feet of each other and the protocol sniffer receiver is placed roughly midway between the two communicating nodes. The test node has a plugable connector for the RF modules so that I can switch them out separately. The GW has the LNA/PA module and the node is using the standard mudules. Both GW and node are set to "High" power. Looking at the problem with the promiscuous protocol sniffer and wireshark I can clearly see that packets collide mid air when both the node and the GW transmitting at the same time. This happens when the controller/GW talks to the node while having the protocol ACK request enabled and the node does not have the extra wait/delay programmed. Going through 12 RF modules node side, I can see that about 1/3 shows the problem consistently to the extent that all 16 retransmissions are used up , 1/3 to various degrees and the rest shows no problems at all. Before you say "ohh fake chips etc." these modules all came from the same batch, so more than likely not fake and non fake, but rather some parameter that the lib assumes to tight of a margin for. When turning off the protocol level ACK via the controller/GW, the package goes out without an request for the node to send back the package, only the HW ack remains in the picture. Setup like this I can see that the third of the modules that cause the persistent collisions evoke a re-send of the package by the GW after ~2 to 2.5ms , while the group that shows no problem shows one single transmission from the GW only. Since the sniffer is not fast enough to capture the quick turn around ( spec says 130us) for the short HW ack to go out I can not get say whether the node is simply not sending it or just not sending it in quick enough. All I can say is that the GW code did not see a HW ack and therefore sends out the package a second time. Meanwhile on the node side all is well, it just might get the same package twice and since no status changed there is no harm done. However when you now turn on the protocol level ACK request in the controller ( as you should) the node has to turn around and send out the echo package which then collides with the resend of the original package from the GW. The node also doesn't get an HW-ACK becasue of this and tries to resend the echo package over again until it runs out of tries. When I then introduce the wait/delay in the code above to wait out the 2.5Ms for the GW to resend the initial package this ACK/resend storm goes away because the air is clear when the node sends it's echo package. If I wait/delay for 2 ms the problem is greatly reduced and if I wait 3 ms I see no more evidence of collisions. Either wait or delay works however, I choose delay() to be positively sure that no other communication is started during that time by the node. I conclude that as a work around this solves the issue we are having with the RF24 transport, but without further investing into faster RF sniffing equipment I can't say for sure if this could be solved better on the TX side by waiting longer for the HW ack to arrive from the receiving node, however I think there would be a good chance for that. There is also a chance that the PA/LNA module used on the GW could be part of the problem by not being able to switch quickly enough back to RX mode and therefore loose the HW-ACK for nodes that respond quicker than others. Edited: Checked with a non PA/LNA module on the GW and no change could be observed, so this theory can be discounted. BTW: All of this is very reminiscent of an email communication in 2015 I had with Ekblad !! GS
  • 0 Votes
    3 Posts
    149 Views
    G
    @mfalkvidd No, the issue with sleep(0) still exists in V2.3.2. That is the version that the ArDuino Library installer installs currently . -- Work around is to call hwPowerDown(WDTO_SLEEP_FOEREVER) as in above code if you want the battery to last more than a day. GS
  • some differences between serial- and tcp-gateways.

    5
    1 Votes
    5 Posts
    52 Views
    E
    @Branther Thank you for your feedback!
  • Boards esp8266 v3.1.0 or Newer Doesn't Work with MySensors

    9
    0 Votes
    9 Posts
    74 Views
    J
    @monte said in Boards esp8266 v3.1.0 or Newer Doesn't Work with MySensors: il existe tellement de solutions bon marché et faciles pour ce que font mysensors as rich in possibilities as this does not exist :)
  • RFM95W sleep() directly after send() often doesn't sleep radio

    5
    0 Votes
    5 Posts
    43 Views
    prawnpieP
    @OldSurferDude I've run into a similar issue where I was sending data from the controller to an actuator node with mutliple relays and having commands get dropped when sent in rapid succession. I agree that an extra millisecond of wake time every 4 hours will make a negligible difference on total power draw and I'm OK adding a wait now that I know that I need to do it. I agree that it might not make sense to build this support in to MySensors unless we find the optimized time with your method and then... I don't know... add a hacky/naive solution of having the RFM95W sleep implementation block before sending the sleep command,... I don't know the MySensors architecture whether that's even feasible without breaking some rules. My secondary point of posting was definitely just to add to the knowledge base in this forum so someone else trying to put a Lora radio to sleep would find this and save some time.
  • Missing "__libc_init_array();" wenn using samd without USB

    2
    0 Votes
    2 Posts
    20 Views
    V
    @ltigges Hi, I can confirm your issue. Thank you for reporting! Best will be to open a new issue in in the GitHub repo at MySensors/issues. It would be great if you could do that- thank you. BR Immo
  • Making WiFiManager compatible with MySensors 2.3.2

    2
    1 Votes
    2 Posts
    53 Views
    Eduardo GraterolE
    Thank you.
  • 2 Votes
    6 Posts
    80 Views
    Elin AngelowE
    actually it is :) thanks a lot :)
  • NRF51-52 PA not support ???

    17
    1
    0 Votes
    17 Posts
    1k Views
    berkseoB
    @berkseo said in NRF51-52 PA not support ???: The network is simple, this node is nrf52 with an amplifier and a gateway with the nrf24 radio module with an amplifier. It would be strange if a gateway with an amplifier could not deliver ACK. Two moments, or I did a very bad control of the amplifier on the node nRF52 or in the radio driver itself, something is not working well, and may need some delay settings. If i send messages with an ECHO (soft ack) request, this works fine over very long distances. Hw ack does not work properly. Someone was able to do this for mysensors? Gateways and repeaters on nrf5 with amplifier is a very, very cool topic.
  • Sensor presentation failure

    presentation
    11
    0 Votes
    11 Posts
    4k Views
    TheoLT
    @Yveaux I also add the delay to not ddos the gateway. When I did the MySensors workshop, 20 people started to connect to the gateway almost at the same time. And they got Funky messages. Since then I do a delay. But it would probably be better to add a random time to the delay. Something like 20ms + random( 0 - 30 ) ms. That way you don't get the ddos effect. Sonoff had the same problems with their solution a couple of years ago, when the servers went down. All Sonoff devices tried to reconnect almost the at the same time. Which caused a ddos xd
  • Corrupted data from RS485 Sensor Node

    5
    2
    0 Votes
    5 Posts
    63 Views
    Konrad WiniarskiK
    Yes, I realized that last Sunday. I went through the code of library. I had to switch to another project for a week or so, then I come back to it. Thanks!
  • Missing data for some sensors when define MY_DEBUG is disabled [SOLVED]

    8
    0 Votes
    8 Posts
    60 Views
    E
    @mfalkvidd In addition, since the later sensors are seeing it, it's probably just that the power supply is drooping before the voltage regulation on it can catch up. They kind of have 'inertia' and can take a bit to respond, and of course every power supply is different, based on how it's built. So likely the capacitors are helping it ride through the first transmission, and then the power supply 'catches up' for the later ones, but the second one gets garbled with the lower power, and the receiving radio chucks it as a bad packet.
  • Possible flaw in RFM95 driver

    3
    0 Votes
    3 Posts
    38 Views
    E
    Oh sorry, my fault. It was a bit late. We have a return true in there, where we exit the loop as soon as we got an ack. You are right!
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    11 Views
    No one has replied
  • Signing using ATSHA204A not possible below 8MHz

    2
    0 Votes
    2 Posts
    34 Views
    AnticimexA
    That sounds very plausible. Thanks for pointing out this. PRs are welcome. I do not currently have the bandwidth to do MySensors development myself.
  • [SOLVED] GW reports wrong value after node restart

    4
    0 Votes
    4 Posts
    451 Views
    mfalkviddM
    Nice work @alex-kubrinsky, thanks for sharing the solution.
  • GSM MQTT Gateway fails to reconnect

    1
    1
    0 Votes
    1 Posts
    267 Views
    No one has replied
  • Possible CryptoHAL bug.

    5
    1 Votes
    5 Posts
    482 Views
    G
    It seems you two are right. Thanks for your help.
  • nRF5: Does not work wdt_disable();

    1
    0 Votes
    1 Posts
    409 Views
    No one has replied
  • Heartbeat Gateway

    9
    0 Votes
    9 Posts
    1k Views
    ?
    Hi @all I modified the MySensorsCore.cpp as tekka did on Github. Now my sendHeartbeat() is received by FHEM and it is working fine! Thanks a lot to all! @rejoe2 I just tested to send with MYSController 0;0;3;0;18; and the Gateway was answering like before.

17

Online

11.7k

Users

11.2k

Topics

113.1k

Posts