A relatively easy way to build the OpenSprinkler firmware on Windows is to use Windows Services for Linux (WSL). This can be installed following the instructions at: https://docs.microsoft.com/en-us/windows/wsl/install-win10.
I used the Debian distro and found I needed to install git and python:
sudo apt install git
sudo apt install python-pip python-dev
sudo pip install --upgrade pip
Once this is done you should be able to follow the instructions for building the firmware given on the OpenSprinkler Support page. But it probably won’t quite work because the repo for the SSD1306 library has changed. So you will probably need to change the string “SSD1306” in make.lin30 to “exp8266-oled-ssd1306”.
It is convenient to put the firmware source in a Windows directory, since then you can work on it with Windows tools, but still have access to it from WSL using the Windows file system mounts in “/mnt”. You can do a build from the Windows command prompt using:
C:\OpenSprinkler-Firmware> wsl make -f make.lin30
Where for the above the command window current directory is “C:\OpenSprinkler-Firmware” where I have placed the firmware source. Note if you run into an issue with time() not being defined you need to enable case sensitivity on the source directory in Windows. To do this open an elevated command window and enter:
fsutil file setCaseSensitiveInfo C:\OpenSprinkler-Firmware enable
The article at: https://blogs.windows.com/buildingapps/2016/07/22/fun-with-the-windows-subsystem-for-linux/
gives a nice overview of the ways WSL can be used for development. Using WSL is faster and easier than setting up a Linux virtual machine in cases where you don’t need to run Linux GUI programs.