Commit graph

45 commits

Author SHA1 Message Date
ac6b65f23b sssshhhh! 2025-03-11 13:03:13 -05:00
6d3e236828 This improves the doc situation
There are still some problems & some build warnings but at least the
sphinx docs have useful content now.
2025-03-11 09:36:43 -05:00
3fb93d310b Finish removing deprecated aliases 2025-03-11 09:26:09 -05:00
f7a247eeae this is a private variable 2025-03-11 09:19:00 -05:00
908766eeb8 remove deprecated aliases 2025-03-11 09:07:15 -05:00
372a158bd7 Make n_temporal_planes, n_lanes "standard" argmuents
& add the simple multilane mapper to examples that use click
2025-03-11 08:53:07 -05:00
8ae0fea913 move simple_multilane_mapper into package 2025-03-11 08:48:48 -05:00
9bd7813dc3 Add rudimentary multi-connector support to fbmirror as well 2025-03-10 09:53:34 -05:00
2442bee476 Make temporal dithering schedules actually work
10/4 planes gives 100fps on the active3 spiral demo on 3 64x64 panels, or
1.2 megapixels/second. And to my eye, there's no brightness shimmer.

All the below settings "look good" to my eye, higher FPS ones tend to look
better to a camera. In "10/4" mode with my camera at 100FPS it still looks
solid but because the beat frequency between the dither pattern and the
shutter is pretty pronounced I can see it shift between the sub-frames.

There's still some brightness variation between modes, with more planes
being a little brighter than fewer planes.

10/0: 50fps
10/2: 72fps
10/4: 100fps

8/0: 92fps
8/2: 109fps
8/4: 134fps

5/0: 135fps
5/2: 153fps
5/4: 210fps
2025-03-10 09:52:00 -05:00
e2c5bc3467 tweak comment & no-temporal check 2025-03-10 08:24:50 -05:00
4f548a318c the rest of the plumbing. now it should be possible to use temporal dither. untested 2025-03-09 19:50:27 -05:00
a5f505241d tidy some build errors 2025-03-09 19:36:50 -05:00
7c7569236b plumb temporal dither most of the way through 2025-03-09 19:33:48 -05:00
68c24fcc00 allow multiple schedules for temporal dithering
(however, there's no code yet to generate such schedules)
2025-03-09 14:04:13 -05:00
39bc663b26 introduce pixel schedules 2025-03-09 13:46:37 -05:00
65b8b6fbf6 A variant spiral demo now works on active3!
.. with 3 64x64 panels.
2025-03-07 10:02:41 -06:00
296047a806 Allow using fewer than all the lanes
It's always the lowest numbered lanes. So now you can at least run
the first lane of an Active3 with a standard matrix map
2025-03-06 14:24:19 -06:00
274adf1805 Improve error reporting when address lines wrong
Before, a weird error would be shown because of the blitter thread
destructor running.
2025-03-06 14:23:30 -06:00
cfec6060d8 WIP support more RGB out pins 2025-03-06 13:49:48 -06:00
d008684e5d Add active3 pinout (only first connector works) 2025-03-06 13:49:24 -06:00
4ffb57c3d5 Reorganize includes per ruff's preferences 2025-03-06 10:17:11 -06:00
47226cf246 Move the click options into the piomatter package 2025-03-06 10:13:27 -06:00
97d5a4454d Allow passing in the matrix map directly to a Geometry object 2025-03-06 10:12:17 -06:00
cab2d4293d Move everything to a package structure 2025-03-06 10:12:17 -06:00
9b54dd1431 fix copypaste error
Some checks failed
Pip / build (ubuntu-24.04-arm, 3.11) (push) Has been cancelled
Pip / build (ubuntu-24.04-arm, 3.12) (push) Has been cancelled
Pip / build (ubuntu-24.04-arm, 3.13) (push) Has been cancelled
pre-commit / pre-commit (push) Has been cancelled
Wheels / Build SDist (push) Has been cancelled
Wheels / Wheels on ubuntu-24.04-arm (push) Has been cancelled
Wheels / Upload release (push) Has been cancelled
2025-02-25 11:09:35 -06:00
419f3f7eb7
Merge pull request #21 from FoamyGuy/docs_updates
Some checks failed
Pip / build (ubuntu-24.04-arm, 3.11) (push) Has been cancelled
Pip / build (ubuntu-24.04-arm, 3.12) (push) Has been cancelled
Pip / build (ubuntu-24.04-arm, 3.13) (push) Has been cancelled
pre-commit / pre-commit (push) Has been cancelled
Wheels / Build SDist (push) Has been cancelled
Wheels / Wheels on ubuntu-24.04-arm (push) Has been cancelled
Wheels / Upload release (push) Has been cancelled
Docs updates
2025-02-15 14:43:59 -06:00
60ae2029b9 Change module name
Some checks failed
Pip / build (ubuntu-24.04-arm, 3.11) (push) Has been cancelled
Pip / build (ubuntu-24.04-arm, 3.12) (push) Has been cancelled
Pip / build (ubuntu-24.04-arm, 3.13) (push) Has been cancelled
pre-commit / pre-commit (push) Has been cancelled
Wheels / Build SDist (push) Has been cancelled
Wheels / Wheels on ubuntu-24.04-arm (push) Has been cancelled
Wheels / Upload release (push) Has been cancelled
Change all references from adafruit_raspberry_pi5_piomatter to
adafruit_blinka_raspberry_pi5_piomatter.

Closes #20
2025-02-13 09:50:37 -06:00
foamyguy
15942f5c74 argument docstrings for PioMatter init 2025-02-12 12:21:12 -06:00
foamyguy
19706d79b9 add rotation to Geometry init docstring 2025-02-12 11:40:27 -06:00
foamyguy
c886a13fd6 add colorspace and pinout to auto generated docs 2025-02-10 16:31:02 -06:00
d27897fd18 add an example for the 64x64 matrix 2025-02-09 10:27:12 -06:00
f33e9ca82e Format code with pre-commit 2025-02-09 10:27:12 -06:00
9eafd20e9d Support swapped (bgr) matrices
& add enumerated types so there's not an explosion of constructors in
the Python code.
2025-02-09 10:27:12 -06:00
b149f31bf3 Add fps property to PioMatter objects 2025-01-24 12:01:59 -06:00
3d6b58f74d Double the pixel clock rate
.. by moving the "assert CLK after each data" into the PIO program,
cutting the amount of PIO data in half.
2025-01-24 11:59:21 -06:00
a532a9105e Reduce PIO clock speed, remove CLOCKS_PER_DATA workaround
we now understand why the fudge factor was needed to achieve a
plausible brightness ramp.
2025-01-24 11:59:21 -06:00
8fb5ba4339 Export RGB565 framebuffer type 2025-01-24 11:59:21 -06:00
b015674cb6
Merge pull request #5 from adafruit/fixgamma
Some checks failed
Pip / build (ubuntu-latest, 3.11) (push) Has been cancelled
Pip / build (ubuntu-latest, 3.12) (push) Has been cancelled
Pip / build (ubuntu-latest, 3.13) (push) Has been cancelled
pre-commit / pre-commit (push) Has been cancelled
Wheels / Build SDist (push) Has been cancelled
Wheels / Wheels on ubuntu-latest (push) Has been cancelled
Wheels / Upload release (push) Has been cancelled
fix gamma curve, it was all broken!
2025-01-16 11:33:04 -06:00
862b7fb1d5 Fix brightness of high numbered bitplanes
Cycle counting the PIO program, each data word should take 2 PIO clocks of clock_get_hz
while each repetition of the delay loop should take 1 PIO clock.

However, with a non-gamma-corrected ramp, discontinuities (decreases) in brightness were
seen for the bitplanes that needed the additional delay with oe enabled.

Empirically, the value of 128 gives a plausible linear ramp and also fixes the big buck
bunny rendering artifacts with 10 planes.

It also makes the granularity of the on-time twice as fine, by being able to turn off
during either the "clock on" or "clock off" phase of the shift register loading process,
when the output enable time is short. Thus, with 10 bitplanes and a 64x32 panel,
only the most significant bitplane needs any extra delay.
2025-01-15 20:57:59 -06:00
e315eeb3be fix gamma curve, it was all broken! 2025-01-15 16:43:24 -06:00
27274f082f document better 2025-01-15 11:17:43 -06:00
c7d822bc60 generate more useful summary 2025-01-15 10:41:03 -06:00
e55647d8f7 it's working!!!1 2025-01-14 15:07:59 -06:00
895a5e5458 builds, but broken with weird error 2025-01-14 14:50:43 -06:00
ee8b718621 WIP: pybindings 2025-01-14 11:50:12 -06:00