* ssd1306: avoid unnecessary heap allocations
* ssd1306: extract i2c and spi bus implementations
* ssd1306: refactor tests -- show fps and heap usage
* ssd1306: bring back the lost exported methods
* Adjust examples
* Fix smoketests for ssd1306
TMC5160: Added TMC5160 support
* Added example code for tmc5160 and smoke test
* Update go.mod
* Updated mod file
* Cleaned up commented out code and updated readme.
* ran go fmt
* Fixed setrampspeed func
* Removed spi1 pin setup in example.go. Renamed SPIComm to spicomm.go
* Removed unused test file
* Removed commented line
Tested on the following chips/boards:
* RP2040 (Raspberry Pi Pico)
* ATSAMD21 (Adafruit PyBadge)
* NRF52840 (PCA10056 developer board)
* ESP8266 (NodeMCU)
* ATmega328p (Arduino Uno)
* ESP32C3 (WaveShare ESP-C3-32S-Kit)
* FE310 (SiFive HiFive1 rev B)
The sensitivity threshold in the example may need to be adjusted per
board though, the default value of 100 typically recognizes when a cable
is being touched but the RP2040 for example is capable of doing much
more precise measurements if the power supply is sufficiently
noise-free.
Tested with a rp2040.
TODO: add the ability to set the absolute humidity for more accurate
sensor details. The formula for that is rather complex, so I've left
this as a future addition.
I wrote this for the PineTime, and all available sensors (accelerometer,
step counter, temperature sensor) do work.
This commit also includes two "configuration files", that actually
appear to be firmware files to run on the accelerometer for special
features like step counting.
I'm not sure where they originally came for, and I don't know the
copyright status of them. However, Bosch has open-sourced the BMA423
driver which includes a similar binary blob and the InfiniTime and
Wasp-OS projects have been shipping these blobs without issues, so I
think it's reasonably safe to include these binary blobs directly in the
source.
This speeds up the smoke tests by over 5x on my laptop, but keeps two
features that I find very important:
1. A stable output, which is used by tools like sizediff.
2. An easy to change text file with all the smoke tests.
This means that parsing is a little bit harder, but with the help of
packages like shlex and flag this is actually not very difficult.