h1

Same product, different wrapping?

August 13, 2009

A couple of days ago I decided to change the theme for my blog…I tried a few templates and then I decided I should make a new template…being the graphically challenged person that I am I opened up my trusty MS paint, and got to work. The result, was, for my standards: amazing.

I kept thinking about this cycle of redefinition everyone lives. We are essentially the same, but with more experience, different body (some of us tend to get heavier, some of us try desperately to get thinner). The technology industry also works in a similar fashion. I thought of semiconductor product lines, and they do the same thing. New microprocessors are released with just a little tweak different from the previous one, then another tweak and then another, until suddenly a new core is released. Then that core gets new tweaks, and eventually a new core ends up having the same features as an old core had, but with more power, optimized peripherals (more experience), new packaging technology (different body), but it essentially does the same. It’s an LCD controller, a mobile processor, an RF IC. It just does the same thing but it’s better at it, pretty much like a person throughout his/her lifetime. Until we get obsolete and we stop adding new features and wait for the new cooler core to be released…sorry, for our children to be born…mmm…younger coworker to take our place…mmm…the possibilities seem endless…aaanyway, just a thought.

h1

More SD Card and USB fun!!!

August 11, 2009

At last my webcast on the SD Card Reader Reference Design for Freescale has been published.

Feel free to enjoy ;)

http://www.freescale.com/webapp/sps/site/overview.jsp?code=SDCARDREADER_TRAINING&fsrch=1

h1

Top 10 most terrible things to do in embedded systems

July 26, 2009

I was thinking about how much I enjoy working in the embedded systems world and I thought that today I should do some counterexamples, I asked myself, what are the worst, most boring, most terrifying or simply annoying things that we embedded developers sometimes have to do, so here it is, the top 10 most terrible things (according to me) in embedded systems:

10. Finding a terrible bug that needs to be solved hours before the release has to be deployed: testing teams can be very sneaky!

9. Code merge screw-ups in the code management system of your choice: you’ve done your part, submitted your code changes to the code database, your getting ready to leave and then someone calls you and asks why your part is not working. Someone screwed up with the code management system and now you have to do a manual merge. Extra points if everyone else has left except you and your boss.

8. Documenting after the project has been finished: is there even a point to that?

7. Having to debug or add new features to old, forgotten and/or undocumented code: it’s one of my worst nightmares. Extra points if the code is in assembly, if it’s an old and obscure processor or if the development system won’t run on a current computer (I’ve seen all three happen at the same time, good times).

6. Patching hardware screw-ups with software: I’ve seen too many of these, hardware has electrical problems and there is no chance of redesigning it, so you have to come up with some obscure algorithm that defies all logic to fix it.

5. Patching bugs with other bugs: you find out something is wrong in your code, you devise a “clever” way to solve the problem. Three months later a problem is found with that code, your solution turns out to have caused a better hidden and possibly more devastating bug than the original one. You sob quietly in the bathroom*.

4. Filling up weeks of forgotten or denied administrative overhead (weekly reports, project management tasks, expense reports, etc.): I have nothing against proper project management…expect when I have to spend a couple of days catching up with it.

3. Useless meetings: I think Dilbert comics pretty much cover this subject.

2. Explaining bugs or screw-ups to a customer on-site: you or someone in your team screwed up and the customer lost, money, time or something worse…you get the pleasure of explaining to the customer and very possibly an angry mob of employees what happened. Extra points if you get to do it with you boss, boss’s boss, CEO, etc. watching.

And the number 1 most terrible thing to do in embedded systems:

1. Get a call at 11 p.m. from your boss requesting (or shouting) for your presence immediately because a major problem occured (in my case, while on a date)**

Who can relate to these? Have I missed something that’s worse?

* Not based on a personal or actual experience.

** Based on personal experience.

h1

The story of the week: Bye bye control

July 21, 2009

When I was studying electronics at my university there were 3 possible minors you could choose from: manufacturing, communications and control. I chose control as it was the one that most appealed to me, I also figured it was where I would get the most embedded development experience, my university hadn’t figured out a program specific to embedded design by then. I loved it, it was so much fun to get to see things moving, to get to influence physical variables I could experience. I have always been a fan of experience, and there was a peculiar tradeoff in that focus, I ignored theory. I loved programming, building circuits, calibrating them to get them to work better, but I never spent that much amount of time learning the math behind it all. Needless to say, I did study it, just not with so much passion as I did debugging my code or connecting things to other things. By the time I finished college I had been working as a technician for a company called Pegasus Control for about two years, when I finished they offered a position as a development engineer and I took it. Ironically enough, I didn’t again do much actual control. The systems we made did have some control features, but not the type where you have to use Matlab and spend hours figuring out coeficients, it was mostly measurement, and I enjoyed it all, but the little theory I had left got hidden in some corner of my brain.

In my current position I am now developing an actual motor control application and having to undig all those memories. I can handle all the programming, I understand the system concept, the inputs, outputs, I have basically built the whole system, but now I need to program some actual math into the thing. I’ve been reading application notes, books, etc. I have also found that there is enough code out there for me to reuse and simply ignore I don’t fully understand the math and now I’m wondering, should I? When I was learning programing I learned about this great concept called reusability, then, in the work place, reusability was the way to go, save time and get the product out the door as soon as possible. I then jumped from reusing to forcing others to reuse: “use this code, it works, don’t worry about it”. Now I’m back in the position where I can choose to reuse ignoring how it works, and I’m bothered byt it. I wasn’t bothered when my boss was breathing down my neck expecting everything to be before schedule (that is, when there actually was a schedule), but now I am, I know if I paste that function there it’ll work, it was written by a fellow who knows more about tha subject than me, and if I could dig out all these memories I have of my control theory, instead of painfully reading about them all again, I could get this thing done tomorrow and move on to the next project. I wish I had been a little more academic back then.

About a week ago a ran into my control professor from college, a really great teacher who has been teaching at my university for a lot of years. He is a control PHD. He was the one that motivated me to learn VHDL almost entirely by myself one semester just to see if I could implement a control system in an FPGA and thanks to whom I almost broke a laboratory bench trying to the position of control a 90 volt DC motor (I got some cool bruises as well). I told him that now I am working with real control and that I was really having fun with it and that if he was interested I could go to his class and talk to the students about the experience or maybe even colaborate on getting to do an actual motor control project (or some part of it) as interns. Turns out the university dropped the control program, now they are just getting one introductory control subject as part of the basic curriculum and that is it. I was sad to know this, I think he also is bummed out about it. Now they are focusing on teaching the students the immediate skills they need to actually get a job. This makes a lot of practical sense, I am quite sure that most of the skills I use for my day to day job were learned being an intern/technician and then in my first years as an engineer. But I learned them, it was just a lot of work. I wonder if I could have learned control that way, at this moment I am able to study back all this theory, because I took some subjects that covered all that material, now I am just remembering. Technology moves at such a fast pace I am concerned that adjusting college plans to the more recent trends will start to take the focus out of the basic theory that is behind all that we do. Maybe in the near future, there will be so much knowledge just on the embedded software world that a new college program will have to be made. Maybe some universities are already doing it. Maybe in time, theory will be only thought in higher degree programs, maybe only PHDs will know how to design transistor circuits in the future. Maybe I’m just exagerating…I usually am. What do you think?

h1

Engineer, marketer, manager?

July 16, 2009

So I’m at a point in my professional life that I start to wonder about the future, specifically about what’s next. I’ve been working as an embedded software engineer for 5 and something years and the road has been full of fun, accomplishments, deceptions, bugs, late nights and in general terms I’ve liked it all. I know that I don’t know a lot, according to what I have planned for myself I’ve yet to come up with a great engineering idea that could be patented, I also would like to learn more about motor control, I also would like to understand RTOS and software architectures better, and, being a curious fellow, a lot of other things. But I also think that it would be great fun to get to lead a team of engineers. I’ve done it before (my previous job) and it was great fun, but I also started to miss the technical side of things, and once I got to my current job I really started to have fun again with the technical stuff. There’s also this other side of me that aches to be able to have a deeper impact on the definition of future products my company makes, something more related to technical marketing. In all these possibilities I allow my thoughts dwell sometimes. I know I cannot just become a marketer or a manager because I want to, there would need to be a job opening of some sort, I would need to be considered for that job, etc., and given the state of the economy, that may not happen for some time, still, I know an opportunity may eventually come up in some of those realms, maybe switch to another technical position, maybe a more manager type or marketer type of position.

There are other factors, what about the salary? As a manager I would expect to earn more, and that is also something to consider, how about working hours and how that would affect my personal life, would I be willing to put in what is needed for a position of more responibility? I’ve done it before, and I know I can do it, but, do I want to? What about becoming less technical, that also raises the question, what if the economy takes another downturn further down the road and less managers or marketers are needed, would I be eligible for a technical position again? Would I get another chance? These are thoughts that come to me at my almost 28 years of life. I still havent an answer, ultimately I believe that good opportunities, in any part of life are usually worth taking the risk, not to mention the fact that these things are what make life interesting. What do you think? Are you also thinking about these issues? Have you already been through this? Comment away!

One last note, the Virtual Freescale Technology Forum is over this week, but the recordings for the sessions will still be available after this week, you should definitely take a look.

h1

Jon Titus reviews Beyond Bits IV

July 9, 2009

Beyond Bits IV from Freescale is gaining momentum, and now Jon Titus, well known embedded blogger has posted an excellent review on his blog: Beyond Bits IV review.

If you haven’t read it yet, what are you waiting for? Get your hands on Beyond Bits now!

h1

Beyond bits IV is here!

July 8, 2009

Beyond bits is a yearly publication made by Freescale based on embedded applications, with a special focus on a specific market or type of application. The latest publication is here and is filled with health and safety application goodness.

Check it out: Beyond Bits IV