Using the ‘Arduino Audio Tools’ Library with PlatformIO

Today I was testing my Arduino Audio Tools project with PlatformIO on an ESP32 because I was really looking forward to be able to use a proper Debugger. Unfortunately I was stumbling over the fact that, while Arduino is using now the latest IDF version, the PlatformIO ESP32 Arduino implementation was still using an old version. Therefore I needed to add some additional preprocessor #if statements to handle the differences. Anyhow, I committed the corrections Read more

Driving Speakers with a HW-627 Motor Controller?

Quite some time ago I was blogging about the hw-627 motor controller. So I was wondering if I could also use this module as well to play music and drive a small speaker. This would be cool because we could get stereo output since the module supports two output devices. Here is a simple Arduino sketch which using my Audio Tools Library with an ESP32 Microcontroller: The Arduino Sketch #include “AudioTools.h” #include “AudioCodecs/CodecMP3Helix.h” #include “BabyElephantWalk60_mp3.h” Read more

Reading MP3 Metadata with my Audio Tools Library

I have extended my arduino-audio-tools project to provide access to MP3 Meta Data. ID3 is the metadata container which is most often used in conjunction with the MP3 audio file format. It allows information such as the title, artist, album, track number, and other information about the file to be stored in the file itself. Both versions of ID3 (ID3v1 and ID3v2) are supported. I currently however only provide the information that is available in Read more

Setting up WordPress on a Raspberry Pi with Docker Compose

Installation I haven’t set up a new WordPress instance for quite some time. But lately I wanted to run WordPress on a Rasperry Pi. I used a docker compose file to run all services is one shot with WordPress Mariadb and phpmyadmin. Unfortunately the official mariadb image does not support ARM which is needed by the Raspberry Pi, so Im using jsurf/rpi-mariadb instead. Here is the docker-compose.yml file: version: ‘3.6’ services: wordpress: image: wordpress:5.7.2 ports: Read more

My ESP32-A2DP Library is now also supporting the Espressif IDF

The ESP32 Microcontroller from Espressif provides a Bluetooth A2DP functionality that can receive sound data e.g. from your Mobile Phone or send it e.g. to Bluetooth Speakers. I am providing a simple API for this in my ESP-A2DP project. Most users are using this as library in the Arduino IDE or sometimes in PlatformIO. Quite some time ago I made the project independent of the Arduino API, and now I took up the task to Read more

Audio Encoders and Decoders for Microcontrollers

Unfortunately the available memory on Microcontrollers is quite restricted and we do not get very far by storing a (uncompressed) WAV file e.g. in program/flesh memory, so I started to look into compressed audio formats. On the desktop we can use the FFmpeg project which comes with a rich set of functionality. Unfortunately the situation is much more fragmented for Microcontrollers. I started to collect the relevant libraries and in order to make things simple Read more

An MP3 Encoder for Arduino ?

Introduction I was looking for a MP3 Encoder Library for Arduino, but unfortunately did not find anything. So I decided to take this up and make LAME available as Arduino Library. LAME is a high quality MPEG Audio Layer III (MP3) encoder licensed under the LGPL. It is considered as one of the best MP3 encoder at mid-high bitrates and at VBR. I used the latest current release version 3.100 which can be downloaded from Read more

Debugging Segmentation Faults with Clang

I wanted to provide an easy to use Arduino Audio Decoding Library based on libhelix. Unfortunately the ESP32 was crashing w/o any stacktrace and on the desktop it was the first time I was running into Segmentation Faults. I tried to resolve the issue with the help of Google where I found the recommendation to use valgrind to debug the code So I used my Arduino Emulator to debug the code on my McBook and Read more

Running an Arduino Sketch on your Desktop in Linux, Windows or OS/X

I was struggling with an ugly problem and wished it would be possible to compile and run or debug my Audio Arduino Sketch on my Desktop Computer. So I decided to release my arduino-emulator and extend my arduino-audio-tools project and provide an example how to compile and run it in Windows, Linux or OS/X. You just need to provide an Arduino Sketch as cpp file together with this CMakeLists.txt example file. Just replace the example Read more

PWM Audio Output support for the “arduino-audio-tools” Arduino Library

In one of my last Posts I have described an approach how we can implement a simple audio output using PWM using the Raspberry Pico. The advantage of this approach is, that we can output audio to almost any GPIO pin, and that it can be used on any other processor which supports PWM. I have extended my arduino-audio-tools project to provide this functionality with a Stream based and a callback based API. The following Read more