Let me start by being completely honest: I am not an expert in Electronics at all! I am a software developer, familiar with C#, C++, Python, etc. I also understand the difference between preemptive and RT operating systems.
What brings me here:
I am currently playing around with an Arduino (Uno) (which has a few DS18B20s connected to it) and a Raspberry Pi3 which is running Windows IoT.
I've connected the Pi and the Arduino via I2C, but I find it hard to understand how this actually works on lower levels.
As Windows IoT is not a real-time OS, how can it interact with the I2C bus? Lines are pulled low in micro second intervals.
The temperature sensors I use (DS18B20) rely on the OneWire-protocol. Works like a charm in Arduino, but when I google for the combination with RPi / Windows IoT (as it's just one digital input which are available on my Pi as well), I can read about how great Debian would serve that purpose, and how miserable Windows IoT is for a job like that (since, again, Windows IoT is not an RT-OS, I get that much).
But, if that's true, why is I2C not an issue for Windows IoT on an RPI? Or is it? And have I opened a can of worms trying to connect a RPI (Windows IoT) with an Arduino board using I2C?
What I hope to learn here:
- I would really really appreciate some detail in the answer. Not just some hatred words that Windows sucks and Linux rules.
- How does Windows 10 IoT deal with "real time" protocols like I2C / OneWire
- Is I2C a stable solution for Windows IoT (like would it be a stable solution for consumer electronics)?