Event based programming with IoAbstraction and tcMenu

By dave on April 2, 2019

Please understand that I work for a company full time. The libraries are maintained in my spare time and during some of my time off. These courses help towards hosting and app development costs, are only available for a few days, and need to be planned with at least a few weeks to a months notice. Course Summary IoAbstraction and TcMenu are libraries that make writing software for embedded boards easier, and generally more like writing for the desktop.

Unit testing embedded and Arduino projects

By dave on November 10, 2018

When you’ve got more than the simplest embedded program for Arduino (or any other framework), it becomes much harder to test that it’s working properly by purely running it. For something like Blink, testing is simple because all we need to do is upload it and see the LED turn on and off; there’s little risk of missing anything significant. However, let’s skip forward to a menu based application with Serial or Ethernet control, there is very little chance that you’d catch all the edge cases by manual testing.

Evaluating static memory (SRAM) usage in an Arduino Sketch - Part 1

By dave on September 14, 2018

While writing the IoAbstraction library and Tc Menu library I noticed that SRAM memory usage seemed to increase at a rate greater than what seemed right by static evaluation of all the objects I had created. This will become a series of articles on the subject of efficiency in micro-controller environments. In this part, we’ll look at how to evalulate memory on your device, and see how to use underlying avr tools to examine the memory requirements.

TcMenu - Overview and quick start

By dave on April 20, 2018

Above: getting started video showing how to use our menu library with Arduino. Link to the Getting started with tcMenu Slides (from youtube video). TcMenu is a modular, IoT ready menu library for Arduino and mbed supporting many input, display and IoT / remote interfaces. It makes presenting configuration, status and operational information much easier. The designer UI works by converting your menu structure into C++ code that works with your chosen hardware through plugins.

Consider using Arduino for your new product

By dave on January 10, 2018

There is a common misconception in the electronics industry that Arduino is unsuited for professional development. As a result many companies try to use different, far more complex tool chains to develop software with far fewer ready made libraries available. What I would recommend however, is to carefully check all libraries that you are using, to ensure their license is OK for you project. Basically, for any commercial development where you intend to keep the source closed, do not use any GPL libraries (LGPL is fine as it has a linking exception).

Timed blink - IO Abstraction library example

By dave on October 20, 2017

Timed blink is a version of well known Arduino blink example that is shipped with the standard IDE, but is redesigned to use the Abstraction and timer library. Example circuit for the code is exactly the same a blink, and if you use the inbuilt LED pin (which it does by default) then there’s no need to build any circuit whatsoever. Instead of using delay() calls to set the duration of the led flash, it uses the task management library to schedule a task.

Arduino 7 segment LEDDisplay library documentation

By dave on May 4, 2015

Using the LEDDisplay library LEDDisplay is an easy to use library that makes light work of multi-digit 7segment displays. If you need help building the circuit or understanding the concepts, then refer to this guide: Arduino multiple digit, 7 segment display tutorial. Answering questions and getting help Get help from the community forum for LEDDisplay, or use the help widget (on the right) to contact us about commercial support on LEDDisplay Setting up the LEDDisplay library Before using any methods from the library, and usually in the global scope (outside of any function) you need to include the header file and initialise the library.

Checking if 7segment display is common anode or cathode

By dave on May 4, 2015

If you've got a 7 segment display but are not sure if it is common anode or common cathode, then you need to check the polarity of the display. This is easily done with a low voltage supply (9V or less) from a battery, bench PSU or Arduino board.  Firstly and before anything else, connect a 1K resistor between the common pin and the battery. This will avoid potential damage to the LED's in the display.

Embedded Java for Raspberry PI and other embedded Linux

By dave on April 2, 2022

Embedded Java for Raspberry PI and embedded Linux is supported from V2.3 onwards directly from the designer UI. We are building out the number of UI options, but presently No Local UI and JavaFX are supported, we will try and add Android longer term. The Java version is well served with remote capabilities offering Serial (USB, Bluetooth, RS232) devices, Ethernet, WiFi and Webserver based protocols. Also, it’s easy to write your own additional remote extension point if needed.

Rendering using themes - properties, grids and icons

By dave on September 5, 2021

Most display plugins can be customized using a grid layout, with graphical displays additionally using themes to configure fonts, colors, spacing and icons. To the left you can see cool-blue theme with a multi-column grid layout. Grid positions are used to define an items position in the menu, and even break rows up into multiple columns. Each grid position also defines the justification and drawing mode too. Choosing a theme to get started in a new project To avoid having to define the fonts, spacing, colors and other details from scratch, we have themes that can be applied out of the box.

tcMenu for Arduino

This site uses cookies to analyse traffic, serve ads by Google AdSense (non-personalized in EEA/UK), and to record consent. We also embed Twitter, Youtube and Disqus content on some pages, these companies have their own privacy policies.

Our privacy policy applies to all pages on our site

Should you need further guidance on how to proceed: External link for information about cookie management.

Send a message

Please use the forum for help with UI & libraries.

This message will be securely transmitted to our servers.