Installed 1.60b6 on Windows 10. After installing 1.8.19, got "Do not run" warning when I ran the TeensyDuino installer. Told it to run anyway, and everything installed fine. Built some of my larger projects without problems, but haven't run any yet.
Cache size also really matters. An 8K instruction cache is the reason why Teensy 3.6 scores 66% faster than Teensy 3.5, even though is has the same Cortex-M4 processor running at only 50% higher clock speed.
If instruction and data caches are...
Exactly. Getting Teensy in Europe was expensive already (shipping). It is quite absurd that two good companies can't just talk. Adafruit has done a lot of good stuff and Sparkfun too. There is a place in the market for both. Really people maybe...
I agree this probably isn't productive for anyone, but for now I'm going to allow this thread to continue.
However, I'm absolutely drawing the line at creating more duplicate threads promoting Adafruit's new competitive product or RP2350...
rb.write() is writing data INTO the RingBuf, while rb.writeOut() extracts data FROM RingBuf and writes TO the file on SD.
I usually choose to keep my ISRs as short as possible and write to SD from loop(), with this approach:
The SD card has an on-board, 1-sector (512 byte) buffer, so writes of more than 512 bytes result in loops of (a) transfer of 512 bytes to SD buffer, and (b) trigger actual SD write. Any of those 1-sector writes to SD can result in the card...
@PaulStoffregen
Another low hanging fruit shield could be a QWIC connector shield that just has a couple connectors on it for Wire, Wire1 and maybe wire2 especially since alot of breakouts boards seem to support them.
Indeed this thread is quite outrageous in terms of etiquette. For now PJRC is allowing this forum conversation to continue.
For comparison, Adafruit's own forum allows only discussion of Adafruit products purchased directly from Adafruit or...
Not sure why your trying to advertise a competing product on the pjrc forum.
If you honestly wanted a competing product to teensy. go the imxrt1170. Dual core. 1ghz. Everything teensy 4 has but more.
But be prepared to to realise how much...
There are so many microcontroller boards out there.
Somehow, each of them is probably Teensy-compatible, depending on which (more or less random) criteria you want to apply. It's just marketing. If it's going to be called “Freensy,” why not...
Well, I would say (add) that two things were important for me: One is the tripple role of the developper of Teensy (hardware, software development and forum support in a single hand) and second the community here that helped to solve a lot of...
Good is not absolute. It’s a function of your requirements. Some applications have to do more than data acquisition and logging, and may need to do more in loop(). I don’t see any reason to have loop() spend 40 ms waiting for SD when there is an...
Writing one sector (512 bytes) at a time is necessary to avoid CPU blocking in the SD write. I agree that it won't yield the highest possible data rate to the SD. The OP's data rate is < 1 MB/s, which is not very high. I may be completely...
Okay, just to be clear, I'm not saying you won't get help, just that people are reluctant to invest time debugging AI-generated code unless the person posting is making an effort to test and debug on their own.
For 640KB, are you buffering in PSRAM? Just a suggestion, but you might want to look at Sdfat example program TeensySDIOLogger. It shows what I think is a set of best practices to avoid blocking in SD write:
use Sdfat's RingBuf (you need < 50KB...
Unfortunately no.
You can remove "volatile" to give the compiler a bit more leeway for scheduling, but the best you can do to try to keep the code portable is wrapping it in a macro that throws a compile error for any machine that isn't ARM...
It’s good that you use snprintf, but you should make temp at it least 12 bytes. For example, -1 billion, which is within the range of long integer is
-1000000000
Requires 12 bytes including the terminating NULL.
Yes, taskYIELD(). Here is a link to a question on the FreeRTOS forum that addresses use of taskYIELD() versus vTaskDelay(0)
https://www.freertos.org/FreeRTOS_Support_Forum_Archive/March_2011/freertos_vTaskDelay_0_vs_taskYIELD_4401035.html
You're right. The "!= NOT_STARTED" got me.
Or change it to taskYield(), which does the same thing as taskDelay(0) and is more efficient, according to notes on the FreeRTOS site.
Note that I posted (#10) at the same time you did (#11), and explained that the vTaskDelay(1) is not the issue.
In that case it's definitely not the vTaskDelay(1) that is the issue.
I'm pretty sure EventResponder is disabled by default. If your...
Arduino's yield() was intended to be a hook for a cooperative scheduler. Teensy uses it for EventResponder.
The FreeRTOS override of yield() (shown below) only calls vTaskDelay(1) if the scheduler has not yet started. Once the scheduler has...
Have you looked at Arduino Nano R4? Costs about $12, similar in size to T3.2, Cortex M4F at 48 MHz, 256K flash, 32K RAM, 14-bit ADC, 12-bit DAC, 8K EEPROM. It runs on 5V and the GPIO are 5V tolerant, which I imagine would help with existing...
Test your EEPROM code separately and see if it works in a program with the standard link file. If it does, then at least you know the problem is not related to your data. We can't tell from what you've posted whether you might be trying to write...
Okay, with your latest update, it hangs pretty quickly. For example, I can send "1111111", and it will hang, sometimes on the very first "1". In all cases I have seen so far, it hangs after stopping s1.
However, with trivial changes to the...
Okay, when you get a chance, please tell me which program you are using now, exactly how you are testing, and whether you have made the modifications to TeensyStep4 from the previous messages.
Here is another version that lets you stop/start s1 by entering '1' or stop/start s3 by entering '3'. This seems to work okay.
#include "Arduino.h"
#include "teensystep4.h"
using namespace TS4;
Stepper s1(3, 2);
Stepper s2(6, 5);
Stepper...
I think the problem is not in TeensyStep4, but in your test program. 'S' causes s3.stopAsync() and 'c' causes s1.stopAsync(), but then loop() calls startAsync() for BOTH steppers. If I change the program so that 'S' or 'c' calls stopAsync() for...
Elf, this program starts 4 steppers (s1-s4) in setup(). In loop(), it starts s1 and s3, then waits for serial input. It stops s3 on 'S' and stops s1 on 'c'. In either case, it disables all 4 steppers and then starts over. Can you tell me what you...
He had two issues. One was he needed to increase FLASH_RESERVE to 64 sectors, and the other was that for EHEX files, the search for Teensy ID must be disabled. Thst is something I could add to FlasherX, so others don’t have to modify the code...
I’m not at all expert on the I/O registers. Someone will answer this soon, I think. Have you searched with google? I usually have more look that way than with the forum search tool.
Since you already have the file transfer to SD working, it should be easy to use FlasherX to update using that file. The FlasherX test application shows an example of that.
FlasherX doesn't know anything about your software versions. If you...
Does this library do anything that IniFile doesn't? It can store all the same types of data, and it already works.
https://github.com/stevemarple/IniFile
Not to throw a wrench into things, but does this library do anything that IniFile doesn't do? That's a pretty well-established standard.
https://github.com/stevemarple/IniFile