Skip to content

Using NeTV2 as a Dev Board

bunnie edited this page Mar 11, 2020 · 6 revisions

While NeTV2 comes pre-mounted and configured for use as a video overlay device, it can also be used stand-alone as an FPGA development board.

NOTE: when plugging into a powered PCIe-slot, do not also connect the DC adapter. This will lead to damage of the board, the PC, or both.

Development Environment

There's a lot of ways you can develop for the bare board. You can use it as a stand-alone board, just booting from SPINOR. You can connect to it over ethernet. You can connect to it via JTAG and UART.

The best supported method by the NeTV2 mainline is connection via JTAG and UART via a Raspberry Pi 3B+. Here are instructions to help get you started on that.

  1. Prepare a boot image for your Raspberry Pi 3B+. Acquire a microSD card with at least 8GB of space. You have two options to prepare the image. One is to just take a full disk image and dd it onto the card. The full disk image is at

https://bunniefoo.com/netv2/netv2-production-image.img.gz

You can apply this to a microSD card using the following command line:

zcat netv2-production-image.img.gz | sudo dd of=/dev/sdX bs=1M # replace sdX with the node of your SD card

As usual, note that if you improperly specify the device node target for the dd, you can nuke your computer's disk, so use with caution.

The other option is to use the exact production tool used to master disk images. First download the images at: https://bunniefoo.com/netv2/production/

Then you can use the image burning tool at https:/AlphamaxMedia/usb-pyromaniac, or you can attempt to layer in the image manually.

To do so, you'll need to make sure you set up the partition table correctly with fdisk, paying attention to set the disk identifier and partition UUIDs correctly. The Raspberry Pi boot sequence looks for the disk ID/partition ID so if that's not set right, the image will do nothing. Once you've got the partition table set up correctly, you can dd/rsync the images into place (the usb-pyromaniac README contains instructions on how to do this).

  1. Attach the Raspberry Pi 3B+ to your NeTV2. Be sure to get the alignment of the pins correctly; when done right, the four mounting holes in the Raspberry Pi should align perfectly with the alignment holes on the NeTV2.

  2. Power on the NeTV2. This will also provide power to the Raspberry Pi 3B+.

  3. Connect your Raspberry Pi 3B+ to the network. Once inside, you can follow all the other directions in this wiki on how to update the FPGA and/or connect to the UART. Default password is noted on this wiki page: https:/AlphamaxMedia/netv2-fpga/wiki/Customizing-the-Overlay, and most helpful scripts are found in code/netv2mvp-scripts, with docs at https:/AlphamaxMedia/netv2mvp-scripts

Important Hardware Differences

The most important caveat for this use case is that the default code and image inverts some of the HDMI pairs on the "overlay" input for use with the custom jumper to the Raspberry Pi. If you want to use the NeTV2 with a regular HDMI cable, you will need to rebuild the firmware with the appropriate inversions noted in the pin section, see:

https:/AlphamaxMedia/netv2-fpga/blob/master/netv2mvp.py#L148

You can also try applying a "testing" version of the firmware that's pre-built to support cabled setups:

cd ~/code/netv2-fpga
git pull
git checkout chroma-set
cd testing-images
./testing-fpga.sh cable

This should automatically detect your board type and upload the correct firmware to expect an HDMI cable instead of the jumper PCB.