-
-
Notifications
You must be signed in to change notification settings - Fork 103
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
New PlatformIO listener client #358
base: master
Are you sure you want to change the base?
Conversation
TODO: fit program in flash for the ESP01
Cool! Look forward to trying it out. |
Amazing as always, @MatteoGheza ! |
Looks awesome! Hit me up when you need testing on the clients. |
How do you plan on adding all the features of the different clients without the 'main' file getting complicated to work in? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I flashed the listener to one of my M5 Stick c Pluses and it get stuck in booting because WiFi manager still has stored settings from the other version of the software.
I think that it needs to have a way of having its WiFi credentials and other settings reset to keep it from getting stuck in a boot loop.
I implemented a reset menu, but it works only when the device is configured (no WiFi configuration). What do you think about enabling this menu when the device is not configured (eg. reset the device if button pressed while turning on the device, like opening BIOS page on a computer). What do you think about changing the M5StickC configuration to use the Action button instead of the M5 button for this (and using the M5 button for enabling sleep mode like on the TTGO)? |
Both option sound like a solid idea. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To be honest, I don't know embedded at all, so I'm just gonna approve this 😀👍
Done. Now, for resetting the device if it isn't configured, you should press (without releasing) the menu button (M5 button in this case) while turning on the device. |
I love this, thank you for taking this on @MatteoGheza! I'll bring in my initial discussion #269 here for context. Let me take a look at this and see if I can yield any suggestions. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did some quick tests on my M5StickC and C+ devices. Looks like it works great!
Sorry it took a month to get this review in. Life got super busy and I'm just getting back to TA |
@JTF4 I know the feeling! 😅 |
It's the same for me... |
…into feat_embedded_listener
Can someone help me testing this and writing documentation (I only documented the build flags)? |
@MatteoGheza I may have some time to look into testing/documentation. I'm still currently working on my custom tally PCB (working on v2), so I'm hoping to adapt this to it and test this PR in the process. |
Thanks. When everythings works well, we should implement an update system. |
Hey, I just discovered this program today and I am a big fan of PlatformIO. I decided to clone the repo and try and build code and got some errors. After doing some digging I found the issue is due to a breaking change in ArduinoJSON https://arduinojson.org/news/2022/12/26/arduinojson-6-20-0/#removed-support-for-char-and-char I am still learning my way around the source so I am not sure of where all this effects but the fix I used in the short term to get the code to build is to modify platformio.ini to force version 6.18.5 |
I think it should be a relatively easy fix. I'll have to see if I've got time to look into it. |
What is the status of this PR? Trying to understand if there is something that I can help with. |
I wrote this new listener client to migrate every ESP32/ESP8266-based listener client to the same codebase, and for using PlatformIO.
It's compatible with the Arduino IDE (currently, renaming a file is needed, fixing this soon), and it support build configuration.
Every feature/piece of code is configurable (WiP), so you can enable or disable certain features on a custom build, for example, enabling tally light status output on the M5Atom (turning on a GPIO pin on bus status).
Why did I do this?
There are 4 different firmwares for M5Atom and similar devices, and maintaining them is becoming a nightmare.
There are a lot of PR, and when a listener is uupdated we should apply the same patch (or similar) to the other 3.
Using PlatformIO, configuring build flags and running tests, or even emulations, is easier.
PlatformIO has a build cache, and it uses them when you re-compile the code after a change. With this cache, compiling requires only a few seconds.
TODOs:
Implement M5Stick and similar platforms looking at the old listeners: