Ideas on Hardware Side of Open Source / Maker Projects

By

I have been interested in open source for a long time. The ideas of sharing openly and building as a community allowed many well-known projects to emerge, and shape the software industry. It democratised software engineering way more than any other field of engineering. Today, anyone can build a software application using only open source tools. Many other fields of engineering still need to deal with tool providers, some of which wouldn’t even licence their technology to individuals.

The maker movement is another interesting movement. It is building an environment and community similar to open source but for physical/mechanical applications. The rise of 3D printers and easy-to-use CAD software allows people to share physical designs as simply as they share software. Just like there is GitHub for open source software, there is Thingiverse for 3D designs.

As you can imagine, these two movements intersect a lot. The Internet is full of projects that 3D print a device’s main body, add a Raspberry Pi or Arduino, and program the device using open source technologies. However, there is a piece of this equation that does not add up. While the mechanical and software parts of the system can be made fully open and customizable, the hardware is far from that. Most projects stick with a small selection of processors, instruction set architectures, and other hardware/chip components built by large hardware companies.

Although some engineers and hobbyists design hardware for side projects, this is not common. The hardware field seems much more complex than software, especially for beginners. The complexity comes not only from the concepts but also from current tools and resources. 

Commonly used hardware description languages (HDLs) such as Verilog are less intuitive than common programming languages of today. What is the Python equivalent of HDLs? Some languages try to fill in the role of a higher-level HDL, but they are usually built to provide more efficiency for professionals. This can make the learning curve of the language even steeper. There seems to be an open need for a hardware description language with an “everyone can code” attitude.

The language is far from being the only tool one uses. Current software used for simulation and synthesis is also aimed only at industry professionals. A modern IDE designed specifically for hardware development via HDLs can help the adoption of hardware development in hobby/maker projects. Compilation and programmer tools for different FPGAs / vendors, other EDA tools, and much more can be implemented as plugins to this IDE. 

Hardware that can accompany these software tools is also much needed. There is currently no FPGA board specifically meant for hobby / personal project usage as far as I know. It is known from the success of Arduino and Raspberry Pi that there is a market for such hardware products.

With a better toolset and accompanying resources, designing hardware can become as beginner-friendly as today’s software. The industry needs a few main things. The first one is an HDL built for ease of use and beginner friendliness rather than performance. The second one is a modern IDE meant for HDL debugging and synthesis. The third one is an FPGA board also meant for ease of use and beginner friendliness.

Photo by Alexandre Debiève on Unsplash

Posted In ,

Leave a comment