jlaustill
Member
AD7606p16_t4: Ultra-High-Speed 16-bit Parallel ADC Library
200K+ conversions/sec while main loop still runs 11M+ cycles/sec
I built this library for 8-channel, 16-bit ADC applications using the AD7606. What makes it special: direct GPIO port manipulation for blazing performance that barely touches your CPU!
GitHub: https://github.com/jlaustill/AD7606p16_t4
Due to GPIO port optimization, data pins are hardcoded for maximum speed:
I mapped all the GPIO ports for both platforms here: https://docs.google.com/spreadsheets/d/1BC1eYR55txT5fmuboq2l4_cap3tO48nNU4KF2Cu07pk/edit?usp=sharing
That exercise was quite annoying, as the ATP carrier board documentation is a hot mess, so this spreadsheet will be my go-to resource from now on. I may even turn it into a web page or PDF in the future.
If anyone else needs high-performance parallel ADC on Teensy, this should save you a lot of development time!

I built this library for 8-channel, 16-bit ADC applications using the AD7606. What makes it special: direct GPIO port manipulation for blazing performance that barely touches your CPU!
GitHub: https://github.com/jlaustill/AD7606p16_t4
Performance vs Traditional Approaches:
- digitalRead() approach: Lockups at low rates, 100% CPU usage
- This library: 200K conversions/sec, <5% CPU usage
- Result: 95%+ CPU free for your main application
Technical Details:
- Teensy 4.1: Single GPIO port read (1 operation) for all 16 bits
- MicroMod: 3 GPIO port reads + bit extraction
- Auto-detects board type for optimal performance
- Interrupt-driven with minimal ISR overhead
- Uses optimized GPIO6/7/8 port registers instead of individual pin reads
Important: Fixed Pin Assignment
Due to GPIO port optimization, data pins are hardcoded for maximum speed:
- Teensy 4.1: Uses GPIO6[16:31] for single-operation reads
- MicroMod: Uses GPIO8[12:17] + GPIO7[4:12,16] for 3-operation reads
- Control pins (RD, CS, CONVST, BUSY, RESET) are configurable
- Designed to avoid conflicts with CAN, I2C, and SPI
Perfect for:
- High-speed data acquisition
- Power monitoring systems
- Multi-channel instrumentation
- Real-time control systems
Pin Mapping Resource:
I mapped all the GPIO ports for both platforms here: https://docs.google.com/spreadsheets/d/1BC1eYR55txT5fmuboq2l4_cap3tO48nNU4KF2Cu07pk/edit?usp=sharing
That exercise was quite annoying, as the ATP carrier board documentation is a hot mess, so this spreadsheet will be my go-to resource from now on. I may even turn it into a web page or PDF in the future.
If anyone else needs high-performance parallel ADC on Teensy, this should save you a lot of development time!