The Teensy platform has chosen not to implement the Arduino extra_flags feature, but you can enable it like so:
https://github.com/ssilverman/QNEthernet/blob/master/README.md#configuring-macros-using-the-arduino-ide
(“Configuring macros using the...
In C++17, the -felide-constructors build flag should no longer be needed because the language guarantees Return Value Optimization (RVO).
On the other hand, I don't think its presence is a problem if it's not removed.
I examined the mouse’s interface structure with Wireshark and saw that it had three interfaces. Then, after analyzing the hex codes, the HID Report Descriptor data, the endpoint data, and so on, I wrote code from scratch based on that information...
Not sure if it's implemented or even feasible with lwip, but have you given any thought to supporting OOB (out of band) data? It's a bit similar to how USB device can have bulk and interrupt endpoints; the regular, "big" data traffic goes over...
For now, I think leaving only the reply on is the way to go. The reason I don’t want to include sending pings by default is because it includes another part of the library, raw IP, which adds more code. The lwIP library is designed to be smaller...
Updated QNEthernet library feature list:
1. Compatible with the Arduino-style Ethernet API
2. Additional functions and features not in the Arduino-style API
3. Automatic MAC address detection on the Teensy platform; it's not necessary to...
I do not personally have a need for it. However, I have worked at places that don't want their networks scanned to determine what is on them. In such circumstances, I would expect them to want to be able to turn off responses. In fact, I think...
I’ve added a “QNETHERNET_ENABLE_PING_REPLY” configuration macro and renamed the other one to “QNETHERNET_ENABLE_PING_SEND”. I changed these locally, but they’ll be up on GitHub soon so you can try them.
Thanks for the idea.
Ah! Thanks for that. I should probably clarify: enabling ping is for sending and processing replies. The stack will always reply to a ping, whether QNETHERNET_ENABLE_PING is on or not.
In other words: there’s no need to enable any features if...
I've improved the SimplePing example, below, to signal any DNS lookup errors. I'll be including it in the next version of the QNEthernet library.
// SPDX-FileCopyrightText: (c) 2025 Shawn Silverman <shawn@pobox.com>
// SPDX-License-Identifier...
I just tested the example and it works fine. Here were my steps:
1. Modify line 86 (library v0.33.1) of qnethernet_opts.h so that QNETHERNET_ENABLE_PING is 1 instead of 0.
2. Open and run the SimplePing example in the Arduino IDE.
Some possible...
Did you release the button when you saw that LED flash? That should happen after 13-15 seconds or so. After you release the button, the erase process should start, and should take about a minute-ish.
No it doesn't. You have it backwards; LittleFS and SdFat are both implementations of the FS interface. Some of the functions may have been "inspired" by the SdFat functions originally but that is because they are generic enough to fit any...
I think you need to actually understand what the FS class is for - what happens when someone calls your new fgets method on an FS implementation (e.g. LittleFS) that doesn't support it? Or even a File object that isn't a currently opened file...
I agree with this take, that fgets() should not be added to File/FS.h. It’s possible to implement Newlib’s auxiliary file-related functions (_read(), _write(), _open(), etc.). Then you get almost all of the C file calls for free, including...
But File isn't just a wrapper for SdFat...
It's a generic file handling class. Adding a function to it means every underlying filesystem object must support it. That's exactly the sort of thing that libc's formatted I/O functions are designed to...
I'm referring to this text:
Source: https://arstechnica.com/gadgets/2025/11/arduinos-new-terms-of-service-worries-hobbyists-ahead-of-qualcomm-acquisition/
In order to include one's library in the Library Manager, you need to submit a URL to...
Hey Everybody!
I wanted to share my latest Teensy project, a 6-voice polyphonic virtual-analog synth built with Teensy 4.1, inspired by the iconic Minimoog Model D. It includes full subtractive synthesis, USB audio/MIDI, a menu interface and a...
THANK YOU @shawn.
it is one what i want
Serial.printf("Read %s into memory at %08X; %d bytes\n", SMP_WAV[i], SMP_addr[i], sizes[i]);
snprintf(buffer, sizeof(buffer),"Read %s into memory at %08X; %d bytes\n", SMP_WAV[i], SMP_addr[i]...
I get red flags when someone (anyone) comments that “oh, don’t worry about that, that’s just boilerplate.” Case in point: look at what CRC Press did to MathWorld and Eric Weinstein. It’s one of the reasons I don’t buy new CRC Press books.
Software
The codebase is large and makes use of many libraries (several of which I created/ported especially for this project). All the development was done in Visual Studio with the Visual Micro extension. I prefer this setup over VS...
According to Adafruit's Phil Torrone, https://x.com/ptorrone/status/1990833856182653171 it does not look good. I warmly recommend checking the modified Arduino Privacy Policy and Terms and Conditions. I'm not sure I can agree to those terms and...
Neither function re-enables the previous IRQ state. And usb_serial_read() attempts to disable the IRQ while it fills the buffer, but then may call rx_queue_transfer() which enables it. At best, this is surely not as intended. At worst, it'll...
Try 4 NiMH rechargable AA batteries (about 5.3V), which should have better high current handling. 3 x alkaline AA is only 4.5V and thus much closer to undervoltage cutoff, and the max current is less than with good NiMH cells.
1000uF is not...
You don't need the interrupt / cpu intervention. That timer can be routed through the crossbar to trigger SPI directly.
Then SPI can be read by DMA to fill a buffer, only requiring CPU intervention when the buffer is full (and automatically...
I am also very confused because here this started out as a discussion of using USB serial and is now discussing the details of the hardware UART serial driver... not to mention the original issue even earlier was how to wait for a flexPWM...
You can't use the C++ threading primitives on Teensy. They have to be implemented (e.g. like all the other stuff provided by newlib) by a kernel since you can't block on a mutex, semaphore, etc. without some sort of context/threading system...
PlatformIO isn’t an IDE. It’s a plug-in for whatever IDE you would like to use, including the command line. Its Python-based and is a set of tooling that enables development of a wide range of platforms on a wide range of host platforms.
If I...
My preferred development environment is gcc, make and emacs, and sometimes a degugger with ICE.
I've been using the Arduino IDE, but with some hesitancy. Too much of the low level code is not very good.
I do not see myself ever using...
Yes. It’s about what the compiler vendor provides. In this case, an ARM-supplied version of GCC. I’m fairly certain that the implementation uses all the proper atomic instructions, etc.
Myself, I use some C++20 features on the Teensy with...
C++20 includes std::counting_semaphore if you feel like switching the compiler version. In C++17, an implementation might use a std::mutex with a condition variable. The excellent Abseil library includes one too, I think. It works on embedded...
I've recently taken a few steps to deal with the Russian bots creating new accounts.
Banned 114 netblocks. Will give the list & details below.
Registration now rejects anything from PureVoltage ASN 26548.
Registration now checks GetIPIntel.net...
Looks like the bot troubles might be 2 or 3 distinct groups.
Russians are definitely behind a campaign attempting to create forum accounts. Even though the problem has been ongoing and seems to have massively increased a few weeks ago, it...
The bots that caused trouble earlier this year are back again. Or they never really left, but blocking slowed them down and increasing memory limits let this server to handle the load... until now.
We were down for at least 6 minutes yesterday...
Thanks for that. Fixed. (I did a force push, so it's possible you'll need to delete ~/.platformio/packages/tool-teensy first if a reload/re-save of the platformio.ini file complains.)
I just released v0.33.0. Here's the changelog:
## [0.33.0]
### Added
* Added a way to iterate over the internal TCP connection PCBs.
* Added calls to `Ethernet.loop()` in more places.
* Added setting `errno` to `ENETDOWN` in `EthernetClass` in...