Skip to content

TODO #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
9 of 19 tasks
Gadgetoid opened this issue Mar 21, 2025 · 1 comment
Open
9 of 19 tasks

TODO #1

Gadgetoid opened this issue Mar 21, 2025 · 1 comment

Comments

@Gadgetoid
Copy link
Member

Gadgetoid commented Mar 21, 2025

v1.1.0

To better support ulab/numpy pixel wrangling we should:

  1. Add memoryview() support for accessing underlying pixel data
  2. Add memoryview() support for setting underlying pixel data

IE: memoryview(led_strip)[:] = my_pixel_data

This will also make fast, async code easier by allowing the user to watch is_busy() and then perform a simple, fast flip from their local bytearray or numpy.array.

Since Plasma's buffer is stored in pixel order, examples might be a little spicy, but that's the price we pay for fast updates.

v1.0.0 (RELEASED)

  1. Get basic builds working
  2. Add all relevant pins to pins.csv or I2C/SPI defaults
  3. Test pins work
  4. Test machine.I2C() works (gives us the Qw'St socket or otherwise some broken out bus)
    • Plasma 2040
    • Plasma Stick 2040
    • Plasma 2350 - I don't seem to have one!
    • Plasma 2350 W
  5. Test machine.SPI() gives us the broken-out SPI pins or the SP/CE bus (note, needs id until upstream merge)
    • Plasma 2040 - machine.SPI(0) Lights up Blue LED, uses pins 16, 18, 19. No broken out SPI pins so we need to disable default instances
    • Plasma Stick 2040
    • Plasma 2350
    • Plasma 2350 W
  6. Port examples:
    • Use machine.Pin("NAME") instead of the old imported pin defs
    • Use machine.I2C() instead of PimoroniI2C (this has been supported for ages, but machine.I2C() only recently supported a clean, no-args, default instance.
    • Use ezwifi/secrets.py
@Gadgetoid
Copy link
Member Author

Gadgetoid commented Mar 24, 2025

Features

  • Added default PIO, SM, Clock and Data arguments to APA102 and PIO, SM, Data to WS2812
  • Move pin definitions from plasma_stick, plasma2040 module import to pins.csv - eg: machine.Pin("PLASMA_DAT")
  • Add async update and is_busy method
  • Added default args to RGBLED so it picks up LED_R, LED_G, and LED_B pins if available.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant