This is the link for a copy of just the USB 2.0 spec (hosted on PJRC's server) without all that other stuff.
https://www.pjrc.com/teensy/beta/usb20.pdf
I've never understood why the USB-If website doesn't support...
Yes, indeed USB is very complicated. The controllers in this new chip are basically the same as the 2nd port on Teensy 3.6 (where we've only supported host mode, never device mode). It's completely different than the...
You can use any settings you like.
But if you wish to match the same defaults at Teensyduino, you'll need different defaults. Teensy 3.x defaults to "Faster", Teensy LC defaults to "Smallest Code". Later this year,...
Not quite sure what you mean by "TEENSY_OPT_SMALLEST_CODE". That's not a name used anywhere in the code I've published. Maybe it's something specific to PlatformIO which I do not know?
I'll add this to my...
Can you double check which RS485 chip you really have?
MAX485ESA+T should work fine. Rated for 2.5 Mbps data rate should be fine. But if you happen to have any of these chips which are only rated for 0.25 Mbit/sec...
I know not of this zipping noise.
Generally we expect you to show a program, so anyone can reproduce the problem. But even just being able to see (hear) the problem is a bare minimum.
But to try to answer your...
Can you watch the RESET signal while you're doing this? When you pull PROGRAM (PTB2 on the MKL02 chip) low, RESET is supposed to go low and remain low as long as PROGRAM is low.
Another question: do you have ceramic...
Ok then, another blind guess... have you looked at the start up waveform of both power sources?
Years ago we had someone (actually a few people) experience all sorts of strange problems with a particular Traco DC-DC...
Is there a RS232 cable of some sort plugged into that UART level shifter? Where does it go? Or to ask another way, what is the ground of the connected equipment, and how does that compare with the ground connection...
You can call midi1.manufacturer() and midi1.product() to get the names, since MIDIDevice inherits the public functions of the USBDriver base class. These return NULL if no device is connected or if the device didn't...
Sorry. I had an outdoor event to attend last week which seemed fine at the time, but then relapsed on this damn cold! Did the "lots of rest and liquids" thing for a few days. A couple PJRC tech issues came up, like...
You really should use a hardware-based mechanism to protect the hardware. One simple way include an "enable" signal with a physical pullup or pulldown resistor, where the drivers are turned off in default state, so the...
Normally 3 objects use the SGTL5000, the control one (no audio connections) which just configures the hardware over SDA & SCL, and the 2 I2S objects which actually stream the audio data.
In your diagram, the USB goes...
Yes, it should.
In fact, there are 2 different sysex handlers.
// Only one of these System Exclusive handlers will actually be
// used. See the comments below for the difference between them.
...
Sounds like you've made a really useful product here. I totally understand how much extra work it is to sell & support something as a commercial product.
If you're not going to sell these, but willing to share the...
Oh, I'm not personally looking for this board, but if you're selling them online, I'd certainly like to help you get the word to people who might want them!
You need Arduino 1.8.8 and this Teensyduino 1.45 installer.
https://www.pjrc.com/teensy/td_download.html
Also, please be aware Teensy appears as HID, not Serial, in many of its modes. When using Windows Device...
Maybe, but I have not ever tried this. I would use an interrupt and have the interrupt code configure the timer.
The FTM timers do have special fault inputs. I've never used them, so I really can't suggest anything...
No, it just looks that way. Even though those 2 pads are underneath the USB Micro-B connector, they're actually a completely separate USB port.
Just plug a USB cable in to that connector, and into whatever USB...
You might also consider just doing it all by software. Here's a project I did 4 years ago, which ran on Teensy 2.0, controlling 4 dimmers using AC zero cross detection and just computing everything in terms of...
The most important thing will be connecting GND on Teensy to GND on that relay board.
If Teensy gets external 5V power, usually you would cut the VIN-VUSB pads apart, so the external 5V power can't try to flow back...
SainSmart's website also has a file that looks like the PCB layout.
Here's an image of the control electronics part.
Based on this info, I would *NOT* recommend use with Teensy LC. The board has a 5V power...
My best guess from the photos is you'd give the relay board a separate 12V power supply on it's 2 pin terminal block.
If you get one of these, the very first thing I'd suggest doing is testing with an ohm meter...
What gave you this impression that the volume can't be changed?
It can indeed be changed as often as you like, at least as fast as the relatively slow I2C protocol allows. If you look at the audio library tutorial,...
Is there a schematic or tech info on this relay board?
From the photos, it looks like it's designed to just have 16 ordinary digital I/O pins connected to control the 16 relays. But that's a bit of guesswork from...
The 3rd true/false parameter merely tells if you have already put 0xF0 in the first byte and 0xF7 in the last byte in your data array. It's really that simple.
This code fragment you've show sends 3 sysex messages. ...
I started a list of compatible I2S chips.
https://github.com/PaulStoffregen/Audio/commit/5bf65f1c47f8a5877179c13f6e180a5a5dab7dd3
For I2S output:
Compatible CODEC Chips:
STGL5000
TLV320AIC3206
In Arduino, click File > Examples > USBHost_t36 > MIDI > Interface_16x16.
Admittedly this is a long and somewhat complex example, because it allows 16 MIDI ports on your PC to communicate with 6 serial (5 pin DIN)...
Can't help much with QMK. That code looks like it ought to work on any AVR chip with I2C (TWI) hardware.
Maybe buy or borrow (if you know anyone who has) one of those Saleae logic analyzers (or cheap clones of the...
The data connections look ok.
Maybe try measuring DC voltages at all the CS4334 pins? The 3 clocks should measure ~1.65V, since they're 50% duty cycle. If the CS4334 chip has turned on its analog circuitry, you...
PROGMEM means the variable or function is only placed in the external QSPI flash chip. F() and PSTR() are supposed to do this for string constants (or "string literals" in compiler jargon), but I'm not sure if we have...
Looking at the Teensy footprint, this sure looks like an actual bottom side view, since VIN is on the left and GND is on the right.
But looking at the CS4344, it sure looks like a transparent view through the top of...
I'm confused by the bottom side image.
Is this a transparent view through the top of the board? Or is it actually looking at the bottom side, like holding the real board in your hand?
Wow, turns out there are 8 very old html files still on the server, not linked anywhere from the rest of the site, which pre-date the design tool (somewhere in 2014).
I've updated all 8 of those ancient files,...
No, that doesn't explain it at all. I2S is designed so the receiver ignores extra bits.
Most likely you've made a mistake in wiring. Maybe it's time to share photos, so we can help you figure out what's wrong.
NXP's documentation is littered with wrong info, essentially copy-and-paste errors from other chips.
The KL26 chips do indeed have the internal capacitors.
And just to echo what Frank and Thierry already said, you...
In Arduino's File > Preferences you can configure whether Arduino's boards show compiler warnings. You've probably got the default to not show any warnings.
Teensy ignore that setting. Compiler warnings are always...
Yup, looks like the CTRL pin on the AL8805 chips on that PicoBuck board default to on, if not driven.
The datasheet says the CTRL pin's input impedance is 50K. So Cosford's suggestion for 1K resistor is pretty good....
Maybe you could be more specific, about which datasheet you're and which part, which pages? There any many different files, some have thousands of pages, and some chips have both 12 bit DACs and little 6 bit DACs built...
Yes, we've been critical but also helpful. We really do try to help here. But we also expect you to do a better job of giving correct & complete info.
You have tried several ways, but almost all of those way have...
Also, as a general suggestion from seeing the several questions you have recently asked, perhaps you should not use these extra C++ classes? They are only adding extra complexity. If you are not an expert with C++,...
I ran your program from msg #1 (with 3 lines commented out, since it doesn't compile as-is) and indeed those 3 pins do get configured as outputs and work properly.
Here's the waveform from pin 1 when I use my scope....
No, the problem is a simple mistake in your code. pinMode INPUT_PULLUP works fine on Teensy.
The issue is here:
void startShow(int i) {
switch(i){
case 0: R1; // Black/off
break;
...
Ok then. Without a direct link, I didn't go look this up on Sparkfun to check. I answered based only on the info you gave.
If you're sure those pins are covered, then fine.
For troubleshooting, I'd recommend...
The VEE pin must be connected, either to GND or a negative voltage.
The E pin also needs to connect to GND.
Your diagram shows 2 wires of the pot connected to GND, which can't possibly work. Maybe just a mistake...
As a general answer to your general question, generally you start first with a dev board like Teensy, or Arduino, or ST Discovery, or one of many others on the market. The path people generally follow first looks like...
The D+ pogo pin is closer to GND - pin 0 - pin 1, which I usually call the bottom of the board.
The D- pogo pin is closer to VIN - GND - 3.3V, which I usually call the top of the board.
This is why we have features like IntervalTimer, so you can use these easily without having to read the low-level hardware manual.
https://www.pjrc.com/teensy/td_timing_IntervalTimer.html
If you're used to old 8...
Use Keyboard.print(char). It knows how to translate characters to the actual keystoke, based on the keyboard layout you selected in Tools > Keyboard Layout.
if (Serial.available()) {
char c = Serial.read();
...
Ah, this is the first mention of *which* Teensy.
Yes, Teensy 3.6 is not capable of handling 5V signals. If the display's I2C signals are 5V, which you can check by just powering up the display alone and use a...
Do you have one of the breakout boards, with the switch for I2S1 vs I2S2?
If you remove the T4 and audio shield, and power it up with external 3.3V, you can check the signal paths with an ohm-meter. The switch...
Ok, I've uploaded beta9 to msg #2.
Beta9 has all of Frank's audio stuff, and USB host.
A 4th rebuild was needed to fix a silly mistake (affecting only Teensy 3.6). Hopefully I didn't make more of those...
Done.
https://github.com/PaulStoffregen/Audio/commit/bd7aea87e9856e3d8215d8830882452bae548d90
Just spent the last couple hours looking at generated assembly. It was purely a compiler memory access reordering...
Just got USB host working! Or at least 1 USB MIDI drumpad is working. Much optimization work & testing still needed. Still using all DTCM.
Turns out we've had a subtle bug in attachInterruptVector() all this time....
Good question Frank. I really don't know on this, especially about the NIC-301 chapter. I did try looking through the SDK but didn't see anything about it. Maybe Mantiou has? He's probably spent the most time...
Probably written by folks who cared nothing for performance!
Confirmed, no write access. Any attempt to write should memfault, since that region is configured as READONLY in startup.c.
SCB_MPU_RBAR...
Three possible answers:
1: If it didn't blow up your Arduino board, it *probably* won't blow up your Teensy either. Electrically, Teensy & Arduino are pretty similar.
2: Usually when connecting stuff together,...
Ok, I see at least 4 possible problems here:
1: You've created 2 instance of your AudioBlockPlayer class. One is a local variable in setup(), so it will only exist for a very short time while setup() runs. The...
Your program needs to have one of the special objects with "update responsibility", which are generally the non-USB input & output ones.
This is true for all audio projects. Without any input or outputs, nothing at...
The performance impact is minimal.
However, unaligned access is only supported when using the normal 16 ARM registers. Memory access loading or storing the FPU registers does not support unaligned memory, so you...
Yes. In fact, one of the *many* things I want to do later this year or maybe in 2020 (everything takes longer than anticipated) is better display libs with a common API having more features.
Doing this before T4 is...
@Kurt - Do you have flexio changes for imxrt.h? Please send a pull request when you're ready.
I started working on USB host. It compiles and faults. Will work on it more tonight, and if I get it to enumerate any...
If you only use const, it gets copied into DTCM for fastest possible access. If you use PROGMEM, it's stored only in the QSPI flash chip.
These aren't an absolutely hard rule about IMXRT. It's merely how I wrote...
About your original question, aside from a mix of files that clearly don't go together, I see 3 problems.
1: References have to be initialized in the constructor declaration. You can't assign them inside the...
Your first file includes SkyController.h, which isn't any of the other 4 files you posted.
Might be best to put all the files into a ZIP archive and attach that to your message. If using the forum's "Quick Reply",...
Yup, both libs are trying to use the same timer.
You can change AltSoftSerial by editing config/AltSoftSerial_Boards.h. Look for these lines:
// Teensy++ 2.0
//
#elif defined(__AVR_AT90USB1286__) &&...
On the matter of DAC quality, even 10 bits is plenty if you're driving a tiny 22mm diameter speaker.
When it comes to high quality DACs, the number of bits is usually meaningless. They all accept more bits input...
No. As you guessed from "NOSPI", it's not actually using the SPI hardware.
To select different pins, just edit the numbers on these 2 line:
const int ShiftPWM_dataPin = 11;
const int ShiftPWM_clockPin = 13;