{"id":12733,"date":"2018-02-13T08:00:21","date_gmt":"2018-02-13T16:00:21","guid":{"rendered":"https:\/\/blog.digilentinc.com\/?p=12733"},"modified":"2023-02-07T20:26:51","modified_gmt":"2023-02-08T04:26:51","slug":"the-basys-3-beloved-educational-board-or-childhood-nightmare","status":"publish","type":"post","link":"https:\/\/digilent.com\/blog\/the-basys-3-beloved-educational-board-or-childhood-nightmare\/","title":{"rendered":"The Basys 3: Beloved Educational Board or Childhood Nightmare?"},"content":{"rendered":"<p>From time to time I will post small projects, <a href=\"https:\/\/digilent.com\/blog\/index.php\/controlling-a-stepper-motor-with-an-fpga\/\">such as controlling a stepper motor with the Basys 3<\/a>\u00a0and how to use the <a href=\"https:\/\/digilent.com\/blog\/index.php\/using-the-pmodjstk-to-control-a-stepper-motor-with-the-basys-3\/\">PmodJSTK to control a stepper motor with the Basys 3<\/a>. For those of you that read those posts, you know exactly why I wrote those. For those of you that didn&#8217;t, they were pieces of a large demo I had been working on.<\/p>\n<p>I, along with many other people, have childhood memories\u00a0of walking into a movie theater, grocery store, or arcade and seeing a large glass box filled with toys. There was always that one toy either buried or perched right on top that I wanted. All I had to do was get some money from my parents and move the claw over the toy and press the button. In my childish innocence, it seemed so simple.<\/p>\n<figure style=\"width: 498px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"http:\/\/i.giphy.com\/ciadMxfm3135m.gif\" alt=\"\" width=\"498\" height=\"281\" \/><figcaption class=\"wp-caption-text\">GIF from http:\/\/i.giphy.com\/ciadMxfm3135m.gif.<\/figcaption><\/figure>\n<p>However, as many of you can probably guess, I soon found out I was wrong. It was nearly impossible to grab any toy, let alone the one I wanted.<\/p>\n<p>Well I decided, by Larissa&#8217;s suggestion to turn the <a href=\"https:\/\/digilent.com\/shop\/basys-3-artix-7-fpga-trainer-board-recommended-for-introductory-users\/\">Basys 3<\/a> into the brain of one of these devices.<\/p>\n<figure id=\"attachment_12755\" aria-describedby=\"caption-attachment-12755\" style=\"width: 600px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/digilent.com\/blog\/?attachment_id=12755\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-12755 size-medium\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181340-1-600x338.jpg\" alt=\"The Basys 3, now pure evil.\" width=\"600\" height=\"338\" data-wp-pid=\"12755\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181340-1-600x338.jpg 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181340-1-768x432.jpg 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181340-1-1024x576.jpg 1024w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181340-1-800x450.jpg 800w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181340-1-1200x675-cropped.jpg 1200w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><figcaption id=\"caption-attachment-12755\" class=\"wp-caption-text\">The Basys 3, now pure evil.<\/figcaption><\/figure>\n<p>Being that this is such a big project, I&#8217;m going to be making Instructables for each piece, and putting them into one collection. You can view this collection and the Instructables that I&#8217;ve created thus far in <a href=\"https:\/\/www.instructables.com\/The-Claw-Game\/\">The Claw.<\/a><\/p>\n<figure id=\"attachment_12775\" aria-describedby=\"caption-attachment-12775\" style=\"width: 872px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.instructables.com\/The-Claw-Game\/\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-12775 size-full\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/Capture.jpg\" alt=\"The Claw, instructables collection.\" width=\"872\" height=\"768\" data-wp-pid=\"12775\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/Capture.jpg 872w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/Capture-600x528.jpg 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/Capture-768x676.jpg 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/Capture-110x96.jpg 110w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/Capture-800x705.jpg 800w\" sizes=\"auto, (max-width: 872px) 100vw, 872px\" \/><\/a><figcaption id=\"caption-attachment-12775\" class=\"wp-caption-text\">The Claw, Instructables collection.<\/figcaption><\/figure>\n<p>One of the awesome things about the claw game is that designing it in FPGA used almost all of the FPGA skills that I have learned so far in school. It uses state machines, PWM, SPI, debouncing, and a multitude of other topics. This makes it a pretty flashy and cool way to get someone into FPGA. So, to help facilitate the process I will be making an Instructable on each piece of the design.<\/p>\n<figure id=\"attachment_11932\" aria-describedby=\"caption-attachment-11932\" style=\"width: 1135px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/01\/claw_state_diagram.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-11932 size-full\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/01\/claw_state_diagram.png\" alt=\"An early version of the claw state diagram.\" width=\"1135\" height=\"729\" data-wp-pid=\"11932\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/01\/claw_state_diagram.png 1135w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/01\/claw_state_diagram-600x385.png 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/01\/claw_state_diagram-768x493.png 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/01\/claw_state_diagram-1024x658.png 1024w\" sizes=\"auto, (max-width: 1135px) 100vw, 1135px\" \/><\/a><figcaption id=\"caption-attachment-11932\" class=\"wp-caption-text\">An early version of the claw state diagram.<\/figcaption><\/figure>\n<p>Now I&#8217;m sure you all have a burning question in your mind, Why tarnish the pure\u00a0reputation of the Basys 3 by turning it into such an evil device?<\/p>\n<figure id=\"attachment_12768\" aria-describedby=\"caption-attachment-12768\" style=\"width: 600px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181638-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-12768 size-medium\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181638-1-600x338.jpg\" alt=\"The beautiful case made by Daniel, one of the Engineering Interns. \" width=\"600\" height=\"338\" data-wp-pid=\"12768\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181638-1-600x338.jpg 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181638-1-768x432.jpg 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181638-1-1024x576.jpg 1024w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181638-1-800x450.jpg 800w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><figcaption id=\"caption-attachment-12768\" class=\"wp-caption-text\">The beautiful case made by Daniel, one of the Engineering Interns.<\/figcaption><\/figure>\n<p>Well the claw game has a relatively simple state machine and doesn&#8217;t use any super complex logic, by FPGA standards, so I didn&#8217;t need a large FPGA. The Basys 3 also has 32 I\/O pins accessible via the Pmod ports. I happened to need 30 of them, which makes it almost meant to be.<\/p>\n<figure id=\"attachment_12769\" aria-describedby=\"caption-attachment-12769\" style=\"width: 600px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181641-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-12769 size-medium\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181641-1-600x338.jpg\" alt=\"The stepper motor track, built by another Engineering Intern, Matt.\" width=\"600\" height=\"338\" data-wp-pid=\"12769\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181641-1-600x338.jpg 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181641-1-768x432.jpg 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181641-1-1024x576.jpg 1024w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181641-1-800x450.jpg 800w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><figcaption id=\"caption-attachment-12769\" class=\"wp-caption-text\">The stepper motor track, built by another Engineering Intern, Matt.<\/figcaption><\/figure>\n<p>Why so many I\/O pins, you ask? Well, there were a lot of limit switches involved in the design. After working on it for three\u00a0straight days I had to recruit some help from Tommy&#8230;it turned out all they needed was debouncing.<\/p>\n<figure id=\"attachment_12753\" aria-describedby=\"caption-attachment-12753\" style=\"width: 600px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181314-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-12753 size-medium\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181314-1-600x338.jpg\" alt=\"So many limit switches.\" width=\"600\" height=\"338\" data-wp-pid=\"12753\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181314-1-600x338.jpg 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181314-1-768x432.jpg 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181314-1-1024x576.jpg 1024w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181314-1-800x450.jpg 800w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><figcaption id=\"caption-attachment-12753\" class=\"wp-caption-text\">So many limit switches.<\/figcaption><\/figure>\n<p>I also needed three of the Pmod ports for 3 <a href=\"https:\/\/digilent.com\/shop\/pmodstep-stepper-motor-driver\/\">PmodSTEP<\/a>s, which controlled the stepper motors, and one <a href=\"https:\/\/digilent.com\/shop\/pmodjstk-two-axis-joystick\/\">PmodJSTK<\/a>, for controlling the X, Y movement. Then of course we had to reserve 2 I\/O pins for a big arcade style button.<\/p>\n<figure id=\"attachment_12752\" aria-describedby=\"caption-attachment-12752\" style=\"width: 600px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181304.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-12752 size-medium\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181304-600x338.jpg\" alt=\"So much I\/O!!!\" width=\"600\" height=\"338\" data-wp-pid=\"12752\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181304-600x338.jpg 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181304-768x432.jpg 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181304-1024x576.jpg 1024w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181304-800x450.jpg 800w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><figcaption id=\"caption-attachment-12752\" class=\"wp-caption-text\">So much I\/O!!!<\/figcaption><\/figure>\n<p>For updates keep and eye on the collection as I continue to finish Instructables,\u00a0and of course keep following the blog!<\/p>\n<p>And now finally, The Claw!!!<\/p>\n<p><iframe loading=\"lazy\" title=\"video 1456886451\" width=\"735\" height=\"551\" src=\"https:\/\/www.youtube.com\/embed\/an1Kka7z_dI?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<div class='watch-action'><div class='watch-position align-left'><div class='action-like'><a class='lbg-style6 like-12733 jlk' data-task='like' data-post_id='12733' data-nonce='1cb2a57891' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Like' \/><span class='lc-12733 lc'>+1<\/span><\/a><\/div><div class='action-unlike'><a class='unlbg-style6 unlike-12733 jlk' data-task='unlike' data-post_id='12733' data-nonce='1cb2a57891' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Unlike' \/><span class='unlc-12733 unlc'>0<\/span><\/a><\/div><\/div> <div class='status-12733 status align-left'><\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>Join Kaitlyn as she with utmost regret, documents the Basys 3&#8217;s transition to the dark side. <\/p>\n","protected":false},"author":18,"featured_media":12755,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[35,4326],"tags":[1662,95],"ppma_author":[4466],"class_list":["post-12733","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fpga","category-teaching-training","tag-fpga","tag-projects"],"jetpack_featured_media_url":"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/03\/20160227_181340-1.jpg","authors":[{"term_id":4466,"user_id":18,"is_guest":0,"slug":"kaitlyn","display_name":"Kaitlyn Franz","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/9276021eaa44781ce19f364cfca46ada25e1500769cf4803a095a5bae83c912a?s=96&d=mm&r=g","1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":"","9":"","10":""}],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/12733","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/comments?post=12733"}],"version-history":[{"count":2,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/12733\/revisions"}],"predecessor-version":[{"id":29651,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/12733\/revisions\/29651"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media\/12755"}],"wp:attachment":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media?parent=12733"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/categories?post=12733"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/tags?post=12733"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=12733"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}