XMEGAs, nxpUSBlib and thesis. Oh my.

Usually I enjoy writing – or typing, as we all do in the modern world. I may not be the most poetic writer in the world, or have the most interesting things to say, but I do like emptying out my brain periodically and keeping a “public diary” of sorts up here for reflection and comments. However, this week I find myself distinctly turned off by the thought of having to write anything else – although I’m forcing myself to get this out of the way. Why do I suddenly hate writing? My thesis.

Two weeks ago I attended my first exam for this semester, which is also coincidentally my last. Ever. I feels great to say that; no more will I ever have to have sleepless nights followed by the phrase “can all candidates listen to the following announcements…” burned into my brain eight or nine times a year. It’s a hell of a milestone for me, as it marks the point very close to the end of my formal education. They say you learn 60% of your job in the first three months of actually working, but it’s taken five long, long, LONG years to get through the other 40%. I’m now just one thesis, and a few presentations away from getting that shiny diploma. I say “presentations” in the plural here for a reason: while I’m only formally required to give one presentation on my project to a panel of my professors for my formal grading, I’ve been asked and agreed to do two other talks on it for the faculty at the IB2COM conference and a special presentation night for the University. Gotta get those presentation skills up for Norway.

I’ve found that writing a thesis – even a small Undergraduate level one, which is a far cry from a real PHD level thesis – is actually somewhat akin to trying to tap dance on an angle grinder. It’s unpleasant, makes a mess of my bedroom and no one really wants to look at it. While I was actually designing, building and programming my final year project I had a head full of great ideas of what to write about. Now that the time has come to actually transfer all those ideas down onto 80-90 sheets of paper, I find the somewhat tedious. Working on a project on-and-off for 20 or so weeks means you really do get sick of it by the time you have to document the whole thing on what is essentially a document read by at most two people just once and discarded. So far I’ve all but three chapters done, with a week left on the clock, so right after this I’ll be back writing. I’ve started storing the output PDF in the SVN repository so those with a morbid curiosity can play along at home and point out errors as I work on it. One funny thing I’ve noticed; years ago, if I found a chapter of something I’ve written wrapping by a sentence or two onto a new page, I’d try to remove or re-word the chapter to get it to fit without the wrap. With my thesis (and it’s fuzzy word limits) I now find myself trying to add in extra paragraphs instead to justify the use of another sheet of paper.


In other less boring news: two big LUFA related announcements have happened in the last couple of weeks. Firstly, I have my first mostly-stock LUFA demo running on the XMEGA USB silicon. It enumerates and works under Windows, but fails when passed into a VM – so there’s still something wonky going on in the code that I’ll have to debug when I get the time. It’s turned out that forcing the completely new USB controller structure into the existing LUFA framework wasn’t as bad as I feared so far, but I have had to make a few concessions, and the code is rather sub-optimal due to the emulation of the endpoint FIFOs that is required. Since I plan on doing a re-design of the core before too long, this isn’t such an issue right now, as I’m just going for getting something working in the interim.

NXP USB Library Logo

The second announcement is a huge one, one that I’ve been keeping under my hat for months (and months, and months) now: NXP – yes, the gigantic silicon vendor NXP – has just released their own fork of LUFA for their ARM chips, called nxpUSBlib. Somewhat unimaginative name, but I guess it is a bit more descriptive than the one I chose for the project. I have to be really careful with my terminology here, as I’ve discovered that people are reading far more into what I’m writing nowadays than I expect – and be clear; this is based on the LUFA distribution, but not considered part of my project proper. I believe NXP’s aim is to keep in sync with my changes as much as possible, but due to my upcoming employment at another large silicon vendor, I thought it best to not have myself involved in the actual code in any way. LUFA will continue with my own ports and development, and NXP will follow at their own pace, and give their own level of support on their dedicated forums. Quite a feather in my cap to get my code adopted by such a gigantic corporation as a flagship project (I even got another indirect HackADay mention out of it).


That’s it for now, back to writing this accursed thesis.




Comments: 1

Leave a reply »


duuuuuude that is is legit


Leave a Reply

(will not be published)


Vital Stats

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

Latest Blog Posts