[Extension] Dynamic graph. Shift left graph. Sinusoidal wave. Bluetooth

How does the ESP32 send the information, by classic Bluetooth, by BLE, by FireBase, by WiFi?

by classic Bluetooth
mit app: clock >> 120 ms

  • dynamic.graph resolution > 10 ms
    Bluetooth pooling rate >> 10 ms

  • esp32 to bluetooth 200 ms

Here an example with ESP32 and classic Bluetooth.

4.- ESP32 sends by classic Bluetooth, two random numbers to the app, they are displayed in a graph.

thank you ,
this is what i am at now already ..

  • Would you please create with only 2 variables with min/max

I have added the block with two graphics.

you are as awesome as usual ..
fyi , no lagging or cutting and pausing in my graph anymore with 2 var extension. be blessed :smiley:

your HELP is needed please.

  • to freeze the graph >> you said disable the clock .. ok ,, but to resume the graph again with diabled clock ! .. ? .. so would you please add a new control as KIO4_DynamicGraph1.PAUSE=true/false ..etc.
  • i need the clock to keep running all the time for other processes to keep running .. only graph need to be stopped while clock always running .. are you able please?

thank you so much ..

Set another Clock.

Hi, this is brilliant, but is there any way to plot the values of multiple potentiometers using Bluetooth?

That's very helpful thank you! I also have another question. I was hoping to find the peak value of the graph drawn, however, the get max value block seems to only print the upper range of the graph and not the peak of the graph produced. Is there a way to get the peak value? Thank you

If you want to get the maximum value returned, you should create a code for it. The MaxValue block displays the maximum value configured on the chart.

Here's how to capture max(y values) from a list of (x,y) pairs.

If you only save y values, just use the max in list block.


Thank you for replying. This looks like its an imported list however, and its picking out the larges value from pairs of values. I think I'm looking for something more dynamic as I am streaming in data. I wanted to compare the max value to the incoming value, so if the max value is smaller than the incoming streamed value then it would update to the new value, but if it is less, it would remain at the maximum value.

I was using the if/then blocks and managed to get the max value to update with the streamed in data, but I'm having trouble keeping the max value the same if the stream data is less than the max value (the max value increases and decreases with the streamed values).

Thank you


Say you want the running maximum of global Y.

Init a global maxY to hold it, initially some low number like 0.

Each time a new Y value arrives, set maxY to max(Y,maxY).

1 Like

Worked like a charm, thank you

Great Extension
Is it possible to add legend and value on the x-axis and on the y-axis ?

If it is a static graph you can modify the background image with values ​​in the X and Y axes.
If it is a dynamic image you must add a code so that the values ​​scroll horizontally like a marquee, but the code gets complicated.

You can also use the Charts component:

I set the interval timer to 4ms so 1s I will display 250 bytes, How can set the x axis to display 2500 bytes (10 seconds). Thank you very much!

What a coincidence, I just started Batman Arkham Asylum.

4 Ms is a pipe dream in AI2, you will be lucky to keep up at 20 Ms

Use a list type Chartdata subcomponent and clip item 1 whenever its list length won't fit.

P.S Give my regards to Harley Quinn