Why Software, Hardware, and Firmware Collaboration is Critical

February 15, 2022

When it comes to hardware development, there are a lot of cooks in the kitchen. You’ve got your mechanical engineers, electrical engineers, software and firmware engineers, suppliers, manufacturers, all of their relevant stakeholders, and more… 

There’s just no getting around it — hardware is collaborative in nature. And we’re seeing more software-enabled hardware products than ever before. It’s become necessary for mechanical and electrical engineers to work closely with software and firmware engineers on a daily basis, which is why Bild has added programming language support to our already extensive offering of MCAD and ECAD file formats! 

We currently support .c, .h, .ino, .txt, .cpp, .vhdl files, and more are on the way. With support for these types of files, Bild is a homebase for not only MechEs and EEs but also other types of engineers and beyond.

What is software, hardware, and firmware?

Essentially firmware is software that programmatically manages hardware functions. It’s a blend of electronics and software that’s present in almost any piece of electronics, including watches, phone speakers, laptops, smart doorbells, and any WiFi and Bluetooth-connected device.

During the development of a hardware product: the mechanical engineer creates the structural design of that product, the electrical engineer creates the hooks for that product to become smart, and the firmware engineer creates the brains of the product. For example, the firmware engineering team tackles questions like:

  • How do you emit radio waves to connect this device to your wifi? 
  • How do you store data?
  • How do you share passwords? 

While electrical, mechanical, and firmware engineers focus on different areas of the product, each team’s work can affect the others. There is a dependency between firmware and hardware, especially on the electrical engineering side. This is where development boards (dev boards) come into play. A development board is a piece of hardware with the correct integrated circuit (IC) that the firmware will live on. The dev board feels like the real product, but it isn’t in the final form factor, since mechanical engineers are still iterating on the design.

The dependency lies primarily on the inputs of the board. Firmware engineers need to know answers to many questions about the inputs of an IC.

Some examples include:

  • Where are the inputs?
  • What do the inputs look like?
  • What does the data look like — analog or digital?
  • How is it getting data?
  • How is it sending data? Which area of the chip does it send data to?

Answers to these questions change as hardware engineers, especially electrical engineers, iterate on designs. Changes made by hardware engineers are reflected onto dev boards for firmware engineers. With a good understanding of the design, firmware engineers can then work on their projects!

Why is software, hardware, and firmware collaboration important?

In the traditional engineering workflow, MechEs, EEs, software engineers, and firmware engineers work independently of each other. When information from another team is needed, different stakeholders, like product managers, need to get involved. 

Bild’s mission is to move away from this siloed work stream towards one where updates are shared in real time, bringing transparency and accessibility to hardware development. Now, when a team needs information from another, insights are immediately available. There’s no longer a need for a middle man, which only served to slow down and complicate the line of communication. 

As boards change, Bild allows firmware engineers to get instant access to updates made by their hardware peers. By existing on the same platform, the latest versions of firmware and hardware can be released together, reducing the risk of chips being flashed incorrectly. Having a single source of truth simplifies the entire process — teams no longer have to juggle multiple data streams. Similarly, the context around changes can easily be surfaced between assets. Engineers can see how changes on the board led to changes in the firmware. 

Outside of firmware, software engineers writing factory inline test commands and codes also benefit from quick, real-time updates on hardware changes. Lags and gaps in communication lead to test equipment failing or going out of spec, because software engineers were unable to write new testing code to account for changes in materials or tolerances.  

More efficient collaboration between software, firmware, and hardware teams means that hardware design becomes faster and simpler. 

How does this collaboration happen? 

Through our GitHub and GitLab integrations! We know that at the end of the day, firmware engineers write code, and they love the Git platform. With our integrations on Bild, firmware engineers can live in the same repository that they've always been in, while building a bridge between their work and hardware. For the first time ever, text-based software that has been traditionally siloed on Git can live alongside binary visual models that have been traditionally siloed on PDM tools. By supporting software programming languages, Bild enables a more streamlined and centralized workflow for all engineers.