Perhaps you missed the code in MTPStorage::loop() ?
It does indeed call FS::mediaPresent(), on line 1899. You can easily confirm by adding a Serial.print() within that function.
Added the missing mediaPresent() function to USBFilesystem.
https://github.com/PaulStoffregen/USBHost_t36/commit/ca33e97660f3918277432015d4af615cf5c59065
Here's a commit for (hopefully) better handling of removable media. So far only tested with SD cards, but should support any type of removable media which implements FS.mediaPresent()...
@KurtE - Could I talk you into creating another branch from the large_files branch? I'll use it to do the stuff I was planning before the chip shortages hit. I normally use only the simple git command and github website, so syncing back to your...
Successfully copied a 6GB file from a SD card (FAT64 format) to my Linux desktop. Didn't time it, but took several minutes. SHA256 and full file compare confirms every byte correctly received.
FWIW, turns out this 64GB Sandisk card was...
Definitely not ready for 1.60 in its current state. I'm diving into the code now to really look at what's needed.
Support for larger than 4GB files is not a huge concern (at least for 1.60...) I'm also not really worried about MSC slow speed...
Can GetObjectPartial support 64 bits?
I don't see it mentioned in Appendix H and I don't understand how the host could request the offset or size as 64 bits. Maybe I missed something?
Sent a pull request to fix size handling in GetObjectPartial.
This may not be the only issue. I still hear weird artifacts in Windows Media Player. Playing on Linux is also not 100%, but it at least works for a while now.
Yes, the IMXRT fuse memory absolutely is permanent. Setting a fuse bit physically alters the chip in an irreversible way. NXP doesn't give details of how it's implemented, but the on-chip technology is likely amorphous silicon anti-fuse.
The...
Tested the latest with Windows 11. Copying a WAV file works well. But playing it in Media Player has dropouts. Protocol analyzer shows 1 large GetObject transfer for the file copy, but when Media Player is used Windows sends several GetObject...
The audio library can run many concurrent filters processing 44100 Hz sample rate. Processing in data in blocks (as the audio library does) rather than 1 sample at a time makes a huge difference.
This question might be better asked on PlatformIO's issue tracker. They'll probably need you to share the large code that gives the error.
It's just a couple .c files which don't depend on any special libraries, just a C compiler and the usual...
Here's a few tips...
First, 38000 Hz is slightly beyond 12 bit PWM resolution. This is documented on the PWM page. It's also easy math. The FlexPWM timers clock at 150 MHz. 150 MHz / 4096 = 36621.09 Hz.
Your use of analogWrite(4, 1); only...
Trying the latest code. From Linux, seems I can't write even a small file, using either main or large_files branch. :(
Will dig into the details soon...
Looked very briefly at your code. There's a lot going on within that rotate() function. It does many String operations, and calls a display() function which calls other stuff that looks like it might take quite some time.
If you're happy with...
Looked at that library briefly. I only see attachInterrupt within this example, not the actual library code.
So many things are wrong with that example!
1: attachInterrupt() uses hard-coded interrupt numbers for Arduino Uno. Should use...
MotionCal is a PC-based application I wrote several years ago, around the time of Teensy 3.5 + 3.6 release. It uses OpenGL to visualize the shape of the distribution of calibration points which are supposed to look like a sphere if the data is...
No blink at all on the red LED after holding the pushbutton for 13+ seconds is a bad sign. Sad to say, odds are strong the hardware got damaged.
Next step in troubleshooting is to look at the power supply voltages. First is the simplest, just...
shiftOut() transmits a byte (8 bits).
Documentation here:
https://www.arduino.cc/reference/tr/language/functions/advanced-io/shiftout/
For 12 bits, just write your own loop using digitalWriteFast() and delayNanoseconds() or delayMicroseconds().
Try having Teensy send the message to different software. Try "simple" programs like Notepad or a command prompt window. This problem may turn out to be a simple matter that some programs are just too slow to receive characters this quickly.
As a first step, can you at least collect a screenshot of the Ports menu before you try to upload, and a screenshot of the error which appears? I want to help, but we're flying completely blind without the ability to see the errors you're...
Remember we can't see your screen. Figuring out the root cause of technical problems can be challenging even with complete info, but in this case we can't even see the errors you're saying you saw. I can't even tell if you're using MacOS...
I thought I would mention, that I have started hacking on the MTP code to hopefully handle 64 bits. Not there yet, but making some
progress.
WIP branch - https://github.com/KurtE/MTP_Teensy/tree/large_files
For the fun of it, doing the code on...
I've just re-read this thread and I'm still struggling to understand the question here. This seems to be the main one, right?
Likely explanation would be some sort of problem with the PCB design or construction of your home built AT43301-bsaed...
Try editing output_pt8211.h at line 40. Does changing the oversampling algorithm or just disabling oversampling have any effect?
Arduino IDE installs the libraries in a hidden folder, so you may need to do something special to find the...
Ah, yes, this is the older Teensy 3.2 PCB where the D+ pad connects that that via to the USB connector pad, and then does underneath those 2 capacitors to reach the 33 ohm resistor.
Newer Teensy 3.2 had a different layout. Not relevant here...
D+ routes to R2, which the bottom of these 2 resistors.
This is documented on the schematic and component locations on the Teensy 3.2 product page. (scroll down to near the end of the page)
Some of the chip is used for your program and a small part is reserved for EEPROM and the restore program (15 sec button press), so you can't use the entire chip.
That connection looks like it ought to work. But the photo is blurry, and shot from the Teensy top side so we can't see how the wires are actually soldered. If you can share a better photo, and if it's a "simple" problem with the connection...
Yet another issue you might be facing is inrush current during hot plugging. Mentioning this because I see only a 22uF capacitor on your schematic. USB spec says to use at least 150uF.
Make a point to test with keeping everything plugged...
While not a good solution, try the easiest thing first... reprogram Teensy while Tools > CPU Speed is set very slow, like 150 or even 24 MHz. It will use less power.
Slightly more difficult would be editing usb.c to force 12 Mbit/sec mode...
These are the links, right?
https://epsilonrt.github.io/eFlexPwm/
https://forum.pjrc.com/index.php?threads/72458
(added these to the reference manual as annotation on page 3091)
Paul mentions FlexPWM, so I'll add that it can be configured to interrupt on each PWM period, and the duty cycle can be updated, with the new value applying on the next period. If you search the forum or github for eFlexPWM, you will find a...
One of the many things I've dreamed of making (in my dream world of infinite daily programming hours and zero mundane business stuff) is a DMA-based pulse output library. And also one for capturing pulses. We get these questions pretty...
Teensy LC was discontinued. Can't do much.
But I want to help. Best I can offer is if your order a new Teensy 4.0 or Teensy 4.1, I can offer you a 2nd unit for free. Hopefully that'll offset the loss of those those 2 Teensy LCs while also...
Good. Will wait for the code before trying to make sense of that scope screenshot.
But in the meantime, to try answering these latest question.
As with all microcontrollers, you have 3 basic ways to do this sort of thing.
1: bitbanging with...
As a quick check on the time taken to modulate PWM, I wrote this tiny program which alters the duty cycle every 0.1ms.
void setup() {
pinMode(1, OUTPUT);
analogWriteFrequency(2, 38000);
}
void loop() {
digitalToggleFast(1)...
Would like to help you, but without seeing your code or knowing specifically what you're actually doing and how you're observing the result as taking several milliseconds, can't do much. Please show us your code, or if it's a huge or secret...
This is normal. By default Teensy uses HID protocol, not Serial. You will not see a COM port on Windows (or /dev/ttyACM on Liniux or /dev/cu.usbmodem on MacOS) when Teensy is running with its default HID communication.
It only becomes USB...
Ah, now your questions make a lot more sense! I really don't know anything about the fast IrDA modes.
I added these words to the PulsePosition web page "PulsePosition is unrelated to IrDA FIR 4Mbit/sec communication. It only usesthe relatively...
Maybe just a bit of explanation might help? Of course you can find much info online about PPM. But the general idea of a group of signals are transmitted by sending tiny pulses, where the values of the signals are the time between each pulse...