Add git tag and version number to an Arduino sketch.

The problem:

Version control and tracking is hard.
For sure in the Arduino IDE, which invites to rapid prototyping and has no built-in version tracking or version control mechanism.

A possible solution:

To make it somewhat more practical and less error prone I made some scripts to assist this process.
It works if you already use or start using git for your version control.

Using these scripts is as easy as adding them to your sketch folder and adding

#include "gitTagVersion.h"
Serial.println( sketchVersion );

to your Arduino sketch.
That is all that is needed.

The output in the example above will be something like v1.0.0-3-gab3fb04.
That breaks down to tag v1.0.0, 3 commits since that tag, at commit ab3fb04.

How to install and use?

Continue reading

RDA5981 IoT audio board.

Geile specs, maar veel meer dan een persbericht en een ietwat vage foto is er niet over te vinden.

  • 160Mhz CPU ( ARM Cortex M4? )
  • 160KB SRAM
  • 4MB Flash
  • build in USB 2.0 host interface allow USB devices to be connected to the module directly
  • Support Bluetooth 2.1 EDR + BLE4.2
  • SDMMC interface
  • 2x 10bit ADCs
  • SIDO x1, I2C x1, I2S x2, PWM x8, IR, SPI x4, UART x2, GPIO with interrupts x14
  • operating temperature -30+80C

Owja, wel een repo op GitHub met voornamelijk PR blurb en weinig code of technische  info.

En een wiki.

De link:

Espressif got new competitor RDA5981 dedicated for IoT and audio apps

Bestand naar C, C++ variable converten.

Om een bestand als variable in C of C++ te gebruiken kun je de tool xxd gebruiken.
xxd is standaard aanwezig op de meeste linux Mint machines.

cellie@cellie-Mint-64 ~ $ echo Hello World\! > temp
cellie@cellie-Mint-64 ~ $ xxd -i temp
unsigned char temp[] = {
0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x21,
unsigned int temp_len = 13;

Om de variable niet in RAM maar in ROM terecht te laten komen verander je de code als volgt:

const char temp[] = {
0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x21,
const int temp_len = 13;

De link:

Natuurlijk niet zelf bedacht maar gevonden op stackoverflow.