{"id":342,"date":"2012-11-05T08:52:53","date_gmt":"2012-11-05T16:52:53","guid":{"rendered":"http:\/\/blog.flirc.tv\/?p=342"},"modified":"2022-10-07T18:08:13","modified_gmt":"2022-10-07T18:08:13","slug":"software-progress","status":"publish","type":"post","link":"https:\/\/blog.flirc.tv\/index.php\/2012\/11\/05\/software-progress\/","title":{"rendered":"Software Progress"},"content":{"rendered":"<p>As promised, I wanted to give everyone an update.<\/p>\n<p>Not a big one today, I&#8217;m still working on the software build system, which isn&#8217;t done. Getting stuck on a technical problem, I took a break from that and am working on firmware development.<\/p>\n<p>I&#8217;m re-structuring all my code so I can solve these bugs with sleep, sticky buttons, and long presses. I&#8217;ve begun strengthening my algorithm to better support other remotes and so you don&#8217;t have to record keys twice with the RC6 protocol. I&#8217;ve also completely revamped things a bit so the firmware works differently. Previously, the firmware would set an interrupt \u00a0back 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&#8217;t good and made my API terrible, confusing, and easy to get wrong when I release the software.<\/p>\n<p>Now, the flirc firmware uses a state machine for recording. The host PC can ask flirc the current &#8216;state&#8217; in a polled mode, which means that I don&#8217;t need a separate thread.<\/p>\n<p>This doesn&#8217;t mean much for customers other than it&#8217;s the beginning of me getting back into firmware development. For developers looking to integrate flirc into products, this actually means a lot.<\/p>\n<p>I&#8217;ve also begun working on something ultra cool, and I&#8217;ve got some of that up and running. Hopefully I can make an announcement in a couple of weeks.<\/p>\n<p>Until next week&#8230;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As promised, I wanted to give everyone an update. Not a big one today, I&#8217;m still working on the software build system, which isn&#8217;t done. Getting stuck on a technical problem, I took a break from that and am working on firmware development. I&#8217;m re-structuring all my code so I can solve these bugs with [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[15,6,18,11],"tags":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/ppp9g-5w","_links":{"self":[{"href":"https:\/\/blog.flirc.tv\/index.php\/wp-json\/wp\/v2\/posts\/342"}],"collection":[{"href":"https:\/\/blog.flirc.tv\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.flirc.tv\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.flirc.tv\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.flirc.tv\/index.php\/wp-json\/wp\/v2\/comments?post=342"}],"version-history":[{"count":1,"href":"https:\/\/blog.flirc.tv\/index.php\/wp-json\/wp\/v2\/posts\/342\/revisions"}],"predecessor-version":[{"id":1025,"href":"https:\/\/blog.flirc.tv\/index.php\/wp-json\/wp\/v2\/posts\/342\/revisions\/1025"}],"wp:attachment":[{"href":"https:\/\/blog.flirc.tv\/index.php\/wp-json\/wp\/v2\/media?parent=342"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.flirc.tv\/index.php\/wp-json\/wp\/v2\/categories?post=342"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.flirc.tv\/index.php\/wp-json\/wp\/v2\/tags?post=342"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}