Skip to content
Michael Farrell edited this page Mar 29, 2020 · 42 revisions

How to update the HDMI2USB-litex-firmware from the HDMI2USB prebuilt repository onto your Numato Opsis or Digilent Atlys board.

Currently this is only supported under Linux.

Below is a mix of the following, you will need to ignore the irrelevant parts.

  • hardware: Opsis/Atlys
  • distro: Debian/Ubuntu
  • firmware version: Stable (ask about testing or custom rev)

Required:

  • openocd 0.10.0
  • fxload
  • hdmi2usb-mode-switch

1. Setup: Install hdmi2usb-mode-switch and its dependencies.

Numato Opsis

Debian 10 (buster) has hdmi2usb-mode-switch in the main repository:

sudo apt install hdmi2usb-mode-switch

Ubuntu (xenial) packages are available in timvideos PPA:

sudo apt --assume-yes install software-properties-common
sudo add-apt-repository --yes --update ppa:timvideos/fpga-support
sudo apt install hdmi2usb-mode-switch  

Digilent Atlys

Debian 9 (stretch):

wget https://launchpad.net/~timvideos/+archive/ubuntu/fpga-support/+files/vizzini-dkms_1.0.0-5~ppa3~ubuntu14.04_all.deb
sudo dpkg -i vizzini-dkms_1.0.0-5~ppa3~ubuntu14.04_all.deb

Ubuntu (trusty):

sudo apt install vizzini-dkms
echo 'blacklist xr_usb_serial_common' | sudo tee -a /etc/modprobe.d/blacklist.conf

2. Get the stable version:

wget https://raw.githubusercontent.com/timvideos/HDMI2USB-mode-switch/master/bin/download-prebuilt-firmware.py
python3 download-prebuilt-firmware.py --platform opsis --tag stable --output opsis.hdmi2usb.lm32.bin

3. Flash the board:

hdmi2usb-mode-switch -v --flash-image opsis.hdmi2usb.lm32.bin

4. After flashing

Power cycle the board, so it boots the new firmware.

Notes

Atlys

needs fx2 blob

wget https://raw.githubusercontent.com/timvideos/HDMI2USB-firmware-prebuilt/master/archive/master/v0.0.2-81-gd0d3aea/atlys/hdmi2usb/hdmi2usb.hex
hdmi2usb-mode-switch -v --by-type atlys --load-fx2-firmware hdmi2usb.hex

Solutions to common problems

If you see this (which seems to happen 100% of the time now, so it gets listed here)

DNA = 110000001100000011000000110000001100000011000000110000001 (0x181818181818181)

Switch the device into serial mode:

# Opsis
sudo hdmi2usb-mode-switch -v --mode serial 

# Atlys (replace /dev/bus/usb with the board's bus/device IDs according to lsusb)
fxload -t fx2lp -D /dev/bus/usb/001/006 -I /lib/firmware/hdmi2usb.hex 

Then retry flashing.

More resources