Deciding on Firmware

How does one design a user interface which connects to the electrical system for a filament recycler? Well, first they decide what firmware to use that can handle both an electrical system and running a GUI.

I had never worked with Raspberry Pi before this project, but it was my first thought when I realized we needed essentially a mini-computer. We could directly connect the electrical system to the pins on a Pi, and the Pi could also run the Python code necessary for our GUI. It was a good logistical choice and also a great opportunity for me to learn more about how Raspberry Pis work. So I started researching Raspberry Pi. It seemed there was a lot for me to learn even before getting started, but that was a welcome challenge.

Not long after making the decision to use a Raspi, I started looking at screens we could use for our GUI. I found a 7" touch screen designed for Raspi which we could buy for the same price as a 3.2" Arduino screen — of course, that only strengthened my conviction that we should be using Raspi instead of Arduino. I was told after our second sprint review that Arduino could handle both the electrical system and a GUI, but I hadn’t looked into designing a GUI for Arduino and I was excited to learn more about Raspi.

A Raspi and its touch screen connected the way I connected ours (image found at http://tinyurl.com/gsvqmvd)

Eventually (in Sprint Three), we discovered that the electrical system could be controlled more easily from an Arduino, so rather than connecting directly to the Raspi we started talking about connecting the Raspi to an Arduino. This allowed Alexander to work on the electrical system, including heat control and safety stops, without having to check on my GUI progress (and vice versa). At the end, integration rested solely on effectively connecting the Arduino to the GUI. This presented its own host of issues because Arduino port connections are not the most reliable things in the world, but it was certainly an adventure. And we were both able to iterate without constraints, which helped us move forward quickly within our respective systems.

--

--