{"id":48,"date":"2022-03-28T18:35:03","date_gmt":"2022-03-29T01:35:03","guid":{"rendered":"https:\/\/blogs.oregonstate.edu\/catlistensproutdig88888\/?p=48"},"modified":"2022-04-12T20:27:39","modified_gmt":"2022-04-13T03:27:39","slug":"spring-break-2022","status":"publish","type":"post","link":"https:\/\/blogs.oregonstate.edu\/catlistensproutdig88888\/2022\/03\/28\/spring-break-2022\/","title":{"rendered":"Spring Break 2022"},"content":{"rendered":"<p>Ah, spring break week, a time to relax. Right? No, not the case. There was finally a week to spend time diving into learning about software-hardware interaction. There was a kit online, found awhile back, and this seemed to be a great time to roll up the sleeves and begin working on wiring, programming, and testing a mini computer.<br>The kit and some associated video links can be found <a href=\"https:\/\/eater.net\/6502\">here<\/a>.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Background<\/h3>\n\n\n\n<p>Since the OSU course 271, intro to computer architecture and assembly, there has been a desire to build a physical model of a computing machine. This desire was one that could not be fulfilled by Arduinos or Micro:bits, it needed to be installing wires and use something other than a GUI with code blocks. The Ben Eater kit for the 6502 processor arrived, the challenge was gladly accepted.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What is it?<\/h3>\n\n\n\n<p>Ultimately it is making use of a Western Digital 65c02 processor chip, Western Digital 65c22 versatile interface adapter, common NAND gate (4) chip, ATMEL AT28c256 ROM chip, Hitachi HM62256LP-70 RAM (used as a stack) chip, Hitachi LCD, knob dial for LCD contrast input, resisters, capacitors, 5V input, 1Mhz clock chip, and assorted 20mm insulated wires &#8212; on a few breadboards.<\/p>\n\n\n\n<p>Testing connections was carried out with the MEGA Arduino connection ports, no fanciness with expensive purchase, as Ben states within one of his videos. Less expensive, however over the project, you will dedicate much time to connecting each pin, and in the proper order. Luckily, there is an output on the Serial Monitor. Here you will know if you flipped the pins, as the expected, for example &#8216;10001111&#8217; would be &#8216;11110001&#8217;. Easy fix, just take the time to look at what this lovely monitor is trying to tell you and update your input probe wiring configuration.<\/p>\n\n\n\n<p>Programming the ROM was carried out with the EEPROM programmer and this <a href=\"https:\/\/gitlab.com\/DavidGriffith\/minipro\" data-type=\"URL\" data-id=\"https:\/\/gitlab.com\/DavidGriffith\/minipro\">software<\/a>. The assembler used was <a href=\"http:\/\/sun.hasenbraten.de\/\" data-type=\"URL\" data-id=\"http:\/\/sun.hasenbraten.de\/\">vasm<\/a>. Currently, it seems all this was easier on a linux system, rather than the starting windows machine.<\/p>\n\n\n\n<figure class=\"wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large is-style-default\"><img loading=\"lazy\" decoding=\"async\" width=\"1008\" height=\"1024\" data-id=\"55\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/20220323_200717-1-1008x1024.jpg\" alt=\"\" class=\"wp-image-55\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/20220323_200717-1-1008x1024.jpg 1008w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/20220323_200717-1-295x300.jpg 295w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/20220323_200717-1-768x780.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/20220323_200717-1-1512x1536.jpg 1512w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/20220323_200717-1-2016x2048.jpg 2016w\" sizes=\"auto, (max-width: 1008px) 100vw, 1008px\" \/><figcaption>Ben Eater 6502 kit<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Good Practices<\/h3>\n\n\n\n<p><strong>Do<\/strong> use some needle nose pliers, wire-strippers (aim for 24\/26), and simple wire-cutters. <\/p>\n\n\n\n<p><strong>Do<\/strong> double check all connections of the piece you are working on, wires do like to shift, even on the high-quality breadboards.<\/p>\n\n\n\n<p><strong>Do<\/strong> create index cards with mapping of pins, as the documentation is nice, however the little index cards let you move around and access the information clearly and even build out with a good representation of the chips.<\/p>\n\n\n\n<p><strong>Do<\/strong> take note of the issues you see, take the scientific approach of only updating one thing, run, compare to last &#8212; instead of changing multiple things at once and hoping for the best. \u4e41( \u0361\u00b0\u1a0e \u0361\u00b0)\u310f<\/p>\n\n\n\n<p><strong>Do<\/strong> take extra care to make the wiring of the clock pin connections as short as possible, this is a help for the proper timing window for some of the pieces to have access to &#8220;valid&#8221; data chunks, nanoseconds off could affect, other connections do not need as much time investment.<\/p>\n\n\n\n<p><strong>Do<\/strong> use a single color wire for data and address lines for help in not only understanding, some of the &#8220;buss&#8221; will carry over to other chips, having different colors helps to reassure the carry over will be correct places if you choose not to look at the pin mapping.<\/p>\n\n\n\n<p><strong>Do<\/strong> take breaks and work on something else, fresh eyes will be helpful when finding errors, almost like the mind is RAM, and you need to turn it off and come back, you don&#8217;t have the previous thoughts, you have something clean to work with.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"446\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/bote_cards-1024x446.jpg\" alt=\"\" class=\"wp-image-56\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/bote_cards-1024x446.jpg 1024w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/bote_cards-300x131.jpg 300w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/bote_cards-768x334.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/bote_cards-1536x669.jpg 1536w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/bote_cards-2048x892.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Notecards of the chips (other than NAND and clock)<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Programming with a ROM<\/h3>\n\n\n\n<p>The video walk throughs showed programming the ROM is possible with either python (hardcoding opcodes and variables associated) or assembly language with instructions for the specific 6502 processor documentation. There are probably other languages to use, however these were the ones Ben Eater chose to utilize, of which the project was completed with.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"609\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/coding-1024x609.jpg\" alt=\"\" class=\"wp-image-81\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/coding-1024x609.jpg 1024w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/coding-300x178.jpg 300w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/coding-768x456.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/coding.jpg 1528w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>left &#8211; python of blinking 01010101 then 10101010 for output, right &#8211; assembly of 101 scrolling over 8 outputs and looping back<\/figcaption><\/figure>\n\n\n\n<p>For the python code above, the goal was to see the optical illusion of blinking LEDs, which can be created by looping &#8216;01010101&#8217; and &#8216;10101010&#8217;. Below you will find a video demonstration after the upload to the ROM chip and some LEDs are installed. You might notice the strange LED above the grouped LEDs, this is another module of Ben Eater&#8217;s kits, the clock module kit. It allows you to have a less-professional (in terms of clean signal transition to high\/low) variable speed and for debugging\/seeing each cycle on the Arduino MEGA &#8212; a push button for creating a &#8220;clock cycle&#8221;. This was useful to physically see the cycle needs for some of the instructions outlined within the 6502 processor documentation.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls loop src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/20220327_094625.mp4\"><\/video><figcaption>video &#8212; python hardcoded opcodes with arguments programmed ROM<\/figcaption><\/figure>\n\n\n\n<p>For the initial assembly code you viewed above, a nice &#8216;ror&#8217; was used to create yet another optical illusion of the &#8216;101&#8217; seeming to move and wrap around the grouped LEDs, as you will witness in the below video. Please note, the &#8216;ror&#8217; would mean to rotate right one bit, however they are moving left. What? Yes, this is because the wiring is set to have the starting bit to be the most-right LED. Again, optical illusion.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls loop src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/20220327_155550.mp4\"><\/video><figcaption>video &#8212; assembly code programmed ROM<\/figcaption><\/figure>\n\n\n\n<p>Before the RAM was installed, there was not a stack, therefore once the LCD was installed it would output some strange calls for memory address and jump to places of which were not within the program. Installing the RAM allowed use of push\/pull values and was 100% needed for the final implementation. Here is final code used for the final project, all assembly. Code is well documented, therefore you don&#8217;t have to flip pages and read too much of the documentation if you do not currently have the time.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"565\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/coding2-1024x565.jpg\" alt=\"\" class=\"wp-image-84\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/coding2-1024x565.jpg 1024w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/coding2-300x166.jpg 300w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/coding2-768x424.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/coding2-1536x848.jpg 1536w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/coding2.jpg 1592w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>final project assembly code<\/figcaption><\/figure>\n\n\n\n<p>Maybe you are wondering &#8212; yeah, I see the code, how does this get on the ROM chip? Welp, you are in luck! Here is how. First, you will need to set up the EEPROM programmer that comes within the kit. Here are the step taken for ubuntu linux os:<\/p>\n\n\n\n<pre class=\"wp-block-code\" style=\"font-size:10px\"><code><mark class=\"has-inline-color has-luminous-vivid-orange-color\">username<\/mark>@computer:~$ sudo apt-get install build-essential pkg-config git libusb-1.0-0-dev\n<mark class=\"has-inline-color has-luminous-vivid-orange-color\">username<\/mark>@computer:~$ git clone https:\/\/gitlab.com\/DavidGriffith\/minipro.git\n<mark class=\"has-inline-color has-luminous-vivid-orange-color\">username<\/mark>@computer:~$ cd minipro\n<mark class=\"has-inline-color has-luminous-vivid-orange-color\">username<\/mark>@computer:~\/minipro$ sudo make install\n<mark class=\"has-inline-color has-luminous-vivid-orange-color\">username<\/mark>@computer:~\/minipro$ sudo cp udev\/*.rules \/etc\/udev\/rules.d\/\n<mark class=\"has-inline-color has-luminous-vivid-orange-color\">username<\/mark>@computer:~\/minipro$ sudo udevadm trigger\n<mark class=\"has-inline-color has-luminous-vivid-orange-color\">username<\/mark>@computer:~\/minipro$ sudo usermod -a -G plugdev <mark class=\"has-inline-color has-luminous-vivid-orange-color\">username<\/mark>\n<mark class=\"has-inline-color has-luminous-vivid-orange-color\">username<\/mark>@computer:~\/minipro$ sudo cp bash_completion.d\/minipro \/etc\/bash_completion.d\/<\/code><\/pre>\n\n\n\n<p>Now you will be able to run the programming scheme with &#8216;minipro&#8217; keyword as an environment variable. Nice! <\/p>\n\n\n\n<p>For the python program listing above, here are the steps taken to get this program onto the ROM, it should be noted the python program is actually creating a file &#8216;rom.bin&#8217;. Consistently, you can check the contents of what you have created with this nice hexdump, the final hexdump listed later will be more legible for read ascii straight. The firmware is outdated, however it did not seem to effect the needs of the project. To speak about the flags really quick. The flag &#8216;-p&#8217; is for program, &#8216;AT28C256&#8217; is the ROM chip type used, &#8216;-w&#8217; is to write, and &#8216;rom.bin&#8217; is the file you are wanting written. One obvious error you could run into is not placing the chip with the half-moon in the direction of closest to the programmer chip locking level, this will output something to the console much along the lines of &#8216;No programmer found&#8217;. Check orientation and try again, a quick fix. There is also a nice indented sign on the programming port hardware to remind you. It seems tricky to re-install the little feet of the ROM chip, be patient, and don&#8217;t give up &#8212; check the orientation of the semi-circle at the top.<\/p>\n\n\n\n<pre class=\"wp-block-code\" style=\"font-size:10px\"><code><mark class=\"has-inline-color has-luminous-vivid-orange-color\">username<\/mark>@computer:~$ python3 makerom.py\n<mark class=\"has-inline-color has-luminous-vivid-orange-color\">username<\/mark>@computer:~$ hexdump -C rom.bin\n00000000  a9 ff 8d 02 60 a9 55 8d  00 60 a9 aa 8d 00 60 4c  |....`.U..`....`L|\n00000010  05 80 ea ea ea ea ea ea  ea ea ea ea ea ea ea ea  |................|\n00000020  ea ea ea ea ea ea ea ea  ea ea ea ea ea ea ea ea  |................|\n*\n00007ff0  ea ea ea ea ea ea ea ea  ea ea ea ea 00 80 ea ea  |................|\n00008000\n<mark class=\"has-inline-color has-luminous-vivid-orange-color\">username<\/mark>@computer:~$ minipro -p AT28C256 -w rom.bin\nFound TL866II+ 04.2.86 (0x256)\nWarning: Firmware is out of date.\n  Expected  04.2.128 (0x280)\n  Found     04.2.86 (0x256)\nErasing... 0.02Sec OK\nProtect off...OK\nWriting Code...  6.49Sec  OK\nReading Code...  0.40Sec  OK\nVerification OK\nProtect on...OK<\/code><\/pre>\n\n\n\n<p>For the assembly program listed above, here are the steps taken to get this program onto the ROM. Please note the ascii output not for the final project message of &#8216;Capstone Spring&#8217;, it is for the message &#8216;Hello world!&#8217;. The Volker Barthelmann and Frank Wille vasm assembler will, by default make their output file to &#8216;a.out&#8217;. Ben Eater creates the file and sets up the &#8216;oldstyle&#8217; version clearly within his videos, therefore here not much detail will be listed. Source documentation can be found <a href=\"http:\/\/sun.hasenbraten.de\/vasm\/release\/vasm_6.html\" data-type=\"URL\" data-id=\"http:\/\/sun.hasenbraten.de\/vasm\/release\/vasm_6.html\">here<\/a>. Quick note, the flags &#8216;-Fbin&#8217; is for the &#8216;-F&#8217; flag and &#8216;bin&#8217; is the the output driver to be used, &#8216;-dotdir&#8217; for use of any &#8216;.&#8217; formatted call within the program, and &#8216;blink.s&#8217; is the file name with all the beautiful assembly code written inside.<\/p>\n\n\n\n<pre class=\"wp-block-code\" style=\"font-size:10px\"><code><mark class=\"has-inline-color has-luminous-vivid-orange-color\">username<\/mark>@computer:~$ make CPU=6502 SYNTAX=oldstyle\n<mark class=\"has-inline-color has-luminous-vivid-orange-color\">username<\/mark>@computer:~$ nano blink.s\n<mark class=\"has-inline-color has-luminous-vivid-orange-color\">username<\/mark>@computer:~$ .\/vasm6502_oldstyle -Fbin -dotdir blink.s\nvasm 1.9 (c) in 2002-2022 Volker Barthelmann\nvasm 6502 cpu backend 0.10 (c) 2002,2006,2008-2012,2014-2021 Frank Wille\nvasm oldstyle syntax module 0.16 (c) 2002-2021 Frank Wille\nvasm binary output module 2.1 (c) 2002-2021 Volker Barthelmann and Frank Wille\n\nseg8000(acrwx1):\t         126 bytes\nsegfffc(acrwx1):\t           4 bytes\n<mark class=\"has-inline-color has-luminous-vivid-orange-color\">username<\/mark>@computer:~$ hexdump -C a.out\n00000000  a9 ff 8d 02 60 a9 55 8d  00 60 a9 aa 8d 00 60 4c  |....`.U..`....`L|\n00000010  05 80 ea ea ea ea ea ea  ea ea ea ea ea ea ea ea  |................|\n00000020  ea ea ea ea ea ea ea ea  ea ea ea ea ea ea ea ea  |................|\n*\n00000000  a9 ff 8d 02 60 a9 e0 8d  03 60 a9 38 20 58 80 a9  |....`....`.8 X..|\n00000010  0e 20 58 80 a9 06 20 58  80 a9 48 20 6b 80 a9 65  |. X... X..H k..e|\n00000020  20 6b 80 a9 6c 20 6b 80  a9 6c 20 6b 80 a9 6f 20  | k..l k..l k..o |\n00000030  6b 80 a9 20 20 6b 80 a9  77 20 6b 80 a9 6f 20 6b  |k..  k..w k..o k|\n00000040  80 a9 72 20 6b 80 a9 6c  20 6b 80 a9 64 20 6b 80  |..r k..l k..d k.|\n00000050  a9 21 20 6b 80 4c 55 80  8d 00 60 a9 00 8d 01 60  |.! k.LU...`....`|\n00000060  a9 80 8d 01 60 a9 00 8d  01 60 60 8d 00 60 a9 20  |....`....``..`. |\n00000070  8d 01 60 a9 a0 8d 01 60  a9 20 8d 01 60 60 00 00  |..`....`. ..``..|\n00000080  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|\n*\n00007ff0  00 00 00 00 00 00 00 00  00 00 00 00 00 80 00 00  |................|\n00008000\n<mark class=\"has-inline-color has-luminous-vivid-orange-color\">username<\/mark>@computer:~$ minipro -p AT28C256 -w a.out\nFound TL866II+ 04.2.86 (0x256)\nWarning: Firmware is out of date.\n  Expected  04.2.128 (0x280)\n  Found     04.2.86 (0x256)\nErasing... 0.02Sec OK\nProtect off...OK\nWriting Code...  6.49Sec  OK\nReading Code...  0.40Sec  OK\nVerification OK\nProtect on...OK<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Finished Project<\/h3>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"667\" height=\"1024\" data-id=\"60\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/1-667x1024.jpg\" alt=\"starting breadboard with power and ground wires\" class=\"wp-image-60\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/1-667x1024.jpg 667w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/1-195x300.jpg 195w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/1-768x1179.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/1-1001x1536.jpg 1001w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/1-1334x2048.jpg 1334w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/1-scaled.jpg 1668w\" sizes=\"auto, (max-width: 667px) 100vw, 667px\" \/><figcaption><sub>starting breadboard with power and ground wires<\/sub><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-id=\"68\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/2-768x1024.jpg\" alt=\"connection for the 5V adapter\" class=\"wp-image-68\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/2-768x1024.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/2-225x300.jpg 225w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/2-1152x1536.jpg 1152w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/2-1536x2048.jpg 1536w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/2-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption><sub>connection for the 5V adapter<\/sub><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"607\" height=\"1024\" data-id=\"57\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/3-607x1024.jpg\" alt=\"installation of 6502 processor and pins for needed high-value\" class=\"wp-image-57\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/3-607x1024.jpg 607w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/3-178x300.jpg 178w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/3-768x1296.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/3-910x1536.jpg 910w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/3-1214x2048.jpg 1214w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/3-scaled.jpg 1517w\" sizes=\"auto, (max-width: 607px) 100vw, 607px\" \/><figcaption><sub>installation of 6502 processor and pins for needed high-value<\/sub><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"906\" data-id=\"62\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/4-1024x906.jpg\" alt=\"connecting a clock to the 6502, no output is expected at this point\" class=\"wp-image-62\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/4-1024x906.jpg 1024w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/4-300x265.jpg 300w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/4-768x679.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/4-1536x1359.jpg 1536w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/4-2048x1811.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><sub>connecting a clock to the 6502, no output is expected at this point<\/sub><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"873\" height=\"1024\" data-id=\"61\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/5-873x1024.jpg\" alt=\"additional high-value connections are installed around the 6502 processor\" class=\"wp-image-61\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/5-873x1024.jpg 873w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/5-256x300.jpg 256w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/5-768x900.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/5-1310x1536.jpg 1310w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/5-1747x2048.jpg 1747w\" sizes=\"auto, (max-width: 873px) 100vw, 873px\" \/><figcaption><sub>additional high-value connections are installed around the 6502 processor<\/sub><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"488\" data-id=\"58\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/6-1024x488.jpg\" alt=\"connecting the 6502 to output address buss and connection to LEDs to see stuff as a human\" class=\"wp-image-58\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/6-1024x488.jpg 1024w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/6-300x143.jpg 300w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/6-768x366.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/6-1536x732.jpg 1536w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/6-2048x976.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><sub>connecting the 6502 to output address buss and connection to LEDs to see stuff as a human<\/sub><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-id=\"72\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/7-768x1024.jpg\" alt=\"Arduino MEGA connected to the address and data ports of the 6502 processor with clock, R\/W, and ground -- output printing each clock cycle what each of the pins are seeing within the Serial Monitor on the Arduino software (not shown here)\" class=\"wp-image-72\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/7-768x1024.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/7-225x300.jpg 225w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/7-1152x1536.jpg 1152w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/7-1536x2048.jpg 1536w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/7-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption><sub>Arduino MEGA connected to the address and data ports of the 6502 processor with clock, R\/W, and ground &#8212; output printing each clock cycle what each of the pins are seeing within the Serial Monitor on the Arduino software (not shown here)<\/sub><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-id=\"70\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/8-768x1024.jpg\" alt=\"another view of connections\" class=\"wp-image-70\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/8-768x1024.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/8-225x300.jpg 225w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/8-1152x1536.jpg 1152w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/8-1536x2048.jpg 1536w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/8-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption><sub>another view of connections<\/sub><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-id=\"71\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/9-768x1024.jpg\" alt=\"another view of Arduino MEGA connections to 6502 processor for output testing\" class=\"wp-image-71\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/9-768x1024.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/9-225x300.jpg 225w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/9-1152x1536.jpg 1152w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/9-1536x2048.jpg 1536w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/9-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption><sub>another view of Arduino MEGA connections to 6502 processor for output testing<\/sub><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"834\" height=\"1024\" data-id=\"64\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/10-834x1024.jpg\" alt=\"connection of 6502 processor and ROM with address (green wires)\/data (blue wires) connections -- NAND gate chip on other bread board so the ROM is &quot;normalized&quot; to the 8000 to 8FFF range rather than the 0000-FFFF range\" class=\"wp-image-64\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/10-834x1024.jpg 834w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/10-244x300.jpg 244w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/10-768x943.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/10-1251x1536.jpg 1251w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/10-1667x2048.jpg 1667w\" sizes=\"auto, (max-width: 834px) 100vw, 834px\" \/><figcaption><sub>connection of 6502 processor and ROM with address (green wires)\/data (blue wires) connections &#8212; NAND gate chip on other bread board so the ROM is &#8220;normalized&#8221; to the 8000 to 8FFF range rather than the 0000-FFFF range<\/sub><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" data-id=\"66\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/11-1024x768.jpg\" alt=\"close up of the connections of the Arduino MEGA for viewing pin output\" class=\"wp-image-66\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/11-1024x768.jpg 1024w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/11-300x225.jpg 300w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/11-768x576.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/11-1536x1152.jpg 1536w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/11-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><sub>close up of the connections of the Arduino MEGA for viewing pin output<\/sub><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"989\" data-id=\"59\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/12-1024x989.jpg\" alt=\"use of index cards with the 6502 processor, ROM, and VIA installed\" class=\"wp-image-59\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/12-1024x989.jpg 1024w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/12-300x290.jpg 300w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/12-768x742.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/12-1536x1484.jpg 1536w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/12-2048x1978.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><sub>use of index cards with the 6502 processor, ROM, and VIA installed<\/sub><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"669\" height=\"1024\" data-id=\"65\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/13-669x1024.jpg\" alt=\"detailed view of installation and wiring of components\" class=\"wp-image-65\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/13-669x1024.jpg 669w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/13-196x300.jpg 196w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/13-768x1176.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/13-1003x1536.jpg 1003w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/13-1338x2048.jpg 1338w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/13-scaled.jpg 1672w\" sizes=\"auto, (max-width: 669px) 100vw, 669px\" \/><figcaption><sub>detailed view of installation and wiring of components<\/sub><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-id=\"74\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/14-768x1024.jpg\" alt=\"attaching the VIA to output LEDs to be programmed\" class=\"wp-image-74\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/14-768x1024.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/14-225x300.jpg 225w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/14-1152x1536.jpg 1152w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/14-1536x2048.jpg 1536w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/14-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption><sub>attaching the VIA to output LEDs to be programmed<\/sub><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-id=\"73\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/15-768x1024.jpg\" alt=\"installation of the LCD with proper port B wirings to the VIA\" class=\"wp-image-73\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/15-768x1024.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/15-225x300.jpg 225w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/15-1152x1536.jpg 1152w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/15-1536x2048.jpg 1536w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/15-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption><sub>installation of the LCD with proper port B wirings to the VIA<\/sub><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" data-id=\"69\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/16-1024x768.jpg\" alt=\"power on without coded output on the LCD, you see the gibberish of uncleared display\" class=\"wp-image-69\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/16-1024x768.jpg 1024w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/16-300x225.jpg 300w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/16-768x576.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/16-1536x1152.jpg 1536w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/16-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><sub>power on without coded output on the LCD, you see the gibberish of uncleared display<\/sub><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" data-id=\"67\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/17-1024x768.jpg\" alt=\"workspace\" class=\"wp-image-67\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/17-1024x768.jpg 1024w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/17-300x225.jpg 300w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/17-768x576.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/17-1536x1152.jpg 1536w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/17-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><sub>workspace<\/sub><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" data-id=\"63\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/18-1024x768.jpg\" alt=\"final LCD with ROM code to execute -- works as expected\" class=\"wp-image-63\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/18-1024x768.jpg 1024w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/18-300x225.jpg 300w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/18-768x576.jpg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/18-1536x1152.jpg 1536w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/18-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><sub>final LCD with ROM code to execute &#8212; works as expected<\/sub><\/figcaption><\/figure>\n<figcaption class=\"blocks-gallery-caption\">updates from the project work<\/figcaption><\/figure>\n\n\n\n<p><br>Here is a film of the programed project.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls loop src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5337\/files\/2022\/03\/20220328_032037.mp4\"><\/video><figcaption>working project &#8212; video<\/figcaption><\/figure>\n\n\n\n<p><br>Ideally, this was a great project on many levels. The teachings of Ben Eater videos are easy to follow along with and he gives multiple ways of doing one thing on some of the subjects covered. He reviews the actual documentation from the chip manufacturers with a beginner&#8217;s mind. It could seem every pebble was flipped over for the hardware used within the project. Surprisingly, the trickiest thing about this project is the wiring. <br><br>Highly recommend. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusion<\/h3>\n\n\n\n<p>For a week&#8217;s worth of time, including the time for delivery of the kit, one can create a mini computer on a bread board set. As a disclaimer, not all the details are listed here, as the thought was, the post should be light and fun with loads of media to get readers (hopefully) excited about building projects on a breadboard. It is a very good review of topics mentioned within the OSU 271 course and opens the mind to thinking in terms of the physical pieces of the topics. As a hands-on learner, this was a top-notch experience. Ah, it is over, the sweet spring break, back to school. Look for updates on the current course, Capstone in the upcoming posts.<br><\/p>\n\n\n\n<p><br>Thank you for reading.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ah, spring break week, a time to relax. Right? No, not the case. There was finally a week to spend time diving into learning about software-hardware interaction. There was a kit online, found awhile back, and this seemed to be a great time to roll up the sleeves and begin working on wiring, programming, and [&hellip;]<\/p>\n","protected":false},"author":12169,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[7,10,6,9,8],"class_list":["post-48","post","type-post","status-publish","format-standard","hentry","category-before_team-project_assignment","tag-7","tag-assembly","tag-ben_eater","tag-hardware","tag-processor"],"_links":{"self":[{"href":"https:\/\/blogs.oregonstate.edu\/catlistensproutdig88888\/wp-json\/wp\/v2\/posts\/48","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.oregonstate.edu\/catlistensproutdig88888\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.oregonstate.edu\/catlistensproutdig88888\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/catlistensproutdig88888\/wp-json\/wp\/v2\/users\/12169"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/catlistensproutdig88888\/wp-json\/wp\/v2\/comments?post=48"}],"version-history":[{"count":27,"href":"https:\/\/blogs.oregonstate.edu\/catlistensproutdig88888\/wp-json\/wp\/v2\/posts\/48\/revisions"}],"predecessor-version":[{"id":152,"href":"https:\/\/blogs.oregonstate.edu\/catlistensproutdig88888\/wp-json\/wp\/v2\/posts\/48\/revisions\/152"}],"wp:attachment":[{"href":"https:\/\/blogs.oregonstate.edu\/catlistensproutdig88888\/wp-json\/wp\/v2\/media?parent=48"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/catlistensproutdig88888\/wp-json\/wp\/v2\/categories?post=48"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/catlistensproutdig88888\/wp-json\/wp\/v2\/tags?post=48"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}