-
-
Notifications
You must be signed in to change notification settings - Fork 33
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
Doesn't compile under mbed 6.5 in platformio #111
Comments
We can probably easily work around that one if there’s a clear define we can pick up on. It will be In the AnalogAbstraction I suspect. |
In https://github.com/davetcc/IoAbstraction/blob/master/src/AnalogDeviceAbstraction.h we need to protect AnalogOut code (three places I can see) when DEVICE_ANALOGOUT (check define is correct) is not set. I don't think there are any boards that do not have AnalogInput or PWM. Will get a fix out for this hopefully later today. |
There was to say the least a series of problems in AnalogDeviceAbstraction that should never have seen the light of day! However, it is fixed now and although I don't have that device, I tried purposely switching that flag and it seems to compile src/AnalogDeviceAbstraction.cpp and src/AnalogDeviceAbstraction.h were affected by this commit along with an example |
I'm ready to help you to test. Should i try to do that in platformio or mbed studio? Should i use master branch of libs to test?
The error in the topic went away but solution still not compiling, and now it fails in tcmenulib code:
Probably due But if i remove
As i understand it complains that mbed does not import RTOS. |
Then i realized that tcmenu master branch is not yet production ready and switched to latest stable by doing this:
Not it compiles! But consuming to much resources, please take a look:
This is an empty project, no single line of my own code :) |
TcMenu compilation problems: you're trying to use tcMenu master which is moved to 2.0 BETA, I would keep tcMenu on the last release version for the moment (or alternatively use the "BETA" stream in tcMenu designer). But be aware we've not tested the beta master on mbed yet. Most development is done these days on ESP8266/32, then we get it working on mbed. It would at least compile if you used the BETA stream of plugins though. In terms of non-rtos use, see the taskManagerIO issue documenting problems with platformIO and non-rtos builds. We've left it open for now as there is no answer on how to do non-rtos 6 with platformIO. TcMenu/TaskManagerIO#17 Board size: to be honest, that board may be too small on mbed for tcMenu. You may be better using that with the Arduino framework, but even then it may be a close call. |
Ah you must have taken tcMenu 2.0 library in the few days it was published, before being removed from the platformIO repository. It was auto published there when it should not have been. I think that 1.7.1 has gone back to being the default. |
Thank you for your advice! |
My views on boards:
I have STM32F429 and STM32F439 boards for development. They are quite cheap and very powerful. Have inbuilt debugging, loads of RAM and a large FLASH. |
Remember that Arduino is no more than a library when used with platformIO build system. You can use what bits of it work, and use alternatives where the implementation of something is not good enough. If you work with AVR, you can access the avr internals |
Thank you for your advices! What would be your choice for low power / battery powered solutions ? |
I've not looked at STM32 boards for battery power, but we did an investigation into an MKR board - Atmel SAMD Cortex M0 units 256K FLASH, 32K RAM - easily runs tcMenu on Arduino framework. We even have a low power task manager example for that, it reduces power when it's not busy. You could use Arduino as the core, then use CMSIS for any areas that you are not happy with. I'm absolutely sure there would be similar STM32 devices for mbed, but we've not looked into it so far. |
Change tested on mbed6, ESP32, MKR and AVR. Safe to release. |
Let me know when you get a suitably sized board for mbed, maybe start a forum post (on our main site) or open an issue in the tcMenuLib repo with the compile errors, the board I am targetting next is STM32F429 with 320x240 screen built into it, but I will need to write a renderer. |
I ordered few stm32F411 boards also known as black pills. Will take about a month to arrive here from china. I also ordered few ips displays but not sure if drivers already exists for them, will see. |
If you get ILI9341panels, I think you can configure that to work with the onboard ART accelerator - https://www.st.com/resource/en/application_note/dm00287603-lcdtft-display-controller-ltdc-on-stm32-mcus-stmicroelectronics.pdf, mbed display support is nowhere near as complete as Arduino. I usually try and buy a board with the display on to make it easier to wire up and it will have a ready setup ST library in platformio. I even ended up having to fix up the Adafruit OLED port myself, should you need it, it's in my repo! |
I bought last 2 of these: https://www.aliexpress.com/item/32779178430.html?spm=a2g0s.9042311.0.0.1b654c4dzfgRZO |
BTW just to let you know mbed compilation is working again on master now, it was mainly down to the use of byte for the enum type instead of using uint8_t. Moved it all over and also fixed some significant warnings around the btree-list at the same time. When I wrote the collection I made a mistake in how I implemented copying, and I've now fixed that too. I've also properly released the mbed Adafruit_GFX fork for OLEDs (eg SH1106 and SSD1306 units): https://github.com/davetcc/Adafruit-GFX-mbed-fork |
I tried to use your great library in platformio using mbed framework. Just created solution with libraries added for tcMenu and ioAbstraction (latest stable versions) does not compile:
I followed the code and found that AnalogOut is not defined due to DEVICE_ANALOGOUT is not defined and whole AnalogOut.h is excluded from the build. This seems to be ok as board does not support DAC or there may be a board that doesn't support it. I actually can't find where DEVICE_ANALOGOUT and DEVICE_ANALOGIN are configured for my board. But anyway, my hopes where that absence of this functionality not break the library. I tried to use same library using arduino framework and it works just fine there.
The text was updated successfully, but these errors were encountered: