Orangecrab 0.2 Testing
This page is for documenting the orangecrab bring-up, from blinky to microwatt.
Further links
- HDL Workflow HDL workflow
- ECP5 Versa ECP5 FPGA
- Microwatt microwatt
- https://hackaday.io/project/168594-feather-wing-pmod-adapter
Requirements
Instructions assumed to be called in a schroot environment.
- Call nextpcr-ecp5-install
- Add environment vars for libtrellis and nextpnr-ecp5 (otherwise building with nmigen-boards will fail). export PATH=/usr/local/libtrellis/bin:/usr/local/nextpnr-ecp5/bin:/usr/lib/ccache:"$PATH"
- apt install dfu-util
- Add a udev rule for the orangecrab in /etc/udev/rules.d/ . The rule was taken from https://github.com/orangecrab-fpga/orangecrab-hardware/blob/main/contrib/10-orangecrab.rules. ATTRS{idVendor}=="1209", ATTRS{idProduct}=="5af0", MODE="0666", GROUP="plugdev", TAG+="uaccess"
- Git clone "nmigen-boards" from gitlab https://gitlab.com/nmigen/nmigen-boards
- cd into "nmigen-boards" and install by calling: python3 setup.py develop
Setting orangecrab into DFU
- Press and hold the button on the orangecrab.
- Plug in the usb cable.
- Calling the following should show two devices: one is the RISCV firmware bootloader, the other is the user bitstream.
Build and upload "blinky"
- cd into "nmigen-boards/nmigen-boards".
- Build and program the board: python3 -m nmigen_boards.orangecrab_r0_2
- You should now have a very bright LED flashing!