As a person working in embedded industry, a typical question that I come across frequently from people outside the industry is what do embedded hardware engineers do. So I have written this post to address that question.
What do Embedded Hardware engineers do? The main duties of embedded hardware engineers include selection of components, designing PCBs, Designing and performing hardware tests, making custom testing tools, designing other related hardware needed like test benches and product casing, and a writing a little bit of production software.
Let’s take a closer look at the above mentioned activities in the coming sections and in the end let’s take a look at a typical week in the life of Embedded Hardware Engineers!
Let’s take a look at the activities mentioned above in this section.
Selection of Components
Whenever starting a new project, this is the first activity generally undertaken. First is taking the project requirements and selecting a Microcontroller that will fulfill the requirements. Then the required sensors are added to the list of components based on the requirements of a project. Once these main components are selected, the only thing left to do is add in the power supply circuitry, ports like USB and HDMI and Ethernet, and adding in the supporting circuitry and then the component list is ready!
Let’s take the example of a home weather station. Let’s say the requirements are
- Sensing the temperature, pressure, and humidity
- Sending the data to a display connected through an SPI interface
- Sending the same data to the network, through an Ethernet interface
- Able to log the data through the USB interface
- Able to power the device through a micro USB connector
The microcontroller is the main component so it is selected first. The microcontroller needs to have
- enough serial communication ports to get the sensor data and to send the collected data to the connected display, since these sensors typically use i2c or SPI to communicate with the host.
- enough memory, both RAM and flash memory to support the application since custom graphics tend to occupy more space.
- Inbuilt ethernet and USB support is preferred over adding extra ICs as it will reduce the complexity of the hardware, so the microcontroller needs to have these features.
A chip that supports the above requirements would be STM32F217VE from STMicroelectronics.
The components of the chip can be found in the image below ( image URL)
As you can see it has 3 SPIs and 2 I2Cs, it has Ethernet and USB and a 1MB flash memory so it satisfies all the requirements above. Once the microcontroller is selected, then sensors and displays are next.
For our application above the sensor needed can be BME280 chip from Bosch, it has all three sensors in a single package and it can communicate over both i2c and SPI which makes it suitable for use with our selected microcontroller.
Once the hardware is selected, development boards are usually used in conjunction with breadboards to make the circuit and test it. Later the circuit is then moved to PCBs. These development boards are also given to the Software team so that they can start working on it as PCB design and production usually takes some time.
The next step is designing PCBs. During this step, all the supporting circuitry like power supply are designed and passive components like capacitors, resistors, and inductors are added to the list. Guidelines for this circuitry are typically available from the manufacturer’s website and datasheets to make the job a little bit easier. The main challenge here is not the schematic design but the actual PCB design. (For readers who are not familiar with the word “schematic”, it’s just another way of saying circuit diagram!)
The PCB design is done with the help of PCB designing software like Eagle or KiCAD. Once PCB design is done, it is usually ordered to some PCB manufacturers. Depending on the manufacturer, it can take from a couple of days to a few weeks to produce it and deliver it to you. At this point, the components needed are also ordered online so that when PCB arrives, the components are ready to start the assembly process.
Assembling the board
This is where the famous tools like soldering stations, microscopes and multimeters are used. The components are soldered onto the PCB board with the help of the above-mentioned tools to produce the first version of the hardware. This task needs some good hand to eye coordination and some patience! You can get good at it with time and practice.
Designing and Performing hardware tests
At this point, before handing the board to the software team, some tests are performed using JTAG to test for open and short circuits on the board. Also usually the software engineers are also involved at this point and they would probably have some tests designed to make sure that the hardware functions as expected. Then once the tests are done, the board is ready to be handed out to the software team.
Designing other Related hardware needed for production and testing
Since the initial development boards are now ready and are handed to the software team, the next step is to make the changes necessary, based on the test results (and usually there will be some changes needed!) and the schematic and PCB designs are more refined at this point. For software testing, some more hardware will be needed to accompany the device like test benches and use case simulators. These are in-house tools and are not given to the end customers so the requirement of miniaturization is not present here and this makes the process of designing such tools easier.
Also in-order to mass-produce the device, some custom hardware may be needed and these are also designed and tested at this point in time. Some production software may also be necessary, which are also added in.
These are the usual activities involved in the hardware engineers’ job. In the next section, let’s take a look at the skills needed as a hardware engineer to accomplish the above activities.
An Embedded Hardware Engineer must have good knowledge about
- Fundamentals in Electronics
- Reading datasheets and Schematics
- Circuit design and analysis
- Microcontroller architectures
- Circuit debugging
- PCB designing
- Electrical engineering
- JTAG for production and testing
- Effective use of tools like Multimeters, Spectroscopes, and Oscilloscopes and
These are just the basics, depending on the product being designed other skills like networking knowledge and radio engineering can also be needed and learned.
A typical week
Let’s assume the week we are talking about comes right after giving making the first prototype board and giving it to the software team for testing. There is usually a meeting between the teams where they discuss the tests that need to be done on the prototype hardware.
Once it reaches the hands of the software team, there will usually be multiple complaints pouring in from them. Since the reliability of the hardware is yet to be established even software bugs were thought of to be hardware bugs and this makes the process of getting to the root of the bugs a bit harder.
Usually, it takes a couple of weeks for things to settle down and there will be constant discussions about the root of the bugs and tests will be designed to prove the theory so that the necessary corrections can be made. So this week after the first prototype is ready there will be meetings and testing and more meetings!
1. What do embedded software engineers do? Embedded software engineers develop software that runs on devices like microwave ovens, Xbox controllers, Blood pressure monitors, Bluetooth headphones, smartwatches, and other such devices that has custom hardware. I have written a separate article about this and you can check it out at this link
2. What do PCB design engineers do? These are specialists that design high-performance PCB boards with multiple layers to achieve miniaturization at the same time keeping the product functionality intact. There are lots of external factors that can affect the performance of PCBs like temperature and Electromagnetic Interference, the jobs of PCB designers is to find solutions to these problems and design PCBs that give high performance. If you are interested in it, you can take a look at this book and this book on amazon.
3. What do radio engineers do? These are specialists whose job is designing the RF parts of the product. They deal with resonant circuits, filter design, impedance matching, and RF amplification. If you are interested in it, you can take a look at this book on amazon
If you liked the post, feel free to share this post with your friends and colleagues!