You can easily ignore lack of USB connection
Yes, it fills-up a buffer, but when this buffer is full all further data are dropped.
You can see that by writing data to USB, disconnecting USB from PC and after some time...
This is partially done in Serial, but I agree that checking for open session is a good idea, especially as PC will time out MTP when session is not established for some time (have not established timeout value, but...
I'm afraid that I have no experience with midi, but I can tell you that the 2nd usb was modelled after T4 so T4 midi would be a good starting point.
But if you wanted to take on the challenge, I suggest to first get...
I tend to disagree
what-ever system is pre-loaded, you will find people that complain or want something else.
I like the idea of having only the blink preloaded to prove functionality of a new system.
if users are...
I only wanted to clarify the "d - first dump list of storages" option
this prints out the relevant info of the index file, mtp uses to access the files.
It is only useful during development and requires understanding...
One application of MTP is to transfer files, while the Teensy is not accessible, so disk access should IMO be optimised.
If this can be done using info from filesystem, so better. Yes, FS.h should provide basic...
Well, I only adapted the original code to my needs and made it available.
I understand that Paul is interested to integrate it at some time, but he seems to be busy with other (hopefully pleasant) actions.
At the...
The 2.9 ms is result of acquisition buffer (128 samples) and sampling rate (44.1 kHz) so you must change one of the two values to change the delay.
This requires changing some basic parameters. It can be done, but not...
They cannot be 180 deg out of phase. there is a fixed travel time through the audio library
Output is NEVER without delay to input.
AFAIK
I2S-input: data are buffered for 128 samples (2.9 ms @44.1 kHz)
Amp:...
the way it is wired now, connect audio signal to both line in and oscilloscope channel 1 to ,say, left and channel 2 to right
you could simplify, by connecting both amp inputs to same i2s input channel (left or right)
if you insert an audio object then you have to consider a 128 sample delay.
So, insert two mixers in parallel one with +1 and the other with -1, then you should get the desired effect
the SPI speed and the CPU speed are total different clocks
.
However, if you use code where SPI clock speed is derived from CPU clock then you may run into issues.
If this happens in old low speed avr code, I don't...
use
SPI1.beginTransaction(SPISettings(4'000'000, MSBFIRST, SPI_MODE0));
spi commands
SPI1.endTransaction();
or similar to control SPI speed (here 4 MHz)
I corrected the Readme file (thanks for pointing out)
re TyCommander, I'm not using this, so I cannot comment
If you update boards.txt (modifications for teensy_avr) then there should be two entries MTP DISK...
I had that too, but having storageID above 16 bit did not change anything.
I know it violates the document, but coding was simpler.
one events:
notifying every new file, for me is not an option, as files are...
@KurtE
On T3.x, my interpretation was that after malloc you need also a free, but I may be wrong.
So I use always the same buffer for multiple events, assuming that I will not send multiple events one after the...
BTW,
My Github has also a tested T3.6 version on events included (in MTP.cpp)
I would keep event handling outside cores
I did a couple of days ago a PR on teensy3/usb_desc.h to have tx events, but no action by Paul...
MTP per se does not need Serial connection, but MTP is usually integrated in other programs that need serial connections.
Seremu without Arduino monitor is a little bit complicated.
Consider headless hosts in...
@KurtE,
Yes I'm following your modifications and try them out.
There are couple of things I may have a different starting point, so I'm curious to see how they work out.
So please go ahead with modifications and if...
Chip,
mtp-test.ino does work now with T3.6
to use USB_MTPDISK_SERIAL you need to copy the desc.h parts into desc.h cores files
if you prefer to use old mtpdisk (seremu) you should edit desc.h to have for USB_MTPDISK...
Chip,
Have not integrated yet events to T3.6.
I'm still testing with T4.1 (my real application runs on T4.1)
T3.6 needs own usb interface so it needs a mind-change to get integrated.
otherwise it should work with...
Chip
you mean
N_k = (Q * f_s) /f_k
anyhow, it does not matter, as one can use FFT to approximate the spectral resolution (with summing of bins), then one can sum the temporal bins to approximate the windowing.
...
AFAIK
N_k * f_k = Q*f_s
N_k window length
f_k center frequency
f_s sampling frequency
see e.g. https://en.wikipedia.org/wiki/Constant-Q_transform
Obviously, one needs to read a little bit more than the first...
Chip,
I would not call it "approximation to constant-Q", as a simple logarithmic frequency scale (logarithmic summing frequency bins) is equivalent to a logarithmic Q.
In how far logarithmic summing of frequency bins...
The OP and title asks about constant Q and not "logarithmic" spectrograms.
constant Q indicates "logarithmic" spacing of frequencies AND therefore also logarithmic changes in window size.
summing simply frequencies...
As Q is related to the time-frequency product you "only" need to implement 96 DFTs, each with own window size.
Edit: Not sure is there is a DFT object in Audio library, but you can easily write one yourself
@KurtE
Re storageID, I knew this and have thought to separate physical and logical storage, but in the end I let everything as 1 physical storage (0<<16) and consider all storage as logical. I know this not entirely...
After commenting to @mborgerson, here a first success
I succeeded to provoke a PC response using an event.
Using a device reset event PC reopened a new session. I updated the MTP github.
in MTP.h there is a define...
Correct, If PC initiated a session, and you open a directory in file explorer MTP responder tells MTP initiator (PC), how many files are in this directory. If Teensy the writes additional files, PC will never know about...
I do not understand.
Does the ReadWrite.ino example in SD library not work?
Is it not the purpose of SD library that you do NOT interface directly with the SdFat library?
The OP asked for a simple SD read/write...
Let me summarize the discussion as I see it.
Starting point:
MTP was developed to retrieve files from portable devices and at the same time to store files on such devices.
It was never designed to replace a file...
This is an operation from within the Teensy. IMO, what is needed an operation on PC to reset session.
I have good results with using the device manager, but as I said, I hear that others have problems.
using Serial...
@KurtE,
A lot of suggestions.
Not sure if it is useful to map FS with MTP (or I misundertand).
The main program must know the disks attached to system for logging, and the MTP is not talking to main program but to...
Personally, I have no experience with Ethernet, but I can imagine that others on this forum would appreciate a picture of your setup. Not sure also if ethernet kits from e-bay are suited for T4.1. Again, more details or...
The following snippet does not crash
uint32_t data;
int ndat = file.read(&data,4);
if(ndat<0) Serial.println("SD error");
OK, a return of -1 indicated SD read failure, which may be also due to different...
I'm pretty sure that nobody on this forum is experimenting with intentionally bricking a teensy.
So you will not get an affirmative answer, but we all are waiting that you tell us that this instruction indeed bricks...
The following code is a simple I2S input example that runs on T4.1.
It can be configured to have multi channel TDM input for ether 16 or 32 bit for (nearly) arbitrary sampling frequency.
It runs without Audio library...
Obviously, you will get better answers from Microsoft, why their plugin does not work on a Mac, or better ask Apple, why VSCode + Arduino plugins do not work on MAC.
To answer directly, I have not heard that someone...
In order to have another example to do I2S acquisition (I'm not doing I2S output), here is what I extracted from my actual application
#define FSAMP 96000
#define NSAMP 128
// assume to have two audio...
output_i2s is not at all integrated with other audio library function, it needs only cores functions, that you need anyhow for teensy, if you do not want to re-invent everything.
Output_i2s is linked to Audiostream.h...
best starting point is indeed the audio library.
understand the code and modify it to your requirements.
for I2S you need to look into input_i2s and output_i2s
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...
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)
Sure, the USB uses 512 bytes or 64 bytes (depending on speed)
I choose 4096 to speed up uSD access (I'm only interested in fast access to embedded data storage, so 4096 disk buffer seemed adequate)
AFAIK, DEDICATED_SPI effectively does not call begin and end transaction.
@FrankB a change from 1.36 MHz to 5.18 MHz is indeed a a major improvement from SHARED_SPI to DEDICATED_SPI
There is more than speed on SPI performance
here are the three cases as I see them
status = SD.begin(SDCARD_CS_PIN); // 0.92 MB/s - 0.91 Mb/s
// status = SD.sdfs.begin(SdSpiConfig(SDCARD_CS_PIN, SHARED_SPI,...
running the program (SdCardTest) on T4.0+AudioCard SPI clock is 16 MHz with 0.19 us between bytes
Yes, that is set in SD
BUT you can override this with SD.sdfs.begin(...)
That is why sdfs is public in FS
All T3 boards have additional LDO, so VIN could be higher than the 5.5V USB limit.
T4 and T4.1 use on-chip regulator and I recall Paul and IMXRT1062 manuals saying 5.5V is max Voltage
Edit: wrong info
So, I did another test,
what I have is 1 QSPI and 2 SPI chips
QSPI: EF-40-18 transfer fail
SPI: EF-70-18 transfer OK
SPI: EF-40-18 transfer failed
So it seems it is also chip dependent the (the *IM (DTR))...