TFT_eSPI example Slider_demo code need help please

Hi all.
The TFT_eSPI example Slider_demo sketch works but questions:

  1. touched the Vertical Slider bar, moving happened on Horizontal Slider bar and vice versa;
    I have tried changed the tft.setRotation(0); from 0 to /1/2/3, all other set work slow or no moving;

  2. I didn't find which line made the moving as below;

  if (millis() - scanTime >= 20) {
    // Pressed will be set true if there is a valid touch on the screen
    if( tft.getTouch(&t_x, &t_y, 250) ) {
      if (s1.checkTouch(t_x, t_y)) {
        Serial.print("Slider 1 = "); Serial.println(s1.getSliderPosition());
      }
      if (s2.checkTouch(t_x, t_y)) {
        Serial.print("Slider 2 = "); Serial.println(s2.getSliderPosition());
      }
    }
    scanTime = millis();
  }

code:

#include "FS.h"

#include "Free_Fonts.h" // Include the header file attached to this sketch

#include <TFT_eSPI.h>
#include <TFT_eWidget.h>           // Widget library

TFT_eSPI tft = TFT_eSPI();
TFT_eSprite knob = TFT_eSprite(&tft); // Sprite for the slide knob

#define CALIBRATION_FILE "/TouchCalData1"
#define REPEAT_CAL false

SliderWidget s1 = SliderWidget(&tft, &knob);    // Slider 1 widget
SliderWidget s2 = SliderWidget(&tft, &knob);    // Slider 2 widget


void setup() {
  Serial.begin(115200);
  tft.begin();
  tft.setRotation(0);
  tft.fillScreen(TFT_BLACK);
  tft.setFreeFont(FF18);

  // Calibrate the touch screen and retrieve the scaling factors
  if (REPEAT_CAL) {
    touch_calibrate();
    tft.fillScreen(TFT_BLACK);
  }

  // Create a parameter set for the slider
  slider_t param;

  // Slider slot parameters
  param.slotWidth = 9;           // Note: ends of slot will be rounded and anti-aliased
  param.slotLength = 200;        // Length includes rounded ends
  param.slotColor = TFT_BLUE;    // Slot colour
  param.slotBgColor = TFT_BLACK; // Slot background colour for anti-aliasing
  param.orientation = H_SLIDER;  // sets it "true" for horizontal

  // Slider control knob parameters (smooth rounded rectangle)
  param.knobWidth = 15;          // Always along x axis
  param.knobHeight = 25;         // Always along y axis
  param.knobRadius = 5;          // Corner radius
  param.knobColor = TFT_WHITE;   // Anti-aliased with slot backgound colour
  param.knobLineColor = TFT_RED; // Colour of marker line (set to same as knobColor for no line)

  // Slider range and movement speed
  param.sliderLT = 0;            // Left side for horizontal, top for vertical slider
  param.sliderRB = 100;          // Right side for horizontal, bottom for vertical slider
  param.startPosition = 50;      // Start position for control knob
  param.sliderDelay = 0;         // Microseconds per pixel movement delay (0 = no delay)

  // Create slider using parameters and plot at 0,0
  s1.drawSlider(0, 0, param);

  // Show bounding box (1 pixel outside slider working area)
  int16_t x, y;    // x and y can be negative
  uint16_t w, h;   // Width and height
  s1.getBoundingRect(&x, &y, &w, &h);     // Update x,y,w,h with bounding box
  tft.drawRect(x, y, w, h, TFT_DARKGREY); // Draw rectangle outline
/*
  // Alternative discrete fns to create/modify same slider - but fn sequence is important...
  s1.createSlider(9, 200, TFT_BLUE, TFT_BLACK, H_SLIDER);
  s1.createKnob(15, 25, 5, TFT_WHITE, TFT_RED);
  s1.setSliderScale(0, 100);
  s1.drawSlider(0, 0);
*/
  delay(1000);
  s1.setSliderPosition(50);
  delay(1000);
  s1.setSliderPosition(100);

  // Update any parameters that are different for slider 2
  param.slotWidth = 4;
  param.orientation = V_SLIDER; // sets it "false" for vertical

  param.knobWidth = 19;
  param.knobHeight = 19;
  param.knobRadius = 19/2; // Half w and h so creates a circle

  param.sliderLT = 200;     // Top for vertical slider
  param.sliderRB = 0;       // Bottom for vertical slider
  param.sliderDelay = 2000; // 2ms per pixel movement delay (movement is blocking until complete)

  s2.drawSlider(0, 50, param);

  s2.getBoundingRect(&x, &y, &w, &h);
  tft.drawRect(x, y, w, h, TFT_DARKGREY);
/*
  // Alternative discrete fns to create/modify same slider - but fn sequence is important...
  s2.createSlider(4, 200, TFT_BLUE, TFT_BLACK, V_SLIDER);
  s2.createKnob(19, 19, 9, TFT_WHITE, TFT_RED);
  s2.setSliderScale(200, 0, 2000);
  s2.drawSlider(0, 50);
*/
  // Move slider under software control
  delay(1000);
  s2.setSliderPosition(50);
  delay(1000);
  s2.setSliderPosition(100);

}

void loop() {
  static uint32_t scanTime = millis();
  uint16_t t_x = 9999, t_y = 9999; // To store the touch coordinates

  // Scan for touch every 50ms
  if (millis() - scanTime >= 20) {
    // Pressed will be set true if there is a valid touch on the screen
    if( tft.getTouch(&t_x, &t_y, 250) ) {
      if (s1.checkTouch(t_x, t_y)) {
        Serial.print("Slider 1 = "); Serial.println(s1.getSliderPosition());
      }
      if (s2.checkTouch(t_x, t_y)) {
        Serial.print("Slider 2 = "); Serial.println(s2.getSliderPosition());
      }
    }
    scanTime = millis();
  }

  //s1.moveTo(random(101));
  //delay(250);
  //s2.moveTo(random(101));
  //delay(250);
}





void touch_calibrate()
{
  uint16_t calData[5];
  uint8_t calDataOK = 0;

  // check file system exists
  if (!LittleFS.begin()) {
    Serial.println("Formating file system");
    LittleFS.format();
    LittleFS.begin();
  }

  // check if calibration file exists and size is correct
  if (LittleFS.exists(CALIBRATION_FILE)) {
    if (REPEAT_CAL)
    {
      // Delete if we want to re-calibrate
      LittleFS.remove(CALIBRATION_FILE);
    }
    else
    {
      File f = LittleFS.open(CALIBRATION_FILE, "r");
      if (f) {
        if (f.readBytes((char *)calData, 14) == 14)
          calDataOK = 1;
        f.close();
      }
    }
  }

  if (calDataOK && !REPEAT_CAL) {
    // calibration data valid
    tft.setTouch(calData);
  } else {
    // data not valid so recalibrate
    tft.fillScreen(TFT_BLACK);
    tft.setCursor(20, 0);
    tft.setTextFont(2);
    tft.setTextSize(1);
    tft.setTextColor(TFT_WHITE, TFT_BLACK);

    tft.println("Touch corners as indicated");

    tft.setTextFont(1);
    tft.println();

    if (REPEAT_CAL) {
      tft.setTextColor(TFT_RED, TFT_BLACK);
      tft.println("Set REPEAT_CAL to false to stop this running again!");
    }

    tft.calibrateTouch(calData, TFT_MAGENTA, TFT_BLACK, 15);

    tft.setTextColor(TFT_GREEN, TFT_BLACK);
    tft.println("Calibration complete!");

    // store data
    File f = LittleFS.open(CALIBRATION_FILE, "w");
    if (f) {
      f.write((const unsigned char *)calData, 14);
      f.close();
    }
  }
}

code link: TFT_eSPI/examples/GUI Widgets/Sliders/Slider_demo/Slider_demo.ino at master · Bodmer/TFT_eSPI · GitHub

Thanks.
Adam

You were naming knob for two knobs. Make your sketch have two instances of knobX so S1 uses knob1, S2 uses knob2.

1 Like

Thanks.

modified still same wrong moving.

meanwhile do you mean these two lines made the knob move?

SliderWidget s1 = SliderWidget(&tft, &knob1);    // was: &knob// Slider 1 widget
SliderWidget s2 = SliderWidget(&tft, &knob2);    // Slider 2 widget

Look for all knob and make knob1 or knob2

1 Like

Thanks.
I made:

// Slider control knob parameters (smooth rounded rectangle)
  param.knob1Width = 15;          // Always along x axis
  param.knob1Height = 25;         // Always along y axis
  param.knob1Radius = 5;          // Corner radius
  param.knob1Color = TFT_WHITE;   // Anti-aliased with slot backgound colour
  param.knob1LineColor = TFT_RED; // Colour of marker line (set to same as knobColor for no line)

   param.knob2Width = 15;          // Always along x axis
  param.knob2Height = 25;         // Always along y axis
  param.knob2Radius = 5;          // Corner radius
  param.knob2Color = TFT_WHITE;   // Anti-aliased with slot backgound colour
  param.knob2LineColor = TFT_RED; // Colour of marker line (set to same as knobColor for no line)

and got compiling error 'struct slider_t' has no member named 'knob1Width'; did you mean 'knobWidth'? :

Arduino: 1.8.19 (Windows 7), Board: "ESP32 Dev Module, FTDI Adapter, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, Core 1, Core 1, None, Disabled"

C:\Users\HUA~1.DEL\AppData\Local\Temp\arduino_modified_sketch_171675\Slider_demo.ino: In function 'void setup()':

Slider_demo:48:9: error: 'struct slider_t' has no member named 'knob1Width'; did you mean 'knobWidth'?

   param.knob1Width = 15;          // Always along x axis

         ^~~~~~~~~~

         knobWidth

Slider_demo:49:9: error: 'struct slider_t' has no member named 'knob1Height'; did you mean 'knobHeight'?

   param.knob1Height = 25;         // Always along y axis

         ^~~~~~~~~~~

         knobHeight

Slider_demo:50:9: error: 'struct slider_t' has no member named 'knob1Radius'; did you mean 'knobRadius'?

   param.knob1Radius = 5;          // Corner radius

         ^~~~~~~~~~~

         knobRadius

Slider_demo:51:9: error: 'struct slider_t' has no member named 'knob1Color'; did you mean 'knobColor'?

   param.knob1Color = TFT_WHITE;   // Anti-aliased with slot backgound colour

         ^~~~~~~~~~

         knobColor

Slider_demo:52:9: error: 'struct slider_t' has no member named 'knob1LineColor'; did you mean 'knobLineColor'?

   param.knob1LineColor = TFT_RED; // Colour of marker line (set to same as knobColor for no line)

         ^~~~~~~~~~~~~~

         knobLineColor

Slider_demo:54:10: error: 'struct slider_t' has no member named 'knob2Width'; did you mean 'knobWidth'?

    param.knob2Width = 15;          // Always along x axis

          ^~~~~~~~~~

          knobWidth

Slider_demo:55:9: error: 'struct slider_t' has no member named 'knob2Height'; did you mean 'knobHeight'?

   param.knob2Height = 25;         // Always along y axis

         ^~~~~~~~~~~

         knobHeight

Slider_demo:56:9: error: 'struct slider_t' has no member named 'knob2Radius'; did you mean 'knobRadius'?

   param.knob2Radius = 5;          // Corner radius

         ^~~~~~~~~~~

         knobRadius

Slider_demo:57:9: error: 'struct slider_t' has no member named 'knob2Color'; did you mean 'knobColor'?

   param.knob2Color = TFT_WHITE;   // Anti-aliased with slot backgound colour

         ^~~~~~~~~~

         knobColor

Slider_demo:58:9: error: 'struct slider_t' has no member named 'knob2LineColor'; did you mean 'knobLineColor'?

   param.knob2LineColor = TFT_RED; // Colour of marker line (set to same as knobColor for no line)

         ^~~~~~~~~~~~~~

         knobLineColor

exit status 1

'struct slider_t' has no member named 'knob1Width'; did you mean 'knobWidth'?

Invalid library found in C:\Users\HUA.DELLV-PC\Documents\Arduino\libraries\e-Paper-master: no headers files (.h) found in C:\Users\HUA.DELLV-PC\Documents\Arduino\libraries\e-Paper-master

Invalid library found in C:\Users\HUA.DELLV-PC\Documents\Arduino\libraries\esp-idf-master: no headers files (.h) found in C:\Users\HUA.DELLV-PC\Documents\Arduino\libraries\esp-idf-master



This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

The sketch has 32 occurrences of knob. Find them and decide. You had two knobs were doing the same thing, so you need to make two knob objects and place them where appropriate.

1 Like

Thanks.
Here's the modified sketch and error code:

#include "FS.h"

#include "Free_Fonts.h" // Include the header file attached to this sketch

#include <TFT_eSPI.h>
#include <TFT_eWidget.h>           // Widget library

TFT_eSPI tft = TFT_eSPI();
TFT_eSprite knob1 = TFT_eSprite(&tft); // Sprite for the slide knob
TFT_eSprite knob2 = TFT_eSprite(&tft); // Sprite for the slide knob

#define CALIBRATION_FILE "/TouchCalData1"
#define REPEAT_CAL false

SliderWidget s1 = SliderWidget(&tft, &knob1);    // Slider 1 widget
SliderWidget s2 = SliderWidget(&tft, &knob2);    // Slider 2 widget


void setup() {
  Serial.begin(115200);
  tft.begin();
  tft.setRotation(0);
  tft.fillScreen(TFT_BLACK);
  tft.setFreeFont(FF18);

  // Calibrate the touch screen and retrieve the scaling factors
  if (REPEAT_CAL) {
    touch_calibrate();
    tft.fillScreen(TFT_BLACK);
  }

  // Create a parameter set for the slider
  slider_t param;

  // Slider slot parameters
  param.slotWidth = 9;           // Note: ends of slot will be rounded and anti-aliased
  param.slotLength = 200;        // Length includes rounded ends
  param.slotColor = TFT_BLUE;    // Slot colour
  param.slotBgColor = TFT_BLACK; // Slot background colour for anti-aliasing
  param.orientation = H_SLIDER;  // sets it "true" for horizontal

  // Slider control knob parameters (smooth rounded rectangle)
  param.knob1Width = 15;          // Always along x axis
  param.knob1Height = 25;         // Always along y axis
  param.knob1Radius = 5;          // Corner radius
  param.knob1Color = TFT_WHITE;   // Anti-aliased with slot backgound colour
  param.knob1LineColor = TFT_RED; // Colour of marker line (set to same as knobColor for no line)

//
 // Slider control knob parameters (smooth rounded rectangle)
  param.knob2Width = 15;          // Always along x axis
  param.knob2Height = 25;         // Always along y axis
  param.knob2Radius = 5;          // Corner radius
  param.knob2Color = TFT_WHITE;   // Anti-aliased with slot backgound colour
  param.knob2LineColor = TFT_RED; // Colour of marker line (set to same as knobColor for no line)
  
  // Slider range and movement speed
  param.sliderLT = 0;            // Left side for horizontal, top for vertical slider
  param.sliderRB = 100;          // Right side for horizontal, bottom for vertical slider
  param.startPosition = 50;      // Start position for control knob
  param.sliderDelay = 0;         // Microseconds per pixel movement delay (0 = no delay)

  // Create slider using parameters and plot at 0,0
  s1.drawSlider(0, 0, param);

  // Show bounding box (1 pixel outside slider working area)
  int16_t x, y;    // x and y can be negative
  uint16_t w, h;   // Width and height
  s1.getBoundingRect(&x, &y, &w, &h);     // Update x,y,w,h with bounding box
  tft.drawRect(x, y, w, h, TFT_DARKGREY); // Draw rectangle outline
/*
  // Alternative discrete fns to create/modify same slider - but fn sequence is important...
  s1.createSlider(9, 200, TFT_BLUE, TFT_BLACK, H_SLIDER);
  s1.createKnob(15, 25, 5, TFT_WHITE, TFT_RED);
  s1.setSliderScale(0, 100);
  s1.drawSlider(0, 0);
*/
  delay(1000);
  s1.setSliderPosition(50);
  delay(1000);
  s1.setSliderPosition(100);

  // Update any parameters that are different for slider 2
  param.slotWidth = 4;
  param.orientation = V_SLIDER; // sets it "false" for vertical

  param.knob1Width = 19;
  param.knob1Height = 19;
  param.knob1Radius = 19/2; // Half w and h so creates a circle

   param.knob2Width = 19;
  param.knob2Height = 19;
  param.knob2Radius = 19/2; // Half w and h so creates a circle

  param.sliderLT = 200;     // Top for vertical slider
  param.sliderRB = 0;       // Bottom for vertical slider
  param.sliderDelay = 2000; // 2ms per pixel movement delay (movement is blocking until complete)

  s2.drawSlider(0, 50, param);

  s2.getBoundingRect(&x, &y, &w, &h);
  tft.drawRect(x, y, w, h, TFT_DARKGREY);
/*
  // Alternative discrete fns to create/modify same slider - but fn sequence is important...
  s2.createSlider(4, 200, TFT_BLUE, TFT_BLACK, V_SLIDER);
  s2.createKnob(19, 19, 9, TFT_WHITE, TFT_RED);
  s2.setSliderScale(200, 0, 2000);
  s2.drawSlider(0, 50);
*/
  // Move slider under software control
  delay(1000);
  s2.setSliderPosition(50);
  delay(1000);
  s2.setSliderPosition(100);

}

void loop() {
  static uint32_t scanTime = millis();
  uint16_t t_x = 9999, t_y = 9999; // To store the touch coordinates

  // Scan for touch every 50ms
  if (millis() - scanTime >= 20) {
    // Pressed will be set true if there is a valid touch on the screen
    if( tft.getTouch(&t_x, &t_y, 250) ) {
      if (s1.checkTouch(t_x, t_y)) {
        Serial.print("Slider 1 = "); Serial.println(s1.getSliderPosition());
      }
      if (s2.checkTouch(t_x, t_y)) {
        Serial.print("Slider 2 = "); Serial.println(s2.getSliderPosition());
      }
    }
    scanTime = millis();
  }

  //s1.moveTo(random(101));
  //delay(250);
  //s2.moveTo(random(101));
  //delay(250);
}





void touch_calibrate()
{
  uint16_t calData[5];
  uint8_t calDataOK = 0;

  // check file system exists
  if (!LittleFS.begin()) {
    Serial.println("Formating file system");
    LittleFS.format();
    LittleFS.begin();
  }

  // check if calibration file exists and size is correct
  if (LittleFS.exists(CALIBRATION_FILE)) {
    if (REPEAT_CAL)
    {
      // Delete if we want to re-calibrate
      LittleFS.remove(CALIBRATION_FILE);
    }
    else
    {
      File f = LittleFS.open(CALIBRATION_FILE, "r");
      if (f) {
        if (f.readBytes((char *)calData, 14) == 14)
          calDataOK = 1;
        f.close();
      }
    }
  }

  if (calDataOK && !REPEAT_CAL) {
    // calibration data valid
    tft.setTouch(calData);
  } else {
    // data not valid so recalibrate
    tft.fillScreen(TFT_BLACK);
    tft.setCursor(20, 0);
    tft.setTextFont(2);
    tft.setTextSize(1);
    tft.setTextColor(TFT_WHITE, TFT_BLACK);

    tft.println("Touch corners as indicated");

    tft.setTextFont(1);
    tft.println();

    if (REPEAT_CAL) {
      tft.setTextColor(TFT_RED, TFT_BLACK);
      tft.println("Set REPEAT_CAL to false to stop this running again!");
    }

    tft.calibrateTouch(calData, TFT_MAGENTA, TFT_BLACK, 15);

    tft.setTextColor(TFT_GREEN, TFT_BLACK);
    tft.println("Calibration complete!");

    // store data
    File f = LittleFS.open(CALIBRATION_FILE, "w");
    if (f) {
      f.write((const unsigned char *)calData, 14);
      f.close();
    }
  }
}

ERROR:

Arduino: 1.8.19 (Windows 7), Board: "ESP32 Dev Module, FTDI Adapter, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, Core 1, Core 1, None, Disabled"

In file included from C:\Users\HUA.DELLV-PC\Documents\Arduino\sketch_jul05a\sketch_jul05a.ino:3:

C:\Users\HUA.DELLV-PC\Documents\Arduino\sketch_jul05a\sketch_jul05a.ino: In function 'void setup()':

C:\Users\HUA.DELLV-PC\Documents\Arduino\libraries\M5Stack-master\src/Free_Fonts.h:146:15: error: 'FreeSans12pt7b' was not declared in this scope

 #define FF18 &FreeSans12pt7b

               ^~~~~~~~~~~~~~

C:\Users\HUA.DELLV-PC\Documents\Arduino\sketch_jul05a\sketch_jul05a.ino:24:19: note: in expansion of macro 'FF18'

   tft.setFreeFont(FF18);

                   ^~~~

sketch_jul05a:43:9: error: 'struct slider_t' has no member named 'knob1Width'; did you mean 'knobWidth'?

   param.knob1Width = 15;          // Always along x axis

         ^~~~~~~~~~

         knobWidth

sketch_jul05a:44:9: error: 'struct slider_t' has no member named 'knob1Height'; did you mean 'knobHeight'?

   param.knob1Height = 25;         // Always along y axis

         ^~~~~~~~~~~

         knobHeight

sketch_jul05a:45:9: error: 'struct slider_t' has no member named 'knob1Radius'; did you mean 'knobRadius'?

   param.knob1Radius = 5;          // Corner radius

         ^~~~~~~~~~~

         knobRadius

sketch_jul05a:46:9: error: 'struct slider_t' has no member named 'knob1Color'; did you mean 'knobColor'?

   param.knob1Color = TFT_WHITE;   // Anti-aliased with slot backgound colour

         ^~~~~~~~~~

         knobColor

sketch_jul05a:47:9: error: 'struct slider_t' has no member named 'knob1LineColor'; did you mean 'knobLineColor'?

   param.knob1LineColor = TFT_RED; // Colour of marker line (set to same as knobColor for no line)

         ^~~~~~~~~~~~~~

         knobLineColor

sketch_jul05a:51:9: error: 'struct slider_t' has no member named 'knob2Width'; did you mean 'knobWidth'?

   param.knob2Width = 15;          // Always along x axis

         ^~~~~~~~~~

         knobWidth

sketch_jul05a:52:9: error: 'struct slider_t' has no member named 'knob2Height'; did you mean 'knobHeight'?

   param.knob2Height = 25;         // Always along y axis

         ^~~~~~~~~~~

         knobHeight

sketch_jul05a:53:9: error: 'struct slider_t' has no member named 'knob2Radius'; did you mean 'knobRadius'?

   param.knob2Radius = 5;          // Corner radius

         ^~~~~~~~~~~

         knobRadius

sketch_jul05a:54:9: error: 'struct slider_t' has no member named 'knob2Color'; did you mean 'knobColor'?

   param.knob2Color = TFT_WHITE;   // Anti-aliased with slot backgound colour

         ^~~~~~~~~~

         knobColor

sketch_jul05a:55:9: error: 'struct slider_t' has no member named 'knob2LineColor'; did you mean 'knobLineColor'?

   param.knob2LineColor = TFT_RED; // Colour of marker line (set to same as knobColor for no line)

         ^~~~~~~~~~~~~~

         knobLineColor

sketch_jul05a:87:9: error: 'struct slider_t' has no member named 'knob1Width'; did you mean 'knobWidth'?

   param.knob1Width = 19;

         ^~~~~~~~~~

         knobWidth

sketch_jul05a:88:9: error: 'struct slider_t' has no member named 'knob1Height'; did you mean 'knobHeight'?

   param.knob1Height = 19;

         ^~~~~~~~~~~

         knobHeight

sketch_jul05a:89:9: error: 'struct slider_t' has no member named 'knob1Radius'; did you mean 'knobRadius'?

   param.knob1Radius = 19/2; // Half w and h so creates a circle

         ^~~~~~~~~~~

         knobRadius

sketch_jul05a:91:10: error: 'struct slider_t' has no member named 'knob2Width'; did you mean 'knobWidth'?

    param.knob2Width = 19;

          ^~~~~~~~~~

          knobWidth

sketch_jul05a:92:9: error: 'struct slider_t' has no member named 'knob2Height'; did you mean 'knobHeight'?

   param.knob2Height = 19;

         ^~~~~~~~~~~

         knobHeight

sketch_jul05a:93:9: error: 'struct slider_t' has no member named 'knob2Radius'; did you mean 'knobRadius'?

   param.knob2Radius = 19/2; // Half w and h so creates a circle

         ^~~~~~~~~~~

         knobRadius

exit status 1

'struct slider_t' has no member named 'knob1Width'; did you mean 'knobWidth'?

Invalid library found in C:\Users\HUA.DELLV-PC\Documents\Arduino\libraries\e-Paper-master: no headers files (.h) found in C:\Users\HUA.DELLV-PC\Documents\Arduino\libraries\e-Paper-master

Invalid library found in C:\Users\HUA.DELLV-PC\Documents\Arduino\libraries\esp-idf-master: no headers files (.h) found in C:\Users\HUA.DELLV-PC\Documents\Arduino\libraries\esp-idf-master



This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

You are missing fonts.
You still need to clean up the "knob" issue.

HI
I am looking for something similar, maybe someone can help:
I am looking for a library to make, in principle, a round slider or scroll wheel to use on a round touch display. so it would function like a Ipod click wheel.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.