As promised, I wanted to give everyone an update.
Not a big one today, I’m still working on the software build system, which isn’t done. Getting stuck on a technical problem, I took a break from that and am working on firmware development.
I’m re-structuring all my code so I can solve these bugs with sleep, sticky buttons, and long presses. I’ve begun strengthening my algorithm to better support other remotes and so you don’t have to record keys twice with the RC6 protocol. I’ve also completely revamped things a bit so the firmware works differently. Previously, the firmware would set an interrupt back to the host on the event of a button being recorded. Anyone familiar with libusb, set_interrupt(), this function blocking. Which means that in order to write the host side software, I needed a separate thread to wait in set_interrupt. This isn’t good and made my API terrible, confusing, and easy to get wrong when I release the software.
Now, the flirc firmware uses a state machine for recording. The host PC can ask flirc the current ‘state’ in a polled mode, which means that I don’t need a separate thread.
This doesn’t mean much for customers other than it’s the beginning of me getting back into firmware development. For developers looking to integrate flirc into products, this actually means a lot.
I’ve also begun working on something ultra cool, and I’ve got some of that up and running. Hopefully I can make an announcement in a couple of weeks.
Until next week…