14

I've always loved to program, and I just recently became interested in electronics and programming microcontrollers. It is very fun, but I am wondering if I am learning something useful that can get a job in when I grow older. I am wondering whether Electrical Engineers use microcontrollers.

I know that jobs where you need to bring power to different parts of a house probably would not, but perhaps a job like this:

Your Responsibilities:

  • Design and develop new defibrillator products. Primary focus will be on new product design and current product support in the area of analog and digital design.
  • Model analog circuits using various simulation tools, such as PSPICE and MATLAB.
  • Build prototypes and prove design feasibility, functionality and performance.
  • Document all phases of the design including requirements, specifications, plans, reviews, test procedures, and test reports.
  • Support existing products. Investigate and determine root cause of product issues found in manufacturing and the field. Troubleshoot systems, PCBs, cables, and firmware. Use test equipment to analyze and resolve issues.
  • Identify, evaluate and recommend key suppliers based on electrical technical abilities, experience, history, and certifications.
  • Facilitate and maintain constant communications with key suppliers and internal stakeholders during project development.
  • Represent the EE development group as a technical team lead on projects. This would include providing technical solutions as well as project scheduling and project tracking.
  • Document the design for manufacturing (i.e. drawings, schematics, experiments, changes, test results, data, PCB layout, etc.).
  • Work with cross functional teams that include: Mechanical eng., Software eng, Clinical applications, Learning Products, Marketing, Support Engineering, Quality & Regulatory, and Supply Chain. Teams are experienced, but relatively small and members hold many development roles.

Would people who do this use Microcontrollers or something similar?

IronApe
  • 383
  • 1
  • 4
  • 7
  • Yes, we (they) do. And no, Arduino is *not* a microcontroller... For an EE at least. – Vladimir Cravero Aug 04 '14 at 15:37
  • 5
    @VladimirCravero - while an arduino is not a microcontroller, it is a microcontroller development board, *with or without* the offered libraries and IDE. – Chris Stratton Aug 04 '14 at 15:56
  • 1
    @Vladimir yes, you wouldn't use the Arduino board in production, but Arduino still has a microcontroller. It's not commonly used by EEs as far as I know, but it still technically has a MCU. – Anonymous Penguin Aug 04 '14 at 15:58
  • Yeah you both are right, it's just that I don't like it at all. – Vladimir Cravero Aug 04 '14 at 15:59
  • 3
    The Arduino name indicates the microcontroller has some sort of bootloader that allows it to be programmed from the computer. It isn't the libraries or the IDE that makes it an Arduino, its the bootloader. With the right atmel microcontroller, Arduino becomes a well-backed microcontroller platform – Funkyguy Aug 04 '14 at 16:03
  • 5
    @Vladimir Cravero. While an Arduino is not a microcontroller. I know EE's who use Arduino development boards, or cheap PIC boards as 'break out' boards for microcontrollers. Nano's especially provide quick, cheap, easy ways to do some jobs, for example to build a test system to ensure a 'real' product or component is working. – gbulmer Aug 04 '14 at 16:08
  • 5
    I second gbulmer's comment. I have used an arduino in a professional capacity. I've made test apparatuses with them to supervise long term / burn in testing. I've put them into professional looking aluminum cases and sent them to customer sites. I wasn't doing volume production with them, but when I needed something for my application and I needed fast I turned to an Arduino Mega. It worked like a champ. I didn't have to spin a PCB to meet my objectives. Furthermore, at low quantities it is cheaper to use a prefab board rather than spin your own uC board. – Nick Aug 04 '14 at 16:20
  • 1
    Also - look at all of the horse power you get using a gumstix of beagle bone. I have produced custom MSP430 and PIC boards that do a fraction of what those things can do for double the cost because my yields were low. I've suggested going to COTS boards in these applications since then and am still trying to fight that battle. – Nick Aug 04 '14 at 16:25
  • 1
    @Funkyguy -- lots of microcontroller and associated boards have bootloaders. I think its the whole environment, but *especially* the libraries, that makes something an Arduino. They can be a fine tool, but I wouldn't call it a resume skill for an EE. – Scott Seidman Aug 04 '14 at 16:37
  • 1
    @ScottSeidman I agree. I keep it on the resume right now only as a statement "Rapid prototyping with Raspberry Pi, Arduino, and LPCxpresso" but it isn't like a tie breaker skill. – Funkyguy Aug 04 '14 at 16:38
  • 4
    *General observation, not pointing fingers here...* Is it just me or does anyone else notice that if EEs spent all their time complaining about how poorly the Arduino software is developed (libraries, IDE, etc.) actually improving it, we'd have an industrial-class library that works on many MCUs and is more efficient and easier than writing your own code for some of the functions? Sure, there are a few things that are odd (`boolean` vs. `bool`), but I think that some of those things could be removed in a derivative... – Anonymous Penguin Aug 04 '14 at 18:20
  • 1
    @AnnonomusPenguin, `typedef boolean bool` done! Just typedef their typedef. But seriously, I agree as well. The Arduino can be a nice tool for very quick prototyping but could be improved in certain areas. I for one have used it while developing my own libraries for the AVR controllers to ensure the components I was using actually worked before spending too much time fiddling with faulty components. Despite opinion regarding the software implementation, it has been proven to work (with exceptions). – sherrellbc Aug 04 '14 at 18:58
  • 2
    @AnnonomusPenguin -- I think you're missing it. Experienced microcontroller programmers don't complain about the Arduino software, because they know how to program the board without using that software. There's no need for better tools, because fine tools that work very well are already out there, and let you program with very fine control over the unit. To top this off, these tools are not, in any way, more difficult to use than the Arduino libraries!! Well, to top it off even more, there are much more powerful controller dev boards available for much less money! – Scott Seidman Aug 04 '14 at 19:30
  • 1
    @ScottSeidman I've heard plenty of people complain about the Arduino platform and how horrible it is... and yes, there are "more professional" ways to do this (do you mean avrc?). However, you can't say that `digitalWrite()` isn't easier to learn and remember than writing to the register directly. Sure, if you need *exact* precision you'll want to skip over some of the bulkier Arduino libraries (mind you, with more features). However, if I'm going to do a simple toy that varies a motor speed when a button pressed, I don't think it's needed to have "full control" over the chip. – Anonymous Penguin Aug 04 '14 at 19:46
  • The question is about career guidance, it's not about EE design. The question is also opinion-based. This conversation in the comments is largely opinion-based. I'll keep my eye on this thread. – Nick Alexeev Aug 04 '14 at 21:50
  • I would think that the main reason this particular job listing doesn't call for microcontrollers is because it's for a medical, life-saving device - most microcontrollers out there simply aren't rated for that use case. – fluffy Aug 05 '14 at 04:32
  • Plenty of microcontrollers in plenty of medical devices. This particular position might involve working with some serious embedded people on one of those "cross platform" teams. – Scott Seidman Aug 05 '14 at 21:22
  • 1
    @fluffy: microcontrollers, even cheap ones, are often more reliable than custom designed alternatives. Microcontrollers are widespread in medical applications. – whatsisname Aug 06 '14 at 00:38
  • I'm perplexed (so what? :-) ) -> Why the discussion about Arduino's? I can see no mention of them in the question nor the prior / initial version of it nor in any comment attributed to the OP. | It looks as if it was introduced gratuitously by Vladimir and took off from there. No? – Russell McMahon Aug 06 '14 at 02:04
  • @RussellMcMahon Yes, this went on a tangent. But that's very common with questions that are: about microcontrollers, soft/general/opinion-based. – Nick Alexeev Aug 06 '14 at 02:14

10 Answers10

26

Q: Do Electrical Engineers Use Microcontrollers?

Yes. Absolutely. From simple toys to complex manufacturing processes and robots. It is not a skill that will hurt you to know. Learn as much about them as you can.

  • 1
    as with everything electrical engineering though, it depends on the specs of what you are doing. – Jeff Wurz Aug 04 '14 at 15:07
  • who knows maybe you'll create your own job in the process. Some exoskeletons and things are starting to use the Arduino over PICs. Also, it sharpens other skills like, robotics as mentioned and circuits and basic math skill for them. – Andrew Scott Evans Aug 04 '14 at 23:42
  • 2
    Agreed @JeffWurz. But having it in the toolbox for when the time arises is never a bad thing. Many people use a uC when an op amp would work even better! So during the design phase, you are 100% correct. There are many who "over-engineer" circuits. Bob Pease said "My favorite programming language is solder!" – Enemy Of the State Machine Aug 05 '14 at 01:44
  • 1
    @EnemyOftheStateMachine Solder can definitely be useful but, for myself, in a professional environment I always prefer a solution that builds on off-the-shelf parts. Usually for me this is a PLC rather a uC, but on rare occasion a uC is especially suited to the task. The primary benefit is ease of replacement - something that becomes obvious when your one-of-a-kind solder solution dies and you're forced to either spend a day doing board-level diagnostics or two days rebuilding a new one. If a uC or PLC dies you swap it out, reprogram, and resume making money immediately. – J... Aug 05 '14 at 12:16
12

This particular job may not, but the product would likely include a microcontroller and perhaps be controlled by a more powerful embedded system.

Note that it mentions 'troubleshooting' (but not writing) "firmware".

It's also possible this job description was written by someone (for example, an HR person) who doesn't really understand the engineering process.

In larger companies people tend to specialize, and you might have an analog person doing the high voltage design and control design, and a firmware person doing the low-level control firmware, and maybe an entire different team developing a GUI and touch panel controller. On a regulated safety-critical device like a defibrillator, you'd probably have a systems engineer defining the specifications to be met and the interfaces between the areas of responsibility.

Spehro Pefhany
  • 376,485
  • 21
  • 320
  • 842
8

For slower speed, low cost, smaller packages, higher reliability (because of fewer connections) and more easily maintained solutions microcontroller are often the goto solution. Even if you scan around on this web site you will see many questions where someone is being overly complex, some people automatically ask the poster "why don't you use a microcontroller) ?

placeholder
  • 29,982
  • 10
  • 63
  • 110
7

The definition of EE is somewhat flexible. If you have an EE degree from a major university, you may or may not have experience with programming and microcontrollers. Many EE programs do not require programming courses. This is a reason why a lot of engineers Re choosing Computer Engineering rather than EE because they straddle the fence between hardware design and software design.

Microcontrollers can enable lower cost and shorter design cycles for the same functionality for many designs. There are some things that must be done in the analog world, and some that must be done in the digital, but generally when it comes to microcontrollers the decision isn't whether it can be done, but whether it can be done better, cheaper, faster, or offer more features and performance than a design without a microcontroller.

An EE who is not familiar with and does not use microcontrollers will limit themselves, but if they have a great depth in the analog world, or prefer working in large teams where the micro stuff can be done by others, they will do very well where their expertise and focus is needed.

Adam Davis
  • 20,339
  • 7
  • 59
  • 95
  • My diploma says: "Bachelors of Electrical Engineering" and then on the next line "Computer Option". – Nick Aug 04 '14 at 16:29
5

Many EE's use microcontrollers, but there are many that don't, such as ones that specialize in analog design, RF engineering, power engineering etc.

But I would think that most EE's that do digital design these days also incorporate microcontrollers into their designs, just because it saves a lot of hardware in most cases, and makes the design more flexible. (Another way to minimize parts and keep a design easier to change is to use FPGAs, which requires a different type of programming called VHDL.) As one will see below, whether or not they get involved much with the programming of these mirocontrollers will depend upon the size of the company and its organization.

Ideally, a EE that has gotten a bachelors degree in EE has also taken a least a few programming courses. Most likely one or more of these have included C, which is used for the majority of embedded programming on microcontrollers. If not, it is relatively easy to pick up C on one's own, although if you never done any programming there will be some hurdles to get over.

Nevertheless, IMO it is is way easier for a EE to learn to program than for a programmer to learn to work with hardware. In the latter case, I wouldn't think most CS majors would to be able to learn digital or analog design on their own without any formal courses, but they should be able to learn to read schematics, use a multimeter and oscilloscope, and perhaps a logic analyzer.

As others have mentioned, if one knows they are interested into going into embedded programming and design, a degree in CE might be a good choice. I doubt you will get as much basic EE theory as one would get taking just a EE major, for example there would be less emphasis on analog design. When I got my BSEE, CE degrees didn't exist yet so I went ahead and got an MSCS degree at night while working my first job (and let the company pay for my tuition and books).

Surprisingly, working with embedded devices does involve quite a bit of analog circuitry, in order to interface with the outside world. Also one gets involved in power supply design. One of the products I was involved with had 9 different voltage rails (-6.1, 1.8, 2.5, 3.3, 3.6, 4.1, 5.0, 9.6 and 12), several of them for an LCD display.

As far as your hypothetical job description goes, in smaller companies like a start-up, as the lone engineer I have done all these roles for a single project -- wrote the spec, designed the circuit, both digital and analog, created a BOM (bill of materials), ordered parts from Digi-Key and Mouser, laid out the PCB with Eagle, ordered PCB's, debugged the hardware when it came back from the assembly house, wrote firmware in C to further test out the board, and then wrote the production firmware in C. I also wrote the necessary documentation for the FDA (this was a medical device), and provided support for the field. So in this case, it was very useful for me to have a background in both EE and CS.

But in many companies, these roles might be split up among several engineers -- most likely the hardware design would be done by one or more engineers, the PCB layout by another, and the programming and testing by a third group. In the latter case, as mentioned above, the programmer, in order to test out their firmware, would need to have a basic grounding in electronics. But the hardware designer, besides having to know how to incorporate the microcontroller into the design (which is not a trivial task -- most microcontroller datasheets run hundreds of pages long), may not get involved in the firmware at all. However at the beginning of the design, it is likely the hardware designer(s) and firmware programmer(s) would spend quite a bit of time together doing trade-offs that would minimize the hardware required while also making the design as easy for the programmers to deal with.

tcrosley
  • 47,708
  • 5
  • 97
  • 161
  • 2
    As a software guy works in industrial automation, one thing I've found is that EEs who understand software at some level are much easier to communicate with than those who operate purely in the realm of circuits. Likewise, I try to learn enough about basic electrical systems to at least diagnose simple wiring issues without having to call the EE. Engineering is very often an interdisciplinary effort, so there is a lot of value in having enough technical overlap to effectively discuss and cooperate when it comes time to integrate. – Dan Bryant Aug 05 '14 at 15:43
3

Yes!

Programming and interacting with microcontrollers can be one of the main responsibilities of an electrical engineer.

Microcontrollers represent somewhat of a middle ground for engineers and programmers. Creating proper firmware requires not only a good knowledge of programming, but also a working knowledge of the electronics that will be interacting with the program in the microcontroller.

The job description you posted doesn't seem to be about design, specifically. It sounds more like they would put you in a testing and troubleshooting position. This is still a task that an electrical engineer would do though.

Funkyguy
  • 3,558
  • 1
  • 21
  • 45
  • 3
    There are also plenty of EEs who never deal with a microcontroller whatsoever. It depends on the career path, job, industry, etc. – ACD Aug 04 '14 at 18:10
  • True, although this seems to be becoming increasingly rare. While I'm not the biggest fan of Arduino, many EEs who have been in the field for quite some time are picking it up since it is very simple to use. – Funkyguy Aug 04 '14 at 18:48
  • I've been working as an EE for about 5 years now and while I've seen microcontrollers at 3 different jobs they have never been one of my main responsibilities or even close. I also have friends that work as power engineers and never touch a PCB let alone a micro. I just wanted to point out that your second sentence was very misleading and that it can be a main responsibility for some, but isn't all inclusive. – ACD Aug 04 '14 at 19:00
  • 1
    @ACD I see your point. Its true, as a power supply designer, I don't ever touch microcontrollers, just in my spare time. I've edited the post to "can be" rather than just straight up is – Funkyguy Aug 04 '14 at 19:16
3

Yes EEs use microcontrollers.

The human race produces over 20,000,000,000/year[1], about 40x more than microprocessors. Someone is designing, testing, debugging, and enhancing systems and products using those MCUs; many are used in products designed by teams including EEs.

AFAICT a UK a trend is for EEs to become embedded software developers, or get training to be embedded software developers too. So you might be ahead of that EE trend anyway. You might want to consider majoring in embedded development if looking at college, or looking at jobs recruiting 'Embedded Software Developers', to get a better idea of what skills are useful.

At least one large, famous, UK company has said that there product development life-cycle would be improved by having more, even better, embedded software developers. I suspect that is true for many other companies around the world.

[1] IIRC they were a figure for 2011. I'll try to find my original source reference. It was very hard to get up-to-date numbers, and that was the most up-to-date I have found. I think that was a value from an industry survey by one of the market analysts. In that case, it may have been approximate, maybe derived by taking, say, the top 10 manufacturers, reading and interpreting their annual reports, and scaling for overall estimates of sector revenues.

Alternatively, it may have been derived by looking at products shipped in several sectors and extrapolating. For example, AFAIK, every mobile phone contains at least one MCU, digital cameras have one, music players have one, TVs have one, hand-help games have one, wireless routers have one, cars average 17 (IIRC), etc. so if there are a figure for product volumes in large sectors, then it might be 'triangulated' that way.

I believe ST claimed over 1B ARM MCU's, or 2B MCUs, and they aren't the biggest, and there are lots of big players, so I think the value is likely realistic now. I also believe I've seem some press releases for individual manufacturers claim over 1B parts/annum, so I think it is plausible.

gbulmer
  • 10,040
  • 20
  • 29
  • Do you have a source for that number? 20,000,000,000? – Funkyguy Aug 04 '14 at 16:18
  • @Funkyguy - I had a source, so please let me look around. I've moved my comment to my answer so that I can update it if I find the reference. – gbulmer Aug 04 '14 at 16:37
  • I am also interested in your source. My most recent [microcontroller volume numbers](http://en.wikipedia.org/wiki/Microcontroller#Volumes) are from 2006 sources. – davidcary May 05 '16 at 16:35
  • I see a 2011 Microchip press release say "[Microchip Technology Delivers 10 Billionth PIC Microcontroller](http://ww1.microchip.com/downloads/en/Market_Communication/October%202011%20Microsolutions.pdf) ... Microchip delivered this 10 billionth microcontroller... approximately 10 months after delivering its nine billionth." so that's over 1 B parts/year in 2011. So 20 B total in 2011 over all manufacturers is plausible. – davidcary May 05 '16 at 16:44
1

Yes, and Yes! I've done the job described by your posting (almost certainly not for the same client) and many similar ones. You better believe the defib had a microcomputer in it (pedants: I'm totally aware of the difference; I just don't give it much significance in this context).

I'm an SWE with one foot in EE; there just as many are EEs with a foot in SWE. Sit wherever on that spectrum it suits you. Any product smarter than a hammer (and maybe some of those!) have a programmable controller in them. It might be an MCU, a micro-computer, or a full-on desktop mother-board, depending on what / how much it needs to do. Some laboratory instruments like HPLCs that manage and reduce a lot of data and have to present a complex GUI to the user (each of which tasks can be very compute-intensive) would fall into the latter category. The portable defibrillator an amublance crew or emergency department uses would fall somewhere in the middle. A string of holiday lights might have the cheapest, smallest MCU, if it has any at all.

Your programming skills won't go to waste if that's how you want to spend your career. Do be aware, though, that while a full set of EE, SWE, and whatever xxxE skills will come in very handy, you will almost certainly specialize - or get boxed into :-( - one of those as primary.

I got an Engineering Management degree (because it was the closest (hint: not close!) fit to SWE I had available to me at the time) knowing full well I'd suck rocks at managing people, would have hated it and run screaming from any attempt to put me in a manager's chair. But! (and there's always 'but', isn't there?) a BS in EM came with at least a 101-level course in Physics, Mechanics, Chemistry, Math (a lot more than a 101, of course), Programming (a few of which I tutored or taught or just outright screwed around with), Electronics, Analog Computing, and more. I would have been well served with a couple of life sciences courses as well, had they been offered, though I'm not sure I or the university knew that then.

But, the bottom line - and, finally, my point - is that a broad spectrum education can take you a lot places a highly specialized one might not (and, yes, vice-versa). My 101-levels put me in a position to know what I didn't know but needed to, and to ask useful questions of the brilliant specialists whose work I and my co-workers were incorporating into ever smarter, and sometimes previously unimagined, products.

JRobert
  • 3,162
  • 13
  • 27
0

Usually learning a microcontroller is not enough and one microcontroller cannot suitable for all application (industrial,didactic,...).learning a microcontroller maybe need long time and its maybe the microcontroller do not generate after some years.however its just a skill and its not the main of EE.but this skill is necessary for every electronic engineer.

musefian
  • 139
  • 2
  • 12
0

Yes, embedded system (hardware, circuit and software to drive it) is standard in education courses at technical school and university levels.

Example: UTAustinX: UT.6.01x Embedded Systems - Course Info

Ricardo
  • 6,134
  • 19
  • 52
  • 85
EEd
  • 989
  • 4
  • 12