Klass
I think that is what I am doing at present - representing each NBTV picture line as made up of 48 vertical lines, each of which is 5 display pixels long. Each picture line is then duplicated an extra 4 times to give the total of 25 display pixels representing 1 picture pixel.
Now a question for Dom.
I'm trying to get my 64 x 32 LED matrix panel (with Teensy 3.6 and Smart Matrix shield v4) to display a Grant Dixon test card but am getting puzzling results. The SmartMatrix library has a demo program which includes the following setup parameters
#define COLOR_DEPTH 24 // known working: 24, 48 - If the sketch uses type `rgb24` directly, COLOR_DEPTH must be 24
const uint8_t kMatrixWidth = 32; // known working: 32, 64, 96, 128
const uint8_t kMatrixHeight = 32; // known working: 16, 32, 48, 64
const uint8_t kRefreshDepth = 36; // known working: 24, 36, 48
const uint8_t kDmaBufferRows = 4; // known working: 2-4, use 2 to save memory, more to keep from dropping frames and automatically lowering refresh rate
const uint8_t kPanelType = SMARTMATRIX_HUB75_32ROW_MOD16SCAN; // use SMARTMATRIX_HUB75_16ROW_MOD8SCAN for common 16x32 panels
const uint8_t kMatrixOptions = (SMARTMATRIX_OPTIONS_NONE); // see
http://docs.pixelmatix.com/SmartMatrix for options
const uint8_t kBackgroundLayerOptions = (SM_BACKGROUND_OPTIONS_NONE);
const uint8_t kScrollingLayerOptions = (SM_SCROLLING_OPTIONS_NONE);
const uint8_t kIndexedLayerOptions = (SM_INDEXED_OPTIONS_NONE);
Obviously I need to set MatrixWidth to 64 and MatrixHeight to 32 and to specify 32 rows in the PanelType command.
I would guess that I only need the background layer but not the scrolling and index layers?
What values do I need for RefreshDepth and DmaBufferRows?
Can I write picture data for a whole NBTV frame into the buffer "on the fly" as I read the ADC for each pixel brightness and then use swapbuffers at the end of the frame to display the actual frame?
Baz