How To Make Almost Anything Neil Gershenfeld

BENJAMIN VILLA

MIT Center For Bits And Atoms


Fab labs share an evolving inventory of core capabilities to make (almost) anything, allowing people and projects to be shared. These are my projects.

Embedded Programming-

10.27.21

assignment

individual assignment: read the data sheet for your microcontroller program your board to do something extra credit: try other programming languages and development environments

group assignment: compare the performance and development workflows for other architectures

[1]This week I learned to program the previous boards I had created. From previous weeks I had made two boards, one with a D11 and one with a Tiny412. I had initially thought both would work similarly, but I quickly learned these two are very different. Most notably, D11 can talk Serial - USB while Tiny412 can’t. For this reason, I used a programmer with my ATTiny412. I used one I found on the Lab; however, the difficult part came when I realized I had to install libraries and boards in the Arduino IDE Boards Manager. I had to install megaTinyCore so that I could talk to the Tiny 412 using a programmer to convert Serial-USB to UPDI.

I was able to install two different programs, a Blink, and a Button On/Off program. One would control blink on and off automatically, and one would turn the LED on/off depending on the state of the button. Watching this work was extremely satisfying. Finally observing a working PCB. To program the D11 was more difficult. I tried it, however, I had forgotten I had previously programmed it on a previous week using OpenOCD. With help from Nathan, I realized it was locked by OpenOCD. I wanted my D11 to become a programmer so that I could program a future board, however, this wasn’t possible for the moment. Hopefully, in the next few days I will be able to fix this.

Considerations:
-Search and install the board libraries for the microprocessor you are using- Either megaTinyCore or ESP32.
-Figure out if you need to use a programmer, and if your board talks Serial or UPDI.
-As more variables are added to making, designing, programing boards it is harder and harder to troubleshoot what might be causing a problem. The difficulty in achieving a working board begins to compound.
-Check to see if the board you are using has known problems with your operating system (for example Windows or Mac). It is worth to try programing a board that is giving you problems using Linux.

Download Files