Orangecrab 0.2 Testing

This page is for documenting the orangecrab bring-up, from blinky to microwatt.

Further links

Requirements

Instructions assumed to be called in a schroot environment.

  1. Call nextpcr-ecp5-install
  2. 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"
  3. apt install dfu-util
  4. 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"
  5. Git clone "nmigen-boards" from gitlab https://gitlab.com/nmigen/nmigen-boards
  6. cd into "nmigen-boards" and install by calling: python3 setup.py develop

Setting orangecrab into DFU

  1. Press and hold the button on the orangecrab.
  2. Plug in the usb cable.
  3. Calling the following should show two devices: one is the RISCV firmware bootloader, the other is the user bitstream.

Build and upload "blinky"

  1. cd into "nmigen-boards/nmigen-boards".
  2. Build and program the board: python3 -m nmigen_boards.orangecrab_r0_2
  3. You should now have a very bright LED flashing!