{"id":3596,"date":"2011-09-20T22:19:30","date_gmt":"2011-09-21T02:19:30","guid":{"rendered":"http:\/\/embedded-lab.com\/blog\/?p=3596"},"modified":"2012-07-30T09:29:15","modified_gmt":"2012-07-30T13:29:15","slug":"a-diy-io-board-for-experimenters","status":"publish","type":"post","link":"https:\/\/embedded-lab.com\/blog\/a-diy-io-board-for-experimenters\/","title":{"rendered":"A DIY I\/O board for experimenters"},"content":{"rendered":"<p>I remember when I first stepped into the world of embedded electronics, I started with doing some basic microcontroller circuits on a breadboard. Breadboard is a wonderful tool for prototyping and testing circuits. When the test of a circuit is successful, you can dissemble it and the board is ready for a new circuit. While working on breadboard was a great learning experience, it was little bit frustrating sometimes when you realized after dissembling a circuit that you have to put it together again or just a part of it for your new project. It happens very often because most embedded projects require some common stuff, basically I\/O devices such as switches, LEDs, LCD display, buzzer, etc. Connecting these things on the breadboard for every new project is time consuming and boring. If you are a newbie and having the similar experience, here I suggest a general purpose I\/O board that will not only reduce your prototyping time but also free up plenty of space on the breadboard for your project.<\/p>\n<div id=\"attachment_3705\" style=\"width: 570px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IOBoard_Title2.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3705\" class=\"size-full wp-image-3705\" title=\"IOBoard_Title2\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IOBoard_Title2.jpg\" alt=\"\" width=\"560\" height=\"327\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IOBoard_Title2.jpg 560w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IOBoard_Title2-550x321.jpg 550w\" sizes=\"auto, (max-width: 560px) 100vw, 560px\" \/><\/a><p id=\"caption-attachment-3705\" class=\"wp-caption-text\">DIY I\/O board for experimenters<\/p><\/div>\n<p><!--more-->The construction of this board is very simple. You can solder basic I\/O devices of your choice (that you use more frequently) on a general purpose perforated board and provide access to them through headers. The board that I constructed is shown below. It has got an LM7805 IC that provides a regulated +5 V power supply to rest of the devices on the board. A 16-pin female header is a plug-in for an HD44780-based alphanumeric LCD. The four data pins (D4-D7) and two control pins (<em>Register Select<\/em>, RS, and <em>Enable<\/em>, E) of the LCD are accessible through female headers, as shown on the bottom left part of the board. A potentiometer is also available on the board to adjust contrast of the display.<\/p>\n<div id=\"attachment_3706\" style=\"width: 560px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IOBoard2.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3706\" class=\"size-medium wp-image-3706\" title=\"IOBoard2\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IOBoard2-550x392.jpg\" alt=\"\" width=\"550\" height=\"392\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IOBoard2-550x392.jpg 550w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IOBoard2.jpg 900w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><p id=\"caption-attachment-3706\" class=\"wp-caption-text\">Construction of a general purpose I\/O board<\/p><\/div>\n<p>Four tact switches, four LEDs, and one coil buzzer serve as basic input and output devices. In this particular version, I have also added a LM34DZ temperature sensor device along with an I2C compatible serial EEPROM (24LC512). There&#8217;s plenty of prototyping space available for extending the functionality of the board in future.<\/p>\n<div id=\"attachment_3607\" style=\"width: 570px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_BoardComplete.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3607\" class=\"size-full wp-image-3607\" title=\"IO_BoardComplete\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_BoardComplete.jpg\" alt=\"\" width=\"560\" height=\"383\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_BoardComplete.jpg 560w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_BoardComplete-550x376.jpg 550w\" sizes=\"auto, (max-width: 560px) 100vw, 560px\" \/><\/a><p id=\"caption-attachment-3607\" class=\"wp-caption-text\">I\/O board with LCD plugged-in<\/p><\/div>\n<p>The circuit diagram of this project is very simple. There is nothing special as each component is independent and is not connected to any other component. The only common thing in them is all of them share the same\u00a0Vcc and Gnd terminals. I have provided the following schematics for reference purpose.<\/p>\n<div id=\"attachment_3597\" style=\"width: 560px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_Board.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3597\" class=\"size-medium wp-image-3597\" title=\"IO_Board\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_Board-550x377.png\" alt=\"\" width=\"550\" height=\"377\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_Board-550x377.png 550w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_Board.png 700w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><p id=\"caption-attachment-3597\" class=\"wp-caption-text\">Circuit diagram of the I\/O board<\/p><\/div>\n<div id=\"attachment_3710\" style=\"width: 548px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/I2C_AndBuzzer.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3710\" class=\"size-full wp-image-3710\" title=\"I2C_AndBuzzer\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/I2C_AndBuzzer.jpg\" alt=\"\" width=\"538\" height=\"427\" \/><\/a><p id=\"caption-attachment-3710\" class=\"wp-caption-text\">I2C device and buzzer connections<\/p><\/div>\n<div id=\"attachment_3608\" style=\"width: 575px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_BoardComplete2.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3608\" class=\"size-full wp-image-3608\" title=\"IO_BoardComplete2\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_BoardComplete2.jpg\" alt=\"\" width=\"565\" height=\"348\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_BoardComplete2.jpg 565w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_BoardComplete2-550x338.jpg 550w\" sizes=\"auto, (max-width: 565px) 100vw, 565px\" \/><\/a><p id=\"caption-attachment-3608\" class=\"wp-caption-text\">Complete circuit on a perforated circuit board<\/p><\/div>\n<div id=\"attachment_3767\" style=\"width: 570px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_BoardBottom.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3767\" class=\"size-full wp-image-3767\" title=\"IO_BoardBottom\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_BoardBottom.jpg\" alt=\"\" width=\"560\" height=\"388\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_BoardBottom.jpg 560w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_BoardBottom-550x381.jpg 550w\" sizes=\"auto, (max-width: 560px) 100vw, 560px\" \/><\/a><p id=\"caption-attachment-3767\" class=\"wp-caption-text\">Bottom view of the I\/O board<\/p><\/div>\n<p><strong>Testing the board<\/strong><\/p>\n<div id=\"attachment_3708\" style=\"width: 570px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_BoardBreadBoard.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3708\" class=\"size-full wp-image-3708\" title=\"IO_BoardBreadBoard\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_BoardBreadBoard.jpg\" alt=\"\" width=\"560\" height=\"357\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_BoardBreadBoard.jpg 560w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_BoardBreadBoard-550x350.jpg 550w\" sizes=\"auto, (max-width: 560px) 100vw, 560px\" \/><\/a><p id=\"caption-attachment-3708\" class=\"wp-caption-text\">PIC16F1827 on breadboard reads LM34 output and displays temperature<\/p><\/div>\n<div id=\"attachment_3694\" style=\"width: 570px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_BoardAndAmicus182.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3694\" class=\"size-full wp-image-3694\" title=\"IO_BoardAndAmicus182\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_BoardAndAmicus182.jpg\" alt=\"\" width=\"560\" height=\"332\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_BoardAndAmicus182.jpg 560w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2011\/09\/IO_BoardAndAmicus182-550x326.jpg 550w\" sizes=\"auto, (max-width: 560px) 100vw, 560px\" \/><\/a><p id=\"caption-attachment-3694\" class=\"wp-caption-text\">Testing the I\/O board with Amicus18<\/p><\/div>\n<p>I tested the LCD with Amicus18 board, and the 3.3 V logic output of the Amicus18 processor successfully drove the LCD data and control pins (although the LCD is powered by +5 V supply).<\/p>\n<p><strong>Summary<\/strong><\/p>\n<p>We discussed about a general purpose I\/O board that is easy to construct and is very useful for rapid prototyping of microcontroller-based projects. The board can be made more versatile by adding further devices like RTC, seven segment LED display, digital potentiometer, etc. All the necessary pins of the devices on the board are accessible through female headers that allows easy connection of the board to a breadboard circuit or other development boards (Arduino and Amicus18, etc) using male jumper wires.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I remember when I first stepped into the world of embedded electronics, I started with doing some basic microcontroller circuits on a breadboard. Breadboard is a wonderful tool for prototyping and testing circuits. When the test of a circuit is successful, you can dissemble it and the board is ready for a new circuit. While working on breadboard was a great learning experience, it was little bit frustrating sometimes when you realized after dissembling a circuit that you have to put it together again or just a part of it for your new project. It happens very often because most<\/p>\n","protected":false},"author":1,"featured_media":3597,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[245,29,183],"tags":[1312,352,344,343],"class_list":["post-3596","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-embedded-lab-projects","category-embedded-lessons","category-tips-and-tricks","tag-amicus18","tag-dev-board","tag-experimenters-board","tag-io-board"],"_links":{"self":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts\/3596","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/comments?post=3596"}],"version-history":[{"count":24,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts\/3596\/revisions"}],"predecessor-version":[{"id":5723,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts\/3596\/revisions\/5723"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/media\/3597"}],"wp:attachment":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/media?parent=3596"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/categories?post=3596"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/tags?post=3596"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}