Close

Time for a do-over?

A project log for Tangible programming

An Arduino-based tangible programming effort

amosAmos 06/14/2020 at 20:140 Comments

There have been a lot of changes in my life since my last update and I haven't touched any of my projects in so long. Since my last update I started, and then abandoned, an Honors year for my degree; accepted a job offer; moved overseas; and now (like most everyone) I am in lockdown for the foreseeable future.

After I finished my degree last year, I enrolled in an Honors program with the intention of starting a research project based on this tangible programming project. Unfortunately (or fortunately) I received a job offer which meant I would have to move overseas, so I put the Honors program on hold while I moved and got myself re-established in a new country.

When I was preparing to move, I tried to organize my electronics stuff, packing the things I thought I would need for the move, and putting everything else into storage. The first few months in my new home I didn't even look at my electronics gear. When I did start to unpack, I realized I had left a couple of vital boxes back in Australia. 8^/ Also, by the time I did start to pull everything out and do an inventory, the COVID lockdown had started. While this technically meant I had more free time, international shipping was broken, so I couldn't reliably order replacement parts - at least not from my preferred (and cheap) suppliers.

Anywho, I have finally set up a small electronics work bench and have most of what I need to continue working on this project. (Yay!) But should I really continue in the direction I was heading? That I am not sure of...

I have been giving quite a bit of thought about how this project works. Currently, there is a main control unit, which queries the attached modules and executes the program represented but those modules. Each module is currently using an ATTiny841, but honestly I am not really making full use of the capabilities of this chip. Each module represents a program statement and may have optional additional modules attached for setting variable values or calculating expressions. The control unit queries these modules, builds up a map of the program and executes the program internally, only sending commands to the modules to blink LEDs to show the status. My plan was to move the execution logic down into the modules and deprecate the need for a control unit.

So I am now re-thinking this whole approach. Do I continue down the path of a control unit and switch to an even lower cost chip for the modules? I could make the modules even cheaper than they are by making them very simple, and add even more functionality to the control unit. Or do I push ahead on moving the smarts of the program execution into the modules and maybe even jump up to a more "powerful" ATMega329PB in the modules? "Smarter" modules would remove the need for a control unit, but then how would I implement output, stepping through the program and other neat features I have planned?

Another problem I need to solve is the connections between modules. While the pogo pins I was trying last year kinda worked, they were very expensive and I was having some issues getting the alignment of the modules correct. I do need to work on cases for the modules which might help with the alignment issues I had, but the cost of the connectors is still too high. I need to look at other solutions here.

So I think I am going to go back to the drawing board and look at the whole system again from top to bottom before I decide whether or not to continue down the path I was heading.

Discussions