Commit Graph

285 Commits

Author SHA1 Message Date
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 813b7a401a ST7789: Support rotation for PD and PD2. 2022-05-12 12:04:55 +01:00
ZodiusInfuser b26d13bab1 Fix for motor duty cycle not obeying direction 2022-05-10 18:34:59 +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 22f29743c1 Missing brace 2022-04-29 00:27:27 +01:00
ZodiusInfuser 898e4bace4 Finalised motor cluster frequency, and disabled loading zone 2022-04-29 00:09:19 +01:00
ZodiusInfuser 15e5eaa890 Finished C++ examples and tweaked MP examples 2022-04-28 21:23:18 +01:00
Phil Howard 3afead416a VL53L5CX: Bringup Motion and add example. 2022-04-28 14:38:34 +01:00
ZodiusInfuser 415a1e559a Setup and partial implementations of C++ examples 2022-04-26 23:15:13 +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 652612fc31 Removed old C++ motor implementation 2022-04-22 13:59:40 +01:00
Phil Howard 4b86faaf12 VL53L5CX: Fix memory leak. Add get_resolution. 2022-04-20 19:18:53 +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
Phil Howard f79b2efa9e VL53L5CX: Fix 32k runtime allocation in platform i2c WrMulti 2022-04-20 14:32:13 +01:00
Phil Howard 637f6d18ca VL53L5CX: Class wrapper 2022-04-19 17:24:06 +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
Phil Howard 6028bc16b6 VL53L5CX: Initial bringup 2022-04-19 13:01:54 +01:00
ZodiusInfuser 0bbd07164d Removed unneeded include 2022-04-17 16:52:16 +01:00
ZodiusInfuser 90fd4b8fb9 Encoder mostly implemented, now with MP support 2022-04-17 16:16:59 +01:00
ZodiusInfuser 70b589d431 Fixed inability to use more than one encode, plus other things 2022-04-13 20:12:44 +01:00
ZodiusInfuser a5572e5e44 Fixes post rebase 2022-04-13 11:29:40 +01:00
ZodiusInfuser 55ee058d3e Created a quadrature encoder reader using the Pico's PIO 2022-04-13 10:46:38 +01:00
ZodiusInfuser 5f6e4a3096 Finalised C++ motor implementation 2022-04-11 13:35:53 +01:00
ZodiusInfuser f3c0a305f2 Improvements to MotorState 2022-04-09 01:41:42 +01:00
ZodiusInfuser ac3edafbf4 Contined motor dev 2022-04-05 16:53:36 +01:00
ZodiusInfuser 9a9c3832a2 Various motor work 2022-04-04 20:00:03 +01:00
ZodiusInfuser e59bdc34c4 Added initial structure of new motor classes 2022-03-30 15:50:12 +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
ZodiusInfuser 2e2b2002c3 Fix for CI compiler error 2022-03-30 14:52:53 +01:00
ZodiusInfuser 5f3ac9411b Minor internal function rename, and var assignment 2022-03-30 14:29:02 +01:00
ZodiusInfuser 5192e8bc87 Tidied up some debug code 2022-03-30 14:29:02 +01:00
ZodiusInfuser 8d0ae57f2a Changed type to uint8_t 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 f9a1979d8d Added AnalogMux to C++ 2022-03-30 14:29:02 +01:00
ZodiusInfuser 1b79e85be7 Added offset parameter to Analog, and fixed it not switching between ADC pins 2022-03-30 14:29:02 +01:00
ZodiusInfuser 00408d3b2b Improved servocluster teardown 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 6f41834082 Various changes to handle class cleanup 2022-03-30 14:29:02 +01:00
ZodiusInfuser 6c16611e88 Much optimisation of PWM generation code 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 e1317f432b Expanded options for enabling and disabling servos, and fixed some off-by-one errors. 2022-03-30 14:29:02 +01:00
ZodiusInfuser c352a795a8 Fix for servo cluster frequency being inaccurate at the upper end 2022-03-30 14:29:02 +01:00
ZodiusInfuser 65268098c6 Fix for pulse width bug when changing from high to low frequencies if there was an overrun 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 2819fb0020 Exposed servo value loading 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 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 72516b2ecc Added support for servo phase adjustment 2022-03-30 14:29:02 +01:00
ZodiusInfuser 7f90d3c529 Fixed a bug in the overrun code when load_pwm() is called multiple times between DMA reads 2022-03-30 14:29:02 +01:00
ZodiusInfuser 0838483d2b Added support for pulses with large offsets that cross the wrap level 2022-03-30 14:29:02 +01:00
ZodiusInfuser c4e39fd426 Added solution for PWMCluster not being able to reach 100% with "loading zone" 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
ZodiusInfuser 8fc1270404 Added additional PWM/ServoCluster constructors 2022-03-30 14:29:02 +01:00
ZodiusInfuser d94a7c0718 Added set_frequency support to ServoCluster 2022-03-30 14:29:02 +01:00
ZodiusInfuser aeb9705d15 Moved common PWM and MultiPWM out of servo driver, and renamed to cluster 2022-03-30 14:29:02 +01:00
ZodiusInfuser 06c272916c Fix for incorrect ServoCluster duty 2022-03-30 14:28:17 +01:00
ZodiusInfuser 55cbf23f45 Function rename 2022-03-30 14:28:17 +01:00
ZodiusInfuser 565553b3a1 Added an additional case for out-of-bounds values 2022-03-30 14:28:17 +01:00
ZodiusInfuser 5a5282f099 Improved servo limits logic 2022-03-30 14:28:17 +01:00
ZodiusInfuser d1238e802e Added frequency limits 2022-03-30 14:28:17 +01:00
ZodiusInfuser 334ff4e9f9 Added frequency adjustment to Servo 2022-03-30 14:28:17 +01:00
ZodiusInfuser 93eafc4694 All current servo functionality now micropython bindings 2022-03-30 14:28:17 +01:00
ZodiusInfuser 196a5c6111 Much code refactoring and tidy up 2022-03-30 14:28:17 +01:00
ZodiusInfuser 413ef891ce Partial hardware servo support added to MP 2022-03-30 14:28:17 +01:00
ZodiusInfuser f5836e56df Raised servo functions to a base class, and added ServoCluster which uses the PIO PWM. 2022-03-30 14:28:17 +01:00
ZodiusInfuser d4012a271e Improvements to servo calibration and usage 2022-03-30 14:28:17 +01:00
ZodiusInfuser 2e58841b5e Started a hardware PWM servo class, with calibration support 2022-03-30 14:28:17 +01:00
ZodiusInfuser 5957304a46 Adding more PWM functionality 2022-03-30 14:28:17 +01:00
ZodiusInfuser 24aefc16bf Tidied up PIO implementation + commenting 2022-03-30 14:28:17 +01:00
ZodiusInfuser de3cb52931 More progress on Servo PIO 2022-03-30 14:28:17 +01:00
ZodiusInfuser aca98ca747 current WIP code for PIO based PWM 2022-03-30 14:28:17 +01:00
Mike Bell eb95636bca Better if update_time is an underestimate 2022-03-29 23:16:18 +01:00
Mike Bell d96a584ddd Badger2040: Improve performance of some large frame buffer writes 2022-03-29 23:15:43 +01:00
Phil Howard b1fd8936cf Badger2040: Enforce minimum update blocking time. 2022-03-25 10:57:30 +00:00
Phil Howard 249f54fae4 ST7789: Create generic display driver for #299 2022-03-21 17:02:46 +00:00
Phil Howard 8ca91f8e23 PMW3901: Drop print from init. 2022-03-18 13:35:14 +00:00
Philip Howard 273ca5c56d
Merge pull request #252 from pimoroni/badger2040-support
Support for Badger 2040
2022-02-25 16:25:22 +00:00
Phil Howard f90559ed41 Badger2040: Add support for colour inverted mode 2022-02-25 14:49:28 +00:00
Phil Howard 169e332917 Badger2040: Add Medium speed, drop spicy super turbo 2022-02-25 13:37:35 +00:00
Phil Howard 6ff5c39c1b Badger2040: Bugfixes, danger LUTs, examples 2022-02-25 11:08:32 +00:00
Phil Howard af230b5fd5 Badger2040: Refactor to fix MicroPython issues
Move busy wait logic into MicroPython bindings so that MICROPY_EVENT_POLL_HOOK can be called.
2022-02-25 11:08:32 +00:00
Phil Howard 5b084c1b9a Badger2040: Add Fast/Slow LUTs, bugfix and tinkering helpers 2022-02-25 11:08:32 +00:00
Phil Howard 607320c4b6 Badger2040: Fix broken display on reset
Display configuration wasn't applied properly upon reset. Add additional delay to reset and configure busy_wait pulls.
2022-02-25 11:08:32 +00:00
Phil Howard 46d54072ce Badger2040 MicroPython bindings 2022-02-25 11:08:32 +00:00
Phil Howard 5f52626a4f Add partial update support 2022-02-25 11:08:32 +00:00
Jonathan Williamson f7d61b587a added support for badger2040 2022-02-25 11:08:31 +00:00
ZodiusInfuser 95142ffeb5 Fix for display glitch during screen initialisation 2022-02-14 12:57:34 +00:00
Phil Howard c105d111af ICP10125: Fix block indefinitely on repeated start
Should fix pimoroni/icp10125-python#2
2022-02-10 12:28:57 +00:00