-- Leo's gemini proxy

-- Connecting to ew.srht.site:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

2022-10-23

Modern Wonders 6: Programming Microcontrollers at Home

tags: wonders hardware software



Isn't "Programming Microcontrollers at Home" a modern wonder of our time as well, that many just take for granted? Especially after the appearance of the Arduino hw/sw system, seemingly out of the blue?


Stage 1 (ca. 1980)


When I started dabbling with electronics, I was pretty much dependant on what the local radio repair shop had and was willing to sell to students with little pocket money. A thing called data sheet was never available, and if it had been, my English was probably not up to snug. At the time transistors were the most advanced component I could purchase, and simple OpAmps in funny packages only later. There existed a dealer for electronic components, where you would send a letter with your order, and some means to transfer money too. So magic things appeared at my desk like once in a few years. Printed books were the main source of my information. At the time I had no idea about a concept called ham radio, let alone the regional groups of ham operators --- I could have probably learned a great deal more, had I gotten in contact with them.


The elder brother of a class mate of mine was the important person for me. He taught me soldering, etching small hand drawn circuit boards, reading schematics, citizen band radio, home brew synthesizers and more. He also taught me how to develop analog film.


I lost interest by the end of school, basically because I had not much success with all this.



Stage 2 (ca. 2000)


I learned a lot more about electronics at university as part of "Applied Physics" classes. I even took the corresponding labs. And after I had my first proper job, I came across something, which sparked my interest again. I build a tiny electronic thing and of course, it didn't work right away. After reading and analyzing the schematics, and after comparing it to the description in the text, and after writing out a truth table of what should happen, I found the error and fixed it. Yay! So almost 20 years later, things looked a lot better.


Stage 3 (at the time of this writing, 2022)


Today there is a thing called Internet, a breath-taking collection of technologies, infrastructure, servers serving content and ubiquituous clients consuming and presenting said content, like the planet has not seen ever before. When I started dabbling with electronics such a thing was pretty much inconceivable, at least for a boy of 14 or so.


Today schematics and descriptions of pretty much anything are readily available, probably about anything you might wish to know. Today for many or most components, datasheets are available. They might be available in Chinese only, the English ones prepared through Google translate (errors and all), they might be incomplete (always check for errata, too!), indecipherable, or just plain wrong, but that's still much better than no datasheets at all. Today there is quite a selection of online "places", where to order components from. But thats not all!


Today I have a fairly impressive computer (Dell Latitude E7470, second hand for little cash), running Linux, a complete operating system that did not cost me more that the internet connection to receive the installation media's content and everything I installed after that. Included in this impressive list of available software is a toy called KiCAD. I can create schematics with it, add properties to all components like their footprint, create a plan, a layout for a good looking printed circuit board out of thin air. Ok, it takes time and dedication to learn the tools, like every complex tool, but it is possible.


Another thing I consider a wonder is this: I upload the files describing the printed circuit board on the website of a board maker. I choose a configuration and how long I'm willing to wait for it, I add some magic incantations to pay for the whole thing (yet another wonder!), and then some time later, I receive a pack of wonderful, green, printed circuit boards, with very nice layout, perfect solder mask, printed text, vias and all. I could never do this myself like this.


I could get these boards also assembled professionally, but that would take too much fun out, imho, so I place components myself and manually. Blinky things can be made! Fun! But a whole new universe of fun unfolds at this point.



Programming Microcontrollers


So suppose the newly assembled printed circuit board features a controller, much like the famous atmega328 found on the equally famous Arduino Uno boards. And suppose I didn't lock me out, then I still need quite a list of working things:

Just enough power to make the board work and not go up in blue smoke or even flames

A dongle/connection from my notebook to the programming interface of said controller

A dongle/connection from my notebook to the serial interface of said controller (strictly speaking this is optional)

A program to create the desired program in text form. At this point it is irrelevant, whether I use C or assembly or anything else. The controller will not understand this text

A program to convert said text representation into a presentation, that the controller can understand (machine code)

A program, which will talk to the powered up controller, read said machine code and write it to the correct locations in the controllers' memory or memories


And after all that and after releasing the reset line of the controller, and with a bit of luck --- then! The contoller might spring to life an run my programm!!!


Folks, when this works for the first time on a new board/controller (blinking some LED is a standard hello world program in this domain), then get the feeling! You successfully entered the unfolding universe mentioned above! You've got all the tools to overcome the complicated entry rituals and magic spells! Countless tool smiths, you and I and the Goddesses of electronic gadgets have conspired together sufficiently to make this humble LED blink! Fantastic!



Final Words


I would like to get the point across, how unbelievably high this pile of individual wonders is to create another, greater wonder. And I would like to encourage anyone, who has not travelled this road, to feel a bit more humble about all the technological wonders we move through our hands maybe daily, and without paying much attention. I would like get the point across, that the CPU in your smart phone is a very big brother of the humble microcontroller mentioned, and the magic incantations are a lot more involved to get this big brother to life.



I tend to understand "paying by credit card" as an experiment, and I tend to cheer at the cashier, when the experiment works. I don't take it for granted.



End of Blue Ribbon

Home

-- Response ended

-- Page fetched on Fri May 3 03:15:08 2024