Similar to the Arduino Blinky for the ESP32 using the Arduino IDE, this example uses the Visual Micro IDE for Visual Studio.
Download the Arduino IDE for Visual Studio and Atmel Studio
or install the Arduino IDE from the Visual Studio Marketplace.
Ensure the FPGA pass-thru code is loaded onto the FPGA, as the ESP32 sits behind the ECP5 FPGA chip:
See bin/upload_passthru.sh or bin/upload_passthru.bat
if NOT EXIST c:\workspace mkdir c:\workspace
git clone https://github.com/gojimmypi/ulx3s-examples.git c:\workspace\ulx3s-examples
c:
cd \workspace\ulx3s-examples\bin\
.\ujprog.exe passthru.bit
There is still no native USB driver support in WSL, so we expect an error message such as:
ULX2S / ULX3S JTAG programmer v 3.0.92 (built Jun 1 2019 15:29:22)
Cannot find JTAG cable.
We can call the Windows version from the Linux prompt. Note that for some unknown reason, it needs to be called from the Windows file system and not the Linux one. (e.g. not ~/workspace/
). Symptoms of running the Windows executable from the WSL filesystem is that no output at all is returned from ujprog.exe
.
mkdir -p /mnt/c/workspace/ # this is actually C:\workspace\ to Windows
git clone https://github.com/gojimmypi/ulx3s-examples.git /mnt/c/workspace/ulx3s-examples
cd /mnt/c/workspace/ulx3s-examples/bin/
# ./ujprog.exe -j FLASH passthru.bit # optionally write to flash
./ujprog.exe passthru.bit
Note that when in debug, pressing F5 to run will typically pause the app at the first default breakpoint! Use the release configuration to avoid this.
code_upload.bat and WSL code_upload.sh
- gojimmypi.blogspot.com - Using Visual Micro to program the ULX3S ESP32
- https://radiona.org/ulx3s/
- Hackaday - ULX3S: An open-source Lattice ECP5 FPGA PCB
- hackaday.io - ULX3S powerful ECP5 board for open source FPGA
- hackaday.io - Initial support for ScopeIO for ULX3S
- ULX3S gitter Lobby
- ESP-IDF Programming Guide
- ULX3S Examples
- ULX3S binaries
- Radiona links
- Windows ujprog command-line parameter issues
- Windows ujprog compile error: 'EOPNOTSUPP' undeclared