Raspberry Pi Machine Learning for Near Chaotic Combustion
Posted: Sun Sep 28, 2014 9:34 pm
I posted here earlier about the FIQ size under Linux, and I thought I'd post a follow up about where things stand now that all my FIQ and real-time Linux issues are resolved.
The link below is a video of the Raspberry Pi connected a gasoline engine running an adaptive machine learning algorithm that predicts near chaotic combustion behavior in real-time. It's streaming the data over a WebSocket to a web browser that's rendering the real-time engine data with d3.js. The ultimate goal of this research is to improve fuel efficiency and cut CO₂ emissions.
https://www.youtube.com/watch?v=_yrLWFffP_Q
If there's any interest, I can post a guide with my small set of patches needed to get the USB driver to run completely within a regular IRQ and not interfere with the FIQ. Incidentally, if you don't force the USB driver into a low priority IRQ under PREEMPT_RT Linux it can occasionally add up to ~10 milliseconds of process latency under heavy network IO, which is unacceptable in my application.
Finally, I'd like to send a big thank you to dwelch67 and thinkingeek.com for their assembly guides that got me up to speed with this architecture. Also to osadl.org for creating a rock solid stable, tested collection of PREEMPT_RT patches for the Raspberry Pi.
The link below is a video of the Raspberry Pi connected a gasoline engine running an adaptive machine learning algorithm that predicts near chaotic combustion behavior in real-time. It's streaming the data over a WebSocket to a web browser that's rendering the real-time engine data with d3.js. The ultimate goal of this research is to improve fuel efficiency and cut CO₂ emissions.
https://www.youtube.com/watch?v=_yrLWFffP_Q
If there's any interest, I can post a guide with my small set of patches needed to get the USB driver to run completely within a regular IRQ and not interfere with the FIQ. Incidentally, if you don't force the USB driver into a low priority IRQ under PREEMPT_RT Linux it can occasionally add up to ~10 milliseconds of process latency under heavy network IO, which is unacceptable in my application.
Finally, I'd like to send a big thank you to dwelch67 and thinkingeek.com for their assembly guides that got me up to speed with this architecture. Also to osadl.org for creating a rock solid stable, tested collection of PREEMPT_RT patches for the Raspberry Pi.