Summary and advice:
I would like to summarize the useful information about installing Windows 10 IoT Core and avoid boot problem. Since I was unable to find this information in a documentation, it may be useful to others also.
1) Check your Rpi 3B power supply
Do not use smartphone chargers to power Rpi 3B device. Use a factory USB power supply (5V 3A). If the system is operating in a critical location or there are frequent electrical problems (power outage daily or weekly), we recommend to use UPS.
2) Check and use right SD Card
If you want to use our Windows 10 IoT Core application in an industrial environment, I recommend industrial SD Cards, Swissbit 8 GB SD cards (3-45u is already appropriate, anyway I tested different version also). For example, the Samsung SD card recommended by Microsoft may not boot in some cases, this occurs in the event of a power failure.
Using the right SD card is extremely important !!!
Useful description: https://www.unipi.technology/key_feature/what-are-the-differences-between-memory-card-types-and-why-is-it-important-to-know-them-371
3) Enable UWF mode in Windows 10 IoT Core
Useful descriptions for Installation: https://learn.microsoft.com/en-us/windows/iot-core/secure-your-device/unifiedwritefilter
The description contains gaps, I add some useful information:
Download & Install SDK to your computer (Windows10_IoTCore_Packages_ARM32_en-us_17763_253.iso): https://www.microsoft.com/en-us/software-download/windows10IoTCore#!
After the installation, you can find UWF files:
c:\Program Files (x86)\Windows Kits\10\MSPackages\retail\arm\fre\
Microsoft-IoTUAP-UnifiedWriteFilter-Package~31bf3856ad364e35~arm~~.cab
Microsoft-IoTUAP-UnifiedWriteFilter-Package~31bf3856ad364e35~arm~~.cab
Copy files (https://learn.microsoft.com/en-us/windows/iot-core/manage-your-device/windowsfilesharing) to Windows 10 IoT Core and Install from powershell
After that enable UWF mode and customize to your application.
Useful description: https://www.annabooks.com/Articles/Articles_IoT10Core/Windows-10-IoT-Core-Boot-Media-Sudden-Powerloss-Rev-1.5.pdf
4) Disabling Windows Update in Windows 10 IoT Core
- Launch Remote PowerShell session on Device
- Enter PowerShell commands to disable WindowsUpdate sc.exe config wuauserv start=disabled
sc.exe stop wuauserv
This settings is very useful because a power outage during an update can cause the problem.
5) Crash settings
For IoT Core products, it is recommended that you configure your devices to reboot on crash and also hide the crash dump screen (BSOD). This is achieved with setting the following registry keys:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl" /v AutoReboot /t REG_DWORD /d 1 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl" /v DisplayDisabled /t REG_DWORD /d 1 /f
Check: reg.exe query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl"
https://www.hackster.io/AnuragVasanwala/windows-10-iot-core-setting-startup-app-887ed0
6) Disable Auto Recovery Mode
bcdedit /set bootstatuspolicy ignoreallfailures
Results:
Using the above settings, I performed more than 5,000 power outages with multiple Rpi 3B devices without a single error.
Test system:
System: Windows 10 IoT Core (10.0.17763.1577) Rpi 3B
SD card: Swissbit 8 GB
Other:
UWF is enabled
Windows update disabled
Used Crash settings
Auto Recovery Mode Disabled
I hope I was able to help others with the summary above.