Skip to content

Commit 96f633b

Browse files
committed
UNO R4 - SD support
1 parent 2539147 commit 96f633b

File tree

8 files changed

+39
-19
lines changed

8 files changed

+39
-19
lines changed

examples/examples-vs1053/player-sd-vs1053/player-sd-vs1053.ino

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,12 @@
1010

1111
#include "AudioTools.h"
1212
#include "AudioLibs/VS1053Stream.h"
13-
#include "AudioLibs/AudioSourceSDFAT.h"
13+
#include "AudioLibs/AudioSourceSD.h"
1414
#include "AudioCodecs/CodecCopy.h"
1515

16-
#define SD_CARD_CS 22
17-
1816
const char *startFilePath="/";
1917
const char* ext="mp3";
20-
SdSpiConfig sdcfg(SD_CARD_CS, DEDICATED_SPI, SD_SCK_MHZ(10) , &SPI);
21-
AudioSourceSDFAT source(startFilePath, ext, sdcfg);
18+
AudioSourceSD source(startFilePath, ext);
2219
VS1053Stream vs1053; // final output
2320
AudioPlayer player(source, vs1053, *new CopyDecoder());
2421

src/AudioConfig.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,6 +401,7 @@ uint64_t millis() {return (xTaskGetTickCount() * portTICK_PERIOD_MS);}
401401
//----- RP2040 -----------
402402
#elif defined(ARDUINO_ARCH_RP2040)
403403
#define RP2040_HOWER
404+
#define USE_SD_NO_NS
404405
#define USE_I2S
405406
#define USE_PWM
406407
#define USE_ANALOG_ARDUINO
@@ -580,6 +581,10 @@ using WiFiServerSecure = BearSSL::WiFiServerSecure;
580581
//------ RENESAS ----------
581582
// Arduino UNO R4
582583
#if defined(ARDUINO_ARCH_RENESAS) || defined(_RENESAS_RA_)
584+
// no trace to save on memory
585+
#define NO_TRACE
586+
//#define LOG_NO_MSG
587+
583588
#define USE_INT24_FROM_INT
584589
#define IS_RENESAS 1
585590
#define USE_TYPETRAITS
@@ -590,10 +595,10 @@ using WiFiServerSecure = BearSSL::WiFiServerSecure;
590595
#define PIN_PWM_COUNT 12
591596
#define USE_ANALOG
592597
#define USE_ANALOG_ARDUINO
598+
#define USE_SD_NO_NS
593599
#define PIN_ANALOG_START A0
594600
#define ANALOG_BUFFER_SIZE 512
595601
#define ANALOG_BUFFERS 5
596-
597602
// default pins for UNO VS1053 shield
598603
#define VS1053_CS 6
599604
#define VS1053_DCS 7

src/AudioI2S/I2SConfig.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,11 +121,11 @@ class I2SConfig : public AudioInfo {
121121
LOGI("sample rate: %d", sample_rate);
122122
LOGI("bits per sample: %d", bits_per_sample);
123123
LOGI("number of channels: %d", channels);
124+
#ifdef ESP32
124125
LOGI("signal_type: %s", i2s_signal_types[signal_type]);
125126
if (signal_type==Digital){
126127
LOGI("i2s_format: %s", i2s_formats[i2s_format]);
127128
}
128-
#ifdef ESP32
129129
LOGI("auto_clear: %s",auto_clear? "true" : "false");
130130
if (use_apll) {
131131
LOGI("use_apll: %s", use_apll ? "true" : "false");

src/AudioLibs/AudioSourceIdxSD.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#pragma once
22
#include <SPI.h>
3-
#include <FS.h>
43
#include <SD.h>
54
#include "AudioLogger.h"
65
#include "AudioBasic/StrExt.h"
@@ -101,8 +100,8 @@ class AudioSourceIdxSD : public AudioSource {
101100
long size() { return idx.size();}
102101

103102
protected:
104-
#ifdef RP2040_HOWER
105-
SDIndex<SDClass,fs::File> idx{SD};
103+
#if defined(USE_SD_NO_NS)
104+
SDIndex<SDClass, File> idx{SD};
106105
#else
107106
SDIndex<fs::SDFS,fs::File> idx{SD};
108107
#endif

src/AudioLibs/AudioSourceSD.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
#include "AudioLogger.h"
55
#include "AudioTools/AudioSource.h"
66
#include "AudioLibs/SDDirect.h"
7-
#include "FS.h"
87
#include "SD.h"
98
#include "SPI.h"
109

@@ -103,8 +102,8 @@ class AudioSourceSD : public AudioSource {
103102
long size() { return idx.size();}
104103

105104
protected:
106-
#ifdef RP2040_HOWER
107-
SDDirect<SDClass,fs::File> idx{SD};
105+
#if defined(USE_SD_NO_NS)
106+
SDDirect<SDClass, File> idx{SD};
108107
#else
109108
SDDirect<fs::SDFS,fs::File> idx{SD};
110109
#endif

src/AudioLibs/SDDirect.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ class SDDirect {
250250
}
251251
return result;
252252
#else
253-
return p_sd->open(name, "r");
253+
return p_sd->open(name);
254254
#endif
255255
}
256256

src/AudioTimer/AudioTimerRP2040.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,6 @@ class TimerAlarmRepeatingDriverRP2040 : public TimerAlarmRepeatingDriverBase {
4747
uint64_t time_us = AudioTime::toTimeUs(time);
4848
result = alarm_pool_add_repeating_timer_us(ap, time_us, &staticCallback, this, &timer);
4949
break;
50-
default:
51-
LOGE("Undefined Unit");
5250
}
5351

5452
return result;

src/AudioTools/AudioLogger.h

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,27 +142,49 @@ class AudioLogger {
142142
snprintf(AudioLogger::instance().str(), LOG_PRINTF_BUFFER_SIZE, fmt, ##__VA_ARGS__); \
143143
AudioLogger::instance().println();\
144144
}
145+
#define LOG_MIN(level) { \
146+
AudioLogger::instance().prefix(__FILE__,__LINE__, level); \
147+
AudioLogger::instance().println();\
148+
}
145149

150+
#ifdef LOG_NO_MSG
151+
#define LOGD(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Debug) { LOG_MIN(AudioLogger::Debug);}
152+
#define LOGI(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Info) { LOG_MIN(AudioLogger::Info);}
153+
#define LOGW(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Warning) { LOG_MIN(AudioLogger::Warning);}
154+
#define LOGE(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Error) { LOG_MIN(AudioLogger::Error);}
155+
#else
146156
// Log statments which store the fmt string in Progmem
147157
#define LOGD(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Debug) { LOG_OUT_PGMEM(AudioLogger::Debug, fmt, ##__VA_ARGS__);}
148158
#define LOGI(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Info) { LOG_OUT_PGMEM(AudioLogger::Info, fmt, ##__VA_ARGS__);}
149159
#define LOGW(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Warning) { LOG_OUT_PGMEM(AudioLogger::Warning, fmt, ##__VA_ARGS__);}
150160
#define LOGE(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Error) { LOG_OUT_PGMEM(AudioLogger::Error, fmt, ##__VA_ARGS__);}
161+
#endif
151162

152163
// Just log file and line
153-
#if defined(NO_TRACED)
164+
#if defined(NO_TRACED) || defined(NO_TRACE)
154165
# define TRACED()
155166
#else
156167
# define TRACED() if (AudioLogger::instance().level()<=AudioLogger::Debug) { LOG_OUT(AudioLogger::Debug, LOG_METHOD);}
157168
#endif
158169

159-
#if defined(NO_TRACEI)
170+
#if defined(NO_TRACEI) || defined(NO_TRACE)
160171
# define TRACEI()
161172
#else
162173
# define TRACEI() if (AudioLogger::instance().level()<=AudioLogger::Info) { LOG_OUT(AudioLogger::Info, LOG_METHOD);}
163174
#endif
164-
#define TRACEW() if (AudioLogger::instance().level()<=AudioLogger::Warning) { LOG_OUT(AudioLogger::Warning, LOG_METHOD);}
175+
176+
#if defined(NO_TRACEW) || defined(NO_TRACE)
177+
# define TRACEW()
178+
#else
179+
# define TRACEW() if (AudioLogger::instance().level()<=AudioLogger::Warning) { LOG_OUT(AudioLogger::Warning, LOG_METHOD);}
180+
#endif
181+
182+
#if defined(NO_TRACEE) || defined(NO_TRACE)
183+
# define TRACEE()
184+
#else
165185
#define TRACEE() if (AudioLogger::instance().level()<=AudioLogger::Error) { LOG_OUT(AudioLogger::Error, LOG_METHOD);}
186+
#endif
187+
166188

167189

168190
#else

0 commit comments

Comments
 (0)