Now that the hardware is proven, and assembly has begun in earnest, I'm left with the list of todo items for the firmware to allow users to draw what they want to draw.
The testing cycle for a number of these items can be kind of rough, and i've begun building tools to help things go smoother. A couple of weeks ago I started serving a webpage on a Raspberry Pi Pico that would take form data and send I2C commands to the Mac SAO. I have constantly hacked away at it and after adding an interpreter, it's allowing me to find where problems might be
This is my helper app. The send feature is still relatively simple, but the read bytes feature will pull down the bytes from the SAO, and interpret them. Depending on the command, it may read additional bytes for arguments (such as the Move Mouse command taking an X and Y coordinate). It tracks the address for a given command so you can see what you're looking at.
My current plan is to have a version of this alongside the documentation - and hopefully with a command sequence builder. While some people would have fun reading through docs and figuring out how to assemble their own sequences, sometimes a helper tool gets you where you need to go.
Here's an early version of a React-based app - which is programmatically far more complex but also a lot better at managing state than my handcrafted Javascript:
My current functional version (which largely includes just fields for typing in bytes) is on a Pico W - making it convenient to write both the web app and the master i2c component in a single piece. Since we don't yet know what is onboard the Supercon 8 Badge, I've been giving thought to the most convenient approach.
It turns out that Chromium-based browsers are capable of communicating over a Serial port. There's some permissions of course, but it's reasonable to assume that you could hookup to a browser, open the port, and then start sending messages. I had some misgivings about sending the bytes over UART and then translating them to i2c - but the web server version is already doing that. This is just a different comms mode.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.