Commit Graph

113 Commits

Author SHA1 Message Date
ZodiusInfuser d8d0a538c0 Renamed Time to Speed to match MP example 2021-08-24 16:02:29 +01:00
ZodiusInfuser dc7da7d07a Switch rotary back to ws2812 2021-08-24 14:26:35 +01:00
ZodiusInfuser a347eb468f Fixed indentation of rainbow example 2021-08-24 14:16:27 +01:00
ZodiusInfuser a46ea3b097 Bug fix and tweaks to rotary example 2021-08-24 14:15:58 +01:00
ZodiusInfuser a5d9fcf48a Renamed bme68x plasma example to Monitor 2021-08-24 11:41:56 +01:00
ZodiusInfuser 88a9449e0a Added micropython version of bme example, and backported some fixes 2021-08-23 16:21:38 +01:00
ZodiusInfuser bfcb688264 Moved some variables to constants 2021-08-23 14:58:38 +01:00
ZodiusInfuser b72e0a1bb9 Added Plasma2040 example that displays data from the BME68x 2021-08-20 18:17:39 +01:00
ZodiusInfuser 0faa312358 Updated micropython example to use working submodule 2021-08-19 15:16:40 +01:00
ZodiusInfuser 8e763f5efe Added a plasma2040 namespaces 2021-08-19 14:12:56 +01:00
ZodiusInfuser c1cc505e0a Tweak to rotary, for consistency 2021-08-19 12:58:13 +01:00
ZodiusInfuser 64e6d248d5 Updated rainbow example to be consistant across languages 2021-08-19 12:58:13 +01:00
ZodiusInfuser f5aba96419 Added user button to rainbow example 2021-08-19 12:58:13 +01:00
Gee Bartlett 54e59bae27 added staker game demo for plasma2040 2021-08-18 17:26:51 +01:00
Phil Howard 6ce80cd289 Plasma WS2812: Add RGBW and color-order support 2021-08-02 14:37:07 +01:00
Phil Howard 815e784625 Plasma 2040 library & examples
Library:

Includes classes for driving WS2812 and APA102 LEDs and defines for Plasma features.

Encoder Example:

Supports connecting a Rotary Encoder via the Qw'St connector.

Works with APA102 or WS281X pixels.

Pressing A will cycle between:
1. Colour change
2. Brightness change
3. Cycle delay

Pressing B will switch back into auto-cycle mode.

Turning the encoder at any time will switch out of auto cycle mode into parameter adjust mode.

Also includes a bugfix to Rotary Encoder for getting the interrupt correctly.

Rainbow Example:

Basic rainbow cycle, press B to speed up and A to slow down.
2021-08-02 14:36:01 +01:00
Phil Howard f0eff195fe C++ SDK Support for BME280 and BMP280 2021-08-02 14:20:40 +01:00
Phil Howard c402d92e0f Basic MicroPython bindings for BME68X
The BME68X library is *linked* against the MicroPython bindings, rather than compiled directly in.
This saves specifing the list of target files twice.
2021-08-02 14:12:46 +01:00
Phil Howard 22d39faf5f Bringup BME688 and BME680 sensors
This changeset brings the BOSCH BME68X Sensor API library in as a submodule and makes it buildable with CMake.

A thin wrapper- the BME68X driver- provides simple init, configure, read_forced and read_parallel functions.

Two BME688 examples are available for forced-mode and parallel-mode operation.
2021-08-02 14:11:56 +01:00
Phil Howard b80b714c4f BH1745 MicroPython bindings & example 2021-07-30 12:41:06 +01:00
Phil Howard ea6acf2207 Porti BH1745 to Pimoroni I2C 2021-07-30 12:41:06 +01:00
Phil Howard 54169f4150 Add BH1745 driver 2021-07-30 12:41:02 +01:00
Phil Howard 6022928517 Fix Pico Explorer SPI for #162
The switch to common I2C and common definitions for SPI had broken an edge case in Pico Explorer where no backlight pin is used.

The backlight pin was inadvertently set to the front Breakout Garden SPI slot default, which is pin 20- this also happens to be the I2C SDA pin for Pico Explorer, breaking I2C comms.

This fix adds a new special case board "PICO_EXPLORER_ONBOARD" so that ST7789 can be initialised without the backlight pin.

This will be useful for anyone using ST7789 without the rest of the Pico Explorer library, although it feels a little contrived.

Also switches ST7735 over to the common defines.
2021-06-05 19:06:11 +01:00
Phil Howard 8015ffdb95 Rewrite this code for #158
Rewrites the cursed Pico RGB Keypad code so that it can't hurt anyone else.

Turns out the whole loop could have been a bitwise operator.

The true lesson was the people we met along the way.
2021-05-24 16:48:15 +01:00
Phil Howard 7fa9e5bdca Enable -Werror -Wall and fix all the things
Since MicroPython builds under stricter conditions, this change should help minimise pitfalls when writing/binding drivers.
2021-05-17 16:20:42 +01:00
Phil Howard 445737088f Switch drivers over to I2C class, tidy up common include
Removes all driver-specific SDA/SCL pin definitions and defaults.
Pin type is "uint" everywhere, but "PIN_UNUSED" is *int*_max for MicroPython compat. That's still a lot of pins!
Adds baudrate to the I2C class, and allows a driver (like Trackball) to check the baudrate is supported
2021-05-17 11:46:12 +01:00
Phil Howard 42c7555c96 Add common I2C class
This change adds a common I2C class, gathering various I2C functions into a single point of responsibility.

It's necessary for correctly managing the I2C bus pins and state across multiple devices.
2021-05-14 23:02:38 +01:00
Phil Howard 3dfae2ed5c Add a common header for pins and settings
* Add a common/pimoroni.hpp to list default pins for various add-ons
* Move the BG SPI Slot enum here for safe keeping
* Switch all GPIO pin references to "uint" to match Pico SDK and bring back PIN_UNUSED as UINT_MAX
2021-05-14 21:55:19 +01:00
Phil Howard 5ca77b6e28 Cleanup RV3028 comments/whitespace 2021-05-14 13:15:39 +01:00
Phil Howard 904bf657bb Add check for valid Chip ID and fail early
Confused myself by plugging this into a BG base. It gave all the appearance of working, but the time was not counting up.
Turns out the library will happily talk to no device whatsoever and when you "set_time" it's stored in an C array and returned as if it came from the RTC.
2021-05-14 13:15:39 +01:00
ZodiusInfuser 80eddb24c7 Updated RV3028 driver to our coding style and included a standalone C example 2021-05-14 13:15:08 +01:00
Phil Howard d9d37df068 Enable stdio UART for IOE examples 2021-05-14 12:58:16 +01:00
ZodiusInfuser 524e590298 Removed old test cases for IOExpander 2021-05-14 12:41:46 +01:00
ZodiusInfuser 2f3c6fc878 Added C++ examples for IOExpander 2021-05-14 12:41:46 +01:00
ZodiusInfuser ef256e1173 Print text fix 2021-05-14 12:41:46 +01:00
ZodiusInfuser 151daf1c7b Standalone C demos for Enc and Pot 2021-05-14 12:41:46 +01:00
ZodiusInfuser e9a96ceb8a PicoExplorer C demos for Enc and Pot 2021-05-14 12:41:46 +01:00
Phil Howard fd3ef973b6 Fix MICS6814 heater enable, improve demo 2021-05-14 12:41:46 +01:00
ZodiusInfuser 41056e011d Added old pot and encoder examples (will tidy up later) 2021-05-14 12:41:46 +01:00
ZodiusInfuser 05af3e86ba Renamed IOExpander and added Pot, Enc, and MICS specific classes 2021-05-14 12:40:33 +01:00
Phil Howard b088d7286f Enable stdio UART where it's disabled 2021-05-14 10:44:12 +01:00
ZodiusInfuser c4b166d4d9 MSA301 Driver and example tweaks 2021-05-14 10:02:49 +01:00
Jonathan Williamson f211fe67e6 Added MSA301 driver, library, and example 2021-05-14 10:01:29 +01:00
Phil Howard 2b70c1c0d7 AS7262 Add C++ explorer example 2021-05-12 16:05:49 +01:00
Phil Howard c4383647c6 AS7262 tweak C++ demo 2021-05-12 16:04:50 +01:00
ZodiusInfuser a6c738d018 Finished micropython bindings for AS7262, and added example 2021-05-12 16:04:50 +01:00
ZodiusInfuser 5af43311f4 Micropython bindings and minor tweaks for AS7262 2021-05-12 16:04:50 +01:00
Phil Howard 6afbc2e64c AS7262 driver
Co-authored-by: ZodiusInfuser <christopher.parrott2@gmail.com>
2021-05-12 16:04:50 +01:00
Philip Howard 5d27dbc711
Merge pull request #137 from pimoroni/driver/st7789
C++ and MP support and example for 1.3" LCD breakout
2021-05-10 08:59:19 +01:00
Philip Howard 5a60c477ac
Merge pull request #121 from graeme-winter/set-pixels-as-image
Set pixels as image, add show_bitmap_1d(), show_text()
2021-05-07 14:26:33 +01:00