Giter Site home page Giter Site logo

ms-iot / rpi-iotcore Goto Github PK

View Code? Open in Web Editor NEW
124.0 36.0 58.0 4.43 MB

Windows 10 IoT Core Board Support Package for Raspberry Pi

Home Page: http://www.windowsondevices.com/

License: MIT License

C++ 34.64% C 64.46% Objective-C 0.77% Batchfile 0.06% PowerShell 0.07%

rpi-iotcore's Introduction

We are announcing the transfer of custodianship of the Raspberry Pi BSP for Windows 10 IoT Core to the Raspberry Pi Foundation. By moving this repository to community administration, we hope to foster the continued interest and innovation in Raspberry Pi with Windows.

The new home for Raspberry Pi BSP for Windows 10 IoT Core will be at https://github.com/raspberrypi/windows-drivers


Raspberry Pi Board Support Package for Windows 10 IoT Core

Welcome to the Raspberry Pi Board Support Package (BSP) for Windows 10 IoT Core

This repository contains BSP components for the Raspberry Pi 2, 3, and Compute Module. This BSP repository is under community support; it is functional with the Fall 2018 release of Windows 10 IoT Core but is not actively maintained by Microsoft. BSP elements included in this repository may contain features that are not available with Windows 10 IoT Core releases.

For more information about Windows 10 IoT Core, see online documentation here

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Firmware binaries

Sample binaries of the firmware is included in RPi.BootFirmware to enable quick prototyping. The sources for these binaries are listed below.

  1. Firmware binaries : RaspberryPi/Firmware
  2. UEFI Sources : RPi/UEFI

UEFI Customisations

SMBIOS requirements of Windows 10 IoT Core OEM Licensing requires a custom version of kernel.img file with the proper SMBIOS values.

See PlatformSmbiosDxe.c to update the SMBIOS data. Steps to build the kernel.img is provided in the RPi/UEFI Github.

Build the drivers

  1. Clone https://github.com/ms-iot/rpi-iotcore
  2. Open Visual Studio with Administrator privileges
  3. In Visual Studio: File -> Open -> Project/Solution -> Select rpi-iotcore\build\bcm2836\buildbcm2836.sln
  4. Set your build configuration (Release or Debug)
  5. Build -> Build Solution

The resulting driver binaries will be located in the rpi-iotcore\build\bcm2836\ARM folder.

Export the bsp

We provide a binexport.ps1 script to scrape the BSP components together into a zip file for easy use with the IoT ADK AddonKit.

  1. Open Powershell
  2. Navigate to rpi-iotcore\tools
  3. Run binexport.ps1 with the appropriate arguments.
    .\binexport.ps1 C:\Release
    (or)
    .\binexport.ps1 C:\Release -IsDebug # for debug binaries
  4. The script will generate a zip file RPi_BSP_xx.zip that can be imported into the IoT-ADK-Addonkit shell using Import-IoTBSP.
    Import-IoTBSP RPi C:\Temp\RPi_BSP_xx.zip

rpi-iotcore's People

Contributors

andreiw avatar asherkariv avatar bfjelds avatar christopherco avatar chsha avatar henie avatar jordanrh1 avatar mahmoudgsaleh avatar mhesham avatar ooeygui avatar parameshbabu avatar saraclay avatar serusako avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rpi-iotcore's Issues

[Windows 10 IoT Core] Raspberry PI 3 Model B - OS Shutdown does not put device into right state

I want to be able to turn on and off the Raspberry PI Model B running Windows 10 IoT Core version 10.0.16299.19 from the same button. After performing some research I end up connecting the button to GPIO3 and GND, in order to be able to start it up after shutting it down through software.
It didn't work.
Investigating this issue it turned out that the Shutdown command seems to not put the device into the right state. After shutting it down I receive 7 ACT Led blinks again and again instead of 10 ACT Led blinks once.

  1. Is there any progress on rightly shutting down the Raspberry PI?
  2. If point above is not an option, how else can I resolve my issue?

For reference I'll put here two other threads I collect my information from citing the most relevant post in each

Our Windows IoT development team built a Windows BSP for Raspberry Pi pretty much from scratch a couple of years ago. It was the first device we supported with Windows IoT Core. We took some shortcuts, particularly in areas where we couldn't find documentation or something just didn't work. We do not completely shutdown the Raspberry Pi device as each of you reported. We had trouble accessing the power rail firmware and settled on putting the device in a sleep state.

On raspbian sudo halt results in 63 being written to the reset controller register and a watchdog reset being triggered. When bootcode.bin launches it checks for 63 in reset controller and enters a low powered halt state (before LAN, PLLs, clocks and power domains are enabled on the chip).
It will flash the ACT LED ten times at this point, it will go to sleep and only a GPIO event will allow it to continue (or a chip reset through RUN pin).
If you are not seeing ten flashes on the ACT LED then we aren't entering this low powered halt state.
Perhaps you should compare behaviour (and if it wakes up correctly) with raspbian.
If Windows 10 IoT does not enter the low powered halt state then you will need to ask the question there - modifying the firmware won't help.

Initially I thought there is one bootcode.bin per distro, in order to better listen to GPIO3 short to GND in boot process, but guys on raspberrypi firmware said:

There is only one sequence of firmware releases (containing one bootcode.bin and the four start.elf variants), so Windows 10 IoT has to use them.

Dma interrupt

Is there any plans to implement dma interrupt option for spi like in PWM driver.

Would be nice to able to use dma interruption to generate sine wave signals thru spi with MCP4921 DAC.

Iot core preview source code

Does this repository have the source code for the preview version of RPI iot preview?

I would love to try iot core on my RPI 3b+ but am unable to download the preview version.

Windows store apps in iot core.

Guys this may be a very naive question, but I'm just trying to understand the limitations of iot core in terms of running uwp store apps on iot core.

For example looking at the netflix app for Windows in the store I can see that it supports arm and arm64 architectures.

Given this, is it feasible that these apps could run on iot core on arm, say a pi 3b for example?

Windows 10 IoT Core Serial Communication problem (Property of the parity (none, even, odd) is not changing.)

Problem:

Property of the parity (none, even, odd) is not changing. We tried with the Baudrate also, it is working.

Information about environment and app:

  • OS: Windows 10 IoT Core (v.10.0.17763.914)
  • Application: UWP

Code:

    private async Task<CommonFunctions.Result> opencomport(string DeviceId)
    {
        CommonFunctions.Result res = new CommonFunctions.Result();
        try
        {
            foreach (var oneport in ComDeviceList)
            {
                if (oneport.ComDeviceId == DeviceId && oneport.PortOpen == false)
                {
                    oneport.serialPort = await SerialDevice.FromIdAsync(DeviceId);
                    if (oneport.serialPort == null)
                    {
                        res.Success = false;
                        res.ErrorMessage = "SerialPort object is null!";
                        return res;
                    }
                    else
                    {
                        oneport.serialPort.WriteTimeout = TimeSpan.FromMilliseconds(oneport.WriteTimeout);
                        oneport.serialPort.ReadTimeout = TimeSpan.FromMilliseconds(oneport.ReadTimeout);

                        oneport.serialPort.BaudRate = 9600;
                        oneport.DataBits = 8;
                        oneport.StopBits = CommonFunctions.SerialStopBitCount.One;
                        oneport.serialPort.Parity = Windows.Devices.SerialCommunication.SerialParity.Even;
                        oneport.serialPort.Handshake = Windows.Devices.SerialCommunication.SerialHandshake.None;


                        oneport.ReadCancellationTokenSource = new CancellationTokenSource();

                        Listen(oneport);
                        oneport.PortOpen = true;

                        res.Success = true;
                        return res;
                    }
                }
            }
        }
        catch (Exception ex)
        {
            res.Success = false;
            res.ExceptionError = true;
            res.ErrorMessage = ex.Message;
            return res;
        }
        
        res.Success = false;
        return res;
    }

USB driver

Can the DWC driver source be added? Can this be made into the bsp.config.xml form?

I suppose, it's dead...

Hello, guys from the Microsoft. Is there any sense trying to revive this repository?
Or Windows 10 IOT finally dead?

Hyper-V VM?

is there a way to build a virtual image in Hyper-V using the MinnowMAX intel build?

i've seen it within VMWare, but not Hyper-V.

Build errors

When I try to build in VS2017 I get the following two errors:

image

I'm not sure what I am missing here.

BSP for Intel Pentium N4200

We have a board that runs the Intel Pentium N42000 Quad Core 1.0 GHz - 2.50 GHz.

The Microsoft IoT documentation for BSPs only recommends a BSP that is for N3000 series Atom/Celeron/Pentium.
https://docs.microsoft.com/en-us/windows-hardware/manufacture/iot/bsphardware#bsp-links

The motherboard we're using is also compatible with Intel Celeron N3350 Dual Core. And I'm wondering if this is in fact the same BSP for both? Or should I be looking for a different BSP for the N4200?

Windows 10 IoT on Raspberry PI 3 boot issue

Tested with a Raspberry PI 3 Model B
OS: 17134

  1. I unplug RaspberryPI while Windows is still loading (point circle rotating). sometimes it happens when unplugging when in home screen, after Windows is loaded.
  2. I plug it back in, Windows does not start. Only Power RED LED is on for about 60 seconds After those 60 seconds Act GREEN LED starts a cycle of 7 times blink forever,
  3. I unplug it
  4. I plug it back in and Windows starts.

Build error for 10.0.16299.0 ApiValidator.exe exited with code -1

Below is the orignal error:
Severity Code Description Project File Line Suppression State
Error MSB3721 The command ""C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\ApiValidator.exe" -DriverPackagePath:C:\ -SupportedApiXmlFiles:"C:\UniversalDDIs.xml" -ModuleWhiteListXmlFiles:"C:\ModuleWhiteList.xml" -ApiExtractorExePath:"C:\10.0.16299.0\x64"" exited with code -1. bcmgpio C:\Program Files (x86)\Windows Kits\10\build\WindowsDriver.common.targets 1746

And the details message for this issue is like below when execute the ApiValidator.exe manually:

ApiValidation: Warning: API SdPortCompleteRequest in sdport.sys is not a supported universal API. rpisdhc.sys calls this API.
ApiValidation: Warning: API SdPortInitialize in sdport.sys is not a supported universal API. rpisdhc.sys calls this API.
ApiValidation: Warning: API SdPortWait in sdport.sys is not a supported universal API. rpisdhc.sys calls this API.
ApiValidation: Warning: API SdPortCompleteRequest in sdport.sys is not a supported universal API. bcm2836sdhc.sys calls this API.
ApiValidation: Warning: API SdPortInitialize in sdport.sys is not a supported universal API. bcm2836sdhc.sys calls this API.
ApiValidation: Warning: API SdPortReadRegisterUlong in sdport.sys is not a supported universal API. bcm2836sdhc.sys calls this API.
ApiValidation: Warning: API SdPortWait in sdport.sys is not a supported universal API. bcm2836sdhc.sys calls this API.
ApiValidation: Warning: API SdPortWriteRegisterUlong in sdport.sys is not a supported universal API. bcm2836sdhc.sys calls this API.

Is there valid API for this these API doesn't support for universal API?

ARM64 proprietary driver binaries

The drivers provided here seem to be working just fine on ARM64 too, but there are no accessible ARM64 builds of the drivers without sources here
It would be great, if prebuilt ARM64 binaries could be provided for those ones

Raspberry PI 3 Model B - Windows 10 IoT leaves GPIO Pin to a different state than Raspbian

Given 2 pieces of code that should behave the same, Windows 10 IoT (v. 10.0.17134.1) outcome is different from Raspbian one:

I am not sure which one behaves correclty. Please advise.

Pin under test is GPIO14 that has an internall pull-down resistor.

Code 1 - Python - Raspbian

RESET_WATCHDOG1 =  14
def resetWatchDog():
   GPIO.setup(RESET_WATCHDOG1, GPIO.OUT)
   GPIO.output( RESET_WATCHDOG1, False)
   time.sleep(0.500)
   GPIO.setup(RESET_WATCHDOG1, GPIO.IN)

while True:
    resetWatchDog()
    time.sleep(10)

Read more: http://forum.switchdoc.com/thread/444/watchdog-reboots-system-4-seconds#ixzz5SWcd2Amx

Code 2 - .Net Core - Windows 10 IoT

///called each 10 seconds
private async Task PatTheDog()
{
      m_WatchdogPetPin.SetDriveMode(GpioPinDriveMode.Output);
      m_WatchdogPetPin.Write(GpioPinValue.Low);
      await Task.Delay(500);
      m_WatchdogPetPin.SetDriveMode(GpioPinDriveMode.Input);
}

Folowing happens:
Raspbian

  • When pin is set LOW Voltage goes to 0
  • When pin is set as INPUT, Voltage increases slowly up to ~0.7 (then another cycle comes and is set to 0)
  • When the loop ends Voltage grows slowly up to 3.3V (actually it only reaches ~2.2 V because it is pulled down to ~1.1 from where it start growing again...)

Windows 10 IoT

  • When pin is set LOW Voltage goes to 0
  • When pin is set as INPUT, Voltage increases slowly up to ~0.7 (then another cycle comes and is set to 0)
  • When the loop ends Voltage grows up to ~0.7 and stays there. It is not growing up to 3.3V...

I tried also setting:
m_WatchdogPetPin.SetDriveMode(GpioPinDriveMode.InputPullUp);
but then

  • When pin is set as INPUT, Voltage increases slowly up to 3.3V (actually it only reaches ~2.2 V because it is pulled down to ~1.1 from where it start growing again...)

Raspberry Pi 3B - IoT Core 17763.253 - Portrait mode not supported

Changing lcd_rotate=1 in config.txt on the boot partition does not rotate the display. The UI toggle does not work either.

Here are similar issues I've found across the internet:
https://www.raspberrypi.org/forums/viewtopic.php?t=227036
https://social.msdn.microsoft.com/Forums/azure/en-US/934dbf19-420b-441c-986f-fc3b33a1b1d0/win-10-iot-portrait-mode-for-raspberry-pi-3-broken?forum=WindowsIoT
https://social.msdn.microsoft.com/Forums/en-US/63392e65-5cf0-4d5c-a7cf-0af0023f1ac0/portrait-oriented-hdmi-display-with-win-10-iot-and-raspberry-pi-2?forum=WindowsIoT

My understanding is that the generic display driver provided in the raspberry pi maker image supports screen rotation, but maybe support is missing in the BSP? Is that correct?

We're using a RenderTransform to rotate our UWP app, but the keyboard doesn't respect that rotation so it shows up on the side of the screen instead of the bottom.

Update to match recent official and Insider builds, add Model B+ drivers

Recent official release and Insider builds for the Raspberry Pi appear to come with never drivers than what's available here, including some completely new drivers (e.g. USB).

In addition, an Insider build is now available for the Raspberry Pi 3 Model B+, bringing additional drivers for B+-specific devices.

Please update this repository with the new content found in recent builds.

Build errors for 10.0.10586.0 missing header files

Installed the latest IoTCore environment but the solution does not compile.:

first error:
\bsp\drivers\audio\bcm2836\rpiwav.h(12): fatal error C1083: Cannot open include file: 'portcls.h': No such file or directory

The include path mentions:
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\shared\

all the missing header files are located in a previous version of the Windows 10 kit e.g.
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\km

The km folder is missing in version 10.0.10586.0
Am I missing something

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.