-
Notifications
You must be signed in to change notification settings - Fork 2.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added protocol for Dickert MAHS garage door remote control #3826
Conversation
Added Dickert MAHS protocol
Added Dickert MAHS protocol reference
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please remove file i/o, clean up commented out code and run code formatter (fbt format).
Looks like something wrong with encoder/decoder: replayed emulated signal record is not recognized. |
Un-draft when ready |
Will check. Did you use my provided sample file for testing the replaying? |
yes |
Ok, and what do I need to do exactly to continue the process once I pushed a fix? "Request review" again? |
Verifying my transmissions now with URH and comparing to a real handheld sender. It seems the very first transmission always starts with a 111000 sequence, all repeated transmissions do not have that and are perfectly 1:1 what I intend to send. Any idea where this preamble is coming from? Is this a setting in the CC1101 I need to change maybe? |
I've added a unit test for my encoder and "as expected" it fails. I presume it's due to the 111000 preamble, that I don´t know where this is coming from (see above). Could I kindly get some support from @skotopes to get rid of that preamble? |
The screenshot above was generated by recording with an RTL SDR and URH while doing Subghz->Saved->Select my sub file->Emulate->Keep button pressed for 1-2 seconds. |
Still not sure what's up with those preamble bytes - is it the data whitening feature of the cc1101 maybe?? - but I got the unit_tests to pass both the encode and decode tests with the provided test files. |
There are no cc1101 settings that you can modify from encoder/decoder. All data is formed on your side. |
All requested changes by hedger should now be implemented I think. Anything else I need to do before it can be merged? |
I'll do test, review and then merge. However it will be included in next release. |
@skotopes I did some more tests in order to understand where the 111000 prefix when the transmission starts is coming from. I used the holtek.sub from the unit_tests application and emulated this using the SubGhz app interactively. I chose this one, because it appears to be similar to my sub file/protocol when sending. For example in
... and much to my surprise I see the same preamble when recording the transmission with URH! So I still want to understand where this 111000 is coming from. Is this something that is always send at the beginning of a transmission in the SubGhz app? Can you (@skotopes) explain why this is happening? (And where in the code is this done? I searched high and low yesterday where exactly the I/O with the CC1101 is actually happening) Thank you very much for your time. |
@Skorpionm would you kindly? |
give me Read_Raw recording, original remote control 5+ presses for 3+ seconds. for all buttons and with pre-known switch positions. if you are sure that you are decoding the position of the switches correctly, then recording with different positions of the Dip switches is not necessary |
But during the decoding would the 111000 not hinder the proper decoding as the decoder expects a quite long period of silence before it will detect the "start bit"? Same as the "holtek" decoder who does basically the same thing? Wouldn´t that mean, the very first transmission is always not detected as this has 111000 whereas all the other's don´t have that? Or am I misunderstanding your explanation maybe? |
Could you kindly where in the code ind the middleware this injecting is done? |
Happy to improve it if you could kindly tell me how. Are the raw sub files for the unit tests supposed to only contain one perfect transmission without any noise around it? |
here. if the decoder is written correctly, it starts parsing only when it sees a long low, no matter when it happens |
for unit tests you need a simple recording of the broadcast, not perfectly processed, but just as it is on the air |
…vices#3826) * Added Dickert MAHS protocol * Update protocol_items.c * Added Dickert MAHS protocol reference * Update protocol_items.h * Removed logging and some defines * Reworked the send code to properly adhere to Dickert timings * Added subghz unit test for Dickert MAHS * Minor fix in encoding length * Added Dickert Decoder Test to subghz unit tests and set repeat=10 * SubGhz: cleanup dickert mahs code and documentation * SubGhz: correct type in for statement in dickert mahs Co-authored-by: あく <[email protected]>
What's new
Verification
Checklist (For Reviewer)
Here is an example file for this signal: MAHS_w_FacCode.sub.zip