#DataCollection DualPortSRAM DataAnalysis
Explore tagged Tumblr posts
mike-ac · 3 years ago
Text
Damn Fast, High-Bandwidth Data Collection in Embedded Systems
This isn’t groundbreaking, but I’ve never seen it -- and I’m not sure why not.
The basic idea is to use some damn fast dual-port SRAM which is mapped into the MPU’s address space; and an external processor is shoveling the data out of the SRAM on the other side, and blasting into a huge (enough) DRAM buffer; eventually you will fill the buffers; but having the last N seconds of high-speed data when some fault occurs is mighty helpful.  In practice, a few variables at highest possible speed is probably better than tons of variables at pretty high speed, because sifting through all that stuff is not easy.  I’m thinking of the Leg Lab PS2 which had maybe 30 possible variables, and a way to look at (it was if I remember) 6 of them at a time in detail in a large portrait-type window.
There are web-based and non-web-based display / manipulation solutions.  Since we’re talking  ‘fairly small’ amounts of data on-screen at any given time, the web-based can get data from an SQL (say) back-end, running locally on the same machine as the web browser.  The variables would be buttons, and one would select some of them to see their graphs.  Since this is not ‘live’ data, but is analysis after-the-fact, no throughput considerations are important except to be snappy at human speed.
Non-Web programs of course do-it-all at once.  Your PySimpleGUI  (or similar) provides the data reading & displaying.  For me, this latter approach would be faster to implement.  It would have the downside that a normal website could easily provide info to others in real time; not needing to capture screen shots or video or other artifacts that would go onto Confluence or something like that.
Doing math between variables to create new variables of course is possible.  Or doing some sort of thresholding, etc. This is a later improvement to the basic functionality.
Summary: Collect data at high-speed using special HW; and display selected portions of that data via web or python app.
0 notes