-
Notifications
You must be signed in to change notification settings - Fork 1
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
Checksum calculation and bitstream insights #1
Comments
Hi, I really appreciate your interest :) Basically I collected a bunch of signals and noticed that the checksum changes in a predictable way. For example:
From there it was really just trial and error. Hope this helps! |
Hello, I was working on this very same problem about a year ago but put it on the back burner when I just decided to design a complete new board that uses more robust motor control components and has wifi and BT along with my own software. However I did get to where you have so kindly shared except for the checksum. I started looking at it again when I saw your git repository and how you got the checksum - great work! One thing I determined that the raw encoding is simple NZRI-L However, the Arduino libraries deliver it inverted. Bit reversal was just a decision to send LSB first by the original software developers of the MaxxAir code. However I didn't know that until I experimented because I'd been asking myself the question since I began on this as to why the speed and temp values have some pattern but it's not clear what it was. Something I determined just recently though is that not only are the bits are all inverted as it comes from the IR Libraries. The second thing I determined is that not only are they inverted but msb-lsb the values are bit reversed so if you take your speed values and invert then reverse the bit order (in other words they are sent LSbit first they become 10 -100 and if you do the same to your temp values you get the temp in Fahrenheit which enables software not to have to have a translation table as your software shows. I'm guessing the status is also inverted-reversed. I'm wondering what that does to the checksum algorithm. Could be they simply calculate the checksum after they've inverted and reversed them but I doubt it because if one is generating data to send one would normally just use the data as it is to calculate the checksum and the fact that data ends up being inverted-reversed is just an artifact of how it's transmitted. Any thoughts? Cheers, |
Wow, thank you! Super interesting. Cheers, |
Julia, Have a wonderful vacation. I hope to hear from you when you return. Best regards- Ron |
Hi Ron, Thank you! I'm going to add the information about the bitstream being inverted and reversed to my code and the readme. I've noticed that if you take the part of the signal I've marked here in red: and XOR that with the state, temp, and speed you get the checksum! This suggests that that part of the signal is significant in some way. I wonder if you have any insights about that part, or any of the other bits that seem to always stay the same? |
Hello, This isn't an "issue" but couldn't find a way to email you. I was hoping to learn how you came up with the checksum calculation. I'm at [email protected] if you'd prefer an email response. Thx, Ron
The text was updated successfully, but these errors were encountered: