Stream support for my “Arduino Audio Tools” Library – A Sound Generator

Im my last couple of Blogs, I have demonstrated how we can use the low level API of my Arduino Audio Tools library. Currently I am busy working on a high level API using Arduino Streams. I did not commit my latest changes yet but I want to take the opportunity to share some more examples: We all know the Arduino Streams. We use them to write out print messages and sometimes we use them Read more…

Back to Basics – Sampling Audio with the ESP32

In this Blog I am giving a little bit of background on how the sampling of analog signals has been implemented in my Arduino audo-tools library. My initial approach was based on the Blog from Ivan Voras using timers and interrupts. But there is a much better way by using the extended ESP32 I2S functionality: You can use this to sample an analog signal (e.g. from a microphone) at very high speeds and I finally Read more…

Stream MP3 Files to A2DP Bluetooth using the ESP8266 Audio Library

Please note that a lot has changed since I published this Blog! Tought it might be possible to make this work again, you are advised to use the current API with this updated example! The processing of files with the help of the ESP8266Audio is a little bit more involved. However it allows to process different audio file types from different sources. Please consult the project for further details. Streaming of MP3 Files on a Read more…

Bluetooth A2DP – Streaming of Files on a SD card

In my Arduino ESP32-A2DP library I am providing some very simple examples that show how to transform the ESP32 into a A2DP source and transmit sound to a Bluetooth Sink (e.g. some Bluetooth Speakers). I had quite a few questions on how to do this with files, microphones and I2S as input. So I started a small “glue” project which provides some additional audio tools. I plan to provide plenty of additional examples and some Read more…

Bluetooth A2DP – Streaming from an Digital I2S Microphone

In my Arduino ESP32-A2DP library I am providing some very simple examples that show how to transform the ESP32 into a A2DP source and transmit sound to a Bluetooth Sink (e.g. some Bluetooth Speakers). I had quite a few questions on how to do this with files, microphones and I2S as input. So I started a small “glue” project which provides some additional audio tools. I plan to provide plenty of additional examples and some Read more…

Bluetooth A2DP – Streaming from an Analog Microphone

In my Arduino ESP32-A2DP library I am providing some very simple examples that show how to transform the ESP32 into a A2DP source and transmit sound to a Bluetooth Sink (e.g. some Bluetooth Speakers). I had quite some questions on how to do this with files, microphones and I2S as input. So I started a small sister project which provides some additional sound tools. I plan to provide plenty of additional examples for some more Read more…

An Arduino Logic Analyzer for the Raspberry Pico using the PIO

Together with Pulseview, the Raspberry Pico can be turned into a Logic Analyzer. I demonstrated how to build a simple SUMP logic analyzer with my Arduino logic-analyzer library in my last blogs. In this Blog, I demonstrate how to use the PIO which allows much higher capturing speeds. In theory you we might capture up to 125 MHz. This is well above the 2.5 MHz which is achievable with a regular CPU based approach. Arduino Read more…

The Rasperry Pico PIO for my Logical Analzyer: Some Tests

I have a first DRAFT version for the Pico PIO implementation of the PicoCapturePIO capturing class for my Arduino Logic Analyzer Library ready and started to run some tests. The Test Sketch is part of the project and can be found in the examples forlder. I was using a PWM signal with a duty cycle of 60% in order to be able verify the measuring. Here are my results: Capturing in a loop with micros() Read more…

A First Arduino Logic Analyzer for the Raspberry Pico

Together with Pulseview, the Raspberry Pico can be turned into a Logic Analyzer. I demonstrated how to build a simple SUMP logic analyzer with my Arduino logic-analyzer library in my last blog. But we can do better: Here is an first version of an improved Pico implementation which uses both cores: #include “Arduino.h” #include “logic_analyzer.h” #include “pico/multicore.h” using namespace logic_analyzer; int pinStart=START_PIN; int numberOfPins=PIN_COUNT; LogicAnalyzer logicAnalyzer; Capture capture(MAX_FREQ, MAX_FREQ_THRESHOLD); // when the status is changed Read more…