64 pxl matrix help

Ok, I have a fix for this on github.
Please try the latest version and see if it works better.

OK, I have re downloaded the ProffieOS-master from GitHub. (if this was incorrect please let me know). It looks like it has come farther along.

a@a frames9x9 % /Users/a/Desktop/ProffieOS-master/pqoi/cpqoi scroll.mp4 “pamscale -xysize 9 9” >idle.pqf
Executing: ffprobe -i “$FILE” 2>&1 | sed -n ‘s@.Video:., ([0-9.]) fps,.@\1@gp’
Executing: ffprobe -i “$FILE” 2>&1 | sed -n ‘s@.Video:., ([0-9.]) fps,.@\1@gp’
FPS: 15:1
Executing: ffmpeg -i “$FILE” -an -pix_fmt yuv444p -f yuv4mpegpipe - | y4mtopnm -P | pamscale -xysize 9 9
sh: y4mtopnm: command not found
pamscale: Error reading first byte of what is expected to be a Netpbm magic number. Most often, this means your input file is empty
ffmpeg version 7.1.1 Copyright (c) 2000-2025 the FFmpeg developers
built with Apple clang version 16.0.0 (clang-1600.0.26.6)
configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/7.1.1_1 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags=‘-Wl,-ld_classic’ --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libharfbuzz --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon
libavutil 59. 39.100 / 59. 39.100
libavcodec 61. 19.101 / 61. 19.101
libavformat 61. 7.100 / 61. 7.100
libavdevice 61. 3.100 / 61. 3.100
libavfilter 10. 4.100 / 10. 4.100
libswscale 8. 3.100 / 8. 3.100
libswresample 5. 3.100 / 5. 3.100
libpostproc 58. 3.100 / 58. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from ‘scroll.mp4’:
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf59.27.100
Duration: 00:00:07.87, start: 0.000000, bitrate: 6 kb/s
Stream #0:00x1: Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 16x16, 4 kb/s, 15 fps, 15 tbr, 15360 tbn (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
encoder : Lavc59.37.100 libx264
Stream mapping:
Stream #0:0#0:0 (h264 (native) → wrapped_avframe (native))
Press [q] to stop, [?] for help
Output #0, yuv4mpegpipe, to ‘pipe:’:
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf61.7.100
Stream #0:0(und): Video: wrapped_avframe, yuv444p(progressive), 16x16, q=2-31, 200 kb/s, 15 fps, 15 tbn (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
encoder : Lavc61.19.101 wrapped_avframe
[vost#0:0/wrapped_avframe @ 0x121f04b80] Error submitting a packet to the muxer: Broken pipe
Last message repeated 1 times
[out#0/yuv4mpegpipe @ 0x600002cd4000] Error muxing a packet
[out#0/yuv4mpegpipe @ 0x600002cd4000] Task finished with error code: -32 (Broken pipe)
[out#0/yuv4mpegpipe @ 0x600002cd4000] Terminating thread with return code -32 (Broken pipe)
[out#0/yuv4mpegpipe @ 0x600002cd4000] Error writing trailer: Broken pipe
[out#0/yuv4mpegpipe @ 0x600002cd4000] Error closing file: Broken pipe
[out#0/yuv4mpegpipe @ 0x600002cd4000] video:0KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 86.818182%
frame= 1 fps=0.0 q=-0.0 Lsize= 1KiB time=00:00:00.33 bitrate= 19.7kbits/s speed= 51x
Conversion failed!
Failed to read PAM header.
a@a frames9x9 %

You need mjpegtools. (brew install mjpegtools)

Thanks. I have a proffie produced idle.pqf . I will try to light the saber this afternoon, gd I hope this works haha.

I appreciate everyone’s help. On a different note, POV is awesome. Good workout too.

Hopefully last question. I am testing using idle.pqf . I understand that this should play automatically. Do I need a corresponding .scf file for my pqf to work?

Thanks

Seems unlikely, you’re just getting to the point of making this work.
Once it works, you’ll probably have more questions, which would be welcome.

Yes. Otherwise it wouldn’t know what layer to play it on.
The PQF files can be called whatever you want, and may be shared between SCR files, or you can just create exactly one SCR file for every PQF file.

So close but so far away. Using the proffie created .pqf, I created my own .scr with one line. file=idle.pqf . both in the font in a folder named 9x9. Here is the serial.

8:11:02.605 → EVENT: Power-Pressed#1 millis=61346

18:11:02.605 → EVENT: Power-Pressed millis=61346

18:11:02.736 → EVENT: Power-Released#1 millis=61479

18:11:02.736 → EVENT: Power-Released millis=61479

18:11:02.736 → EVENT: Power-Shortclick#1 millis=61479

18:11:02.736 → EVENT: Power-Shortclick millis=61479

18:11:02.736 → Ignition.

18:11:02.801 → unit = 0 vol = 0.00, Playing Graflex3/hum01.wav

18:11:02.801 → channels: 1 rate: 44100 bits: 16

18:11:02.801 → unit = 1 vol = 0.50, Playing Graflex3/out08.wav

18:11:02.801 → channels: 1 rate: 44100 bits: 16

18:11:02.801 → humstart: 1800

18:11:02.801 → unit = 2 vol = 0.00, Playing Graflex3/swingl04.wav

18:11:02.801 → channels: 1 rate: 44100 bits: 16

18:11:02.801 → unit = 3 vol = 0.00, Playing Graflex3/swingh04.wav

18:11:02.801 → channels: 1 rate: 44100 bits: 16

18:11:02.801 → DISPLAY WAKEUP

18:11:02.835 → Display initialized.

18:11:03.924 → EVENT: Power-Pressed#1 ON millis=62637

18:11:03.924 → EVENT: Power-Pressed ON millis=62637

18:11:04.055 → EVENT: Power-Released#1 ON millis=62799

18:11:04.055 → EVENT: Power-Released ON millis=62799

18:11:04.055 → EVENT: Power-Shortclick#1 ON millis=62799

18:11:04.055 → Turning off 0.00@012

18:11:04.055 → Turning off 0.00@012

18:11:04.055 → Turning off 0.00@012

18:11:04.055 → Turning off 0.00@012

18:11:04.055 → Turning off 0.00@012

18:11:04.089 → unit = 4 vol = 0.50, Playing Graflex3/in02.wav

18:11:04.089 → channels: 1 rate: 44100 bits: 16

18:11:04.089 → Playing Graflex3/9x9/idle.scr

18:11:04.683 → No sounds found: pstoff

18:11:04.717 → Amplifier off.

18:11:05.704 → Unmounting SD Card.

18:11:06.893 → Time = 3000. PLI_OFF_TIME expired.

18:11:07.092 → DISPLAY SLEEP

18:11:13.786 → Booster off.

18:11:21.270 → Battery voltage: 4.16

18:11:41.288 → Battery voltage: 4.16

18:12:01.273 → Battery voltage: 4.16

18:12:21.288 → Battery voltage: 4.16

  1. make sure you have a newline after your “file=idle.pqf” line.
  2. What does your actual config look like? I assume you’re using DisplayStyle<> ?

Its working. Not yet readable, but I think I can get this to work this weekend. Thanks

That was fun. Thanks Fredrik and Brian for helping me along.

Need to work on the text. “Hello World, this is Proffie”

2 Likes

I have this text “font” image collection of lettering if it helps
https://www.dropbox.com/scl/fo/3eghtwi7ou2xbu0qrm8wb/AH9euUBZ2cXZVvLbUv9oeWI?rlkey=kpnpz6delh8j0hyq7zqoqfzvr&st=9rcw7klp&dl=0

It may already exist but I wrote a python program that creates scrolling mp4s that I used to generate scrolling mp4’s for cpqoi conversion. I updated it to incorporate Brian’s font styles if anyone else is playing around with different matrix. It generates as a perfect square now, but can easily be modified to any display layout.

https://www.dropbox.com/scl/fi/schi0b51cuckaqfvwjx6j/Text-Scroll.zip?rlkey=vobne515ov4671t9uhgvzkn7f&st=g36szb69&dl=0

Can I play a .pqf and .scf from the common folder, or does it have to be in each individual font? Thanks

They can be in the common folder if you like.

Here is a text font letters in BMP images I’ve created specifically for dot matrix like the round 69-pixel one:

2 Likes

Hello

i want to install the same 69 pixel shtok blade plug and all your and profezzorn talk was very instructive but i have two questions for you:
what is your blade config (SubBladeWithList )?
what style to you use to play the SCR and PQF file?

thanks in advance

DimBlade(20.0, SubBladeWithList <
-1, -1, 0, 1, 2, 3, 4, -1, -1,
-1, 11, 10, 9, 8, 7, 6, 5, -1,
20, 19, 18, 17, 16, 15, 14, 13, 12,
29, 28, 27, 26, 25, 24, 23, 22, 21,
38, 37, 36, 35, 34, 33, 32, 31, 30,
47, 46, 45, 44, 43, 42, 41, 40, 39,
56, 55, 54, 53, 52, 51, 50, 49, 48,
-1, 63, 62, 61, 60, 59, 58, 57, -1,
-1, -1, 68, 67, 66, 65, 64, -1, -1
>(WS281XBladePtr<70, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()) ), /* 69 array */

I used Dim Blade but you do not have to. I just used the pqoi tools in the proffie OS. I learned to use Python to create the animations. The subblade setup only currently works with the Proffie Master so not an official release, but don’t know if it will be included in OS8. Do not be intimidated by Python. I taught myself how to use it in an afternoon and have written a few programs already. It just takes some patience. Hope this helps.

Thank you for the answer but I am not aware of what is proffie master

That’s the current/latest work in progress that you can get from the Github website.

Go here, click the green CODE button, and download zip. Use that ProffieOS as your upload source.

1 Like

thank you :slight_smile: