Sending data via write() isn’t guaranteed to send all the data. That function returns the number of bytes actually written. That’s one of the motivations I had for adding writeFully(). Either use write() and its return value, or use writeFully()...
Another thing that makes it tricky to keep things under control is that the Audio library provides the begin() method to start the hardware and DMA, and then spoils the whole thing by calling it from within the constructor…
Similar criticisms...
For posterity, I believe this is the other thread to which @jmarsh refers:
https://forum.pjrc.com/index.php?threads/issues-with-dmachannels.76608/
I do not love the Arduino-style everything-is-a-static object approach. One of the reasons is...
I wouldn’t use a delay in your code. It also looks much more complicated than it needs to be. You don’t need to manage the library’s buffer.
If you want data to get sent immediately, then flush after writing. If you don’t care if there’s a small...
I think the link may need to be fixed. It shows http://Post%20in%20thread%20%27FastLED%20now%20has%2050-pin%20parallel%20Teensy%204.1%20WS2812%20support%27
I found the design parameters. When below parameters are input at the T-filter tool, the exact impulse values at the source code are calculated.
sampling freq: 176400 Hz
desired #taps: 45
from to gain ripple/att.
0 12000 1 2...
Just to be clear, print() (and write() and writeFully() and all the output functions) will still work, but data won’t get sent until an internal timer expires (about 250ms) or the buffer is full. (This can improve write efficiency.) That’s why...
writeFully() only solves the problem of ensuring all the data gets sent to the TCP buffers, but it doesn’t necessarily send all data to the network immediately. You’ll still need to use flush(), in addition. (Note that writeFully() may block, if...
QNEthernet’s EthernetClient implementation implements the Client interface. The flush() function is defined there. (That’s a clickable link, in case it’s not immediately noticeable.)
The implementation starts here.
(flush() returns void.)
This...
Wrong place - you need to pull from https://github.com/h4yn0nnym0u5e/LittleFS/tree/feature/big-PSRAM. I’m one of those odd people who uses git as intended, by developing on branches and keeping main aligned with the upstream repo :)
When/if a higher quality audio board is in the design phase, you'll be on my short list of people to evaluate how well prototypes actually perform.
And generally speaking, yes, I agree with your analysis. For a future board designed with these...
My assessment is this:
The audio adaptor doesn't have a separate clean (linear regulator) on its digital supply and a properly separate analog ground, so it picks up digital hash from the T4 processor driectly from the 3V3 and GND pins (the T4...
Oh, the value of another's eyes...
#4 it was. Good old fashioned can't-see-the-bug-because-it's-right-in-front-of-me. I'm glad I've learned to laugh at myself.
Shawn, sincere thanks for taking the time to read my code, for the helpful code...
A few things I noticed:
1. You don't need to set or use your own MAC address. The Teensy has its own built-in MAC address that the QNEthernet driver uses. You can delete those three lines.
2. I noticed you're sending a packet twice to the...
I noticed the existing drivers require an entire framebuffer to be used to support DMA.
I retooled and stripped these drivers so that they can do partial updates to the display, the way libraries like LVGL and htcw_uix expect.
They don't do...
PlatformIO sometimes gets confused with the toolchain directory, in my experience, if there have been more than one version. Let me know if deleting those folders and then simply rebuilding the project (which will force a re-download of the...
What I do in these situations, because I fiddle with libraries and cores and compiler versions, is delete everything teensy-related under the PlatformIO packages directory and then re-build; it will automatically re-download. On the Mac, the...
The default C++ version for that compiler version is C++17. I’m confused why it’s defaulting to C++14 for you. But in any case, your build_unflags and build_flags look correct.
Hmm. It still doesn’t sound like you have the latest version of PlatformIO’s Teensy platform. When you build, what version does it say it’s using? Should be near the top of the build output.
Perhaps you’re using an old version of PlatformIO’s Teensy platform? Have you tried updating lately? It looks like the code is being compiled with C++14; the default changed to C++17 in recent versions, which allows the things the compiler is...
Robin and I have a meeting with SparkFun next week. Among topics we'll likely discuss is possible new hardware.
Teensy 5.x is not up for discussion (NXP isn't shipping Cortex-M85 yet). Neither is RT1170 up for discussion right now, as the...
Because defines in a source file only apply to that file. Each .c, .cc, .cpp, .ino, etc. file is compiled separately. To apply a define to the whole project, you’d need to add it to the whole-project build options. The Arduino IDE doesn’t make...
This line in platform.txt has "gnu+14" in it:
tools.arduino-preprocessor.pattern="{cmd.path}" "{source_file}" "{codecomplete}" -- -std=gnu++14
This should probably be changed to "gnu++17".
Missing any return from all execution paths is usually a warning. To make this specific warning an error, use "-Werror=return-type" in your compiler options.
May I suggest also adding "-Wall" to your build options? (Teensyduino includes that by...
I've got hold of a few IS66WVS16M8FBLL chips (3.3V 16MByte), and have managed to get the cores to initialise them correctly. Two of them show up as 32MB, and the standard PSRAM test passes. I don't have a lot of Teensy 4.1s knocking about, so the...
In short, I very strongly think that the RTC should contain the seconds in UTC and not local time. Could there at least be a Teensy Loader option that sets UTC time and not local time?
When the Teensy Loader program sets the RTC on the Teensy...
We just had to hunt this bug down for work, and I thought I would share what I found.
We have a Teensy 4.1 as a controller in our robot that recently started rebooting for no known reason.
It would not just reboot once, but keep repeating every...
Thanks to the wonderful culture of folks' here I was able to put together a fully functional standalone CP/M-80 version 2.2 machine using Teensy 4.1. None of the host teensy code is visible, it boots Z80/8080 code like a 1978 machine, with all of...
By way of an update, should it interest anyone, teensy-ntp led me to an NXP application note on IEEE 1588, which in turn led me to a conference paper by a team from Hannover, who forked qnethernet, implementing the ENET timer registers, and a...
Starting yesterday (May 27, 2025) the forum began having problems, showing "An error occurred while the page was being generated".
After some investigation, the problem turned out to be a "xf_session_activity" table grew too large. Apparently...
The Wireshark test code doesn’t look right.
1. Remove the EthernetUdp.h include.
2. Don’t use the MAC address form of begin(). Either remove the MAC address or change the argument order to: mac, ip, dns, gateway, subnet.
I see these messages when building with "smallest" and "lto":
.../libraries/LittleFS/src/LittleFS.cpp:30:29: warning: type 'struct chipinfo' violates the C++ One Definition Rule [-Wodr]
30 | PROGMEM static const struct chipinfo {
|...
Here is a fourth beta test for Teensyduino 1.60.
Arduino 2.3.x, all systems:
https://www.pjrc.com/teensy/td_160-beta4/package_teensy_0.60.4_index.json
1: Quit Teensy Loader, if running
2: Use Boards Manager to uninstall Teensy, if previously...
Thanks for that. I can tell the difference in Teensy Loader. (I need to trigger an upload because there's no "get info about this Teensy" feature in Teensy Loader. Would that feature be possible?) Now how to convince SparkFun to label them...
@Paul just so you're aware:
I just got an order from SparkFun, and I think they're mixing up the lockable and non-lockable Teensys. Here's the full list of order issues. They may need some guidance from you:
1. They're not including two 3x2...
I just released v0.32.0. Here's the changelog:
## [0.32.0]
### Added
* Added `qnethernet_hal_micros()`.
* Added secure TCP initial sequence numbers (ISNs), enabled with the new
`QNETHERNET_ENABLE_SECURE_TCP_ISN` macro. The default is enabled...
I heard that they have all the parts on-hand but they’re still ramping up production. They told me about 10 days ago that it’d possibly be another 4-6 weeks.