Décodage natif de MP3 sur Arduino

Saviez-vous qu'il est possible de décoder nativement du MP3 avec Arduino IDE?
Mais il y a quand même des limites... le décodage MP3 sur Arduino UNO 8 bits et ses 2 Ko de RAM, c'est impossible....

Par contre si vous disposez d'un microcontrôleur à coeur ARM Cortex M4 (ou M3) alors vous pouvez utiliser Arduino IDE et bibliothèque adéquate pour décoder et jouer du MP3 sans avoir besoin d'un composant externe pour le décoder (comme le VLSI VS10xx).

MP3 est un format très populaire parce qu'il est très largement répandu et utilise des fichiers au format très compact. Le fichier compressé peut être plus petit de 75 à 95% que le format original non compressé.

MP3 est un format de choix pour les projets disposant d'un espace de stockage limité mais nécessite un puissance de traitement important. A côté de cela le format WAV est plus facile à exploiter (même sur un Arduino UNO) mais les fichiers sont très volumineux.

La licence sur le format MP3 est maintenant libre, donc tout ceux qui désirent vendre des produits utilisant le format MP3 ne sont plus obligés de payer des royalties (du moins aux USA). Par conséquent, vous pouvez maintenant décoder du MP3 (et le jouer) sur votre microcontrôleur.

I have got the Power
Mais bien entendu, il faut un minimum de puissance pour réaliser ce décodage.
Ce n'est pas à la portée d'un Arduino Uno 8 bits 16 Mhz. Par contre, cela est possible  Teensy 3.2, and Teensy 3.6, Metro M4 ou Feather M4... qui dispose d'un support Arduino IDE.

Les cartes Metro sont des compatibles Arduino (au format Arduino) produit par Adafruit.
Les cartes Feather sont également des compatibles Arduino avec un format compacte idéal pour les projets embarqués.

Une bibliothèque MP3 pour Microcontrôleur
Adafruit propose une bibliothèque de décodage MP3 expérimentale. basé sur le décodeur mp3 Helix.

Par exemple, le Metro M4 (ou Feather M4) embarque un très puissant ARM Cortex M4 et 1 ou 2 sortie DAC 12 bits (vraie sortie analogique, LE teensy 3.6 ET feather/metro M4 ont 2 DAC).

Cette combinaison de puissance de traitement + 2 sorties analogique est parfait pour produire un son stéréo de qualité descent -sans coût supplémentaire!-. Ces plateforme disposent également de plein de mémoire RAM utilisée comme mémoire tampon.

Le bibliothèque utilise 32 Ko de RAM. Le Cortex M4 dispose de  512 Ko de Flash et de 192 Ko de RAM. Le tout cadencé à 120 Mhz... assez de puissance pour traiter le format MP3.


Le tutoriel Adafruit
Le sujet vous intéresse?
Alors vous pouvez poursuivre cette découverte dans le tutoriel Adafruit consacré au décodage MP3.