Commit Graph

396 Commits

Author SHA1 Message Date
Phil Howard 70a1b26041 ADC: Avoid re-initialising ADC.
Only init the ADC if it's not already running.

In MicroPython this could trounce an already initialised and configured ADC,
and would disable the temperature sensor if it had been enabled by a user
before initialising any of the affected libraries.
2023-06-04 21:46:23 +01:00
Phil Howard bff6bd023e Unicorn: Move gamma LUTs to pimoroni_common. 2023-06-04 21:46:12 +01:00
Phil Howard 652de85f4d Tufty 2040: RGB565 DMA display update.
Use DMA to transfer a native RGB565 display buffer to PIO rather than pushing into the TX FIFO in a loop.

Co-authored by @zx64 - https://github.com/pimoroni/pimoroni-pico/issues/776
2023-05-12 13:38:19 +01:00
Philip Howard 8648196cc2
Merge pull request #774 from pimoroni/breakout_encoder_wheel
Support for RGB Encoder Wheel Breakout
2023-05-12 11:58:15 +01:00
ZodiusInfuser 12e38c1157 Implemented GPIO MP support for Encoder wheel 2023-05-10 14:54:32 +01:00
ZodiusInfuser 653090c89e Exposed support for GPIO pins on encoder wheel 2023-05-10 12:46:00 +01:00
Ray Bellis bfb6490ec8 fix dangling pointer error 2023-05-08 13:19:47 +01:00
Ray Bellis 32dfdc6a20 use __builtin_bswap32 2023-05-08 13:17:51 +01:00
Niko Kotilainen 1dcad21ed2 Pico Display Pack: Display init fixes. 2023-05-04 15:07:27 +01:00
ZodiusInfuser e3f9f14dcf Fix ioe reset timing out too early, and encoder reversed 2023-05-03 12:34:59 +01:00
ZodiusInfuser 1cfae8b5f8 More work on encoder wheel C++, adding reset to ioe 2023-05-02 22:55:19 +01:00
ZodiusInfuser 7c11593f7c Fix for IOExpander address not getting changed 2023-05-02 10:22:14 +01:00
Phil Howard 07bc005958 LTR559: Refactor std::vector lookup to template. 2023-03-27 15:11:30 +01:00
Phil Howard cc5a2bdb6f Dot Matrix: Replace std::map to avoid excessive init heap usage. 2023-03-27 15:11:30 +01:00
Phil Howard af2b74d65d Servo/Motor/PWM: Avoid runtime memory alloc. 2023-03-16 13:25:19 +00:00
Phil Howard a0ab44067f BMP280: Avoid runtime memory allocation. 2023-03-16 13:25:19 +00:00
Phil Howard bcebccca1d BME68X: Avoid runtime memory allocation. 2023-03-16 13:25:19 +00:00
Phil Howard 59ae107982 BME280: Avoid runtime memory allocation. 2023-03-16 13:25:19 +00:00
Phil Howard cb39d5c0f3 PCF85063A: Remove static keyword.
The use of "static" in `set_datetime` meant that "data" was only getting set to the correct values *once.*
2023-03-02 15:38:08 +00:00
Phil Howard 8ff40fae6e MLX90640: MicroPython module. 2023-02-23 16:52:59 +00:00
Phil Howard 2ff5d462c8 MLX90640: Driver and 32x32 LED matrix example 2023-02-22 13:06:55 +00:00
Phil Howard 1659139c97 Inky 7.3: Rename class. 2023-02-20 12:29:59 +00:00
Phil Howard 43382ba2c0 Inky 7.3: Add ShiftRegister driver. 2023-02-20 12:29:59 +00:00
Phil Howard 93979cb735 Inky 7.3: Rename driver to inky73. 2023-02-20 12:29:59 +00:00
AndrewCapon 0067b101a0 Inky 7.3: Direct pen & PSRAM update. 2023-02-20 12:29:52 +00:00
Phil Howard 21b4ff68d7 Change __bswap16 to __builtin_bswap16. 2023-02-10 22:12:02 +00:00
ZodiusInfuser cacfbd174b Previous idea did not work, so now checking color order for every pixel set 2023-01-31 14:07:14 +00:00
ZodiusInfuser 1343f23316 Attempt at adding color order support to Hub75 2023-01-31 13:00:22 +00:00
Gee Bartlett 104c819412
Hub75: Update to use Picographics (#601)
* have a basic pg working needs optimizing

* working well ported some examples from GU

* started on micropython module

* Fixes to get new Hub75 compiling in MP

* stripped down for faster compilling

* Update hub75.cmake

* added hub75 to galatic and eviro as it is needed for picographics

* Update picographics.c

* added hu75 update

* added _ModPicoGraphics_obj_t

* Update hub75.cpp

* update bindings

* some examples needs linting

* added other panel sizes and linted

* Update picographics.cpp

* Update picographics.c

* fixing gc memory allocation

* Update hub75.cpp

* Update interstate75_balls_demo.cpp

* review

* broke

* working with built in panel defs

* still borked

* not much change needs review

* Update hub75.cpp

* reverted alot of things

* adding i75 lib

* lots of updates ready to test compile mp

* Update picographics.h

* little tweaks

* an inability to count fixed!

* fixed some readme's

* lots of tiding

* fixed linting and removed experimental code

* Minor formatting

* Minor formatting and cmake tidy

* Removed unneeded parts of examples

* Final tidy

* tidy examples and adding more

* updated to new library

* documentation tweaks

* fixed inclusion of interstate75 module

* syncing some stuff

* fixed linting

Co-authored-by: ZodiusInfuser <christopher.parrott2@gmail.com>
2022-12-16 20:53:16 +00:00
Hel Gibbons be1c39e80c
Merge pull request #555 from MichaelBell/fix-ltp305-brightness
Fix setting the LTP305 brightness
2022-11-08 11:26:45 +00:00
Gee Bartlett 4f4b0b277c updated readme's 2022-11-07 18:07:48 +00:00
ZodiusInfuser 678b8d7cf9 Review of GfxPack code 2022-11-07 12:50:50 +00:00
Gee Bartlett 7be5376abf some small fixes for easier merging later 2022-11-02 20:58:20 +00:00
Gee Bartlett 952be145ec Merge branch 'main' into driver/st7567 2022-11-02 20:50:18 +00:00
Gee Bartlett 79eb998183 adjustments prior to micropython 2022-11-02 20:43:07 +00:00
Gee Bartlett e85367a961 started mp 2022-10-31 13:44:23 +00:00
Mike Bell b0d7f4c611 Fix setting the LTP305 brightness 2022-10-30 20:29:22 +00:00
Gee Bartlett 9af1081e68 gfx c libs working 2022-10-28 17:54:37 +01:00
Gee Bartlett 54018afde3 small tweeks 2022-10-12 13:10:12 +01:00
Gee Bartlett d03c00383a driver working for PG1Bit mode 2022-10-12 11:07:17 +01:00
Gee Bartlett 0e5e7feb7d page 0 working 2022-10-12 09:13:38 +01:00
Gee Bartlett fa04fef4f0 Update st7567.cpp 2022-10-10 14:33:28 +01:00
Gee Bartlett 337cd390d4 wip 2022-10-10 14:12:45 +01:00
Gee Bartlett 2f7afad12d Update st7567.cpp
still trying to get this working properly
2022-10-06 12:28:22 +01:00
Gee Bartlett 8f645257c3 display running but data corrupt 2022-10-05 14:26:17 +01:00
Phil Howard 6aa1bbd271 UC8159: 0/180 degree rotation support. 2022-09-30 21:04:22 +01:00
Phil Howard 7f02501fa6 UC8159: Alternate resolution support. 2022-09-30 15:18:01 +01:00
Gee Bartlett 7b5946ef48 all complies needs testing against finished unit 2022-09-29 15:48:33 +01:00
Gee Bartlett c48f81bc90 started on converting pico display demo 2022-09-29 12:01:35 +01:00
Gee Bartlett 3f24b442f1 inital work needs testing 2022-09-29 10:21:14 +01:00
Mike Bell 799ed0786d Use DMA for SPI frame buffer too 2022-09-17 20:16:57 +01:00
Mike Bell 7f330d1a04 Pico Graphics: Use fixed size buffer for frame conversion 2022-08-23 23:07:13 +01:00
Philip Howard b8100d22e8
Merge pull request #487 from MichaelBell/tufty-overclock
ST7789 Parallel: Work with SYS clock faster than default
2022-08-11 13:07:51 +01:00
Phil Howard 9ec77c2f10 LTR559: Lux as float.
Avoid truncating Lux to uint16_t.
2022-08-08 12:05:18 +01:00
Mike Bell b8ba66f593 ST7789 Parallel: Work with SYS clock faster than 125MHz 2022-08-04 20:44:17 +01:00
jon e9c18b109d whoops. 2022-07-29 10:59:24 +01:00
Philip Howard c5d4865609
Merge pull request #413 from pimoroni/patch-pms3005-i2c
PMS5003: Support for i2c version.
2022-07-22 15:56:36 +01:00
Phil Howard de3ceac4a5 Pico Scroll/Unicorn: Fix static memory alloc for Pico W.
Pico Scroll and Pico Unicorn were allocating static buffers for gamma and font data respectively.

Make Pico Scroll's `__bitmap` static.

Move Pico Unicorn's three GAMMA tables to one 14-bit table in "pimoroni_common.hpp". Rename "GAMMA" to "GAMMA_8BIT".
2022-07-22 14:15:53 +01:00
Phil Howard e7a4ee0282 VL53L5CX: Alloc results data & config in MPY gc_heap.
RAM constraints on Pico W were causing a hardlock. This change allocates the results struct, config and motion config on gc_heap to relieve system RAM pressure.

Fixes #448
2022-07-22 10:01:34 +01:00
Phil Howard d81151a1c6 Inky Frame: Sensible limit on SDCard speed.
Going any faster will result in corruption- this showed up as visible lines of distortion down decoded JPEG files.
2022-07-18 15:32:58 +01:00
Phil Howard f85343012a PicoGraphics: Power off added for UC8151. 2022-07-06 14:25:42 +01:00
Phil Howard 103fe19049 PMS5003: Support for PMSA003I i2c module. 2022-07-05 16:05:24 +01:00
Phil Howard cb5f8308a0 PicoGraphics/UC8159: 3bit bitplane pen mode.
Add a 3bit pen mode to save 1/4th the RAM needed for the 600x448 Inky Frame.
2022-06-30 15:25:02 +01:00
Philip Howard c74210286f
Merge pull request #415 from pimoroni/patch-inky-frame-wait
UC8159: Timeout compiler error fix.
2022-06-29 15:29:21 +01:00
Phil Howard 589a9e1b23 UC8159: Timeout compiler error fix. 2022-06-29 11:14:11 +01:00
Philip Howard 1ec0908f2f
Merge pull request #414 from pimoroni/patch-inky-frame-wait
UC8159: Timeout-based busy wait.
2022-06-29 10:40:50 +01:00
Phil Howard 2d8080eada UC8159: Timeout-based busy wait. 2022-06-29 10:32:11 +01:00
Philip Howard 24635046ef
Merge pull request #410 from pimoroni/patch-inky-pack-update-speed
PicoGraphics: Partial update/speed support. Tidyup.
2022-06-28 10:11:47 +01:00
Phil Howard 16aae0b1f2 PicoGraphics: Partial update/speed support. Tidyup. 2022-06-27 17:32:30 +01:00
jon 0aa7eb1141 added ability to set/get the free ram byte on pcf85063a 2022-06-27 16:49:10 +01:00
Phil Howard b0cfb12b20 SH1107: Support for alternate i2c address.
Add `i2c_address` option to MicroPython PicoGraphics.
2022-06-27 14:18:24 +01:00
Phil Howard de967fd528 fatfs: Enable FF_USE_STRFUNC for f_gets. 2022-06-24 12:41:29 +01:00
Phil Howard b497b87c95 UC8159: Port to PicoGraphics/DisplayDriver. 2022-06-24 11:03:29 +01:00
Phil Howard f1f3d55a8c UC8159: Fix nibble order properly this time. 2022-06-23 16:35:33 +01:00
Phil Howard c428329a19 UC8159: Swap nibbles. Add colours enum. 2022-06-23 16:35:33 +01:00
Phil Howard c6074963fa UC8159: Basic driver 2022-06-23 16:35:32 +01:00
Phil Howard 0e72369c7b UC8151: Rotation support. 2022-06-23 16:30:42 +01:00
Phil Howard 6b232ddb30 UC8151: Invert by default.. 2022-06-23 16:12:58 +01:00
Phil Howard 04d8d66390 UC8151: New DisplayDriver based UC8151 driver.
HACK: Adds PicoGraphics_Pen1BitY to work around the UC8151 weird addressing.

TODO: Replace hack with an in-place transform to UC8151 pixel order from Pen1Bit.
2022-06-23 14:30:36 +01:00
Phil Howard 646bd1a9b0 UC8151: Refactor to uc8151_legacy. 2022-06-23 13:57:25 +01:00
Phil Howard 76715e45f8 ST7789: Convert Parallel IO to PIO + DMA.
Make display updates around 4x faster. Requires a PIO + SM to run Tufty 2040.
2022-06-17 11:03:55 +01:00
jon 360bf4310c SH1107: Add driver and example.
Add 1bit pen mode to PicoGraphics.

TODO:

* Rotation support
* Sizes other than 128x128 support
2022-06-15 16:57:40 +01:00
Phil Howard 1b68e498d4 ST7789/PicoGraphics: Update docs. 2022-06-13 20:12:03 +01:00
Phil Howard 62818a5f49 PicoGraphics: Palettes as RGB, Scanline convert with callback. 2022-06-13 20:12:03 +01:00
Phil Howard a558d35cab PicoGraphics: Remove last vestiges of template approach. 2022-06-13 20:12:03 +01:00
Phil Howard 1d32b967c2 ST7789: Separate code paths for future DMA/PIO support. 2022-06-13 20:12:03 +01:00
Phil Howard 3d489a9383 ST7789: 240x240 Handle unsupported rotations gracefully. 2022-06-13 20:12:03 +01:00
Phil Howard 4585e5ec0f ST7789: Fix 240x240 display rotations. 2022-06-13 20:12:03 +01:00
Phil Howard 4848e7ba59 PicoGraphics/ST7789/ST3375: Fixup C++ examples and libraries. 2022-06-13 20:12:03 +01:00
Phil Howard 67f1331b23 ST7789 -> PicoGraphics
* Absorb ST7735 support into the generic ST7789 driver and rename to PicoGraphics
* Delete obsolete MicroPython modules
* Refactor PicoGraphics to inherited class for each pen type
* Refactor ST7789 and ST7735 to derive from DisplayDriver
* Allow user to set pen_type in MicroPython constructor for RGB565, RGB332, P8 and P4 modes
2022-06-13 20:11:49 +01:00
Phil Howard 1a251822f5 ST7735: Update 160x80 LCD to new PicoGraphics<PenRGB565> 2022-06-13 20:11:09 +01:00
Phil Howard 7e4725d1cd ST7789/PicoGraphics: Templated framebuffer formats. 2022-06-13 20:11:09 +01:00
Phil Howard 13f0813d8a ST7789/PicoDisplay: Collapse make_new into one using pimoroni_bus. 2022-06-13 20:11:09 +01:00
Phil Howard a483b2aad4 ST7789/PicoGraphics: Refactor for init & rotation. 2022-06-13 20:11:09 +01:00
Phil Howard ef6179e77d ST7789/PicoGraphics: Refactor & make modes more explicit. 2022-06-13 20:11:09 +01:00
Phil Howard 51ad7edb09 Prefer RGB332, add palette management functions 2022-06-13 20:11:09 +01:00
Phil Howard 7abe4aae7f ST7789: Experimental 8bit framebuffer. 2022-06-13 20:11:09 +01:00
Jonathan Williamson 7f5546f29a Tufty2040: Initial screen bringup. 2022-06-13 20:11:09 +01:00
Phil Howard c526c3ce6e PMS5003: Basic PMS5003 active-mode only driver. 2022-06-13 18:45:58 +01:00
Philip Howard 8d329ccdd4
Merge pull request #378 from pimoroni/pcf85063a
Support for PCF85063A RTC
2022-06-13 18:41:49 +01:00