Libsibo – Talking to SIBO Peripherals Using Arduino
libsibo - Talking to SIBO Peripherals using Arduino | Details | Hackaday.io
<p>Finally, it's here! Some proper code for reading SSDs and (eventually) other SIBO peripherals.</p>
<p>I've spun off some the Arduino code from SIBODUMP, added the FlashFS code from SIBOIMG, ported it to PlatformIO, and pushed it to GitHub.</p>
<p><img class="lazy"></p>
<figure><img class="lazy" data-src="https://cdn.hackaday.io/images/6472801657186065344.file-1657186065330-985153118"></figure>
<p>So, the TL;DR is:</p>
<ul><li>Two major bugs squished.</li><li>It works with more boards now (Pico, ESP32, Arduino Nano)</li><li>It's still uses the Arduino libraries, but it's now based on PlatformIO</li><li>You'll need level shifters for 3.3v (I've included an example)</li><li>Would regular Raspberry Pi compatibility be useful?</li><li>Next steps</li><li>Discord chats</li></ul>
<p>So, take a look at the code over on GitHub, then read on.</p>
<p><a href="https://github.com/PocketNerdIO/libsibo">https://github.com/PocketNerdIO/libsibo</a></p>
<h1>Bugs? What bugs?</h1>
<p>In my attempts to tidy up the code, I'd completely broken the PORTD code for Arduino boards. This was specifically with Data Read frames. Basically, I'd added a return where one wasn't needed. This meant that I wasn't sending the final idle bit, shortening the length of the frame to 11 bits and completely confusing the SSD. In addition, I wasn't returning anything to the main code, so it just sent back x. I removed the erroneous return, and everything went back to normal.</p>
<p><img class="lazy"><br></p><figure><img class="lazy" data-src="https://cdn.hackaday.io/images/9852831657186101015.file-1657186100999-80236106"></figure>
<p>Also, it <span></span>turns out I'd completely broken device selection (used for SSD bank shifting) after I moved the code