Start a new topic

What is required for a good Waveform?

The Nextion Waveform Component has some advantages

  • 4 channels in the range of 0 to 255
  • it has the advantage of a single pixel resolution for a data point
  • it has the advantage of being able to use unexposed display driver routines
  • it has the advantage of accessing GRAM for quick column moves in scrolling
  • it has the advantage of having a permanent placement in the firmware
  • and an awesome advantage of implementing itself in binary machine code

But it also has a disadvantage when it comes to being on an 800x480 and only reaching 255.

So I began wondering if it was possible to replicate anything remotely resembling the

Waveform Component in mere mortal space, with mortal access to the Nextion Instruction Set.

So, Using the 3.5" 480x320 Enhanced Model of the Nextion  <Order it Here>

  • 96 data points at a 5px width
  • Left aligned or Right aligned directions control
  • 3 channels with their own color pco0.val pco1.val pco2.val
  • Channel data entry ch0.val, ch1.val, ch2.val
  • Unified sampling, on timer all channel values are sampled
  • Data range 0 to 319 (in Horizontal, could be 0..479 in Vertical)
  • a data range of 0..799 is possible on 5.0" and 7.0" models
  • Disclosure: the 3.5" Enhanced model runs at a blazing 108MHz, not 48Mhz.

At the moment it is possible to process a screen scroll (left/right) in about 520ms

I also have yet to solve for a leading line on the first data points.

So with a timer of 625ms, it is possible to display 96 samples per minute.


So, it is possible to have full screen waveforms on larger screens and make use of the whole screen

But, in having more questions, how often should data be being sampled for a good Waveform.

Is sampling only once per second fast enough?

Is having more data points on a single screen more important?

Is having more channels more important?

What are your thoughts.  Place your comments below, let me know ...

2 people like this idea
1 Comment

So here we go,

320x480 and six channels data range 0..319 -- but only 43 samples per minute.

Functioning (at least limping) waveform, that processes the current values of the six

channels and updates the Nextion screen.  Just send the six channel values.

Left/Right directional alignment, pause (to help lose data) and channel color assignment.


But I have to wonder at 108 MHz and it is requiring just under 1400ms to process one set,

slide 96 columns and refresh the screen.  I am just not sure that's 75M-151M instructions.

2 people like this
Login or Signup to post a comment