Skip to content

Wire.h as esp-idf component #116

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
HFRibeiro opened this issue Jan 4, 2017 · 5 comments
Closed

Wire.h as esp-idf component #116

HFRibeiro opened this issue Jan 4, 2017 · 5 comments

Comments

@HFRibeiro
Copy link

Hello,

It's possible to use the wire.h library using arduino-esp32 as a esp-idf component?

This is the error i get on make:

In file included from C:/esp32_projects/arduino/components/arduino/cores/esp32/Print.h:27:0, from C:/esp32_projects/arduino/components/arduino/cores/esp32/Stream.h:26, from C:/esp32_projects/arduino/components/arduino/libraries/Wire/src/Wire.h:30, from C:/esp32_projects/arduino/main/main.c:10: C:/esp32_projects/arduino/components/arduino/cores/esp32/Printable.h:25:1: error: unknown type name 'class' class Print; ^ C:/esp32_projects/arduino/components/arduino/cores/esp32/Printable.h:33:1: error: unknown type name 'class' class Printable ^ C:/esp32_projects/arduino/components/arduino/cores/esp32/Printable.h:34:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token { ^ In file included from C:/esp32_projects/arduino/components/arduino/cores/esp32/Stream.h:26:0, from C:/esp32_projects/arduino/components/arduino/libraries/Wire/src/Wire.h:30, from C:/esp32_projects/arduino/main/main.c:10: C:/esp32_projects/arduino/components/arduino/cores/esp32/Print.h:34:1: error: unknown type name 'class' class Print ^ C:/esp32_projects/arduino/components/arduino/cores/esp32/Print.h:35:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token { ^ In file included from C:/esp32_projects/arduino/components/arduino/libraries/Wire/src/Wire.h:30:0, from C:/esp32_projects/arduino/main/main.c:10: C:/esp32_projects/arduino/components/arduino/cores/esp32/Stream.h:38:1: error: unknown type name 'class' class Stream: public Print ^ C:/esp32_projects/arduino/components/arduino/cores/esp32/Stream.h:38:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token class Stream: public Print ^ In file included from C:/esp32_projects/arduino/main/main.c:10:0: C:/esp32_projects/arduino/components/arduino/libraries/Wire/src/Wire.h:34:1: error: unknown type name 'class' class TwoWire: public Stream ^ C:/esp32_projects/arduino/components/arduino/libraries/Wire/src/Wire.h:34:14: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token class TwoWire: public Stream ^ C:/esp32_projects/arduino/components/arduino/libraries/Wire/src/Wire.h:97:1: error: unknown type name 'TwoWire' extern TwoWire Wire; ^ make[1]: *** [/c/esp-idf/make/component_wrapper.mk:177: main.o] Error 1 make: *** [C:/esp-idf/make/project.mk:377: main-build] Error 2

My code:

`#include "freertos/FreeRTOS.h"
#include "esp_wifi.h"
#include "esp_system.h"
#include "esp_event.h"
#include "esp_event_loop.h"
#include "nvs_flash.h"
#include "driver/gpio.h"

#include "Arduino.h"
#include <Wire.h>

esp_err_t event_handler(void *ctx, system_event_t *event)
{
return ESP_OK;
}

void app_main(void)
{
nvs_flash_init();
tcpip_adapter_init();
initArduino();

ESP_ERROR_CHECK( esp_event_loop_init(event_handler, NULL) );
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
ESP_ERROR_CHECK( esp_wifi_init(&cfg) );
ESP_ERROR_CHECK( esp_wifi_set_storage(WIFI_STORAGE_RAM) );
ESP_ERROR_CHECK( esp_wifi_set_mode(WIFI_MODE_STA) );
wifi_config_t sta_config = {
    .sta = {
        .ssid = "fluxodata",
        .password = "fluxodata01",
        .bssid_set = false
    }
};
ESP_ERROR_CHECK( esp_wifi_set_config(WIFI_IF_STA, &sta_config) );
ESP_ERROR_CHECK( esp_wifi_start() );
ESP_ERROR_CHECK( esp_wifi_connect() );


pinMode(13, OUTPUT);

int level = 0;
while (true) {
    digitalWrite(13, level);
    level = !level;
	printf("%d\n",level);
    vTaskDelay(500 / portTICK_PERIOD_MS);
}

}

`

@me-no-dev
Copy link
Member

you are running this from C file and Arduino is C++ :) change to cpp and things will work (see readme)

@HFRibeiro
Copy link
Author

I totally miss that.

Thank you very much

@HFRibeiro
Copy link
Author

@me-no-dev do you know how to use external libraries?
Putting them in \arduino\components\arduino\libraries does not seem to work...

@forthlightning
Copy link

The IDF doesnt look in your regular library folder.

If you check out the docs for build environment, you can add your library folder as a include directory. Gotta edit the project makefile!

@HFRibeiro
Copy link
Author

Thanks for the info :)

Lzw655 pushed a commit to Lzw655/arduino-esp32 that referenced this issue Oct 12, 2023
* Rework the lib-builder for ESP-IDF v5.1

* Update package json with tolls matching the ESP-IDF version

* fix: rainmaker examples crashing on s3 due to low stack memory. (espressif#106) (espressif#107)

* Update scripts with the latest requirements

* Update configs + SR Support

* Add esp-elf-gdp to the list of packages

* Fix RainMaker builds and new sr models path

* Temporary force arduino branch for CI to work

* fix target branch

* Delete esp-dl component manifest for requiring IDF 4.4.x

* Temporary changes to allow Cron CI to run

* Support builds based on ESP-IDF tag

* Push to esp32-arduino-libs

* Update repository_dispatch.sh

* Rework scripts to allow build when either dst needs it

* Github complains when pushing to the libs repo

* Authenticate to the libs repo

* Attempt at splitting SDK from Arduino

* Archive only the result and reorder deploy commands

* Update cron.sh

* Fix script and zip paths

* Fix download URL and json merger

* Change sdk folder structure and fix json generation

* Switch output folder from sdk to esp32-arduino-libs

* arduino_tinyusb: compile support for DFU mode (espressif#116)

* Update PlatformIO build script templates (espressif#118)

Adds support for new package with precompiled SDK libraries

* Autogenerate PlatformIO manifest file for prebuilt SDK libs (espressif#119)

* Autogenerate PlatformIO manifest file for prebuilt SDK libs

- Add a special Python script that generates "package.json" with IDF revision from the "version.txt" according to SemVer

* Tidy up

* Refactor manifest generator

Now IDF version and commit hash are passed directly from Git client instead of reading from a pregenerated "version.txt" file

* Move IDF definitions to be available with any build

* Use more components from registry and add mp3 decoder

* esp-sr component requires clearing before each build

* revert ESP_SR from component manager

* Build ESP_SR only for ESP32-S3 for now

* [TinyUSB] Update esp32sx dcd and add dwc2 option

* Workaround for recent change in ESP-Insights

* Add initial support for ESP32-C6

* Run build tests on ESP32-C6

* Remove -mlongcalls for non-xtensa chips

* Temp fix for ESP-Insights on C6

* Add support for ESP32H2

* Added tflite-micro component (espressif#128)

* Update build badge in README.md

* Added tflite-micro component

---------

Co-authored-by: Me No Dev <[email protected]>

* Make cron rebuild the libs if they need to be pushed to Arduino

For when we change something in the lib-builder, but no new updates are available in ESP-IDF

* Update build actions

* Fix permissions

* Do not build for obsolete Flash modes

* Try separate detect for cron builds

* Add permissions to github api

* Try more basic commit detection

* another try to pass vars and get commit

* Update push.yml

* Update config.sh

* Enable builds again

* Update build.sh

* Combine the artifacts from all jobs

* fix and test deploy check

* Update push.yml

* Disable Memprot to allow loading external elfs

* Fix archive name

* Disable coredump to flash

* Enable SPI ETH KSZ8851SNL

* Add temporary support for Arduino SPI Ethernet

* Add a temporary fix for relative include in BT lib

* Enable Classic BT HID Host and Device for ESP32

* Revert "Enable Classic BT HID Host and Device for ESP32"

This reverts commit aa0040ad271d00ac507fd2b478ee143b6c118615.

* C6 was added to ESP-SR

* Update Ethernet and remove SR workaround

* Pin RainMaker version

* Update target branch

* Add back cron.sh

---------

Co-authored-by: Sanket Wadekar <[email protected]>
Co-authored-by: Luca Burelli <[email protected]>
Co-authored-by: Valerii Koval <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants