Since the announcement that Windows 10 IOT was being released to use on the Raspberry Pi model 2 we have been experimenting with the platform and Andrew has been busy converting the Python 2 and 3 libraries he had written for the Raspberry Pi for using with the expansion boards we build and sell on our AB Electronics UK shop to use with the Windows 10 IOT operating system.
The official documentation for the Windows 10 IOT release was useful to get us started on the new code libraries but we found that not all the information which Microsoft has released is 100% correct. The docs and samples from Microsoft are online at http://ms-iot.github.io/content/en-US/win10/StartCoding.htm
When writing the code for the Servo Pi boards which use a PCA9685 PWM I2C LED controller IC from NXT we found that the GPIO 4 pin on the Raspberry Pi header which we use for the enable/disable function is not actually accessible to use even though the support page on http://ms-iot.github.io/content/en-US/win10/samples/Blinky.htm shows that it is available as shown on the image below.
After a lot of searching and rewriting of the code to try to track down the bug which caused the app to crash when accessing the GPIO pin, we found a post on the MSDN forums which shows that “GPIO 4 is reserved and thus not available for usermode applications” and so the code for the enable and disable functions had to be changed to allow the user to set their own GPIO pin for this function and a link wire would need to be used on the Servo Pi board to go to the new pin.
We haven’t found any other GPIO pins yet which are not available to use but if we find any more issues like this we will post them on the blog to save other programmers a lot of headaches trying to figure out why their code wont access the hardware!
The new Windows 10 IOT Libraries are now online at GitHub with sample projects to use with the Raspberry Pi and Visual Studio 2015 running under Windows 10 from github.com/abelectronicsuk/ABElectronics_Win10IOT_Libraries. We have also added online documentation for the new code at http://abelectronicsuk.github.io/ABElectronics_Win10IOT_Libraries/