Is a software hardware?

Anyone setting out to be an electrical engineer, will learn at one point what hardware and software are. Basically, one doesn’t even have to be an electrical engineer for this, most people are aware what these words mean.

With the passage of the years spent in the trade, it becomes all the more clear, as one gets an increasingly detailed view of these. From the perspective of the software, the distinction of firmware and application appears, including several other new notions among which the boundaries are not always clear, often dependent upon what the individual/company in question deals with. There is a general agreement on what hardware is, however. That’s that little green* mounted PCB, including all components and inscription, everything that’s needed. (* as we know “PCBs are green”; but it’s possible to manufacture PCBs in any colour the human mind can imagine)

A company contacted us the other day, wishing to order hardware development from us. Just the hardware, as they’d write the software for it. Accordingly, we have set the appropriate personnel to it, prepared the specifications together and talked over all requirements concerning the knowledge of the device.

We discussed what we’d like for the hardware to know right now, or be a subsequently easy-to-develop functionality. A schedule was prepared for the development, we also discussed together when the first prototype would be delivered, how long time our client would need for testing, etc.

It nearly looked like all necessary technical parts had been clarified, we were busy preparing the quotation, when I overheard a loose remark. In simple words, it went: “We know we still have time to discuss this while the development is going on, but we’d like by all means that the flash rate of the LED be adjustable from outside”. This got me thinking.

We don’t write the software, which should this be relevant for us? They power the LEDs in any way they please. Based on this, I started to talk with them, and I found out that in their understanding, the hardware naturally includes all necessary drivers and the firmware providing the basic functionality (“adjustable LED flashing”), and their software is only responsible for the adjustments.

This made us smile at first – yeah, this thing called hardware development does include a relatively large amount of software development, but then I gave it some thought.

Telephone application developers are software developers. Software are developed for our phones, which is a hardware from their perspective. Nevertheless, a host of software run on that phone, serving the new software. When I walk into the shop around the corner and buy myself a raspberry to have something water my plants at home, because I tend to forget it, I actually purchase a hardware to which I program a software, although a host of software components support me in doing so. Going further, when I select an IC while designing a PCB, well, there’s hardly anything more or a hardware, isn’t there? Still, in several cases a software is actually already running on the IC, responsible for the IC’s functionality (e.g. the software responsible for handling the digital outputs in case of a sensor).

So, are software hardware?

No, naturally, as these functionalities are implemented by the software in each case. The distinction did not change over time; as little children, we had learnt hardware is anything one can touch, software anything one can’t. In reality, it is not this simple though.

There are various approaches and what are hardware and software will look different from each and every perspective. When I order an IC, I purchase hardware, even though I get a software along with it. Following the same analogy, the attitude whereby they order a hardware development from us (e.g. a 3-phase motor drive circuit), then the software responsible for the control of the jumpers and protections is also part of the task, and this is considered self-explanatory, is also perfectly justifiable.

I have learnt my lesson; it must always be made vey clear with the client what it precisely expects to get in the framework of a particular task. We cannot afford to get stuck with the “hardware is anything one can touch, software is anything one can’t” distinction. It must be clarified what is understood by whom as the meanings of certain terms (and we haven’t even touched the interpretation of software, firmware, application, etc.).

Well then, are hardware software? I leave this to everyone’s own discretion to decide. In any case, it has never occurred to us that someone had intended to order a software development and the question of whether the 6 mil technology would be adequate for it emerged during specification.

Author:
István Vadász, product manager

Blog

The basics of safe manufacturing

The importance of using standards - with case studies

Read more …

Creating well-being at work

As the world has developed and welfare societies have emerged, attitudes to work have changed.

Read more …

Hardware design at ProDSP

Custom hardware and software development tasks mark the 15-year history of ProDSP all the way.

Read more …