- exposed strain SCK and DO
- use 12 bit PWM (instead of 16 bit) for screen brightness on s3
- added option to use uart serial for s3
- bump nanopb/Nanopb @ 0.4.7
- fixed SPI bus alias and DMA channel for s3
---------
Co-authored-by: Scott Bezek <scottbez1@gmail.com>
- reworked smartknobjs into separate smartknobjs-node and
smartknobjs-webserial packages
- configured CI to build and deploy webserial example to
https://scottbez1.github.io/smartknob/
- Firmware
- Refactor all code to use a log interface rather than `Serial` directly
- Moved platformio.ini to root, so you can load the entire repo in VS Code and still use platformio
- Reduced graphic buffer bit depth to 8 bits (short on RAM :( )
- Implemented threadsafe log interface in interface_task (using a queue for posting log message)
- Created serial protocol interface and 2 implementations - plaintext (default) and protobuf (selected by sending a NULL byte)
- Protobuf protocol is roughly the same architecture as Splitflap's:
- PacketSerial (cobs) framing with NULL delimiters
- CRC32 checksums for packets
- nanopb generated code for encoding/decoding (generated firmware code is checked in, since it should change less frequently and this reduces burden to build the project from scratch)
- Software
- Typescript example host-side code:
- smartknobjs-proto
- Autogenerated types/encoding/decoding protobuf code (using protobufjs)
- smartknobjs
- Helper library for interfacing the with smartknob via serial/protobuf. Implements basic outgoing queue (with retries and ACK checking) and message callback for responding to messages from the SmartKnob
- example
- Basic demo CLI app that uses smartknobjs to connect to the smartknob, send a haptic config, and print state changes and log messages to the console
- Updated view_base and view_screen KiCad projects to v6 files
- Updated footprints to v6 versions
- Fixed all DRC errors and most warnings
- Updated CI
- Run on Ubuntu 22.04 runner
- Updated KiBot and KiKit versions
- Use KiBot for 3d rendering now instead of custom scripts
- Switched to using KiCad text variables for replacement rather than raw text find&replace
- Misc design updates
- Exposed bottom-side thermal pad underneath TMC6300 to make it easier to possibly hand-solder
- Separated GND and GNDA nets, replaced connection with a net-tie, and updated corresponding copper fills around HX711
- Use KiKit for fab automation
- Add splitflap scripts for exporting pcb pdfs, and switch to splitflap script for 3d rendering (for consistency with fab automation)
- Added support in 3d rendering scripts for soldermask & silkscreen colors, option to skip virtual components
- Added silkscreen to base and screen pcbs for commit and date info