I would like to introduce you to a project I have recently started working on. If you have any ideas, enthusiasm to contribute, or any questions, please don't hesitate to join as a collaborator on GitHub!
In summary, Blackbox is a powerful tool for effortless and fast embedded project development on Arduino boards. With its vast collection of pre-built components, adherence to C++ standards, and user-friendly interface, Blackbox simplifies the creation of embedded projects, enabling you to focus on your project's logic and functionality. Save time, unleash your creativity, and unlock the full potential of Arduino with Blackbox.
Furthermore, Blackbox offers a streamlined development workflow. Its intuitive interface allows you to rapidly prototype, test, and deploy your projects without unnecessary complexities. Whether you are working on a personal hobby project or a commercial product, Blackbox accelerates your development process, helping you bring your ideas to life in no time.
Blackbox also ensures compatibility with C++ standards, enabling you to write clean and maintainable code. By following established coding practices, your projects become more structured and easier to debug or extend in the future. Whether you are a seasoned embedded developer or a beginner exploring the world of Arduino, Blackbox's adherence to C++ standards empowers you to create robust and efficient projects.
Actually it is not a library. You must setup your project in it by using platformio. I couldnt prepare instructions yet, but basically you need to create new component for each job. Fill the their SetUp and Loop functions. Use Component's inherited Wait function instead of Arduino's delay in loops ( Arduino's delay will freeze all the components. ) . Thats all.
I always use my delay process. I simply set a timer and when it is zero the time is finished. It uses 16 bit unsigned integers, that saves a lot of memory. You define the number of timers you want. The time base can be changed if so desired. I am in the process of adding an elapsed time function to it as well. In the code timer = delay time. testing if timer != skip it has not timed out.
Actually, I'm thinking of setting up the coroutine structure for its Components in the future. Of course, it doesn't work exactly that way as it stands.
I referred platformio because of my own experience. Maybe i could not fully discovered the Arduino IDE, especally IDE features. If anything other than a single sketch can be uploaded, we can also use the Arduino IDE.
Deal, but i am still wonder about whats wrong to referring platformio since Arduino IDE does not meet all needs. At least, for me its not the best approach to code everything in single sketch, or work without test automation.
Of course the Arduino IDE does not meet all needs.
It was intended to be used primarily as a teaching and learning tool, with greatly simplified operating procedures compared to most other approaches for programming embedded controllers.
There isn't necessarily anything wrong about requiring the use of PlatformIO for your project.
You might consider making your project compatible with official Arduino development tools (i.e., Arduino IDE, Arduino CLI, Arduino Web Editor) if you want to make it accessible to a larger group of users. Note that PlatformIO supports standard Arduino project structures, so making it compatible with Arduino development tools does not make it incompatible with PlatformIO. But if PlatformIO is the tool you use and you don't have any interest in supporting other tools then the choice of using a PlatformIO-specific project structure is completely valid and understandable.
What is wrong in my opinion is tacking the term "Arduino" onto the name of a firmware project when the code can't even be used with official Arduino development tools.