Here is our overview and "quick-start" video using a Teensy 4.1 (the ADC DMA library used is Pedvide's, of course). As a side note, the on-board Teensy 4.1 ADC's - based on careful testing - are not good above 800kSPS. Apparently...
Great news, the prototypes are working!
Apologies for my long delay, I've been out sick for over a week. Finally back in the office and working on this again.
Long story short, the chip was populated backwards!
After reworking one board, the...
Note that I still plan to:
1. Improve the API so multiple channels can be used
2. Add a way to use interrupts for notifications
3. Implement a non-blocking API
Gemini is saying that the default ChromeOS Linux Environment (which appears to be a Crostini virtual container) does not have hidraw installed and does not allow hidraw due to "security concerns": "Google intentionally leaves CONFIG_HIDRAW turned...
Here is kernel log info from my Linux desktop after pressing the button on Teensy 4.1:
[19823.699932] usb 3-1.3: new high-speed USB device number 4 using xhci_hcd
[19823.775223] usb 3-1.3: New USB device found, idVendor=16c0, idProduct=0478...
Acknowledgements
I want to extend my sincere gratitude to @PaulStoffregen, creator of the Teensy platform, for his guidance and valuable support throughout the development and testing of this project. His expertise and contributions to the...
Note that __brkval/_sbrk() isn't an accurate indicator of "free" memory - it's an indicator of the minimum unallocated memory, there may be more that is not currently in use but the allocator hasn't returned it to sbrk.
@joepasquariello I just pushed GPT, so all the timers should be there (TMR, PIT, GPT).
@h4yn0nnym0u5e Here's how to implement that function using this API:
bool initSAI(I2S_Layout* mySAI, SAImode_t mode) // mode is I2S, TDM, S/PDIF etc.
{...
I'll just add a clarification: I'm designing it so that the user of the library doesn't need to use templates. More info about your SAI use case on the way...
Everything is passed as a template parameter and also inlined, that's why it compiles down to something equivalent to using masks and shifts directly.
I believe my approach does allows different peripheral parts to have different bits. I'll...
I’m definitely keeping it in mind as a useful resource.
The thing is that most of my register-bashing use is modifying existing libraries, where adding another dependency is unlikely to be especially helpful. It’s hard enough as it is to get a...
@h4yn0nnym0u5e do you feel like trying to use the library with any projects you have that use direct register access? It would be lovely for others to use it and give feedback.
Also, which registers are still missing that you'd like to see...
Here's what I use for total free RAM. Maybe that can get you started.
extern "C" void* _sbrk(int incr);
// Returns the amount of free RAM.
// See: https://forum.pjrc.com/threads/57269-I-can-t-seem-to-use-all-of-the-Teensy-4-0-s-memory
// See...
I think I cracked the problem of what to do with array elements and sub-structures and arrays of sub-structures. I also figured out how to automatically detect and set mixed w1c and non-w1c fields properly.
The compiler can now also catch:
1...
Quick follow-on. Here are slew-rate measurements with no load other than 10 Mohm scope probes(as for the above sinewave synthesis tests). Please note that as for most electronic circuit, rising and falling slew rates are different (usualy due to...
I don't think you need to worry about "not Teensy enough" because everything you've posted is applicable, or at least related. :)
This forum is very friendly, so ignore any naysayers that think you must mention "Teensy" in every post.
Folks,
At risk of seeming "not Teensy enough," I want to share that I've posted complete lecture materials to the main Stanford classes I taught in electronics, and my textbook. Freely available. I'm posting this here because a lot of the issues...
I have been working for some time on a low-cost, hobbyist-friendly substitute for the Teensy 3.6's beloved 12-bit DACS. Seeing that the MK66FX1M0VMD18 chip is available from NXP, Digikey or Mouser now, but not seeing anyone wanting to revive the...
If @wwatson had one that might be the fastest way to know.
@Dogbone built his minimal boards and other than possible sanity hardware checks AFAIK they shipped for forum testing.
Software is known ready for chip change and @wwatson seems to have...
The short answer is no, because a class may be masquerading as another class due to inheritance (and all sorts of other tricky situations).
(The long answer is g++ has __PRETTY_FUNCTION__ which gives the entire current function signature and you...
You could always print 'this' as an address, in addition. The printf format is "%p". That will show which specific object. Of course, that's just some number. Maybe in the constructor you could print what the current object's address is, plus...
I'm using "::" namespace separators now instead of underscores to avoid any potential conflicts with including <imxrt.h>. It was either that or undefine all the symbols before they're declared. see posts 8, 11, and 12.
Note also that there's...
That's true. You still need to be looking at the datasheet, but the compiler can catch more errors this way, and there's far less potential for mis-typing constants or cut & paste errors when using a group of similar-looking registers.
...and it...
I just added a feature where parts of a register can be read-only and the compiler catches writes to those. I also added a bunch more register groups, with more to come.
Thanks - very cool app. I had not heard of it. We will take a look. Right off the top though, it does not support Mac, which is a prime driver for us, since technical apps on the Mac are few and far between, often just hacks and ports. We wanted...
Paul - no intent to break rules nor irritate anyone. Please take this down if you or the community find it offensive. I would appreciate clear guidance, since not all of us will intuit the "unwritten rules."
Not everyone would pay $50 of course...
Dear Fellow Teensy Fans, Educators, Nerds, et al.,
Under the banner of "VoidLoop, Inc." we have finally launched a fast (!) real-time plotting app for Mac and PC with an extensive open-source library optimized for Teensy 4.X but compatible with...
I renamed the project "imxrt1060-regs".
https://github.com/ssilverman/imxrt1060-regs
I made a few fixes and additions (eg. init_watchdog() in main.cpp) also. It seems to work well with all my projects. (Eg. Decept, QNEthernet, some private stuff.)
Thanks @KurtE.
>>
Now with some files and apps, there is an illusion created, like you are able to do so. That is when you double click on a file, it downloads it to your PC in some temp directory, brings up the appropriate editor and when you do...
I am able to save files to my SD card on my Teensy 4.1
I dragged the file copper_in_chain.jpg from local folder to the SD Card folder.
And it shows up in my picture viewer.
Note: MTP is not a normal file system, where you can edit the files...
I just filed this:
https://github.com/PaulStoffregen/cores/issues/802
There's a potential missing semicolon or while loop body in startup.c. Unless the SRC_GPR5 = 0x0BAD00F1; statement is meant to be inside the loop, which I don't think it is.
This is the latest version of a 128 × 128 LED simulation run. I improved the color contrast and the preservation of detail over time, and I also tweaked the color-emitter mechanics—the way the “dye” is injected.
In addition, I added an extra...
I was thinking about naming some more, and I have a few naming ideas that won't conflict with the imxrt.h header.
For example, namespace separators ("::") instead of underscores.
Hey there! The 3D waterfall display of a wavetable on the Jeannie 2's touchscreen looks pretty cool compared to the smaller Jeannie 😎
3D wavetable display on the Jeannie 2
Little Jeannie