Phil Howard
eb303ae811
PicoGraphics: Integer sprite scaling.
2022-06-14 13:28:27 +01:00
Phil Howard
6a3ba0d421
MicroPython: Shim MP_REGISTER_MODULE for >1.18 compat.
...
MicroPython has changed MP_REGISTER_MODULE to use only *two* args and now runs the preprocessing stage on files before running makemoduledefs.py.
This change avoids the build exploding, since the new regex matches the last two args as a single argument and generates a malformed module defs include.
The pattern here exploits the fact that 1.18 and below do not preprocess files, so *both* MP_REGISTER_MODULE lines are included in the source, but *only* the three arg version is matched by regex.
In >1.18 the files will be processed and the three arg version removed before makemoduledefs.py processes it.
2022-06-14 12:08:47 +01:00
Phil Howard
5d7113e8c9
PicoGraphics: Basic 128x128 RGB332 spritesheet support.
2022-06-13 20:12:03 +01:00
Phil Howard
03dc1e9941
PicoGraphics: Support sensible default rotations.
...
Rotate Tufty to 180 degrees by default.
Rotate Pico Display to 270 degrees by default.
2022-06-13 20:12:03 +01:00
Phil Howard
582c67570a
PicoGraphics: Refactor pen types into their own cpp files.
2022-06-13 20:12:03 +01:00
Phil Howard
2419f0ef45
PicoGraphics/JPEGDEC: RGB332 per channel fast dither.
2022-06-13 20:12:03 +01:00
Phil Howard
602d1b41dd
PicoGraphics: Attempt at dither and scanline interrupts.
...
Currently both unused and both very slow.
Dither may only be feasible for <=8 colour displays.
JPEGDEC will dither to 4-bit greyscale quite happily.
2022-06-13 20:12:03 +01:00
Phil Howard
656d69399a
JPEGDEC: Fix dither buffer size
2022-06-13 20:12:03 +01:00
Phil Howard
d2b065d2da
JPEGDEC: Use 4-bit dither.
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
8917505175
JPEGDEC: Add open_file.
2022-06-13 20:12:03 +01:00
Phil Howard
7f0fe44881
JPEGDEC: Move to libraries, use C++, draw into PicoGraphics.
2022-06-13 20:12:03 +01:00
Phil Howard
1a9ebb7b6e
PicoGraphics: More pen conversion, better names.
2022-06-13 20:12:03 +01:00
Phil Howard
024518ed9a
PicoGraphics: Don't require wordwrap.
2022-06-13 20:12:03 +01:00
Phil Howard
bfea30b662
Pimoroni Bus: Allow SPIBus to take mosi arg, no backlight by default.
2022-06-13 20:12:03 +01:00
Phil Howard
4500497e3c
PicoGraphics: Add get_buffer_size.
...
Take the guesswork out of correctly sizing a bytearray. Accepts a display and pen type.
2022-06-13 20:12:03 +01:00
Phil Howard
49b62515c2
PicoGraphicS: Hershey support, bugfixes, tidyup.
2022-06-13 20:12:03 +01:00
Phil Howard
fc1561e54b
PicoGraphics: Fix set_framebuffer.
2022-06-13 20:12:03 +01:00
Phil Howard
b13470b4fb
PicoGraphics: Add set_palette and set_font.
2022-06-13 20:12:03 +01:00
Phil Howard
f5d7f34145
ulab: Fix broken submodule.
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
cf6b6e04f4
ST7789: Simplify MicroPython bindings.
...
Kwargs should not be used unless there are non-required arguments with default values.
Save ~290 bytes and a bunch of noisy lines of code.
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
dbed4a463f
ST7789: Minor code tidyup.
2022-06-13 20:11:09 +01:00
Phil Howard
b66da12c1b
ST7789/PicoDisplay: Update C++ examples. Rename GenericST7789 -> PicoDisplayST7789.
2022-06-13 20:11:09 +01:00
Phil Howard
ae22838151
Pimoroni Bus: Tidy up. Print pins.
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
cf842d559e
Badger2040: Remove deprecated modules.
2022-06-13 20:11:09 +01:00
Phil Howard
6ace09dbc3
Re-renable Pico Explorer and enable Pimoroni Bus
2022-06-13 20:11:09 +01:00
Phil Howard
c13f53092d
ST7789/PicoGraphics: Fix palette bugs, add reserve.
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
1cd58ed298
Remove debug print
2022-06-13 20:11:09 +01:00
Phil Howard
73f73a0ac5
Make colour truncation from 565 to 332 optional
2022-06-13 20:11:09 +01:00
Phil Howard
3f9f28c60b
Add measure_text, fixed default palette init
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
Phil Howard
446db105f9
Tufty2040: JPEG Decode
2022-06-13 20:11:09 +01:00
Phil Howard
b42425b000
Tufty2040: MicroPython bindings for ST7789Parallel.
2022-06-13 20:11:09 +01:00
Phil Howard
a9eb58a3ce
MicroPython: Fix Class name QSTRs.
2022-06-13 20:06:39 +01:00
Phil Howard
ff5d175eb2
AS7262: Optimize function types. Saves 600 bytes.
2022-06-13 19:21:21 +01:00
Phil Howard
8d638e2744
MicroPython: Drop redundant Print. Saves 4K.
2022-06-13 18:59:51 +01:00
Phil Howard
8cb15d5b5c
PCF85063a: Optimise functions, drop print.
2022-06-13 18:36:49 +01:00
ZodiusInfuser
df63655c76
Added MP support for rtc
2022-05-30 15:33:10 +01:00
Phil Howard
28d555fa4e
Breakout RTC: Optimise required kwarg functions to positional.
2022-05-30 15:16:43 +01:00
Philip Howard
7db6d62515
Merge pull request #375 from pimoroni/experimental/build-tweaks
...
Customise MicroPython C++ modules per board to avoid blowing 640K binary limit on 2MB Pico boards
2022-05-27 11:56:57 +01:00
Phil Howard
a860b0fba8
ulab: bump to 4.0.0
2022-05-27 11:32:55 +01:00
Phil Howard
9a494828bc
CI: Customised MPY modules per-board
2022-05-27 11:32:52 +01:00
Phil Howard
5c92ac3762
ADCFFT: Use util.hpp
2022-05-27 11:04:13 +01:00
Phil Howard
f7c42e90a8
ADC FFT library & MicroPython Bindings
2022-05-23 16:12:22 +01:00
Phil Howard
bc0390b86c
MicroPython: Use placement new to alloc classes on GC_HEAP
2022-05-23 15:34:49 +01:00
Phil Howard
0b73535ac1
ST7789: Add fixes from #344
...
Fix line and triangle primitives.
Rename any "x1, y1" kwargs to just "x, y" if no subsequent coordinates accepted.
2022-05-23 13:54:44 +01:00
Philip Howard
db60553322
Merge pull request #327 from pimoroni/feature/merged-st7789
...
ST7789: Create generic display driver
2022-05-18 13:37:56 +01:00
Phil Howard
1feefde00c
MicroPython: Promote machine.I2C() to PimoroniI2C.
...
Create a new PimoroniI2C object internally if a "machine.I2C()" object is supplied in constructors.
2022-05-18 13:20:33 +01:00
Phil Howard
7d3b48c509
MicroPython: Make Pimoroni I2C compatible with machine.I2C
2022-05-18 13:15:12 +01:00
Phil Howard
c2256c481b
VL53L5CX: Autoload firmware in MicroPython bindings.
2022-05-17 14:05:32 +01:00
Phil Howard
aeceefea59
VL53L5CX: Sideload firmware from user-supplied .bin
2022-05-17 12:33:07 +01:00
ZodiusInfuser
717ad908cb
Optimized some encoder functions
2022-05-12 23:57:22 +01:00
ZodiusInfuser
51d08bebd9
Optimized most motor functions
2022-05-12 23:49:31 +01:00
Phil Howard
8e1e9df002
ST7789: Refactor and Bugfixes
...
* Make ST7789 accept only full config with SPI pins
* Make Generic ST7789 wrapper library handle "slot"
* Update Round LCD and 240x240 Square LCD
* Remove Python Round LCD and 240x240 LCD modules (we need the space!)
* Remove C++ Round LCD and 240x240 LCD libraries (they're a little redundant!)
* Fix garbage collected framebuffer bug in Python ST7789
* Deprecate "flip" in favour of "configure_display"
* Tidy up ST7789, remove dead/unused/commented code
2022-05-12 18:58:33 +01:00
ZodiusInfuser
305462d33c
Merge branch 'main' into motor-and-encoder
2022-05-12 17:02:50 +01:00
Phil Howard
8db8ad3140
MicroPython: Drop PicoDisplay/PicoDisplay2 modules.
...
Drop the deprecated PicoDisplay and PicoDisplay2 modules in favour of ST7789.
Saves ~5k.
2022-05-12 12:49:33 +01:00
Phil Howard
1315af4e41
PicoDisplay: Use pins for buttons.
...
Swap the button constants to use pins, just in case someone tries to use these with Button() or PicoZero.
2022-05-12 12:44:00 +01:00
Phil Howard
813b7a401a
ST7789: Support rotation for PD and PD2.
2022-05-12 12:04:55 +01:00
Philip Howard
84b6a0c8ee
Merge pull request #347 from pimoroni/driver/vl53l5cx
...
Add vl53l5cx driver, MicroPython bindings and examples
2022-05-11 10:52:25 +01:00
ZodiusInfuser
c75b35265b
Removed old motor_shim module
2022-05-10 18:35:33 +01:00
ZodiusInfuser
71f0ea76ed
Further Motor documentation
2022-05-09 18:20:48 +01:00
ZodiusInfuser
3bbf733bfb
Further Motor documentation
2022-05-09 18:19:48 +01:00
ZodiusInfuser
13ac475b7c
Further Motor documentation
2022-05-09 18:16:41 +01:00
ZodiusInfuser
6c9f4a9235
Further Motor documentation
2022-05-09 17:26:44 +01:00
ZodiusInfuser
7499cc0378
Further Motor documentation
2022-05-09 17:07:14 +01:00
ZodiusInfuser
de0e908def
Encoder readme tweaks
2022-05-09 09:58:33 +01:00
Phil Howard
8392401cf9
Badger 2040: Fix partial update hang for #348
2022-05-06 17:56:10 +01:00
ZodiusInfuser
b782287c63
Added readme for encoder
2022-05-05 16:54:02 +01:00
ZodiusInfuser
71a7a80218
Finalise motor API
2022-04-29 13:02:00 +01:00
ZodiusInfuser
898e4bace4
Finalised motor cluster frequency, and disabled loading zone
2022-04-29 00:09:19 +01:00
Phil Howard
3afead416a
VL53L5CX: Bringup Motion and add example.
2022-04-28 14:38:34 +01:00
Lukáš Říha
4de8762381
fix micorpython line and triangle primitives for breakout LCDs
2022-04-28 14:32:53 +02:00
ZodiusInfuser
56451bff30
Finished MP examples
2022-04-26 12:52:28 +01:00
ZodiusInfuser
0efe210c4c
Added in PH_EN motor driver, and zeropoint support
2022-04-25 16:16:02 +01:00
ZodiusInfuser
7608e3f293
Encoder driver finalising
2022-04-25 12:28:42 +01:00
ZodiusInfuser
2eb6a0cf3e
Changed encoder folder and gave it a namespace
2022-04-22 16:23:45 +01:00
ZodiusInfuser
ba076ccc7b
Renamed Snapshot back to Capture
2022-04-22 16:06:54 +01:00
ZodiusInfuser
ae606e7bf5
Removed MP accesors to Snapshot class
2022-04-22 15:14:30 +01:00
ZodiusInfuser
652612fc31
Removed old C++ motor implementation
2022-04-22 13:59:40 +01:00
ZodiusInfuser
0f792c1e0b
Added attrtuple for capture, and some position control examples
2022-04-20 21:59:20 +01:00
Phil Howard
70637d0f0e
VL53L5CX: MicroPython error handling and attrtuple data.
2022-04-20 19:19:40 +01:00
ZodiusInfuser
8ef0d33f0c
Finalised more examples
2022-04-20 18:55:39 +01:00
Phil Howard
fcd4914cbb
VL53L5CX: MicroPython bindings.
2022-04-20 14:33:00 +01:00
ZodiusInfuser
ae191697f2
Added a motor profiler example and finished constructor args
2022-04-20 14:26:32 +01:00
ZodiusInfuser
114c83e04e
More encoder MP work
2022-04-19 20:22:35 +01:00
ZodiusInfuser
180df9e085
Merge branch 'motor-pio' into motor-and-encoder
2022-04-19 16:28:12 +01:00
ZodiusInfuser
9472a1f109
Fix for hard lock when taking many snapshots
2022-04-19 15:44:31 +01:00
Luyáš Říha
746b47a601
fix micropython breakout_roundlcd rendering of graphics primitives
2022-04-18 20:40:05 +02:00
ZodiusInfuser
90fd4b8fb9
Encoder mostly implemented, now with MP support
2022-04-17 16:16:59 +01:00
ZodiusInfuser
564fecf1de
First pass at MP support
2022-04-13 20:13:27 +01:00
ZodiusInfuser
96070f61af
Started on motor readme, and updated API elements accordingly
2022-04-12 17:00:39 +01:00
ZodiusInfuser
0facfaa540
Updated MP bindings to newest C++
2022-04-11 17:59:16 +01:00
Phil Howard
9496d95ec7
Stop & reinit SCD41 to fix lockup for #338
2022-04-11 13:04:49 +01:00
ZodiusInfuser
f3c0a305f2
Improvements to MotorState
2022-04-09 01:41:42 +01:00
ZodiusInfuser
7e9860e780
More mp binding and example work
2022-04-07 17:57:38 +01:00
helgibbons
ac3bfa537d
Update Badger readme to include bitmap fonts
2022-04-07 12:48:51 +01:00
helgibbons
6c4459701a
Update Badger readme to include bitmap fonts
2022-04-07 12:45:41 +01:00
ZodiusInfuser
b36993f492
First setup of motor micropython bindings
2022-04-05 20:44:03 +01:00
Philip Howard
dbb9a3d181
Merge pull request #332 from pimoroni/feature/unicode-ish
...
Fonts: Ungracefully handle accented characters.
2022-04-01 16:26:31 +01:00
Phil Howard
3b8740fab6
Bitmap Fonts: Add letter spacing.
2022-04-01 15:38:48 +01:00
Phil Howard
0d43973326
Bitmap Fonts: Refactor and support for pound/degrees.
2022-04-01 15:38:42 +01:00
Philip Howard
6792f64a23
Merge pull request #328 from pimoroni/rewrite/pico-wireless
...
Pico Wireless - ESP32 Driver Rewrite
2022-03-31 14:07:25 +01:00
Mike Bell
4d67e35137
Badger2040: UART enabled build works
2022-03-30 22:23:24 +01:00
Mike Bell
16bfa467ce
Reinitialize hardware after system clock change
2022-03-30 21:07:40 +01:00
ZodiusInfuser
8a36102c53
Merged in old motor implementation
2022-03-30 15:50:12 +01:00
Phil Howard
732e59b314
Pico Wireless: Driver Rewrite
...
* Use a single common function prototype for all (but two) commands
* Remove "last param" from every param, in favour of an "end_cmd"
* Rename "send_cmd" to "start_cmd" to better reflect what it does
* Replace hard-coded param counts with macro (sizeof(params) / sizeof(inParam))
* Eliminate common causes of bugs
* Try to document some functions
* Correct some types (wl_enc_type, peek as bool)
* Handle timeouts & sleep states
* Successful command exits sleep
2022-03-30 15:30:11 +01:00
Phil Howard
3b8dcecd8e
Pico Graphics: Move bitmap fonts into generic library.
...
* Add bitmap font support into Badger 2040
2022-03-30 15:10:52 +01:00
Phil Howard
24819734b7
Separate Hershey Fonts into their own library.
2022-03-30 15:10:52 +01:00
ZodiusInfuser
5b46722a66
Updated Servo2040 description
2022-03-30 14:29:02 +01:00
ZodiusInfuser
1efa75a590
Renamed C++ Servo functions to match MP
2022-03-30 14:29:02 +01:00
ZodiusInfuser
c5be5be759
Made calibration C++ better match MP
2022-03-30 14:29:02 +01:00
ZodiusInfuser
e4bb26b081
Renamed LED_DAT to LED_DATA
2022-03-30 14:29:02 +01:00
ZodiusInfuser
852cfca7c5
readme fixes
2022-03-30 14:29:02 +01:00
ZodiusInfuser
93e7d476a2
Typo
2022-03-30 14:29:02 +01:00
ZodiusInfuser
d47326c33e
Fix some broken links
2022-03-30 14:29:02 +01:00
ZodiusInfuser
a64b5bf5ac
Finished off final sections of the documentation
2022-03-30 14:29:02 +01:00
ZodiusInfuser
b1b111a179
Added additional constants
2022-03-30 14:29:02 +01:00
ZodiusInfuser
00408d3b2b
Improved servocluster teardown
2022-03-30 14:29:02 +01:00
ZodiusInfuser
41d577f458
Finished most sections of readme off
2022-03-30 14:29:02 +01:00
ZodiusInfuser
9b66be4f3b
Updated readme for Servo class
2022-03-30 14:29:02 +01:00
ZodiusInfuser
44412365b8
Tidying up of calibration
2022-03-30 14:29:02 +01:00
ZodiusInfuser
09e69ff8d9
Improvements to calibration and a calib example
2022-03-30 14:29:02 +01:00
ZodiusInfuser
df217b69b5
Added current meter example, + some fixes
2022-03-30 14:29:02 +01:00
ZodiusInfuser
e41a8bd6e5
Added sensor reading example, with mux support
2022-03-30 14:29:02 +01:00
ZodiusInfuser
cc7179d6d0
Added LED bar example and exposed servo2040 constants
2022-03-30 14:29:02 +01:00
ZodiusInfuser
aee14e2d51
Added some initial Servo examples, and tweaked API
2022-03-30 14:29:02 +01:00
ZodiusInfuser
6f41834082
Various changes to handle class cleanup
2022-03-30 14:29:02 +01:00
ZodiusInfuser
77608249a6
Expanded readme TOC, and did some reordering
2022-03-30 14:29:02 +01:00
ZodiusInfuser
7ce4717684
Added main intro section for Servo readme
2022-03-30 14:29:02 +01:00
ZodiusInfuser
f83521d3ff
Expanded list/tuple support to more functions
2022-03-30 14:29:02 +01:00
ZodiusInfuser
2ef84ae286
Fixed a silly pointer bug
2022-03-30 14:29:02 +01:00
ZodiusInfuser
e1317f432b
Expanded options for enabling and disabling servos, and fixed some off-by-one errors.
2022-03-30 14:29:02 +01:00
ZodiusInfuser
d96db62353
Fix for frequency changes enabling servo PWM
2022-03-30 14:29:02 +01:00
ZodiusInfuser
3e9597e186
The start of some documentation
2022-03-30 14:29:02 +01:00
ZodiusInfuser
2819fb0020
Exposed servo value loading
2022-03-30 14:29:02 +01:00
ZodiusInfuser
6fe79d4ebc
Minor cleanup
2022-03-30 14:29:02 +01:00
ZodiusInfuser
cf810b7b7f
MP Calibrations are now copies of the servo's one, rather than references that could get GC'ed
2022-03-30 14:29:02 +01:00
ZodiusInfuser
59014f1e86
MP now supports assigning a new calibration to a servo
2022-03-30 14:29:02 +01:00
ZodiusInfuser
d6811e1173
MP fixes
2022-03-30 14:29:02 +01:00
ZodiusInfuser
176362a49b
Updated MP bindings to support latest servo features
2022-03-30 14:29:02 +01:00
ZodiusInfuser
e07e248d9e
Big refactor of clusters to reduce memory and improve usability
2022-03-30 14:29:02 +01:00
ZodiusInfuser
35bd03c02b
Improved Servo constructors
2022-03-30 14:29:02 +01:00
ZodiusInfuser
ec1f0a5ddc
ServoCluster states are now only created for the servos actually assigned
2022-03-30 14:29:02 +01:00