TcMenu is a full feature Menu system for the arduino platform that supports many display types and remote control via an API. Drivers are available for many common displays and network interfaces. The protocol is published, and there is a Java API.
One of my hobbies is woodworking and speaker building, take a look at some of my latest attempts at building well known speaker designs. Although these are generally builds of other peoples designs, you may find some of this interesting.
Audio is in our DNA, not only can we help build embedded audio devices, we are also Audiophilles that love listening to music, be it from turntable or digital source.
Our new forum allows the community to discuss the libraries (opensource and commerical) that we write.
We have now released version 2.1 of the menu design software TcMenuDesigner. For all users it is now downloaded from GitHub instead of acquiring from the App Store. We notarize for Mac, package for Linux, and have an extended validation certificate for Windows deployments. So it should be quite easy to install for most. We initially thought getting it in the App Stores was what people wanted. However, most people seemed either neutral or negative to tcMenuDesigner being installed from the App Store.
From tcMenu 2.1 onwards the designer download also has a CLI available. This CLI can be used to completely round trip menus for those with a UI dislike, or even for small changes for the rest of us. We’ve optimized the flow so that it works really well with Visual Studio code (VS-code), but most editors would work fairly well. In the youtube video above, the later half of it demos how to use the CLI.
Task Manager supports the concept of Spin Locks to protect sensitive asynchronous operations from becoming interleaved. For example, to protect sensitive blocks of code. Be very aware that this does not include a memory barrier. A spin lock loops waiting for the lock to become available, you can either spin for a period of time, or until the lock is acquired. While waiting for the lock in the spin, TASKS DO NOT RUN, and you must never call yieldForMicros while holding a lock.