Audio Recording / Logging to SD card --> microSoundRecorder

Figured some waveforms for a couple of the above might help diagnose the issue. The shorter files almost always end with a loud sound....don't know what that means.
QuietWaveform.jpg
NoisyWaveform.jpg
 
I guess, I have to setup the hardware to test further
can you confirm T3.6 and 2 I2S micros?
 
Yes T3.6. Two I2S mics (ICS43434). Filtering cap/resistor on power lines and source resistors (22 ohm) on other lines to account for longer wiring (~8cm).
 
An update
I'm working on it
There seems nothing wrong with detector in mProcess.h (even if I'm modifying it a little bit)
BUT I found this
Code:
  #include "mProcess.h"
  mProcess process1(&snipParameters);

  AudioConnection     patchCord1(acq,0, process1,0);
  AudioConnection     patchCord2(acq,1, process1,1);
    //
  #if MDEL <0
    AudioConnection     patchCord3(acq,0, queue[0],0);
    AudioConnection     patchCord4(acq,1, queue[1],0);
    
  #else
    AudioConnection     patchCord3(acq,0, delay1,0);
    AudioConnection     patchCord4(acq,1, delay1,1);
    AudioConnection     patchCord5(delay1,0, queue[0],0);
    AudioConnection     patchCord6(delay1,1, queue[1],0);
  #endif
processing data (snippets detection) is in parallel to simply delaying.
I will change this
Reason for this bug is, IIRC, microSoundRecorder was derived from an Event Recorder, but never really used as event recorder.
So, this was really not tested.
if process is disabled then bug was not visible.
 
Last edited:
I cleaned up the code to get event driven logger working

It turned out that the code in #179 could work:
In order to allow pre-trigger delay the trigger process has to run in parallel.
However, it was wrong that trigger process was queuing data also to recording queue.
I updated the Github.

For the time being the two modes time-based recording and event-based recording are exclusive
For MDEL <0 , code for time-based recording is compiled allowing hibernating
For MDEL>=0, code for event-based recording is compiled, without possibility of hibernating
 
Awesome! I will have to try it out today. Just to make sure I am understanding you correctly. When MDEL>=0 the teensy will never hibernate even if the time settings dictate that it should not be recording?
 
Awesome! I will have to try it out today. Just to make sure I am understanding you correctly. When MDEL>=0 the teensy will never hibernate even if the time settings dictate that it should not be recording?

Yes, for the time being, there are #if MDEL<0 ....#endif around the calls to checkDutyCycle()
But this is only to see if event-driven recording is working as expected.
On the bench here it was working, but with real data, you have to tell us.
In future I may activate hibernation again, as it can easily be controlled with acqParameters. But now it is de-activated.
 
Success! I can now confirm that the audio triggered recording is working. I tested it in my office and with very high threshold values (>1000) it would almost never record a file and if it did it would be less than a second long. I turned it down to a more reasonable 150 and placed it outside for a few hours. The files were of varying size and all had legitimate things to be recorded. We have a highway about a 0.5 km away so I got a recording each time traffic came by but also got recordings of crows and other birds. It took breaks from recording as anticipated during quieter times. I noticed the debugging data is now not very accurate to what the HW is actually doing (debugging does not always seem to show file close/open events). This is not overly important for me except that I was thinking to fine tune the settings it would be nice to have it record the debugging data to the SD card so I could compare the audio files to the triggering data for the audio file.
 
Success! I can now confirm that the audio triggered recording is working.

Great to hear that.
Sure, 'debugging' code is only that. it was done to give some feedback to user. It was not meant to be detection logging. Yous could be very useful indeed, but max be very application dependent. Feel free to modify code to your needs.
 
microSoundRecorder for Teensy 4.1

Hi to all and thank you for this amazing library,
I am new to audio logging, and I am trying to understand if it is possible to record audio on the SD card using only a Teensy without the Audio Board. Does microSoundRecorder need an Audio Board? I am reading the microSoundRecorder wiki and to my understanding, there are no references to the Audio Board. But in this forum, there are frequent references to the latter. In any case, can this library be modified to work for Teensy 4.1 paired with a single ICS43434?
I'd appreciate any thoughts or comments.
 
In any case, can this library be modified to work for Teensy 4.1 paired with a single ICS43434?

No audioboard is needed, just edit config.h
e.g. modify #define ACQ _I2S_32 // selected acquisition interface //<<<======>>>
e.g #define ACQ _I2S_32_MONO
and verify the microphone is connected correctly.

If you have problems, please provide config.h and list on how you connected the microphone
and what the Config.txt file on the uSD disk looks like
 
Hi Walter,

after a long time, I tried to upload the software to a newly built recorder.

However, it does not work any more.

* it seems the triggered recording mode is always enabled
* it is not possible to make time-scheduled recordings any more
* I am using I2S mic ICS43434

Is there any clue how that could be repaired?
 
Hi Walter,

after a long time, I tried to upload the software to a newly built recorder.

However, it does not work any more.

* it seems the triggered recording mode is always enabled
* it is not possible to make time-scheduled recordings any more
* I am using I2S mic ICS43434

Is there any clue how that could be repaired?

Just adjusted config.h to do dutycyle and eliminate detector
corrected link to sdFat-beta (I'm using the latest TD)
compiled and it is running as expected
(github updated)
 
Just adjusted config.h to do dutycyle and eliminate detector
corrected link to sdFat-beta (I'm using the latest TD)
compiled and it is running as expected
(github updated)

Thanks a lot, Walter, for your quick response and the clarification!

I misunderstood the MDEL parameter, which seems to be a compile time define and not (as I wrongly assumed) a parameter that is given over to the recorder by the confog.txt on the SD card.

So, I will investigate with the new version and the right compile time defines. However, I have to carefully test the new Teensyduino version, because the recent SD lib changes could potentially break all my other scripts. So it will need some careful work.

Will keep you up-to-date on my advances!

All the best,

Frank DD4WH
 
So, I will investigate with the new version and the right compile time defines. However, I have to carefully test the new Teensyduino version, because the recent SD lib changes could potentially break all my other scripts. So it will need some careful work.
in order not to change too much I only changed the include from SdFat-beta.h to SdFat.h so I access the SdFat library directly and not via SD interface.
Maybe in the future I will change to SD interface.
With new Teensyduino, you need to remove the SdFat-beta from the local library to avoid potential conflicts. with makefile I can control the libraries access directly
 
Good evening
I am new to Teensy. I use Arduino and ESP32.
Now i like to use this project for some testing for my Mems microphones.
My Software:
Windows 10
Arduino 1.8.13
Teensyduino from website
Last project from Github
Hardware Teensy 4.1

When i compile the microSound recorder i get a bounch of errors.

audio_mods.h:120: error: 'F_BUS' was not declared in this scope

PDB_period = F_BUS/fsamp -1;
float A=F_PLL/2.0f/i3/((float)nbits*fsamp);


audio_hibernate.h:62: error: 'LLWU_F3' was not declared in this scope

LLWU_F3 |= LLWU_F3_MWUF5_MASK; // clear source in LLWU Flag register
'IRQ_LLWU' was not declared in this scope
'LLWU_PE1' was not declared in this scope
'LLWU_PE2' was not declared in this scope
'LLWU_PE3' was not declared in this scope
'LLWU_PE4' was not declared in this scope
'LLWU_ME' was not declared in this scope

INTERNAl is not declared.

Maybe someone can help me what i missed to install.
Thanks
 
Hello

I am interested in recording a 24bit 96k stereo i2s audio stream to uSD card -- nothing else like temperature or environmental data. This is an attempt to get close to high quality recording from some of the good audio adc's like akm 557x, cs5381, etc.
 
hi Walter,

had some time today to try the new version of microSoundRecorder.

However, I do not seem to be able to compile it.

Arduino 1.8.13 TD 1.53

no other SD library installed except for the newest version of SdFat --> https://github.com/greiman/SdFat

What can I do to be able to compile?

Code:
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:24:10: error: 'SdVolume' has not been declared
 uint32_t SdVolume::cacheBlockNumber_ = 0XFFFFFFFF;
          ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:25:10: error: 'SdVolume' has not been declared
 cache_t  SdVolume::cacheBuffer_;     // 512 byte cache for Sd2Card
          ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:26:1: error: 'Sd2Card' does not name a type
 Sd2Card* SdVolume::sdCard_;          // pointer to SD card object
 ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:27:10: error: 'SdVolume' has not been declared
 uint8_t  SdVolume::cacheDirty_ = 0;  // cacheFlush() will write block if true
          ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:28:10: error: 'SdVolume' has not been declared
 uint32_t SdVolume::cacheMirrorBlock_ = 0;  // mirror  block for second FAT
          ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:31:9: error: 'SdVolume' has not been declared
 uint8_t SdVolume::allocContiguous(uint32_t count, uint32_t* curCluster) {
         ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:25:57: error: 'void (* SdFile::dateTime_)(uint16_t*, uint16_t*)' is not a static data member of 'class SdFile'
 void (*SdFile::dateTime_)(uint16_t* date, uint16_t* time) = NULL;
                                                         ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:33:28: error: no 'uint8_t SdFile::addCluster()' member function declared in class 'SdFile'
 uint8_t SdFile::addCluster() {
                            ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:46:35: error: no 'uint8_t SdFile::addDirCluster()' member function declared in class 'SdFile'
 uint8_t SdFile::addDirCluster(void) {
                                   ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:61:1: error: 'dir_t' does not name a type
 dir_t* SdFile::cacheDirEntry(uint8_t action) {
 ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp: In function 'uint8_t allocContiguous(uint32_t, uint32_t*)':
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:47:18: error: 'allocSearchStart_' was not declared in this scope
     bgnCluster = allocSearchStart_;
                  ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:74:27: error: no 'uint8_t SdFile::close()' member function declared in class 'SdFile'
 uint8_t SdFile::close(void) {
                           ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:91:71: error: no 'uint8_t SdFile::contiguousRange(uint32_t*, uint32_t*)' member function declared in class 'SdFile'
 uint8_t SdFile::contiguousRange(uint32_t* bgnBlock, uint32_t* endBlock) {
                                                                       ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:56:21: error: 'clusterCount_' was not declared in this scope
   uint32_t fatEnd = clusterCount_ + 1;
                     ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:130:44: error: no 'uint8_t SdFile::createContiguous(SdFile*, const char*, uint32_t)' member function declared in class 'SdFile'
         const char* fileName, uint32_t size) {
                                            ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:158:26: error: 'uint8_t SdFile::dirEntry' is not a static data member of 'class SdFile'
 uint8_t SdFile::dirEntry(dir_t* dir) {
                          ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:68:31: error: 'fatGet' was not declared in this scope
     if (!fatGet(endCluster, &f)) return false;
                               ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:158:26: error: 'dir_t' was not declared in this scope
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:158:33: error: 'dir' was not declared in this scope
 uint8_t SdFile::dirEntry(dir_t* dir) {
                                 ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:158:38: error: expected ',' or ';' before '{' token
 uint8_t SdFile::dirEntry(dir_t* dir) {
                                      ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:178:28: error: 'dir_t' does not name a type
 void SdFile::dirName(const dir_t& dir, char* name) {
                            ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:178:50: error: no 'void SdFile::dirName(const int&, char*)' member function declared in class 'SdFile'
 void SdFile::dirName(const dir_t& dir, char* name) {
                                                  ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:79:28: error: 'fatPutEOC' was not declared in this scope
   if (!fatPutEOC(endCluster)) return false;
                            ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:201:46: error: no 'void SdFile::ls(uint8_t, uint8_t)' member function declared in class 'SdFile'
 void SdFile::ls(uint8_t flags, uint8_t indent) {
                                              ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:245:58: error: no 'uint8_t SdFile::make83Name(const char*, uint8_t*)' member function declared in class 'SdFile'
 uint8_t SdFile::make83Name(const char* str, uint8_t* name) {
                                                          ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:83:43: error: 'fatPut' was not declared in this scope
     if (!fatPut(endCluster - 1, endCluster)) return false;
                                           ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:284:57: error: no 'uint8_t SdFile::makeDir(SdFile*, const char*)' member function declared in class 'SdFile'
 uint8_t SdFile::makeDir(SdFile* dir, const char* dirName) {
                                                         ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:88:40: error: 'fatPut' was not declared in this scope
     if (!fatPut(*curCluster, bgnCluster)) return false;
                                        ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:384:74: error: no 'uint8_t SdFile::open(SdFile*, const char*, uint8_t)' member function declared in class 'SdFile'
 uint8_t SdFile::open(SdFile* dirFile, const char* fileName, uint8_t oflag) {
                                                                          ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:476:68: error: no 'uint8_t SdFile::open(SdFile*, uint16_t, uint8_t)' member function declared in class 'SdFile'
 uint8_t SdFile::open(SdFile* dirFile, uint16_t index, uint8_t oflag) {
                                                                    ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:94:17: error: 'allocSearchStart_' was not declared in this scope
   if (setStart) allocSearchStart_ = bgnCluster + 1;
                 ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:502:64: error: no 'uint8_t SdFile::openCachedEntry(uint8_t, uint8_t)' member function declared in class 'SdFile'
 uint8_t SdFile::openCachedEntry(uint8_t dirIndex, uint8_t oflag) {
                                                                ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:550:26: error: 'uint8_t SdFile::openRoot' is not a static data member of 'class SdFile'
 uint8_t SdFile::openRoot(SdVolume* vol) {
                          ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:550:26: error: 'SdVolume' was not declared in this scope
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp: At global scope:
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:99:9: error: 'SdVolume' has not been declared
 uint8_t SdVolume::cacheFlush(void) {
         ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:550:36: error: 'vol' was not declared in this scope
 uint8_t SdFile::openRoot(SdVolume* vol) {
                                    ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdFile.cpp:550:41: error: expected ',' or ';' before '{' token
 uint8_t SdFile::openRoot(SdVolume* vol) {
                                         ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp: In function 'uint8_t cacheFlush()':
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:101:10: error: 'sdCard_' was not declared in this scope
     if (!sdCard_->writeBlock(cacheBlockNumber_, cacheBuffer_.data)) {
          ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:106:12: error: 'sdCard_' was not declared in this scope
       if (!sdCard_->writeBlock(cacheMirrorBlock_, cacheBuffer_.data)) {
            ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp: At global scope:
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:116:9: error: 'SdVolume' has not been declared
 uint8_t SdVolume::cacheRawBlock(uint32_t blockNumber, uint8_t action) {
         ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp: In function 'uint8_t cacheRawBlock(uint32_t, uint8_t)':
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:119:10: error: 'sdCard_' was not declared in this scope
     if (!sdCard_->readBlock(blockNumber, cacheBuffer_.data)) return false;
          ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp: At global scope:
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:127:9: error: 'SdVolume' has not been declared
 uint8_t SdVolume::cacheZeroBlock(uint32_t blockNumber) {
         ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp: In function 'uint8_t cacheZeroBlock(uint32_t)':
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:135:17: error: 'cacheSetDirty' was not declared in this scope
   cacheSetDirty();
                 ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp: At global scope:
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:140:9: error: 'SdVolume' has not been declared
 uint8_t SdVolume::chainSize(uint32_t cluster, uint32_t* size) const {
         ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:140:63: error: non-member function 'uint8_t chainSize(uint32_t, uint32_t*)' cannot have cv-qualifier
 uint8_t SdVolume::chainSize(uint32_t cluster, uint32_t* size) const {
                                                               ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp: In function 'uint8_t chainSize(uint32_t, uint32_t*)':
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:143:34: error: 'fatGet' was not declared in this scope
     if (!fatGet(cluster, &cluster)) return false;
                                  ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:144:19: error: 'clusterSizeShift_' was not declared in this scope
     s += 512UL << clusterSizeShift_;
                   ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:145:26: error: 'isEOC' was not declared in this scope
   } while (!isEOC(cluster));
                          ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp: At global scope:
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:151:9: error: 'SdVolume' has not been declared
 uint8_t SdVolume::fatGet(uint32_t cluster, uint32_t* value) const {
         ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:151:61: error: non-member function 'uint8_t fatGet(uint32_t, uint32_t*)' cannot have cv-qualifier
 uint8_t SdVolume::fatGet(uint32_t cluster, uint32_t* value) const {
                                                             ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp: In function 'uint8_t fatGet(uint32_t, uint32_t*)':
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:152:18: error: 'clusterCount_' was not declared in this scope
   if (cluster > (clusterCount_ + 1)) return false;
                  ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:153:18: error: 'fatStartBlock_' was not declared in this scope
   uint32_t lba = fatStartBlock_;
                  ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:154:10: error: 'fatType_' was not declared in this scope
   lba += fatType_ == 16 ? cluster >> 8 : cluster >> 7;
          ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:156:29: error: 'CACHE_FOR_READ' was not declared in this scope
     if (!cacheRawBlock(lba, CACHE_FOR_READ)) return false;
                             ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:161:51: error: 'FAT32MASK' was not declared in this scope
     *value = cacheBuffer_.fat32[cluster & 0X7F] & FAT32MASK;
                                                   ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp: At global scope:
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:167:9: error: 'SdVolume' has not been declared
 uint8_t SdVolume::fatPut(uint32_t cluster, uint32_t value) {
         ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp: In function 'uint8_t fatPut(uint32_t, uint32_t)':
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:172:18: error: 'clusterCount_' was not declared in this scope
   if (cluster > (clusterCount_ + 1)) return false;
                  ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:175:18: error: 'fatStartBlock_' was not declared in this scope
   uint32_t lba = fatStartBlock_;
                  ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:176:10: error: 'fatType_' was not declared in this scope
   lba += fatType_ == 16 ? cluster >> 8 : cluster >> 7;
          ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:179:29: error: 'CACHE_FOR_READ' was not declared in this scope
     if (!cacheRawBlock(lba, CACHE_FOR_READ)) return false;
                             ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:187:17: error: 'cacheSetDirty' was not declared in this scope
   cacheSetDirty();
                 ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:190:7: error: 'fatCount_' was not declared in this scope
   if (fatCount_ > 1) cacheMirrorBlock_ = lba + blocksPerFat_;
       ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:190:48: error: 'blocksPerFat_' was not declared in this scope
   if (fatCount_ > 1) cacheMirrorBlock_ = lba + blocksPerFat_;
                                                ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp: At global scope:
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:195:9: error: 'SdVolume' has not been declared
 uint8_t SdVolume::freeChain(uint32_t cluster) {
         ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp: In function 'uint8_t freeChain(uint32_t)':
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:197:3: error: 'allocSearchStart_' was not declared in this scope
   allocSearchStart_ = 2;
   ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:207:26: error: 'isEOC' was not declared in this scope
   } while (!isEOC(cluster));
                          ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp: At global scope:
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:227:9: error: 'SdVolume' has not been declared
 uint8_t SdVolume::init(Sd2Card* dev, uint8_t part) {
         ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:227:24: error: 'Sd2Card' was not declared in this scope
 uint8_t SdVolume::init(Sd2Card* dev, uint8_t part) {
                        ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:227:33: error: 'dev' was not declared in this scope
 uint8_t SdVolume::init(Sd2Card* dev, uint8_t part) {
                                 ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:227:46: error: expected primary-expression before 'part'
 uint8_t SdVolume::init(Sd2Card* dev, uint8_t part) {
                                              ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:227:50: warning: expression list treated as compound expression in initializer [-fpermissive]
 uint8_t SdVolume::init(Sd2Card* dev, uint8_t part) {
                                                  ^
M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD\utility\SdVolume.cpp:227:52: error: expected ',' or ';' before '{' token
 uint8_t SdVolume::init(Sd2Card* dev, uint8_t part) {
                                                    ^
Mehrere Bibliotheken wurden für "SD.h" gefunden
 Benutzt: M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\hardware\teensy\avr\libraries\SD
 Nicht benutzt: M:\Privat\AMATEURFUNK\Ardunio IDE T4\arduino-1.8.13 TD 1_53_HIER\libraries\SD
Fehler beim Kompilieren für das Board Teensy 3.6.
 
Do I need to delete the Sd libs inside the installation of Teensyduino or Arduino ?
Or do I need to use the latest beta of Teensyduino? Hmm --> will try that now.
 
OK: it seems I have to install the latest teensyduino 1.54 beta-7 in order to make the microSoundRecorder compile! It works now!

Not sure if I understand why this is so, but good to know there is a way to make it compile ;-).
 
OK: it seems I have to install the latest teensyduino 1.54 beta-7 in order to make the microSoundRecorder compile! It works now!

Not sure if I understand why this is so, but good to know there is a way to make it compile ;-).

With TD 1.54 ( beta 7) :: SD.h now runs/maps into SdFat for the added speed and functionality that brings along.
The SD.h func()'s were just mapped through by Paul, but now the full SdFat functionality is also installed and may be used alternatively in this code?
 
Back
Top