Judging from the inclusion of .dtbo
files and other Linux-specific stuff in the HyperPixel GitHub repo,
I’m thinking that right now this is a Linux only solution, and I wanted to just take a stab in the dark and ask if the display will work with Windows 10 IoT.
Will it?
I understand that the config.txt
stuff configures the chipset/CPU and not the OS so in theory, as I understand it, at least the display should work. Is that the case?
Thanks!
I looked up support for the Official Touchscreen and found a heck of a flamewar resulting in a locked thread on the official forums sigh. Unless times have changed, I’m guessing support for DPI/DSI displays is non existent and up to Microsoft to implement. It’s been a looooong time since I’ve fired up Windows 10 IoT though, so I’m probably not the best person to respond one way or the other!
Well the chipset is what supports the DPI interface, not the OS, unless there is some software work required to initialize it.
The official display works as a display for Windows 10 IoT, and I am not sure if touch works, but that uses the DSI interface, not the DPI interface.
The DSI & DPI interface are both driven by hardware, and both likely require OS support for touch.
I’m trying to get the display working on Linux without having the benefit of a monitor to install the software, and that is not going well. I think that init routine is required to make the display work, and that may be work required for Win10 IoT.
If that helps.
Yes the init routine is required for the display to work at all, and the touch driver is presently implemented in Python and custom for the touch chip on HyperPixel. I’m sure both of those things could be re-implemented quite easily with a regular C# project though, so you wouldn’t have to rely on the OS itself- granted I don’t know how easy it would be to feed external touch events into a W10IoT GUI application but I’d be surprised if it were impossible.
It looks like W10 has a config.txt, but does it have a parallel to the Device Tree? My Google-Fu fails me with queries involving “Windows 10” and “DPI”.
The DPI interface is handled entirely by the BroadCom chip. No OS support is required. That’s my understanding anyway.
The init routine (if required for the DISPLAY) would need to be implemented for Win10. If no init routine is required for display, then it will work without modification as a display on Win10 IoT Core.
It is a real shame that the touch is implemented in that way. There is a perfectly good Human Interface Device spec specifically for this type of thing, that is driverless and OS agnostic.
There is no analog to the device tree, because I don’t think one is required. To be honest I don’t know how that works, all things I’ve tried on IoT Core just … work without fiddling with anything like that.
Well, let me clarify. The DPI interface itself does not require OS support. Specific displays might.
Unfortunately HID is predominately tied to USB, and while that’s not exclusively the case I don’t believe I2C-HID is a viable option in this case. There’s not really any other way to implement touch on the Pi- the official touchscreen also uses an arbitrary protocol over I2C, it just has the benefit of being popular enough that it garners wider support.
The DPI interface still requires some method to enable it- IE a parallel to Device-Tree- since DPI is an umbrella term for multiple modes (see: https://www.raspberrypi.org/documentation/hardware/raspberrypi/dpi/README.md), with different bit-depths and byte-orders for a whole variety of different displays.
I don’t have much faith in it ever being supported although it couldn’t hurt to track down someone responsible for Windows 10 IoT and ask.
The DPI mode is enabled via config.txt, which configures the chipset. Config.txt isn’t a Linux thing; the VideoCore GPU reads that and configures things based on its contents.
If this is the initialization that the display needs, it will work with any operating system running on the Pi. I am not talking about touch input. It sounds like that won’t “just work.”
The boot partition that contains config.txt is present on (it is required by) any operating system that runs on the Raspberry Pi.
If there is Python that initializes the display BEYOND CONFIG.TXT then the monitor won’t “just work” with other operating systems. I’m not talking about touch, just display.
I’ll just try it myself and then I’ll know.