Event based programming with IoAbstraction and tcMenu

By dave on April 2, 2019

Course Summary IoAbstraction and TcMenu are libraries that make writing software for embedded boards easier, and generally more like writing for the desktop. These training courses aim to quick bring your team up to speed with these technologies. In addition, we can discuss the commercial addons that provide faster drivers and deployment without linking with Arduino. Like all our courses this can be tailored for your needs. Course information Cost: £599 per day (excluding travel expenses) In person: UK only.

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 io-abstraction 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 microcontroller environments. In this part, we’ll look at how to evaluate memory on your device, and see how to use underlying avr tools to examine the memory requirements.

Consider using Arduino for your new product

By dave on January 10, 2018

Edited 02/2024: Over the time I wrote this around 5 years ago, things have really moved on. Now many low volume IoT solutions do ship from what’s effectively Arduino, mbed, or similar. I was proven right and even native chains have all moved toward simplified builds with CMake and helpful starting points. PlatformIO is heavily used and productionizes Arduino builds amongst other things, with a good CLI. My next prediction is that exceptionally costly compilers and IDEs will fall out of favour and Visual Studio, Visual Studio Code and CLion will make up the lions share, using “gcc” as the compiler along with the CMake build tool.

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.

Stabilising an existing Arduino or embedded product

By dave on November 18, 2018

Sometimes the situation arises where a product is built (or gets close to being built), before any concerns about it’s stability are discussed or proper planning arranged. Often this leads to code being written without any proper test plan in place. Combined with very tight deadlines there’s often even no plan to go back and fix things up. Once this situation occurs, it’s probable that the product release will be compromised.

Arduino Sketch compilation, cost of virtual tables, Wire memory use - part 2

By dave on September 20, 2018

In part 2 of this series we discuss how sketches compile on Arduino, along with the cost of using the virtual keyword to create virtual classes. Some things are not quite as clear cut as may be initially thought, especially in the very low memory environment of the ATMega328 (Arduino Uno). Lastly we discuss the memory usage of Wire and how to reduce it. If you’ve not read static memory analysis for Arduino - part 1 then I recommend reading that first, as it sets the background for this article.

Arduino single 7 segment analog measurement example

By dave on May 4, 2015

Measuring voltage from an analog input. Following on from the previous example ( example for driving 7 segment LED displays ). we now build on the same circuit to make a simple voltage meter. Additional requirements: Potentiometer of at least 10Kohms. In order to measure voltage, we need to use an Arduino board analog input. Usually these are marked separately as “analog in”. We are going to use a potentiometer to adjust the voltage at the analog input.

Java and Embedded AVR C++ Consulting from TheCodersCorner

By dave on March 10, 2013

I specialise in multithreaded network programming and embedded C++; with in excess of 20 years experience writing applications in both Java and C++. Having spent many years writing systems that need to communicate using differing protocols, often for exchange connectivity we are familiar with many topologies. In terms of multithreaded development we have built systems with low latency requirements using various methodologies. More recently using non locking bus style designs such as message bus, chronicle and disruptor.

Getting started Unit testing with Arduino platform

By dave on November 18, 2018

This article discusses how to unit test a simple project with Arduino, if you’re not used to writing unit tests, or need more background, then first read this guide on unit testing embedded projects. Presently, all our testing using a custom test framework that is built into IoAbstraction, it can be considered as the least number of components that implement a test framework. It works pretty well overall, we wrote this because we needed the testing to work on all Arduino boards, and even mbed boards too.

tcMenu for Arduino

This site uses cookies to analyse traffic, 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
X

Please use the forum for help with UI & libraries.

This message will be securely transmitted to our servers.