Replies: 2 comments 1 reply
-
A couple of observations. The following two lines do the same thing. The first creates a bytes([crc & 0xFF, crc >> 8])
int.to_bytes(crc, 2, 'little') Secondly you create a large (256 x 16-bit words) tuple, then copy it to an array of half words, doubling RAM usage. A more RAM-efficient approach would be to create a |
Beta Was this translation helpful? Give feedback.
-
That's pretty impressive. It's no slouch on other chips, either: 125 MHz RP2040
150 MHz RP2350
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
🚀 High-Performance Modbus CRC16 for MicroPython - Open Source - GIT REPO HERE
I'm sharing a performance-optimized Modbus CRC16 module that delivers up to 4.91x speedup on ESP32 compared to standard Python implementations.
📊 Benchmark Results (ESP32 @ 160 MHz)
🎯 Benefits for the MicroPython Community
Many Modbus projects in the Awesome MicroPython collection can directly benefit from this optimization:
✨ Key Features
🔧 Integration
This module provides immediate performance benefits for existing Modbus implementations. Projects can integrate it for:
🚀 Usage
Fast CRC calculation
Fast frame validation
Repository: HERE
MIT - Free for commercial and open source useBenchmarks: Verified performance on real ESP32 hardware
Beta Was this translation helpful? Give feedback.
All reactions