Eight Bits Forever!A very long time ago I obtained my ham radio license. A teenager fascinated with electronics, I delighted in learning about RF, and in building all of the goodies required in a decent ham shack.
Receivers were pretty complex. I did manage to assemble a couple of Heathkit units but mostly relied on a World War II-surplus "RBC" radio. But Morse code transmitters were pretty simple -- a couple of tubes, a delightful 1000 volt power supply that substituted for my testosterone-induced craving for automotive horsepower, and a huge antenna strung in back of the house.
Ham radio was the field of tractable electronics in the '60s. It was reasonable to build your own gear. Many of us had little interest in actually communicating with anyone; instead we'd build one radio and almost immediately start planning the next.
Single sideband and FM changed the nature of the hobby. These communications modes were efficient and desirable, but so complex they killed off homebrew equipment. I still have a license, but have a purchased transceiver that remains mostly idle; a cell phone is more convenient. And my passion for making radios was killed by the extreme complexity of modern electronics widgets. Who has the time?
But small computers arrived just about the time that amateur radio went through its maturation phase. Suddenly we could build our own machines! Though they were far more intricate than the vacuum tube radios of yore, by buying stuff-it-yourself PCBs it was possible to create a really nice Z80-based computer for a reasonable price.
The embedded systems industry exploded at the same time. Those of us lucky enough to be working then designed the hardware and cranked the code. Even better, as working engineers, we had draftsmen and technicians to do the boring stuff. It was a period of sheer creative joy.
Rather like working in our basement labs we'd solo projects from inception to shipping. None of this pain-in-the butt team stuff! Nah, a couple of pages of schematics and five or ten thousand lines of assembly language lovingly squeezed into 4K of ROM. No project lasted more than 6 months, so we were always off on another quest, another adventure in creativity.
Now 32-bit CPUs are often used to get the huge address spaces needed to accommodate a million lines of code. The hardware group, further divided into ASIC, packaging, digital, and system engineers, never speaks to those creating the firmware. Twenty or more software folks work more or less together to build the code over the course of years.
I know the embedded world has finally grown up. We're routinely building products that would have defied imagination 20 years ago. Who would've thought a cell phone could do so much for so little in so diminutive a package? Thank engineers of all stripes for this cool invention.
Thirty-two-bit processors offer the performance needed for today's complex apps. Granted. But for the sheer fun of engineering it's hard to beat working with a small processor, say a PIC or a Rabbit or a 68HC11, on a project that has human scale. Something one or two people can build in months rather than years. When it's done you can point to it and proudly say "it's mine!"
What about you? Did you become an engineer for the joy of creation? And are you having fun?
Jack G. Ganssle is a lecturer and consultant on embedded development issues. He conducts seminars on embedded systems and helps companies with their embedded challenges. He founded two companies specializing in embedded systems. Contact him at firstname.lastname@example.org. His website is www.ganssle.com.
There is still a lot of place for creativity and engineering work if you look for low cost or/and low power solutions. Here you don't waste extra memory space bcause none is available, and you must put more functionality inside your small 8-bit RISC MCU. You have room for creativity, not for waste ! That's the dream of engineering.
I recall my first experience with "electronics" was around 1971. I was 14 and I wanted to have a few more speakers for my newly purchased portable tape player. So, I took one out of an old record player and hooked it up. Wouldn't work. I had no clue. I went to a friend that was a few years older and had taken a few electronics classes in high school and he quickly cured my problem by bypassing the transformer that was mounted on the speaker housing. I was amazed. I had no idea what a transformer was, but I was impressed.
That was it until I had about a year left of Army (Ft Bragg '76-'78) and realized that I gotta do something after I get out. Remembering that "transformer" experience, I took a few "CIE" correspondence courses for electronics and decided to enroll in the DeVry engineering program. I fell in love! I remember taking my first "BASIC" programming course and thinking that someday I would actually understand how this "computer" (an early Apple) worked. That really excited me. Taking my first digital electronics course and learning what a 555 timer was, I immediately drilled a hole in the dashboard of my car and mounted my very own, home-made windshield wiper delay circuit. Hey, my mom was impressed! Anyway, that was the start for me. I've built 10 or 15 basement projects starting with hand-drawn schematics and wire-wrap and soldering DIP parts, and moving on to ORCAD and board fab houses with a PACE soldering station that allows me to do some surface mount stuff at home. Now comes BGA!!! SHEESH! I just got over the SMT hump and they had to come up with BGA!!! What's a basement guy to do!!!???
So, to answer your question in "Eight Bits Forever"... I went to school because I was interested in learning the stuff, not just to get a job; so, although I never did become a "real" engineer, I have had 20 years of "joy" as you put it, growing up with an industry that has been filled with excitement.
Well, reading all this stuff has made me more confused about the fate of creativity and fun involved in embedded systems in the comming times Can anybody tell me how to shape up for the future so as to do away with this impending scenario where we could just end up working on mere API's?
Yes. I became an engineer for the joy of creation. No. I am not having fun.
My experience has shown me that there is no place in corporate America for creative, competent engineers. Only brown-nosers. Oh well, maybe in the next life I'll be a microbiologist.
Well, what you're talking about has to do with resources. Back in the late 70's and early 80's, 4K of ROM was big, expensive and slow. So you had to write the code well in order to get the product to market. And writing code well back then meant how much software could you cram into 4K of ROM. We didn't worry as much about documentation, standards, etc. You wrote it, debugged it and shipped it.
Another observation is that as projects get more complex, it becomes impossible for one person to understand the project in detail. In the B.M. days (Before Microsoft), most products that used embedded technology were small enough that a single person could understand the hardware, software, and system; and then plan how to design a product to use the strengths of the various components. Today, with the more complex processors and operations we demand of products, this ability has begun to fade - though I would make the argument that we may be taking a wrong path with the "team" approach. The more members on the team, the less effective communication becomes; you can reach a point where adding members actually reduces the work accomplished. Most of the management phiosophies state that you can only manage 5-7 people maximum. How does one manage a project with 30 or more engineers? Even if we have sub project teams, how does the head of the project really know whats goi! ng on in detail? And sometimes the details are very important to getting the product completed properly.
We now typically work in C, which is usually not efficient in the machine code sense - no compiler can generate the 'tightest' code for all situations, so a lot of memory and processor cycles are wasted. But theoetically, the development time is shorter because we work with a high level language. If we returned to assembly language, would we require less memory and CPU to get a job done? Would it take less time because the code and system were actually simpler? Who knows - no one ever develops the same system with two different approaches so it becomes difficult to judge.
But sometimes these days it seems as if we are using a 16 inch cannon to kill mice. It gets the job done, but it leaves a big hole in the ground...
Director, Applications Software Development
Global Payment Technologies, Inc.
I agreed that the fun of embedded software is that you could build your own system at home. My way is to buy some affordable evalution boards (e.g ARM) on which you could immediately experience its functionality and power. Then you could port your favorite RTOS on to it and add anything you like, such as a file system, IP stack...(those you learn from the ESP). The excitement is that you understand all the internals - from computer architecture, OS to protocols, instead of just the API.
However as MCU becomes more powerful and memory is in abundancy, the embedded scenario is rapidly changing too. 'Standard' platforms or 'standard' OS may become more popular. If one could accomplish his task with an application running on a PDA, who's going to build their dedicated hardware and firmware? When that days comes, most of us will be working on someone's API and the distinction between embedded and PC software will be blurrier. This is analogous to the situation when powerful chips replace discrete components.
Sr Firmware Engineer Gemstar Technology
As an aspiring engineer of 16 years of age, i have built several PIC projects. Up until reading this article, I have wanted to become an electronic engineer because I love the thrill of creation... but now, I can't help think that 20 or 30 years from now, my job will be unsatisfying. People want me to work in groups, to share work until the mere task of dividing the work is more difficult than the actual engineering. People want to make things more complex, less practical and above all infinitely smaller. For anything to have any real worth these days, it has to check your email, take pictures and make you a sandwich. I have plans for an entire 4-bit discrete transistor processor core in my desk, and people think I am insane for wanting to put so much work into something that can't get real-time sports scores anywhere in the northern hemisphere. And of course, it has to be smaller and smaller and consume less and less power. Where have all the DIPs gone? so, in response, I am no longer happy. I'm going to go buy BGA soldering tools and learn MIPS assembly now.
- Ethan Zakai
Sherman Oaks, CA