New side project, LUFA licensing

Today, after being inspired by this amazing AVR project, I’ve started to investigate VGA video production on an AVR. It’s already proving to be difficult, as the timings are very strict and cycles are tight, even on an 20MHz MEGA644. It’s good practise for programming down at the assembly level, although I can’t say I’m really relishing the fact.

Most likely in the end I’ll try to get the whole thing running through timers, with an interrupt firing to run the video generation code. That will result in poor performance (there are only a few hundred idle cycles with which to work with) but will simplify the code a bunch and allow me to make C bindings. I’m sure people will like to have an easy-to-use VGA library, even if they have to put it in a seperate AVR to maintain framerates and UI responsiveness. Plus, it’s damn cool.

My design will be a simple state machine, with the state being stored in a GPIOR register (General Purpose register – great for small values which need to be retained and access quickly) and the ISR (written in assembly) being fired by a timer in CTC mode, with each state adjusting the CTC value appropriately. I estimate it will leave only a few thousand cycles per second free, but that should be enough for simple programs — time will tell. First, I need to get my monitor to display *something*, as all my setup currently does is product a fuzzy white line.

The next LUFA release is almost upon us! Thanks to everyone who has been submitting bug reports over the last week. This next release is sure to blow the socks off everyone who uses it so far, as a huge number of bugs have been identified and fixed. To be honest, I can’t think of too much more that needs doing, which is why I’m branching out again with the above VGA project.

Some companies have approached me, wanting to licence LUFA under alternative conditions to the existing license. While the MIT license permits use of the code in any commerical or non-commercial application, it does require that the author and project be disclosed in the product documentation. Not all companies want to do this however, and are willing to pay for the privellage. Actually, that’s not quite true – only one Sweedish company has, but no doubt it’s an issue which will crop up again in the future. As such, I am willing to wave the attribution clause of the license for entities, for a one-time US$1500 charge. While that might seem a little costly, when spread out over a very large number of units, the cost-per-unit becomes very small.

The above does not affect anyone else; if you want to use LUFA in a commercial setting you are still free to do so, but bound by the MIT license conditions. Hopefully this will make more companies adopt LUFA for their own products, and potentially make myself a little money at the same time.

Remember all computer-bound geeks; it’s Valentine’s Day soon! It’s a double-whammy for me, as I happen to have been born on Valentine’s day (girlfriend loves the idea, parents joke that I’ve ruined their Valentine’s Day dinner for the last 20 years). Going to hit the big two-oh this year – a scary prospect!

 

Comments

No comments so far.

Leave a Reply

 
(will not be published)
 
 
Comment
 
 

 

Vital Stats

  • 35 Years Old
  • Australian
  • Lover of embedded systems
  • Firmware engineer
  • Self-Proclaimed Geek

Latest Blog Posts

RSS