Home arrow Blog arrow Embedded
Embedded
Here come the PCBs... | Print |
Written by Akiba   
Tuesday, 28 October 2008

You can't see it much from the blog, but I've actually been pretty busy lately. I've been wanting to post some of the stuff I've been doing, but it's been hard to find the time. The PCBs that I made for the part time consulting job came back last week and I've been busy assembling them. Hand assembly is definitely not very fun. The first opportunity that I have an extra $30k lying around, I'm going to buy me a pick and place machine. Then my apartment is gonna be totally cool!

For soldering, a lot of my friends ask me how to hand solder QFPs and QFNs. I learned by hanging out with the technicians at my old jobs, but you can also read about it on tutorials on the internet. The Sparkfun one is especially good .One thing that people don't tell you is that its best to use the fat wave soldering tips. The place that I see that most people mess up on is that they use the skinny fine tips. Those ones have really poor heat conduction due to the small surface area, and in soldering, heat conduction is everything. I recommend the fat tips and water soluble flux. The fat tip has excellent heat conduction, and if you make a bridge, you just brush on some flux and use the fat tip to wick away the solder. The solder will travel to the tip due to the larger surface area. I would have included more detailed photos of soldering the QFN, but my camera doesn't do good closeups. If I can ever figure out how to do closeups with a standard digital camera, I'll be posting some soldering tutorials of my own.

Without further ado, here are the pix...

 
Chip Price Comparison Sites | Print |
Written by Akiba   
Thursday, 24 April 2008

For people that buy their own parts and build their own boards, you normally do price searches on digi-key which is dramatically overpriced. I've forgiven them for this because they're convenient and they cater to individuals/hobbyists so I figure their handling costs are higher. But lately, I've been liking the chip price search engines and thought I'd share two of them that I use a lot:

Findchips - Findchips does a search over many distributors (mostly US based) including the big ones for the hobbyists (Digi-Key, Jameco, Mouser...). They have a decent interface and show which distributors have the part you're looking for as well as the price. 

Octopart - I just found this one recently. It has a search engine and also a category tree that you can use to look for stuff that you might not know to search for.  It's still quite a new site and many of the categories are empty (similar to my site?). Also, Digi-Key is currently suing them to take their prices off of the site, although I don't know why they'd turn down extra traffic and sales. It's a good site though and when you do searches, they even search the semiconductor manufacturers for the price listings. You can test this out by doing a search for CC2420. Note: Manufacturers should help them build up their product category trees by listing their own products. It couldn't hurt sales and might even improve it. 

Anyways, I just thought I would share those with everyone because they're quite useful. 

 
Yet Another Article Claiming that C Programming is Dying | Print |
Written by Akiba   
Tuesday, 11 March 2008

Man, if I had a dollar for every article I read that claims C as a dying skill, I'd probably have around five dollars by now. Hmmm...that would include assembly language programming, I think. Well, here's another one, where C made the top 10 dying skills list at ComputerWorld . The article is a bit old, but C ranked just below cc:Mail programming in the list. With C programming as the second most popular language in the world ,  why is it that people think of C as a dying language?

That's an interesting question. I think it's probably because it's not really taught in universities anymore, since they are focusing on scripting/interpreted languages .  The reason behind that is that C is a difficult language to understand, especially for undergraduates. Having college students track down memory leaks and pointer problems is an easy way to make them cry, and kind of mean too. As Wikipedia put it: "...the safe, effective use of C requires more programmer skill, experience, effort, and attention to detail than is required for some other programming languages" . With the tech companies in the US shouting at politicians and universities that they aren't turning out enough computer science engineers, the schools seem to be watering down the curriculum to make sure that less people drop out. Is it bad? Is it good?

In general, I don't think its bad. Having more Java and Python programmers in the world can't hurt. You can do a lot of interesting things with those languages and make many useful applications; like say Google, where Python is one of the official languages. However I can say that it's bad for the future of the embedded industry. Anybody in the semiconductor or electrical engineering industry today knows that there is a shortage of embedded engineers . One of the main reasons for this shortage is that C is rarely taught anymore. Even C++ is slowly getting faded out from the curriculum at many schools. And in the embedded realm, C is king. 

At the semiconductor startups that I've worked at previously, software drivers are the main difference between being able to sell a chip or not. That translates into revenue for the company. Having software drivers available enabled a former startup company I worked at to generate $10M+ in sales off of one chip. Not having software drivers available also forced the company into bankruptcy. Well, that and a couple other factors. The reason why software couldn't be finished in time and fit the customer requirements was that its hard to find good embedded software engineers. These days, IC design is mostly stitching together different IP cores and running tests at the toplevel. But that level of design automation and reuse has not hit software yet so it's still largely a craftsman-based skill. Unfortunately, the available pool of craftsmen is shrinking because there are fewer places to learn the language, and nobody wants to give on-the-job training to a noob that, with one wrong pointer operation, can bring a whole system to its knees. 

So the main point of my post, which I seemingly forgot, is that C is still very much needed and anything but a dying language in this industry (embedded). And the benefit of knowing it often comes in the form of a six-figure salary; at least if you find the right company. Laughing

 
Obsolete Technical Skills | Print |
Written by Akiba   
Tuesday, 26 February 2008

Someone posted a link recently on Slashdot entitled "Obsolete Technical Skills", one of which was assembly language programming. Actually, I'd have to agree that its obsolete to program in assembly language, in every industry except embedded. Also obsolete is trying to fit your code into less than 64K of memory or trying to get your program to run on 2K RAM, in every industry except embedded. Why do we need to struggle with these issues? Because the universal design principle of embedded engineering is:

Design it to be as cheap as possible and still be functional

I like to call this the "Cheapskate Postulate" and this is universal in almost any manufacturing industry. This means that if you can use a $1 8-bit 8051 instead of $10 32-bit ARM, then you should do it. 

And what's the best way to reduce your code size and RAM usage, hence minimizing cost? And the best way to improve performance when you have to use a slower processor? Hint: NOP, JMP, JNE. 

 The second best way to reduce your code size and improve your performance is to write your software in C. I'm not sure if anyone's ever tried to write a Java OS, but I'm sure it'll be slow as shit.

Read more...