Hardware: It’s Made Of Software!

We had the opportunity to add a new feature to our lineup: the FLOSS Weekly podcast. It’s a very long running series that covers the goings on in the free, libre, and open-source software world. It’s been co-hosted by our own [Jonathan Bennett] for quite a while now, and when This Week in Tech announced that they wanted to cancel it, [Jonathan] asked if he could keep it running over here at Hackaday.

Hackaday is hardware, though. Why would we be hosting a podcast on open software? It’s no secret that a bunch of us are open-source software fans in general here at Hackaday, but take a quick inventory of the various open projects that you use to make and hack your hardware. We use open-source compilers, libraries, and flashing tools to handle the firmware we write on open-source text editors. Heck, half of the time we even program microcontrollers in the open-source MicroPython. We design PCBs in the open-source KiCAD, do CAD/CAM in FreeCAD, and don’t even get me started in the open-source software and firmware underlying the entire 3D printing ecology. Reverse engineering? Free software, from Wireshark straight through to Ghidra.

All of this is to say, that even while we’re making or breaking hardware, we’re using open-source software to do it. So, if you’re interested in peeking behind the curtain, give the FLOSS Weekly a listen.

17 thoughts on “Hardware: It’s Made Of Software!

  1. I’ll add that FLOSS Weekly depends on listeners to help us find guests. So if you want us to interview the folks behind KiCad, tell us! Or even better, you can reach out to the KiCad team, and ask them to contact us about being on the show.

  2. It’s deeper than that: designing hardware has the same level of flow control management and hierarchy as designing software. Software has instructions, libraries, APIs, and operating systems, while hardware has discreet components, integrated circuits, data sheets, and the laws of physics.

    The only major difference is that data sheets are stable, with updates only containing more precise characterizations or rare cases of design errata. Meanwhile, libraries are full of errors, APIs are poorly documented and change regularly, and operating systems like to break everything.

    The hardware developer only has to deal with the randomness of quantum physics, wile the software developer has to deal with an entire field that is bad at what they do. (See also: https://xkcd.com/2030/)

  3. The software for FPGA’S is the first thing I think of. Some Lattice chips can now be developed, with an open source toolchain, but the “big ones” (Xilinx, Altera) still use dedicated software.

    1. If you think about it, even ICs are developed like software (in Hardware Description Languages like Verilog and VHDL), where functional descriptions of the logic behavior are processed by automatic synthesis and layout tools (usable open source ones are even starting to come along) to produce the chip designs; it really is software all the way down.

      1. You say that, but the idea to model hardware design in software was there before good enough hardware to run those computationally intensive models on — so I’d claim that hardware was the limiting factor and that it’s hardware all the way down! :)

        In truth, of course, it’s both.

        @Alan: check out symbiflow (now f4pga) and yosys. Artix-7 is fairly well supported these days.
        https://github.com/YosysHQ/oss-cad-suite-build
        https://github.com/chipsalliance/f4pga-examples

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.