dleval / OttoArduinoLib

Otto and Otto Lee Arduino driver library
GNU General Public License v3.0
2 stars 1 forks source link

Incompatible with original Otto code #2

Open cparrapa opened 2 years ago

cparrapa commented 2 years ago

Hi @dleval

Great job porting the library to the Arduino Manager that makes the installation a breeze, but we find out many complaint in our community that many of the code do not compile.

image

Would you be able to make it traceback compatible so that it can be use with the same code generated in Otto Blockly? or the original .zip library itself?

Let me know if you need any help and out of curiosity how did you upload the library into the Arduino manager?

Thanks for this great contribution and welcome to the community

dleval commented 2 years ago

Hello,

I will try to introduce compatibility with the original OttoDIYLib library in the next release. I don't know if I can reach 100% compatibility but I will do my best.

However, I highly recommend to publish the original library in the Arduino manager. It would help the community.

Here are some links that explain how to do this:

Don't forget to add the original library on PlatformIO (best alternative to the Arduino IDE):

I will also add a warning message about the non-compatibility with the code using the original library.

Have a good day.

David

cparrapa commented 2 years ago

Hi @dleval

Thanks for the quick response, it makes sense we will follow your advice and start to organize the repo to be able to match the Arduino library standards. But as you said we will really need to make a clear distinction now that both will be there for people to choose the right one.

I am interested to know the improvements you have made and why? maybe we can also incorporate into the official library.

Have a good day too!

dleval commented 2 years ago

Hello @cparrapa ,

Yeah, I will change the Header interface so that both libraries should be installed in the Arduino IDE without conflicts. You could follow the progress of the modifications in the branch "ottodiylib_compatibility".

I created this library more than a year ago at the release of Robot Lee (I love this robot).

My main goal was to practice coding in C++ for microcontrollers. Then, I wanted to optimize the library, to be more modular and compatible with several Otto robots.. For example, on an 8bits embedded system, the use of 16, 32, 64 bits variables increases strongly the code size and the execution time. I use the standard "stdlib.h" to control the size of the variables. For modularity, I separated the library in more classes and use template functions (servo, sound, sensor ...)

For my robots, the final objective of this library is using the arduino nano as a peripheral via an I2C bus. This will allow to transfer the intelligence on a more powerful system (STM32, ESP32, Raspberry ...)

It's not very good yet but I'll try to make this library better. (it depends of my professional projects charge)

cparrapa commented 1 year ago

Hi @dleval

We managed to make it into the Arduino Library Manager thanks to you! I had some problems with the version management but it seems now is ok image

There is one problem before closing this issue is that many makers and members of the community are confused of which library to install when they search in the Arduino Manager, sometimes they even install both which breaks the examples codes.

Could you take out until you make it compatible? or at least rename in a way that users are aware is not gonna be compatible with the official codes and Otto Blockly. Like "Leerobot" or "LeeHumanoid" up to you.

Since you were focusing on Otto Lee you could make it a library tailor to that particular robot by rename the libraries in conflict like Otto.h

Thanks in advance Camilo