{"id":244,"date":"2024-08-12T01:12:51","date_gmt":"2024-08-12T08:12:51","guid":{"rendered":"http:\/\/elliottjohnson.net\/blog\/?p=244"},"modified":"2024-08-12T01:12:51","modified_gmt":"2024-08-12T08:12:51","slug":"cl-useq-a-common-lisp-library-for-working-with-useq","status":"publish","type":"post","link":"http:\/\/elliottjohnson.net\/blog\/cl-useq-a-common-lisp-library-for-working-with-useq\/","title":{"rendered":"cl-useq &#8211; A Common Lisp Library for working with uSEQ"},"content":{"rendered":"\n<p>Had a few moments this weekend to put together a library to connect to <a href=\"https:\/\/github.com\/Emute-Lab-Instruments\/uSEQ\" data-type=\"link\" data-id=\"https:\/\/github.com\/Emute-Lab-Instruments\/uSEQ\">uSEQ. <\/a>It uses a standard common-lisp implementation (tested with <a href=\"http:\/\/sbcl.org\/\">SBCL<\/a>) and <a href=\"https:\/\/github.com\/jetmonk\/cl-libserialport\">cl-libserial-port<\/a> to form a serial connection to the uSEQ device (RP2040 based usb device).<\/p>\n\n\n\n<p>I implemented a basic REPL to have a back and forth with the device.  uSEQ ships with a much more full featured library called <a href=\"https:\/\/github.com\/Emute-Lab-Instruments\/uSEQ\/tree\/main\/interfaces\/useqedit\">useqedit<\/a> that I would recommend most people to use.  I wrote this library to fold uSEQ into my native coding environment, which is Emacs and <a href=\"https:\/\/github.com\/slime\/slime\">SLIME<\/a>.<\/p>\n\n\n\n<p>The cl-useq library can be found on my <a href=\"https:\/\/github.com\/elliottjohnson\/cl-useq.git\">github<\/a> along with a description and examples.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Had a few moments this weekend to put together a library to connect to uSEQ. It uses a standard common-lisp implementation (tested with SBCL) and cl-libserial-port to form a serial connection to the uSEQ device (RP2040 based usb device). I &hellip; <a href=\"http:\/\/elliottjohnson.net\/blog\/cl-useq-a-common-lisp-library-for-working-with-useq\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"footnotes":""},"categories":[11],"tags":[],"class_list":["post-244","post","type-post","status-publish","format-standard","hentry","category-personal"],"_links":{"self":[{"href":"http:\/\/elliottjohnson.net\/blog\/wp-json\/wp\/v2\/posts\/244","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/elliottjohnson.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/elliottjohnson.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/elliottjohnson.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/elliottjohnson.net\/blog\/wp-json\/wp\/v2\/comments?post=244"}],"version-history":[{"count":1,"href":"http:\/\/elliottjohnson.net\/blog\/wp-json\/wp\/v2\/posts\/244\/revisions"}],"predecessor-version":[{"id":245,"href":"http:\/\/elliottjohnson.net\/blog\/wp-json\/wp\/v2\/posts\/244\/revisions\/245"}],"wp:attachment":[{"href":"http:\/\/elliottjohnson.net\/blog\/wp-json\/wp\/v2\/media?parent=244"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/elliottjohnson.net\/blog\/wp-json\/wp\/v2\/categories?post=244"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/elliottjohnson.net\/blog\/wp-json\/wp\/v2\/tags?post=244"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}