You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 2024/04/endbasic-st7735s.html
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -77,7 +77,7 @@
77
77
</span></span></span></code></pre></div><p>Even though this looks complex, this composition of three different types keeps the responsibilities of each layer separate. The layers help make the logic simpler to understand, allow the possibility of supporting more LCDs with ease, and make unit-testing a reality. And thanks to Rust’s static dispatch, the overhead of the separate types is minimal.</p><p>Witness the finished result:</p><figure><videowidth=100%controls>
78
78
<sourcesrc=/images/2024-04-26-endbasic-st7735s-snake.movtype=video/mp4></video><figcaption>EndBASIC running the snake game on the Raspberry Pi with the ST7735s console, showing the final graphics support as well as interaction with the physical buttons.</figcaption></figure><h1id=build-your-own-developer-kit>Build your own Developer Kit</h1><p>Does the above sound cool? Do you want to play with it? Here are the parts you’ll need to build you own:</p><ul><li><p><strong><ahref="https://www.amazon.com/ELEMENT-Element14-Raspberry-Pi-Motherboard/dp/B07BDR5PDW?&linkCode=ll1&tag=blogsystem5-20&linkId=cab45a45b3e43934d489486d416be7a0&language=en_US&ref_=as_li_ss_tl">Raspberry Pi 3 B+</a>:</strong> I suppose a newer model will work but I don’t have one to try it out; let me know if it does! I also have my eyes on the <ahref="https://www.amazon.com/gp/product/B074P6BNGZ?th=1&linkCode=ll1&tag=blogsystem5-20&linkId=1f5bdad0f78d4512685cda89db5c6d87&language=en_US&ref_=as_li_ss_tl">Libre Computer Board - Le Potato</a>, but if you go this route, know that it will <em>definitely</em> require extra work in EndBASIC to be functional. Hardware donations welcome if you want me to give it a try 😉.</p></li><li><p><strong><ahref="https://www.amazon.com/CanaKit-Raspberry-Supply-Adapter-Listed/dp/B00MARDJZ4?&linkCode=ll1&tag=blogsystem5-20&linkId=ef82e298644b68298cd9bf5559b74aaa&language=en_US&ref_=as_li_ss_tl">CanaKit 5V 2.5A Power Supply</a>:</strong> Yes, the Raspberry Pi is USB-powered but you need a lot of power for it to run properly—particularly if you are going to attach any USB devices like hard disks. Don’t skimp on the power supply. This is the one I have and works well.</p></li><li><p><strong><ahref="https://www.amazon.com/PNY-Elite-microSDHC-Memory-P-SDU32GU185GW-GE/dp/B07R8GVGN9?th=1&linkCode=ll1&tag=blogsystem5-20&linkId=33a25c49f236d8bd6e8f2259a6c57148&language=en_US&ref_=as_li_ss_tl">PNY 32GB microSD card</a>:</strong> Buy any microSD card you like. The SD bay is incredibly slow no matter what and 32GB should be plenty for experimentation.</p></li><li><p><strong><ahref="https://www.amazon.com/gp/product/B077Z7DWW1?ie=UTF8&psc=1&linkCode=ll1&tag=&linkId=7a97236b22ca32377d308871eedde6fc&language=en_US&ref_=as_li_ss_tl">waveshare 1.44inch LCD Display HAT 128x128</a>:</strong> The star product of this whole article! You may find other LCD hats and I’m sure they can be made to work, but they’ll require code changes. Hopefully the abstractions I implemented make it easy to support other hats, but I can’t tell yet. Again, hardware donations welcome if you want to keep me busy 😉.</p></li></ul><p>Once you have those pieces, get either Raspbian or Ubuntu, flash the image to the microSD, and boot the machine. After that, you have to build and run EndBASIC from unreleased sources until I publish 0.11:</p><divclass=highlight><pretabindex=0class=chroma><codeclass=language-shelldata-lang=shell><spanclass=line><spanclass=cl>$ cargo install --git<spanclass=o>=</span>https://github.com/endbasic/endbasic.git --features<spanclass=o>=</span>rpi
</span></span></code></pre></div><p>I know, I know, this is all quite convoluted. You have to manually go through the process of setting up Linux, then installing Rust, and then building EndBASIC from source. All of this is super-slow too.</p><p>Which means… what I want to do next is to build a complete “Developer Kit”, including a lightweight prebuilt SD image that gives you access to EndBASIC out of the box in just a few seconds. Right now I’m playing with downsizing a NetBSD/evbarm build so that the machine can boot quickly and, once I have that ready, I’ll have to port EndBASIC’s hardware-specific features to work on it. I don’t think I’ll postpone 0.11 until this is done, but we’ll see.</p><p>Interested in any of this? Please leave a note! And if you have tried the above at all with your own hardware, post your story too!</p><divclass="row post-links"><divclass="col-6 text-center"><span></span></div><divclass="col-6 text-center"><span><ahref=https://www.endbasic.dev/2023/01/endbasic-parsing-difficulties.html>Previous post »</a></span></div></div></article><footerclass="pt-5 pb-3"><divclass=container><divclass=row><divclass="col-md-8 text-left"><formclass=form-inlineaction=https://hugo-dynamic.endbasic.dev/api/sites/6a633c2c-7fda-11ec-86e4-1cfd087199c2/subscribers/addmethod=post><inputtype=textname=emailplaceholder="Enter your email" class="form-control input-sm text-center mx-1" size=20>
80
+
</span></span></code></pre></div><p>I know, I know, this is all quite convoluted. You have to manually go through the process of setting up Linux, then installing Rust, and then building EndBASIC from source. All of this is super-slow too.</p><p>Which means… what I want to do next is to build a complete “Developer Kit”, including a lightweight prebuilt SD image that gives you access to EndBASIC out of the box in just a few seconds. Right now I’m playing with downsizing a NetBSD/evbarm build so that the machine can boot quickly and, once I have that ready, I’ll have to port EndBASIC’s hardware-specific features to work on it. I don’t think I’ll postpone 0.11 until this is done, but we’ll see.</p><p>Interested in any of this? Please leave a note! And if you have tried the above at all with your own hardware, post your story too!</p><divclass="row post-links"><divclass="col-6 text-center"><span><ahref=https://www.endbasic.dev/2024/07/new-blog.html>« Next post</a></span></div><divclass="col-6 text-center"><span><ahref=https://www.endbasic.dev/2023/01/endbasic-parsing-difficulties.html>Previous post »</a></span></div></div></article><footerclass="pt-5 pb-3"><divclass=container><divclass=row><divclass="col-md-8 text-left"><formclass=form-inlineaction=https://hugo-dynamic.endbasic.dev/api/sites/6a633c2c-7fda-11ec-86e4-1cfd087199c2/subscribers/addmethod=post><inputtype=textname=emailplaceholder="Enter your email" class="form-control input-sm text-center mx-1" size=20>
81
81
<buttontype=submitclass="btn btn-sm btn-light mx-1">Subscribe to updates</button></form></div><divclass="col-md-4 text-right">EndBASIC
<!doctype html><htmllang=enxmlns:fb=http://ogp.me/ns/fb#><head><metacharset=utf-8><metahttp-equiv=x-ua-compatiblecontent="IE=edge"><metaname=viewportcontent="width=device-width,initial-scale=1,shrink-to-fit=no"><metaproperty="og:site_name" content="EndBASIC"><title>New blog and a call for beta-testing - EndBASIC</title><metaproperty="og:title" content="New blog and a call for beta-testing - EndBASIC"><metaname=descriptioncontent="Dear EndBASIC enthusiasts!
2
+
In preparation for the imminent 0.11 release, which needs some beta-testing right now, I have created a brand-new &ldquo;blog&rdquo; section in the EndBASIC website.
In preparation for the imminent 0.11 release, which needs some beta-testing right now, I have created a brand-new &ldquo;blog&rdquo; section in the EndBASIC website.
<spanclass=navbar-toggler-icon></span></button><divclass="collapse navbar-collapse" id=navbarToggler><ulclass="navbar-nav mr-auto mt-2 mt-lg-0"><liclass=nav-item><aclass=nav-linkhref=/about.html>About</a></li><liclass=nav-item><aclass=nav-linkhref=/blog.html>Blog</a></li><liclass=nav-item><aclass=nav-linkhref=/gallery.html>Gallery</a></li><liclass=nav-item><aclass=nav-linkhref=/download.html>Download</a></li><liclass=nav-item><aclass=nav-linkhref=/docs.html>Documentation</a></li><liclass=nav-item><aclass=nav-linkhref=/community.html>Community</a></li></ul></div></nav><divclass="position-relative overflow-hidden p-3 p-md-5 m-md-3 text-center bg-dark bg-grid"><divclass="p-lg-1 mx-auto my-1 text-white text-left"><h1class="title display-4 font-weight-normal">Ready<br>New blog and a call for beta-testing█</h1></div></div><articleclass=container><p>Dear EndBASIC enthusiasts!</p><p>In preparation for the imminent 0.11 release, which needs some beta-testing right now, I have created a brand-new “blog” section in the EndBASIC website.</p><p>As you might now, I had been previously posting EndBASIC-related content <ahref=https://jmmv.dev/>to my personal blog</a> but… such articles, <em>especially</em> release announcements, should have primarily lived in this site from the very beginning.</p><p>So, how will you receive notifications?</p><ul><li><p><strong>Via email.</strong> Those of you who had previously requested to receive updates to the EndBASIC project via the subscription form at the bottom of this page will now actually receive content notifications thanks to <ahref=https://endtracker.azurewebsites.net/>EndTRACKER</a>.</p><p>(If you want to unsubscribe upon receipt of this email, I’ll understand. Search your email archives for a message titled “EndBASIC - Email subscription confirmed” — and if you can’t find it, let me know and I’ll handle the unsubscription for you.)</p></li><li><p><strong>Via an RSS reader.</strong> Just subscribe to <ahref=/feed.xml>https://www.endbasic.dev/feed.xml</a>.</p></li></ul><p>For outreach purposes, however, you may notice reposts of new content to my Substack publication, <ahref=https://blogsystem5.substack.com/>Blog System/5</a>, and I’d recommend you subscribe to it if you haven’t yet wink, wink.</p><p>But now… time for the exciting request. I need beta-testers! EndBASIC 0.11 is pretty much feature complete and the <em>main</em> thing it includes is the much-requested support for custom functions and subroutines! That’s right, you can finally do stuff like this:</p><divclass=highlight><pretabindex=0class=chroma><codeclass=language-basicdata-lang=basic><spanclass=line><spanclass=cl><spanclass=kr>FUNCTION</span><spanclass=w></span><spanclass=vg>sum</span><spanclass=p>(</span><spanclass=vg>a</span><spanclass=p>,</span><spanclass=w></span><spanclass=vg>b</span><spanclass=p>)</span>
</span></span></code></pre></div><p>If you are curious and want to help with the beta-testing, <ahref=https://repl-staging.endbasic.dev>head to the staging deployment</a> right now! The built-in <code>HELP</code> documentations is up-to-date to describe these new features, and the <ahref=/docs.html>documentation in this site</a> will receive a facelift when 0.11 is out the door.</p><p>Psst, also try to run <code>DISASM</code>. You may like it.</p><divclass="row post-links"><divclass="col-6 text-center"><span></span></div><divclass="col-6 text-center"><span><ahref=https://www.endbasic.dev/2024/04/endbasic-st7735s.html>Previous post »</a></span></div></div></article><footerclass="pt-5 pb-3"><divclass=container><divclass=row><divclass="col-md-8 text-left"><formclass=form-inlineaction=https://hugo-dynamic.endbasic.dev/api/sites/6a633c2c-7fda-11ec-86e4-1cfd087199c2/subscribers/addmethod=post><inputtype=textname=emailplaceholder="Enter your email" class="form-control input-sm text-center mx-1" size=20>
17
+
<buttontype=submitclass="btn btn-sm btn-light mx-1">Subscribe to updates</button></form></div><divclass="col-md-4 text-right">EndBASIC
0 commit comments