Embedded Engineers: Roles & Responsibilities

  • Context: Engineering 
  • Thread starter Thread starter vead
  • Start date Start date
  • Tags Tags
    Engineer
Click For Summary

Discussion Overview

The discussion revolves around the roles and responsibilities of various engineering positions related to embedded systems, including embedded system engineers, embedded software engineers, embedded firmware engineers, and test engineers. The scope includes conceptual clarifications and technical explanations of each role within the context of embedded systems.

Discussion Character

  • Technical explanation
  • Conceptual clarification
  • Debate/contested

Main Points Raised

  • Some participants describe the role of an embedded systems engineer as ensuring the embedded computer interacts with and controls surrounding hardware.
  • Others explain that embedded software engineers develop and maintain application software for embedded systems, often requiring specialized methods for software loading.
  • It is noted that embedded firmware engineers manage the firmware, including updating and flashing ROMs or other storage media.
  • Test engineers are said to conduct various tests on hardware and software, including functional and system tests, to ensure proper operation.
  • One participant emphasizes the importance of including features like a watchdog timer in embedded systems to aid in troubleshooting failures.
  • Another participant highlights the complexity of debugging in embedded systems, noting that it often requires collaboration between hardware and software engineers.
  • Some contributions suggest that the field of embedded software engineering is challenging and often requires a background in electrical engineering.
  • There is a distinction made between test engineers who write automated test scripts and those who merely run tests, with implications about the level of expertise required.
  • One participant mentions that firmware engineers may work with hardware description languages for designing FPGAs, indicating a blend of software and hardware engineering skills.

Areas of Agreement / Disagreement

Participants express various perspectives on the roles of embedded engineers, with some agreement on the general responsibilities but differing views on the complexity and educational requirements of each role. The discussion remains unresolved regarding the exact distinctions and overlaps between these roles.

Contextual Notes

Some statements reflect assumptions about the definitions of roles and the nature of embedded systems, which may not be universally accepted. The discussion also highlights the challenges of debugging in embedded systems without reaching a consensus on the best practices.

vead
Messages
92
Reaction score
0
what is role in company for following engineer
1 Embedded system engineer
2embedded software engineer
3 embedded firmware engineer
4 test engineer
 
Physics news on Phys.org
An embedded system:

http://en.wikipedia.org/wiki/Embedded_system

so an embedded systems engineer I think would make sure the embedded computer works with, monitors or controls the surrounding hardware.

an embedded software engineer would develop and maintain the application software running on the embedded computer. He/she might have to specially load the software onto the computer thru some special means like replacing a ROM or some controlled write to update the EPROM or SDCARD ...

an embedded firmware engineer would handle the firmware of the computer system ROM, PROM or EPROM or SD card. He / she may have to update and flash the ROM with a new OS.

a test engineer would run hardware and software tests on the embedded computer and its hardware. The tests would be things like
- functional tests, I inject an error and an LED lights up and do this for each LED, each sensor, each supported function...
- system tests, I use the device like a user doing common user tasks and see how well it works do the right LEDs lightup do the right motors activate... I use it with other devices that its supposed to work with like on a distributed network or in the context of a bigger system

A simple example would be a GPS system that works standalone or in a car. The software guy develops the software for it, the firmware guy maintains the embedded linux kernel, the systems engineer designs it to work within a car. The test engineer tests it standalone and then within the car
 
Hopefully he will have the kindness toward his end user to include a watchdog timer and make the embedded system leave a visual clue as to why it hangs up or stops.

This poor guy has a genuine problem:
https://www.physicsforums.com/showthread.php?t=770276
Dear All,

plant is running droop mode not connected with grid
fuel type HFO heavy furnace oil engines, this engine is software control,
during operation communication failure appeared and all parameters held (hang) emergency stop does not work.
this engine one accident of over speed alternator rotor poles broken

I include a few LED's for heartbeat and program status to tell what it's waiting on, and a register with user accessible error message.
 
As was said above, an embedded software engineer writes software for embedded systems. This can loosely be defined as any system that is not a normal ready to go computer with already debugged hardware. These engineers work with the hardware engineers to debugged both the hardware and software simultaneously. It is this interplay of hardware and software debugging that characterizes embedded software. As you can imagine this debug is FAR more difficult than debugging on a system with debugged hardware.

It is a rather difficult field and its practitioners are considered to be rather elite. It is common for embedded software engineers to be educated as electrical engineers originally. If you don't have an electrical engineering background, then you at least need to have extensive knowledge of hardware. It is a difficult field to break into, but it is worth it if you can because it pays considerably more than just straight software.
 
Typically, test engineers write scripts in MatLab or some other scripting language for automated tests and then runs them to test computer or embedded systems. Sometimes this refers to people who just run the automated tests, but these are not really engineers but just techs. This is a much less demanding field than writing embedded software and most have degrees in computer science or math. Still important though.
 
Last edited:
The firmware engineer typically writes software in some hardware description language to design and configure Field Programmable Gate Arrays (FPGAs). It is usually considered to be a form of hardware engineer and almost all people who do this have degrees in electrical engineering. Sometimes engineers who write software like the PC BIOS are considered to be firmware engineers, but they are more correctly considered to be embedded software engineers.
 

Similar threads

  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 3 ·
Replies
3
Views
4K
  • · Replies 11 ·
Replies
11
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 2 ·
Replies
2
Views
4K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 9 ·
Replies
9
Views
3K
  • · Replies 6 ·
Replies
6
Views
4K
  • · Replies 21 ·
Replies
21
Views
5K