So you're a Noob? Post your questions here until you graduate! Don't be shy.

User avatar
By Pablo2048
#86836 Yes - use the VSC with PIO plugin - you don't need Arduino IDE. If there is any library missing, you have two options:
1. add missing library in platformio.ini lib_deps section (if the library exist in PIO library list, or you have git(hub) repository link)
2. create `lib` folder at the same level as 'src' folder is and unpack all missing libraries into this folder
User avatar
By bob21
#86845 Thanks for the pointers, I am making progress! I am now compiling but I think I haven't edited the config correctly, as it says values are not decalred. Here's a small snippet:

Code: Select all                                        ^
src/esparkle.cpp:111:18: error: 'LED_TYPE' was not declared in this scope
     LEDS.addLeds<LED_TYPE, LED_DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);
                  ^
src/esparkle.cpp:111:28: error: 'LED_DATA_PIN' was not declared in this scope
     LEDS.addLeds<LED_TYPE, LED_DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);
                            ^
src/esparkle.cpp:111:42: error: 'COLOR_ORDER' was not declared in this scope
     LEDS.addLeds<LED_TYPE, LED_DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);
                                          ^
src/esparkle.cpp:111:55: error: 'leds' was not declared in this scope
     LEDS.addLeds<LED_TYPE, LED_DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);
                                                       ^
src/esparkle.cpp:111:61: error: 'NUM_LEDS' was not declared in this scope
     LEDS.addLeds<LED_TYPE, LED_DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);
                                                             ^
src/esparkle.cpp:112:27: error: 'max_bright' was not declared in this scope
     FastLED.setBrightness(max_bright);


Here is the config file, have I done something obviously incorrect?

Code: Select allifndef ESPARKLE_CONFIG_H
define ESPARKLE_CONFIG_H

//############################################################################
// ESPARKLE VERSION
//############################################################################
define ESPARKLE_VERSION "1.0"

//############################################################################
// WIFI
//############################################################################
define ESP_NAME "ESParkle"                                                                     // ESP8266 host name

const WifiAPlist_t AP_LIST[] = {                                                                // Access points list
    {"router_name", "routerpass"},
    {"YOUR_SSID_2", "YOUR_PASSPHRASE_2"},
    {"YOUR_SSID_3", "YOUR_PASSPHRASE_3"}
};

//############################################################################
// MQTT
//############################################################################
define MQTT_HOST       "192.168.0.100"
define MQTT_PORT       1883
define MQTT_USER       "mqttuser"
define MQTT_PASSWORD   "mqttpass"
define MQTT_IN_TOPIC   "esparkle/in"
define MQTT_OUT_TOPIC  "esparkle/out"

//############################################################################
// AUDIO
//############################################################################
define RANDOM_STREAM_URL "http://www.dummyhost.net/esparkle/esparkle_mp3.php?action=random"    // URL of companion PHP script for random MP3
define TTS_PROXY_URL "http://www.dummyhost.net/esparkle
esparkle_tts.php"                      // URL of companion PHP script for TTS
define TTS_PROXY_USER "YOUR_TTS_PROXY_USER"                                                    // HTTP Basic authentication user name for TTS
define TTS_PROXY_PASSWORD "YOUR_TTS_PROXY_PASSWORD"                                            // HTTP Basic authentication password for TTS

float defaultGain = .3;

//############################################################################
// LED
//############################################################################
define COLOR_ORDER  GRB         // Set GRB for WS2812B and GBR for APA102
define LED_TYPE     WS2812B     // APA102, WS2801 or WS2812B
define NUM_LEDS     3           // Number of LEDs
uint8_t max_bright = 128;        // Default overall brightness

//############################################################################
// MPU
//############################################################################
define MPU_INTERRUPT_INTERVAL_MS   750
define MPU_MULTITAP_INTERVAL_MS    2000
define MPU_MULTITAP_RESTART        5
define MOTION_DETECTION_THRESHOLD  10
define MOTION_DETECTION_DURATION   5

//############################################################################
// PINS
//############################################################################
/* --------+--------------+--------------------------------
 *  D1 pin   ESP-8266 pin   Function
 * --------+--------------+--------------------------------
 *  TX       TXD            TXD
 *  RX        RXD            RXD, I2S DATA
 *  A0        A0             Analog input, max 3.3V input
 *  D0        GPIO16         IO
 *  D1        GPIO5          IO, SCL
 *  D2        GPIO4          IO, SDA
 *  D3        GPIO0          IO, 10k Pull-up
 *  D4        GPIO2          IO, I2S LRCK, 10k Pull-up
 *  D5        GPIO14         IO, SCK
 *  D6        GPIO12         IO, MISO
 *  D7        GPIO13         IO, MOSI
 *  D8        GPIO15         IO, I2S BCLK, 10k Pull-down, SS
 *  G        GND            Ground
 *  5V        -              5V
 *  3V3        3.3V           3.3V
 *  RST        RST            Reset
 */

define MPU_INTERRUPT_PIN  D6
define LED_DATA_PIN       D7

endif //ESPARKLE_CONFIG_H



Most of it was commented out. Have I messed it up?
User avatar
By Pablo2048
#86849 It seems like the config file is wrongly formatted (plenty of missing # before `define` and `ifdef`) so it's hard to say what you did wrong. Did you rename the file? Did you try to understand, what is compiler saying (LED_TYPE was not delcared in this scope) and try to figure out why it says so?
User avatar
By bob21
#86851 Fixed it, I screwed up the config. I wrongly assumed # was a comment marker. I have moved further along but now it says this:

Code: Select alllib/ESP8266Audio/src/AudioFileSourceHTTPStream.cpp: In member function 'virtual bool AudioFileSourceHTTPStream::open(const char*)':
lib/ESP8266Audio/src/AudioFileSourceHTTPStream.cpp:40:25: error: no matching function for call to 'HTTPClient::begin(WiFiClient&, const char*&)'
   http.begin(client, url);
                         ^
lib/ESP8266Audio/src/AudioFileSourceHTTPStream.cpp:40:25: note: candidates are:
In file included from lib/ESP8266Audio/src/AudioFileSourceHTTPStream.h:28:0,
                 from lib/ESP8266Audio/src/AudioFileSourceHTTPStream.cpp:21:
/Users/bob/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h:136:10: note: bool HTTPClient::begin(String)
     bool begin(String url);
          ^
/Users/bob/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h:136:10: note:   candidate expects 1 argument, 2 provided
/Users/bob/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h:137:10: note: bool HTTPClient::begin(String, String)
     bool begin(String url, String httpsFingerprint);
          ^
/Users/bob/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h:137:10: note:   no known conversion for argument 1 from 'WiFiClient' to 'String'
/Users/bob/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h:138:10: note: bool HTTPClient::begin(String, uint16_t, String)
     bool begin(String host, uint16_t port, String uri = "/");
          ^
/Users/bob/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h:138:10: note:   no known conversion for argument 1 from 'WiFiClient' to 'String'
/Users/bob/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h:139:10: note: bool HTTPClient::begin(String, uint16_t, String, String)
     bool begin(String host, uint16_t port, String uri, String httpsFingerprint);
          ^
/Users/bob/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h:139:10: note:   candidate expects 4 arguments, 2 provided
/Users/bob/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h:141:10: note: bool HTTPClient::begin(String, uint16_t, String, bool, String)
     bool begin(String host, uint16_t port, String uri, bool https, String httpsFingerprint)  __attribute__ ((deprecated));
Compiling .pio/build/d1_mini/libcba/ESP8266Audio/AudioFileSourcePROGMEM.cpp.o
          ^
/Users/bob/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h:141:10: note:   candidate expects 5 arguments, 2 provided
lib/ESP8266Audio/src/AudioFileSourceICYStream.cpp: In member function 'virtual bool AudioFileSourceICYStream::open(const char*)':
lib/ESP8266Audio/src/AudioFileSourceICYStream.cpp:43:25: error: no matching function for call to 'HTTPClient::begin(WiFiClient&, const char*&)'
   http.begin(client, url);
                         ^
lib/ESP8266Audio/src/AudioFileSourceICYStream.cpp:43:25: note: candidates are:
In file included from lib/ESP8266Audio/src/AudioFileSourceICYStream.h:28:0,
                 from lib/ESP8266Audio/src/AudioFileSourceICYStream.cpp:22:
/Users/bob/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h:136:10: note: bool HTTPClient::begin(String)
     bool begin(String url);
          ^
/Users/bob/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h:136:10: note:   candidate expects 1 argument, 2 provided
/Users/bob/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h:137:10: note: bool HTTPClient::begin(String, String)
     bool begin(String url, String httpsFingerprint);
          ^
/Users/bob/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h:137:10: note:   no known conversion for argument 1 from 'WiFiClient' to 'String'
/Users/bob/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h:138:10: note: bool HTTPClient::begin(String, uint16_t, String)
     bool begin(String host, uint16_t port, String uri = "/");
          ^
/Users/bob/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h:138:10: note:   no known conversion for argument 1 from 'WiFiClient' to 'String'
/Users/bob/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h:139:10: note: bool HTTPClient::begin(String, uint16_t, String, String)
Compiling .pio/build/d1_mini/libcba/ESP8266Audio/AudioFileSourceSD.cpp.o
     bool begin(String host, uint16_t port, String uri, String httpsFingerprint);
          ^
/Users/bob/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h:139:10: note:   candidate expects 4 arguments, 2 provided
/Users/bob/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h:141:10: note: bool HTTPClient::begin(String, uint16_t, String, bool, String)
     bool begin(String host, uint16_t port, String uri, bool https, String httpsFingerprint)  __attribute__ ((deprecated));
          ^
/Users/bob/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h:141:10: note:   candidate expects 5 arguments, 2 provided
*** [.pio/build/d1_mini/libcba/ESP8266Audio/AudioFileSourceHTTPStream.cpp.o] Error 1
*** [.pio/build/d1_mini/libcba/ESP8266Audio/AudioFileSourceICYStream.cpp.o] Error 1


Does this mean the library code has changed and is now incompatible?