Heltek Wifi kit 8 pin outs marked wrongly on some silk screens

By dave

I recently bought a Heltek Wifi kit 8 and noticed that although the board itself seems to be a good board the pin-outs, both online and on the silk screen of the board are wrongly specified. For example the silk screen shows SDA and SCL on non standard pins, but this is not the case as far as I can tell....

Stabilising an existing Arduino or embedded product

By dave

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...

Getting started Unit testing with Arduino platform

By dave

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 uses PlatformIO's inbuilt testing framework. It works pretty well overall, we wrote this because we needed the testing to work on...

Unit testing embedded and Arduino projects

By dave

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,...

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

By dave

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...

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

By dave

While writing IoAbstraction and TcMenu, 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...

How the Arduino memory model works - for AVR

By dave

An overview of memory organisation All general purpose processors, be it Intel, ARM or AVR devices work by reading instructions from memory and executing them. They are generally based on one of two Architectures: Von-Neumann or Harvard. The vast majority of larger systems such as PC's and mobile devices use Von-Neumann, but AVR processors in Arduino boards such as Uno and...

Detecting power loss in a power supply

By dave

There are times when your program needs to react to your device being turned off, for example to save the current state of an Arduino sketch to EEPROM before shutting down, or to disengage relays in a power module to ensure there is a clean shutdown. Usually, the power loss detector is designed as part of the power supply, so...

Arduino digital input and output tutorial

By dave

In this tutorial and accompanying youtube video (left), I discuss how Arduino inputs and outputs work. Arduino 8 bit boards are mainly based on Atmel AVR chips, in fact the Mega is named after the chip number AVR-Mega-2560. Outputs on the AVR chips are much more versatile than they first look, and the video covers this in detail. If you are...

IO abstraction: the same code for pins, shift registers and i2c IO

By dave

When writing Arduino code that needs quite a few IO pins, you may need to expand the IO using a shift register or i2c expansion device such as the PCF8574. Up until now that meant significantly changing your code to use the new device. If you were using the IOAbstraction library , then you'd just set up a different type of...

These may be of interest

We use cookies to analyse traffic and to personalise content. We also embed Twitter and Youtube on some pages, these companies have their own privacy policies.

See the privacy policy and terms of use of this site should you need more information or wish to adjust your settings.