Thread Starter

Isaac Trevino

Joined Sep 25, 2015
I am building an LED SCREEN for Senior Design using WS2812B LED's. They have been referred to as neoPixels, I have placed them on a salvaged Samsung 72" projection tv.

I am using a
These pixels are arranged in columns of 53 pixels/Strip, and set 112 times across the screen thus forming a 112Hx53W resolution. I have already been able to produce images on screen, with poor refresh rates. I realize that according to timing it takes a minimum of 7.35 HZ or 0.136 ms to replace refresh the screen.

When I mean refresh rate, you must first understand That I am using a Single Column to light the entire screen, SEEMS ILLOGICAL, but that is how tv's work. They must be so fast to zoom across the screen that they seem all on to the naked eye.
I've read that for a normal view there must be at least a 30 to 60 Hz refresh rate for the image or video to look good. I would like to know more about this for most of the websites I visit do not talk about the size of the screen or the pixel-to-pixel distance.

Also for any embedded Sys Engr's I am using a PIC32MZ2048ECM144 as the GPU to send data to each column, as you notice this PIC32 has 120 i/o pins which is perfect for my 112 column application. Though I have noticed that this chip many not be able to do it alone with since the the refresh rate is very slow. I have four spares that I may use, might have to use all of them. Each controlling 28 columns.

And even then I am testing my prototype pic32 with only 28 columns and it look poor. The Pixels do not seem to turn completely on, for each column, looks like a movie made in 1980 digital computer where the lights are random, but seem sophisticated. <-- that is my sci-fi example. More than likely it is just way to fast for the columns to process the data.

I will edit the page as I move forward with my research and implementation.
btw; this is my first forum post, please feel free to ask me any question if your interested in doing something similar. I can answer to the best of my Abilities.


Joined Jan 2, 2010
Hello Isaac Trevino

Well, as far as I think I know, the TV's make a horizontal line at about 15KHz. Around in 66 microseconds.

While this line crosses horizontally the screen, light pixels to be forming an image.

This line is moved vertically to approximately 60Hz. every 16 milliseconds approximately.

According to what I see in the pictures that You have attached, what I think you have is a Dot-Matrix with 112 points horizontally and 28 points vertically.
So you have a screen (Dot-Matrix) with 3,136 pixels.

Now: the refresh rates you want to improve can be done increasing the frequency you have now (7.35 Hz or 0.136 ms). To, say, 100 Hz or 10 ms.
But: as we have 112 pixels horizontally the total sweep will in 112 x 0.010 = 1.12 just over one second.
Most likely to 1KHz. The picture would look better on your Dot-Matrix.

Thread Starter

Isaac Trevino

Joined Sep 25, 2015
Thanks Carlos for the reply. You might have lost me on the dimensions. I am using 112 horz and 53 vert, and plan to move to 28 horz and 53 vert (28Wx53H) with the four addition chips which will speed up my frequency by x4. Though you have brought the average tv scan (*refresh rate) to my attention. The thing about these pixels according to the data sheet, they will take a min of (no way around this num) 0.0012144 s (823Hz) to light A single column. Way below the 15kHz speed, but if I add 3 more chips I will be splitting the 112 into 4x28, in which when I multiply the new 0.0012144 by 28 Instead of 112 I get 29.4 Hz. Which I hope will work.
NTSC did what's called interleaving. It painted every other line and got a frame rate of about 60 Hz. Two interleaved frames at 30 Hz for a single frame. Later this was changed to an exact multiple of the color burst frequency, so like 59.xx and change. The line frequency was 60 Hz and that's what it was initially synced to. Horizontal is somewhere around 15.7 kHz. I also think it started at 1/2 a line for whatever reason.

Thread Starter

Isaac Trevino

Joined Sep 25, 2015
Thanks KeepItSImpleStupid, ironically your title is the best approach. I did heavy research on NTSC, using this link as my foundation.

Check out Appendix C & D, very interesting.

So with further data gathering, and noticing i was doing my math wrong with MRCARLOS, i was actually pulling about 3.5 Hz or 0.286 s
Per column on = 1212 us
Per column on & off = 2.544 ms
per column on + buffer + off = 2.55 ( buffer is required for on to off transition ~ 7 us)
then I want to go across 112 columns ->(2.55 *112) = 286 ms or 3.5 Hz

The method I was proposing on my initial post was using 4 additional chips to speed it up 4 times by using only 28 columns per chip. This brought me down to 14 Hz. Which I see is quite slow compared to the NTSC or PAL. So I have done more research and have found that the PIC32 itself has a graphic module using parallel comm (PMP or EBI modules) . Whoa I can simultaneously light 16 columns at a time for 7 progressive times. (progressive is the p in 1080p/ and interlace is the i in 1080i). Though consuming a lot of power, we are virtually using 7 columns leaving us to conclude: 2.55 ms * 7 columns = 17.9 ms or 56 Hz.

I am not sure if I will hit that exact speed, but I feel confident that if I reach above 50 Hz, we will not see any flickering (or LINES for that matter).

So I’ll come check in early next week to let you know how it went. Feel free to correct me or engage in the topic.
Oh, and I’m still bobbling with the idea of FPS and Refresh Rate, I’m assuming FPS is only applied to recording, and Refresh Rate is applied to PlayBack.


Joined Aug 21, 2008
The highest perceived flicker rate I have seen reported for and LED was about 120 Hz, but I have never seen flicker beyond 90 Hz.

But the flicker rate is not the only factor. There is also the motion of the image across the retina as the eye or the subject moves. What you often see is a string of lines or dots (depending upon what is being driven and how it is driven). My favorite example is pulse width modulated LED taillights on automobiles. When goes over a bumpy road at night one can see a waving stream of dots as if being shot from the taillights.

It is unlikely you will be able to make this effect completely invisible since the human eye scans in saccadic jerks of up to 10,000 degrees per second. The saving grace is that many people tend ignore these little artifacts.

The "interleaving" is a way to mask large area judder when possible refresh rate or bandwidth is the limit.

The best answer to your question is to refresh as frequently as possible, or at least until you are happy with the appearance.