cfsworks / wavebird-reversing Goto Github PK
View Code? Open in Web Editor NEWReverse-engineering the WaveBird protocol for the betterment of mankind
Reverse-engineering the WaveBird protocol for the betterment of mankind
Hi! I just wanted to say thank you so much for your writeup, it's great to read and see an application closer to my interests on a topic I've only scratched the surface of.
I wanted to ask a couple of questions, mainly if it would be possible to take the information a step further and create a Wavebird receiver out of a 2.4GHz radio receiver (the NFR24L01, since the HackRF One is on the more expensive side) and some Arduino code to take the incoming signal and process it. The thought came from seeing Wavebirds on eBay go for so much as a complete kit since many people lose the receiver but not the controller.
However, I've been having trouble with getting them to operate on the same frequency. Do you have any experience working with something like this, and would you have any advice? Do you thing something like this is feasible?
Thanks again!
When I read that the FEC block code was a cyclic (31,21) code, I could not help but check the BCH code tables. n=2^(q-1), k=n-t*q just screams BCH with q=5. Try to factor out a primitive polynomial, and see if that thing really is a BCH code. And lo and behold, it is.
Then I figured I could have saved myself the effort by looking up the reference you posted on the POCSAG protocol. It does not say that it is BCH, but it does display the polynomial factored into irreducible polynomials, so there is that.
Anyway, all this to say that there is absolutely nothing POCSAG-specific about that code. It is your bog-standard binary BCH code, using the most common primitive polynomial that is used for a GF(2^5). And, as you outlined in your article, it differs in significant ways from the BCH code used in POCSAG - being both non-systematic and lacking that additional parity bit.
Just wanted to give you a heads up, since that also means that the algorithm to correct errors should be in reach. The BCH decoding algorithm is typically taught for systematic codes, but since there is nothing in the decoding algorithm about how codeword bits are mapped to payload bits, it should be trivial to adapt to the non-systematic code, especially considering that you had already figured out that you can get a sensible payload if you assume the naive method of non-systematic cyclic encoding.
In the "A closer look at the wave bird's line code" section of Ch5, there's a description which references reds/greens
These are probably our 0s and 1s. We can't really do much besides guess here, but let's arbitrarily call the green one '1' (because the plateau at the very end is high) and the red one '0'. If we're wrong we can come back and change it.
Are "green" and "red" supposed to refer to colors in either of those two graphics? the first one is blue and the second two are both green but nothing is red? I'm not really sure what "red" refers to. I may be totally misreading what this section is trying to convey (disclaimer: I'm a total beginner to all of this radio stuff and even ignoring the color stuff I'm sort of struggling to see the pattern between the blue and green graphs which probably isn't helping)
can you help clarify for me?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.