{"id":460,"date":"2022-07-05T23:06:50","date_gmt":"2022-07-06T03:06:50","guid":{"rendered":"https:\/\/www.fitzsim.org\/blog\/?p=460"},"modified":"2022-07-05T23:06:50","modified_gmt":"2022-07-06T03:06:50","slug":"ulisp-on-the-smart-response-xe","status":"publish","type":"post","link":"https:\/\/www.fitzsim.org\/blog\/?p=460","title":{"rendered":"uLisp on the SMART Response XE"},"content":{"rendered":"\n<p>The <a href=\"https:\/\/www.fitzsim.org\/blog\/?p=365\">Lisp Badge mini computer<\/a> has turned out to be quite useful and fun for little hardware hacking projects.  Its designer, <a href=\"http:\/\/www.technoblogy.com\/\">David Johnson-Davies<\/a>, suggested that the <a href=\"https:\/\/www.smarttech.com\/en\/education\">SMART<\/a> <a href=\"https:\/\/hackaday.io\/project\/160664-smart-response-xe-reverse-engineering\">Response XE<\/a> would make a good off-the-shelf <a href=\"http:\/\/www.ulisp.com\/\">uLisp<\/a> computer, eliminating the need to build one from scratch.<\/p>\n\n\n\n<p>I ordered a few SMART Response XEs from an auction site to see what was possible.  I found <a href=\"https:\/\/www.bitbanksoftware.com\/blog\">Larry Bank<\/a>&#8216;s excellent <a href=\"https:\/\/github.com\/bitbank2\/SmartResponseXE.git\">Arduino library<\/a> and <a href=\"https:\/\/github.com\/fdufnews\">fdufnews<\/a>&#8216;s<a href=\"https:\/\/github.com\/fdufnews\/SMART-Response-XE-schematics\"> schematics<\/a>, which provided a great starting point.  With guidance from David, I completed an initial <a href=\"https:\/\/git.sr.ht\/~fitzsim\/lisp-badge\/tree\/smart-response-xe\">uLisp port<\/a>:<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fitzsim.org\/screenshots\/smart-response-xe-ulisp.jpg\" alt=\"\" width=\"804\" height=\"569\"\/><figcaption>uLisp 4.1 running on the SMART Response XE<\/figcaption><\/figure>\n\n\n\n<p><br \/><\/p>\n\n\n\n<p>To load the code, I use an ISP programmer and a special PCB with POGO pins:<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fitzsim.org\/screenshots\/smart-response-xe-programmer.jpg\" alt=\"\" width=\"712\" height=\"795\"\/><figcaption><a href=\"https:\/\/github.com\/securelyfitz\/smartresponse\">ISP POGO programming<\/a> of the SMART Response XE<\/figcaption><\/figure>\n\n\n\n<p>On Debian, I run:<\/p>\n\n\n\n<p><code>make ispload<\/code><\/p>\n\n\n\n<p>to load <em>LispBadge.ino<\/em> without a bootloader.<\/p>\n\n\n\n<p>The SMART Response XE uses the <a href=\"https:\/\/www.microchip.com\/en-us\/product\/ATMEGA128RFA1\">ATmega128RFA1 microcontroller<\/a>, which has a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Zigbee\">ZigBee IEEE 802.15.4<\/a> transceiver.  David and I are discussing adding uLisp functions to make use of this capability.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Lisp Badge mini computer has turned out to be quite useful and fun for little hardware hacking projects. Its designer, David Johnson-Davies, suggested that the SMART Response XE would make a good off-the-shelf uLisp computer, eliminating the need to build one from scratch. I ordered a few SMART Response XEs from an auction site &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.fitzsim.org\/blog\/?p=460\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;uLisp on the SMART Response XE&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-460","post","type-post","status-publish","format-standard","hentry","category-lisp","entry"],"_links":{"self":[{"href":"https:\/\/www.fitzsim.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/460","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fitzsim.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fitzsim.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fitzsim.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fitzsim.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=460"}],"version-history":[{"count":3,"href":"https:\/\/www.fitzsim.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/460\/revisions"}],"predecessor-version":[{"id":463,"href":"https:\/\/www.fitzsim.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/460\/revisions\/463"}],"wp:attachment":[{"href":"https:\/\/www.fitzsim.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=460"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fitzsim.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=460"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fitzsim.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=460"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}