foamyguy
d5a979df18
correct active3 pinouts
2025-08-01 11:03:38 -05:00
89dd515ae5
restore large xfer workaround
...
sadly, it's not possible to gracefully switch from large to blocked
xfers, further xfer ioctls fail after the first large xfer fails.
2025-03-17 11:29:28 -05:00
fc7295eb74
Actually report errors in pio_sm_xfer_data
2025-03-17 09:26:21 -05:00
a2827b6e28
remove debug code & a stray semicolon
2025-03-13 15:33:53 -05:00
db9a925103
tweak docs about temporal planes.
2025-03-13 10:43:08 -05:00
8b9f7d7006
Enable 3 & 5 temporal planes
...
By doing a bit more math we can create a sensible schedule for
these situations. A 6/3 schedule gives a very nice 150fps with
temporal shimmer at 50Hz
2025-03-13 10:40:31 -05:00
450e3b61d3
change how the C smoke test program builds
2025-03-13 10:14:52 -05:00
a565d17654
Remove "xfer_data_large" workaround
...
it's not needed with updated piolib
2025-03-13 09:56:47 -05:00
57c66624ce
update piolib
...
This diff looks bigger than it is because we'd previously
reformatted piolib sources via pre-commit.
2025-03-13 09:54:46 -05:00
8e69092434
reduce post_addr_delay
...
The original post_addr_delay (the delay after changing the ABCD(E)
address lines) was pretty long, for two reasons: First, the initial
timing numbers were chosen conservatively without regard to
performance; and second, because they were originally chosen
assuming a high PIO clock rate but we lowered the PIO clock to
2.7MHz.
Together this made the delay a huge 185us!
The new value of 5 is about 1.8us instead; this gives a nice
increase in FPS from 88 to 120 on my 128x128 (4 lane, 6/2 plane)
setup, without any visible artifacts.
2025-03-13 09:34:19 -05:00
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
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
...
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
...
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
...
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