Sysprogs forums › Forums › VisualGDB › Import Esp8266 Arduino projects and/or libraries
- This topic has 22 replies, 8 voices, and was last updated 5 years, 6 months ago by support.
-
AuthorPosts
-
October 14, 2016 at 21:53 #9282freeckParticipant
Hi there,
As there are so many applications and libraries available for Arduino, I was wondering whether it is possible to import arduinoprojects and/or libraries into Visualgdb in a userfriendly way. Importing by including objects manually is quit a hassle as there are so many interdependanties in the files…
- This topic was modified 8 years, 2 months ago by freeck.
October 15, 2016 at 02:42 #9284supportKeymasterHi,
Sorry, we don’t currently offer any special Arduino support. It is used by a relatively small fraction of our users and the effort to support importing it reliably would be huge, so we are currently focusing on other features.
We will continue monitoring the situation and will consider adding Arduino support if the situation changes.
April 7, 2017 at 15:24 #10904gojimmypiParticipantGreetings –
Any change in the status of debugging something like say – the ESP8266 written with the Arduino toolchain app, such as those created in VisualMicro (which has very poor debugging)? VisualGDB is an awesome product with a cool debugger, but a real bummer to not be able to use any of the Arduino code for the ESP8266. So many of the cool libraries for displays, sensors, etc… are written for the Arduino core for ESP8266:
https://github.com/esp8266/Arduino
I could perhaps understand not supporting the Arduino *hardware* at this time (different processor and all) – but as the ESP8266 GDB support is there in VisualGDB, it would seem only a toolchain config to get VisualGDB working with ESP8266?
This may only be a fraction of your users now – but I suspect you’d have a whole new, larger audience once debugging Arduino libraries (and even hardware) was supported.
Feature Request, please! 🙂
April 8, 2017 at 02:38 #10942supportKeymasterHi,
Sorry, no specific plans yet. The main problem is that most Arduino users expect the development tools to be free and hence would not be interested in buying a VisualGDB license. We may eventually add basic experimental support and see if it gets any traction, but currently we are prioritizing other features over it, sorry.
September 13, 2017 at 16:05 #12367David LParticipant“most Arduino users expect the development tools to be free and hence would not be interested in buying a VisualGDB license”
Not sure that is entirely the case. I for one find the Arduino tools very limiting, so would be happy to pay a moderate fee for additional capability. I think this would be an excellent and really beneficial addition.
September 13, 2017 at 19:17 #12371supportKeymasterHi,
Thanks for your feedback. We will re-investigate Arduino support after the final release of v5.3.
December 3, 2017 at 20:40 #13146JeffGrayParticipantI would like to throw in my vote here:
I have purchased a license for VisualGDB. I made that decision because it seems that VisualGDB is a useful tool and has some support for ESP32.
In the past, I have developed some code for Arduino Unos and Nanos using Arduino IDE. It is extremely easy to use and has tons of libraries and community support. I have also written code in AtmelStudio for non-arduino Atmel micros such as the mega645A.
This past year, I have come to the conclusion that the Arduino hardware (Uno, etc.) are “toys”. They are extremely useful, but the hardware and Arduino IDE create a false sense of understanding of code development methodology.
The ESP32 is the next-generation platform for IoT “toys”. While I have been moderately successful in creating some “toy” applications for the ESP32 using Arduino IDE, I want to get more serious and develop code that can be more easily debugged, in an environment that uses intellisense, and creates an experience similar to Visual Studio / Atmel Studio. Hence the purchase of VisualGDB.
However I am addicted to the “drug” of readily-available libraries, such as arduino.h, wire.h, etc. etc. For me, there is a gap in my understanding of how to transition from Arduino IDE file/code organization, and development within Visual Studio. I suspect that like me, there are a lot of more-sophisticated (but still amateur) programmers out there that have projects that are too complicated to develop within the limited Arduino IDE framework.
I don’t mind paying for tools, because tools save time. That being said, there is the VisualMicro option, but I am not sure that is what I need: yes you can import .ino files, but it seems to me that there is still a gap. I guess what I am saying is that the community-developed libraries that are used within the Arduino IDE (mostly based on Atmel mircos, especially until recently) are an extremely valuable resource. I would like to be able to use these Arduino based libraries in a more professional environment.
December 4, 2017 at 06:55 #13149supportKeymasterHi,
Thanks for your feedback. We are currently researching possible approaches for Arduino integration and the ability to import existing community libraries sounds like a useful feature.
December 8, 2017 at 18:44 #13204adamtwatsonParticipantHello All
I completely agree with Jeff above – and would like to add WE in the OFFICE ( two licenses! ) have used VisualGDB for lots of Raspberry Pi Work so far – works great!
So….
VisualGDB ESP32 support basically uses esp-idf (based on commit 2.1) – running with a cygwin environment
So is it possible to do the Arduino import for esp-idf listed below? (they use a MSYS2 instead)
https://github.com/espressif/arduino-esp32/blob/master/docs/esp-idf_component.md
Importing the Arduino is easy in windows /git – to C:\SysGCC\esp32\esp-idf.orig\components
I run the win32 console terminal in “c:\SysGcc\esp32\bin\” running mintty to bring up the cygwin console – then run ./bash and ./env
here is where i fall over (can’t find a way to run make menuconfig) – is it possible to include the <Arduino.h> code? – I don’t know anything about cygwin..!
- This reply was modified 7 years ago by adamtwatson.
December 8, 2017 at 23:33 #13210supportKeymasterHi,
You might be able to import Arduino into the ESP-IDF, however we won’t be able to provide detailed instructions until we ensure that all basic scenarios work and officially support it.
If you are using mintty, please try running “mintty -” (dash as the only command line argument). This will ensure that the environment is loaded properly and the “make menuconfig” works.
We also have a detailed tutorial showing how to use ESP-IDF with VisualGDB here: https://visualgdb.com/tutorials/esp32/esp-idf/
January 8, 2018 at 22:30 #13392JeffGrayParticipantHere is an update of my <lack of> progress since my posting on 3 Dec 2017:
I purchased a license for Visual Micro, which is a plug-in for Visual Studio that allows .ino code to be imported/used.
For a vMicro project, under Project Properties, C/C++ additional include directories, there are a TON of files listed, separated by semicolons, which primarily come from the following folder (with subfolders):
$(ProjectDir)..\Arduino\hardware\espressif\esp32\On the VisualGDB side, VisualGDB projects have a Toolchain of: ESP32 in C:\SysGCC\esp32 (VisualGDB Project Properties, MSBuild settings)
So I thought I would get “tricky” and copy the entire list of include directories, and cut and paste it into a VisualGDB example project (my go-to is “blink”).
In VisualGDB, under Project Properties, C/C++ additional include directories, the entry is blank. When I typed “#include <Wire.h>” into the “blink” project code, if flagged an error. After I cut and pasted the include directory paths into the project properties, the error went away, but only temporarily. So when the error came up, I had Intellisense search for the folder: …\ESP32\source\Arduino and added it to the project properties by clicking the button. It then automatically added the additional include directories and the error went away. Still though, projects will not compile without errors.
I have probably spent 40+ hours trying to make this work. By “work”, I mean being able to somehow import .ino code into a VisualGDB project. This is code that runs on an ESP32 when compiled/uploaded in the Arduino IDE. I have successfully done this with Visual Micro, but I have not been able to get Visual Micro to compile using the C:\SysGCC\esp32 toolchain. So on one side, I have half a solution (Visual Micro) and on the other side, I have half a solution (VisualGDB) but I can tell you with great certainty: two “half-solutions” do NOT make a whole solution.
January 11, 2018 at 22:09 #13402supportKeymasterHi,
We are sorry that it’s not working out. We are planning to add Arduino support in the upcoming VisualGDB 5.4, however we still don’t have a specific deadline for it set (we are currently finishing a major VisualKernel update and will make more specific VisualGDB plans once it is released).
Until we officially support it, we can answer general questions (e.g. help you resolve the Wire.h problem), but we cannot guarantee that it will fully work, as there might be non-trivial Arduino-specific changes. We could also help you convert the project to VisualGDB as a part of our paid consulting services, however if you are OK waiting a few months until Arduino is fully supported, you will get this functionality as a part of your regular VisualGDB license.
January 11, 2018 at 23:12 #13403JeffGrayParticipantI have tried to troubleshoot and solve this issue myself with no positive results. To simplify the problem I have done the following:
- Use the Visual GDB embedded project wizard to create a “Blink” example that runs on my ESP32. So far, so good. Compiles, builds and loads OK.
- Put ALL the .h and .cpp files from the Arduino core for ESP32 (from https://github.com/espressif/arduino-esp32) into my project folder.
- Add a line: #include <Arduino.h> to my blink180109.cpp source code.
- Add a line: Serial.begin(115200); inside app_main() in the source code.
Intellisense does not indicate any errors. Now when I build, I get errors during linking:
1>Linking ../VisualGDB/Release/Blink180109... 1>VisualGDB\Release\Blink180109.o : error : undefined reference to `Serial' 1>VisualGDB\Release\Blink180109.o : error : undefined reference to `HardwareSerial::begin(unsigned long, unsigned int, signed char, signed char)' 1>VisualGDB/Release/Blink180109.o: In function `app_main': 1>c:\Users\Jeff\source\repos\Blink180109\Blink180109\Blink180109.cpp(54): error : undefined reference to `HardwareSerial::begin(unsigned long, unsigned int, signed char, signed char)' 1>collect2 : error : ld returned 1 exit status
If you can tell me what changes I need to make to the link settings in order to build without errors, that would be great. If you need to charge a service fee, then send a quote to me.
Thank you for your help.
- This reply was modified 6 years, 11 months ago by support. Reason: formatting
January 13, 2018 at 06:14 #13423supportKeymasterHi,
This looks like all necessary header files were included properly, but the .cpp file (or library) containing the implementation of HardwareSerial::begin() was not included in the project. The solution would be to locate the source file implementing this method and add it to the project as well.
If you encounter any further problems, feel free to post the details here and we will help you resolve them.
Also if you prefer a turnkey solution ASAP, please feel free to send us the Arduino code you would like to convert to a VisualGDB project and we will give you a quote for doing this on our side.
January 13, 2018 at 22:30 #13429JeffGrayParticipantIn the words of Elvis, “thankyouverymuch” for the suggestion. I do believe my quest to import Arduino libraries is at an end. Including the *.c and *.cpp files into my project was the key.
I wrote up a detailed response to this issue here: https://stackoverflow.com/questions/35167111/using-arduino-c-libraries-on-pc-platform/48244442#48244442
It includes many references to VisualGDB, so I hope that Sysprogs gets some business from this.
-
AuthorPosts
- You must be logged in to reply to this topic.