Commit Graph

469 Commits

Author SHA1 Message Date
Phil Howard 2fd0330f63 CI: Move modules_py copy to CMake 2022-03-11 09:24:54 +00:00
Phil Howard c6debfc091 Badger2040: Fix ebook.py missing lines for #280 2022-03-10 10:37:39 +00:00
Philip Howard fe88093c30
Merge pull request #278 from lurch/patch-3
badger2040: prevent date being set to an invalid value
2022-03-09 14:17:29 +00:00
Andrew Scheller 58398f9f55 badger2040: prevent date being set to an invalid value
(by restricting the maximum number of days in a month as necessary)
2022-03-09 12:48:02 +00:00
Philip Howard 7dfd9a04b0
Merge pull request #284 from pimoroni/tweak-docs
Add Pimoroni Pico LiPo button/LED example, tweak docs
2022-03-09 12:22:45 +00:00
Philip Howard 0eddc07413
Merge pull request #275 from lurch/patch-1
badger2040: Set default clock to a valid date
2022-03-09 12:03:27 +00:00
Philip Howard a5e719ee27
Merge pull request #276 from lurch/patch-2
badger2040: Only 24 hours in a day (not 60)
2022-03-09 12:02:45 +00:00
helgibbons dae16ea777 Update README.md 2022-03-08 17:47:10 +00:00
helgibbons 117c842fc0 Update README.md 2022-03-08 17:39:53 +00:00
Hel Gibbons b01afbaac8
Update README.md 2022-03-08 17:36:35 +00:00
Hel Gibbons 613625776b
Update README.md 2022-03-08 17:28:57 +00:00
helgibbons 6d1a902adc Update README.md 2022-03-08 17:25:46 +00:00
helgibbons a5451f726f Update README.md 2022-03-08 17:23:30 +00:00
helgibbons 47e1ad3ae8 Add button & LED example for Pimoroni Pico LiPo 2022-03-08 16:58:51 +00:00
Andrew Scheller 548b0dd0c0
badger2040: Only 24 hours in a day (not 60) 2022-03-06 12:04:55 +00:00
Andrew Scheller 8f10a91002
badger2040: Set default clock to a valid date
2022 isn't a leap year, so there is no 29th February!
2022-03-06 11:58:14 +00:00
Andy Piper 58a8d01be1
Trivial: fix width (298->296px) typos 2022-03-05 00:47:05 +00:00
Philip Howard 3ce347799b
Merge pull request #271 from pimoroni/patch-badger2040-examples
Badger 2040 - Improve examples
2022-03-04 17:08:49 +00:00
Phil Howard 04ff3023d9 Badger2040: Improve clock
* Toggle into time-set mode with B
* Move to date/time parts with A/C
* Change values with up/down
* Centered clock so it looks nicer
2022-03-04 16:47:07 +00:00
Phil Howard ddf5f7631e Badger2040: Use book.txt for ebook example 2022-03-04 15:42:47 +00:00
Phil Howard cbf330a1c7 Badger2040: Drop from regular MicroPython build 2022-03-04 15:27:28 +00:00
Phil Howard e62b3a8fc8 Badger2040: Move assets & builtin tooling to examples dir 2022-03-04 15:26:00 +00:00
Phil Howard 3756f0b707 Badger2040: Ebook font size & style controls 2022-03-04 15:25:56 +00:00
Phil Howard 4496e3e7a2 Badger2040: Image file overlay toggle 2022-03-04 14:58:52 +00:00
Phil Howard d0b52a77f1 Badger2040: List load/save 2022-03-04 14:40:09 +00:00
Philip Howard 60a9e93251
Merge pull request #263 from pimoroni/moar-badger-examples
Add simple LED example and readme tweaks
2022-03-04 13:34:46 +00:00
Hel Gibbons 7d7c4952fc Lint LED example 2022-03-04 12:34:44 +00:00
Phil Howard e096e57566 Badger2040: Add missing boot.py 2022-03-04 11:32:11 +00:00
Phil Howard e8d6d5930f Badger2040: Rename e-reader and checklist to match builtins 2022-03-04 11:13:51 +00:00
Phil Howard 167cdb13f7 Badger2040: Drop redundant modules_py dir 2022-03-04 11:13:14 +00:00
Phil Howard ef72098949 Badger2040: Build assets from source + CMake builtin copy 2022-03-04 11:06:42 +00:00
helgibbons 1975b47e33 Tweak examples readme 2022-03-04 09:00:04 +00:00
Phil Howard ee9270b283 Badger2040: Fix bugs in Launcher 2022-03-01 15:55:24 +00:00
Phil Howard 6e7d8a1682 Badger2040: Allow builtin demos to be replaced 2022-03-01 15:18:40 +00:00
Hel Gibbons fbb803e9a6
Update README.md 2022-03-01 13:13:00 +00:00
Hel Gibbons d9465aadb8 Update README.md 2022-02-28 16:19:48 +00:00
Hel Gibbons 6a26aa9802 Create led.py 2022-02-28 16:16:44 +00:00
Nathan M ee12d846a1 fix custom badge file not loading correctly 2022-02-28 00:48:40 +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
Philip Howard f4c860faba
Merge pull request #251 from helgibbons/main
Add battery example for Pimoroni Pico LiPo
2022-02-25 16:24:15 +00:00
Phil Howard e280db4d0c Badger2040: Finish Help & Info 2022-02-25 16:06:52 +00:00
Phil Howard d99c7bc3cb Badger2040: Help and Info stubs, cleanup launcher icons 2022-02-25 15:46:04 +00:00
Phil Howard e44017e0a0 Badger2040: Add launcher dark mode, USER button is shift 2022-02-25 14:57:43 +00:00
Phil Howard b2fed2b6dc Badger2040: Add launcher disk usage 2022-02-25 14:49:38 +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 81395654bf Badger2040: Drop sys from badge example 2022-02-25 11:08:32 +00:00
Phil Howard 2f8603e6b3 Badger2040: Add MicroPython README 2022-02-25 11:08:32 +00:00
Phil Howard 40616f9795 Badger2040: Attempt to power off on soft reset 2022-02-25 11:08:32 +00:00
Phil Howard 2e92f85588 Badger2040: Bump mp flash to 1m 2022-02-25 11:08:32 +00:00
ZodiusInfuser 7df528030f Added examples readme 2022-02-25 11:08:32 +00:00
Phil Howard 705a4de2fc Badger2040: Sync badge from beta build 2022-02-25 11:08:32 +00:00
Phil Howard b92eb61d0d Badger2040: Sync checklist from beta build 2022-02-25 11:08:32 +00:00
Phil Howard fa775ee196 Badger2040: Monkey-patch MicroPython flash size 2022-02-25 11:08:32 +00:00
Phil Howard 6585d6a670 MicroPython: Add missing Pico Graphics to LCD breakouts 2022-02-25 11:08:32 +00:00
Phil Howard 079e2397bf Badger2040: Build badgerOS 2022-02-25 11:08:32 +00:00
Phil Howard 2756860090 Badger2040: Launcher tweaks 2022-02-25 11:08:32 +00:00
Phil Howard f2f3e065d5 Badger2040: Tweak examples 2022-02-25 11:08:32 +00:00
ZodiusInfuser 57cd178956 Made menu in font.py a bit bigger 2022-02-25 11:08:32 +00:00
ZodiusInfuser 6187caa4fb Added no battery setting 2022-02-25 11:08:32 +00:00
Phil Howard b357eef88a Badger2040: Image help text and default unpack. 2022-02-25 11:08:32 +00:00
Phil Howard 64cbee7d2b Badger2040: Add battery status to launcher 2022-02-25 11:08:32 +00:00
Phil Howard 465f5e4c4d Badger2040: Add image example, update convert.py 2022-02-25 11:08:32 +00:00
ZodiusInfuser c9bf201ff2 Added battery level example 2022-02-25 11:08:32 +00:00
Phil Howard 5b791caee1 Badger2040: Add image to badge 2022-02-25 11:08:32 +00:00
ZodiusInfuser 74d004b939 Removed print statement 2022-02-25 11:08:32 +00:00
ZodiusInfuser 826a8f2406 Added a fonts example 2022-02-25 11:08:32 +00:00
ZodiusInfuser 5b3d9ce046 Badge bugfix 2022-02-25 11:08:32 +00:00
ZodiusInfuser 73839a4ee9 Added badge example 2022-02-25 11:08:32 +00:00
Phil Howard 2efd7b9655 Badger2040: Fix examples & prep for baking 2022-02-25 11:08:32 +00:00
Phil Howard 2c27296cc4 Badger2040: Add image & icon support 2022-02-25 11:08:32 +00:00
ZodiusInfuser a5485862af Fix for quotation marks not actually showing 2022-02-25 11:08:32 +00:00
ZodiusInfuser eb8fcda727 Added working e-reader example 2022-02-25 11:08:32 +00:00
ZodiusInfuser 3f1ed1e2db Bug fixes to Checklist 2022-02-25 11:08:32 +00:00
ZodiusInfuser a346d4f2cf Exposed text measure to MP and added Checklist example 2022-02-25 11:08:32 +00:00
Phil Howard 2820b62e8c Badger2040: Fix MicroPython binding for led 2022-02-25 11:08:32 +00:00
Phil Howard a4f7d05fe5 Badger2040: Move startup block on held buttons to launcher.py
Blocking on held buttons is bad for MicroPython, since it makes nothing happen on startup-
We need the button to be held but are waiting for a button release after some arbitrary amount of time.

Additionally running code while holding down a button would block normal MicroPython event execution and crash the host's USB bus quite severely.
2022-02-25 11:08:32 +00:00
Phil Howard 167bfbb781 Badger2040: Lint examples, launcher tweaks 2022-02-25 11:08:32 +00:00
Phil Howard 6ff5c39c1b Badger2040: Bugfixes, danger LUTs, examples 2022-02-25 11:08:32 +00:00
Phil Howard 183dd5f8cb Badger2040: Add text rotation to MicroPython
Bonus: Make rotation and scale arguments optional.
2022-02-25 11:08:32 +00:00
Phil Howard 1af63e583e Badger2040: Add WIDTH/HEIGHT constants 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 5a0fe00149 Badger2040: Fix typo, comment out explodey wfi 2022-02-25 11:08:32 +00:00
Phil Howard 3bd875c63d Badger2040: Test code 2022-02-25 11:08:32 +00:00
Phil Howard 72d361fa74 Badger2040: Add text functions and input 2022-02-25 11:08:32 +00:00
Phil Howard 46d54072ce Badger2040 MicroPython bindings 2022-02-25 11:08:32 +00:00
ZodiusInfuser 4b96817616 Possible fix for display glitch after first program run 2022-02-22 11:00:02 +00:00
helgibbons 45927eb134 lint battery.py 2022-02-17 11:56:09 +00:00
helgibbons 14cb47b4bb Add Pimoroni Pico LiPo battery example 2022-02-17 11:16:49 +00:00
ZodiusInfuser e4afa6b6f2 Possible fix for display glitch after first program run 2022-02-14 12:56:40 +00:00
Phil Howard f763bae3f4 SCD41: Add i2c pins to MicroPython example 2022-01-27 11:13:22 +00:00
Sam Nicholls 7ee3d74a4a
Clarify BME68X humidity and gas resistance units 2022-01-25 22:33:04 +00:00
Philip Howard ab602135b6
Merge pull request #232 from waveform80/rgbgrbrg
Fix ordering of tuple returned by WS2812.get
2022-01-25 11:10:49 +00:00
Philip Howard 9c05e69573
Merge pull request #235 from mozz100/patch-1
Fix "repeat_time" docs in README
2022-01-25 11:01:29 +00:00
Philip Howard fcf7b47c31
Merge pull request #237 from pimoroni/patch-plasma-update
Plasma/MP: bind update method for #236
2022-01-25 10:56:13 +00:00
Philip Howard 553f3dee60
Merge pull request #174 from pimoroni/driver/scd4x
Driver for SCD4X series CO2 sensors
2022-01-25 10:29:28 +00:00
Phil Howard 52df22a16a Plasma/MP: bind update method for #236 2022-01-07 16:04:46 +00:00
Richard Morrison aea0756fb8
Update README.md
Fix documentation around `Button` class's `repeat_time` behaviour.
2022-01-04 22:09:38 +00:00
Dave Jones 1a66c9f6d6 Fix ordering of tuple returned by WS2812.get
(and types of numbers returned by both WS2812.get and APA102.get)
2021-12-23 00:39:22 +00:00
Hel Gibbons fe80fb4788
tweak resources links 2021-12-21 14:51:06 +00:00
Phil Howard 6d6803612a Add SCD41 MicroPython bindings 2021-12-16 11:39:34 +00:00
Philip Howard c322717eb2
Merge pull request #193 from pimoroni/pure-cpp-i75
Pure C++ HUB75 example
2021-12-08 15:25:53 +00:00
Philip Howard 33ca1b6e22
Merge pull request #226 from pimoroni/patch-ws2812-rgbw
Plasma: Add WS2812 W suppot for #220
2021-12-08 15:22:30 +00:00
Phil Howard 556d8cb57d HUB75: Add expansion and feature pins 2021-12-06 14:37:04 +00:00
helgibbons 2aace8cac9 linting examples 2021-12-05 19:57:38 +00:00
helgibbons 1c1cf528f9 Couple of festive examples for Plasma 2040 2021-12-05 19:53:45 +00:00
Phil Howard 580d8cf7a2 Plasma: Add WS2812 W suppot for #220 2021-12-03 10:50:06 +00:00
Phil Howard 1bb4383074 HUB75 Perf, C++ scrolling text, docs 2021-12-02 12:41:30 +00:00
Phil Howard 4dc3f9b9c4 HUB75 Scrolling wavy text and clock demo 2021-12-01 21:57:40 +00:00
Phil Howard 4496c25a8f HUB75: Remove debug from clock, use only flip's implicit delay 2021-11-25 18:14:36 +00:00
Phil Howard 4d33649cd2 HUB75: More rational DMA/PIO setup/teardown, fixes reset bug
Defensively tear down DMA/PIO so it's in a known good state upon (soft)reset.

Issue was a race condition with DMA interrupts firing and not being achknowledged, leaving a stuck raised IRQ.

The blocking wait for DMA transactions also exacerbated this, turning a borken DMA interrupt and blank screen into an unrecoverable hardlock.

...not that the blank screen was recoverable without a soft reset anyway!
2021-11-25 17:52:44 +00:00
Phil Howard c556391be3 HUB75 Clock example, brightness tweak 2021-11-25 16:37:46 +00:00
Phil Howard e09ff78351 HUB75 Strobe invert and larger panel chaining support 2021-11-24 21:36:58 +00:00
Phil Howard d4bf69324f HUB75 tidyup, examples 2021-11-23 13:58:34 +00:00
Phil Howard c07567f922 HUB75 Panel Types for FM6126A setup, fixes for 32x32 2021-11-23 11:29:41 +00:00
Phil Howard eed7992127 HUB75 Fix intermittent display corruption issue
The FM6126A register write was causing some weirdness on soft reset where the pin state wasn't predictable.

Have twiddled some pins at startup to ensure everything works as expected.

Add set_hsv and set_all_hsv (since setting individual pixels with hsv is S L O W)

Made "flip()" blocking, it was easy to accidentally get a little tearing.
2021-11-22 16:34:56 +00:00
Phil Howard 66d25d2e9c HUB75 Prevent stuck row on soft reset
TODO:

* Move this into drivers/ for C++ use too.
* Display still goes mighty weird sometimes!
2021-11-22 15:22:37 +00:00
Phil Howard 0e8c1228af HUB75 MicroPython DMA and PIO
Switch MicroPython HUB75 driver over to DMA/PIO.

TODO:

* Move this into drivers for C++ use too
* Fix hitting "Stop" in Thonny causing rows to stick on the display (this is bad, and should not happen)
* Fix "Stop -> Start" in Thonny causing weird display issues (it's not memory offets, maybe DMA/PIO issues?)
2021-11-22 14:12:18 +00:00
Edd Hurst 47259c55e8
Fix documentation examples setting RGB LED
Update the examples using set_led function and replacing to use set_rgb

Fixes #221
2021-11-21 14:05:12 +00:00
Phil Howard 01f546aaf1 HUB75 MicroPython bindings 2021-11-18 12:51:43 +00:00
Philip Howard e249113fea
Merge pull request #183 from pimoroni/driver/icp10125
Driver for the ICP10125 pressure & temperature sensor
2021-11-09 17:02:50 +00:00
Philip Howard e638c8ca58
Merge pull request #211 from Gadgetoid/picosystem
PicoSystem: add helper module to set up PicoSystem
2021-10-06 11:57:36 +01:00
Phil Howard 6170e258f2 PicoSystem: Bat sense scaling 2021-10-06 11:38:10 +01:00
Philip Howard 1a9e2802fe
Merge pull request #206 from pimoroni/driver/pwm3901
C++ and MP drivers and examples for Optical Flow sensors
2021-10-06 11:19:29 +01:00
Philip Howard 0c4be0dbb9
Merge pull request #209 from helgibbons/main
add Pico Explorer weather station examples
2021-10-06 11:13:28 +01:00
Philip Howard 3c57cbcdef
Merge pull request #208 from pimoroni/picowireless-ppwhttp
PicoWireless: move HTTP code to ppwhttp library
2021-10-06 11:12:13 +01:00
Phil Howard 321b9ad4af PicoSystem: Move LED after screen init
The screen init (C++ bindings) was trouncing the PWM setup (Python) for the RGB LED.

This is because the backlight pin (12) and LED G pin (13) share the same PWM slice.

This does not seem to affect the screen backlight functionality.
2021-10-06 11:07:56 +01:00
Phil Howard 44b45e8f00 PicoSystem: add buzzer support 2021-10-04 18:19:26 +01:00
Phil Howard 113cc7c96e PicoSystem: add helper module to set up PicoSystem
Sets up:
* Buttons
* RGB LED
* VBus detect
* Charge detect
* Battery sense
* LCD reset
* Display

TODO: audio
TODO: battery sense settings
2021-10-04 17:52:53 +01:00
Phil Howard 1bb61b2c52 PicoWireless: network scan example
Basic example to scan SSID networks and list them.
2021-10-04 16:20:57 +01:00
Phil Howard 71058bca1e PicoWireless: use strnlen for fwver and SSIDs
Avoid going through std::string and instead uses strnlen to get string length.

Prevents extra null chars leaking into the Python string.
2021-10-04 16:16:19 +01:00
helgibbons de05483ca6 linting Pico Explorer weather station examples 2021-09-30 19:05:11 +01:00
helgibbons 67a4490180 add Pico Explorer tiny weather station examples 2021-09-30 18:37:53 +01:00
Phil Howard 7772959450 PicoWireless: add TLS support to ppwhttp
* Add a new "connection_mode" argument to http_request. This can be TLS_MODE or TCP_MODE
* Fix a bug where assumptions about json parsing don't hold up
* Check for TCP_STATE_CLOSED and bail early from connect_to_server
2021-09-30 10:47:30 +01:00
Phil Howard 78d50c2986 PicoWireless: ppwhttp add wildcard routes
This slightly reckless extension to ppwhttp adds support for wildcard routes, eg:

/get_led/<int:index>

Which will serve URLs in the form:

/get_led/10
/get_led/22

etc.

The wildcard includes <type:key>, attempting to match the behaviour of Flask.

Only type "int" is supported currently.

/get_led/<index> - would set data["index"] to a string
/get_led/<int:index> - would attempt to parse the URL part to an int, and would not serve eg: /get_led/hi

See plasma_ws2812_http.py for example usage.
2021-09-29 16:27:02 +01:00
Phil Howard b92d77a2f9 PicoWireless: handle encoding/content type better in ppwhttp
Uses the correct? default Content-Type and encoding for HTTP.

Parses the Content-Type header *before* decoding the content body.

Handles JSON type gracefully.

Decodes the response body accoding to the encoding header.
2021-09-29 14:09:59 +01:00
Phil Howard eb3c8b0ebc PicoWireless: ppwhttp fix to support JSON content type
This is a bit of a fudge, and was only tested against the Cheerlights API.

Detects JSON content type, parses out the content length and truncates the response body to length.

Should probably do this *before* decoding from utf-8.

Updates cheerlights.py API example to support XML, JSON and TEXT endpoints.
2021-09-29 12:47:55 +01:00
Phil Howard 9f07be90da PicoWireless: move HTTP code to ppwhttp library
Creates a new ppwhttp library to hide the implementation detail of HTTP clients/servers from the examples.

Adds a new example - plasma_ws2812_http.py - showing how to expand rgb_http.py to use a WS2812 pixel strip.

Adds "secrets.py" and moves WIFI connection information there. ppwhttp will throw an error if it's missing.
2021-09-29 12:20:06 +01:00
ZodiusInfuser 27b74e140b Finished drivers bindings and examples for flow sensors. 2021-09-13 21:58:11 +01:00
Phil Howard 759868e787 Python bindings & docs for ICP10125 2021-09-08 14:10:21 +01:00
ZodiusInfuser 9906fdec38 C class and MP bindings for PicoDisplay2 2021-09-08 13:56:03 +01:00
Phil Howard 90c01f613c Pico Unicorn: Add rainbow.py example 2021-08-27 10:52:26 +01:00
Phil Howard 5abdad05a8 Fix MicroPython alloc'd bytearray support in APA102 driver
A bytearray allocated in Python would point to uninitialised bytes, missing the SOF byte and brightness for APA102 pixels.

Add a blunt loop over the MicroPython buffer, calling "brightness" for each RGB element to ensure the SOF byte and brightness are initialized.
2021-08-25 22:00:12 +01:00
ZodiusInfuser bb23ba22db Added C++ port of accelerometer example 2021-08-25 18:12:10 +01:00
Phil Howard 03a7cbee06 Fix speed gauge 2021-08-25 16:06:51 +01:00
ZodiusInfuser 08a54a600f Linting fixes 2021-08-25 15:23:22 +01:00
ZodiusInfuser 9d505f208a Added MP accelerometer example 2021-08-25 15:06:05 +01:00
ZodiusInfuser 4393372726 Linting Fixes 2021-08-24 16:10:23 +01:00
ZodiusInfuser f92d35a014 Added I2C defines 2021-08-24 16:06:44 +01:00