Topic: NeTV2 Transition

Hello existing NeTV users!

A new version of NeTV is in the works:

Here's the FAQ about NeTV and NeTV2.

What's the fate of the current NeTV device?

The current NeTV device is end-of-life and will be phased out once all the inventory is sold. Currently, you can buy it via Adafruit. There's a couple hundred units left in my personal stock (beyond what's listed on Adafruit), so most likely there's enough inventory to meet any conceivable hold-over demand for NeTV.

There's a lot of reasons for phasing out NeTV, but the final nail in the coffin is that Marvell has EOL'd the PXA168 CPU, so the CPU used in NeTV is simply unavailable for purchase, making it impossible to make any more.

What's the main differences between NeTV and NeTV2?

  • NeTV2 supports 1080p60

  • NeTV2 has an integrated frame buffer (512MB)

  • NeTV2 does not integrate a content-rendering CPU, allowing you to pick your own platform (Raspberry Pi via HDMI or PCI host)

  • NeTV2 uses an Artix 35T FPGA, versus a Spartan 6 9LX FPGA (e.g. huge amount of additional capacity)

  • NeTV2's gateware is coded using Python instead of Verilog

  • NeTV2 is a bit more expensive, due to the higher performance and additional features

By default, the "Quickstart" version of NeTV2 bundles a Raspberry Pi 3B+, but you can actually plug NeTV2 into a PC via PCI express, and you can also bundle with any Pi-compatible SBC.

What's the software environment for NeTV2 look like? How would application migration work?

NeTV was highly optimized for low cost. Unfortunately, this meant locking into a poorly-supported CPU, the PXA168. The decisions built into the BSP by the vendor were fixed in time, without any upstream support.

NeTV2 is optimized for developer productivity, but it costs about twice as much. In the default Quickstart package, the NeTV2 bundles a Raspberry Pi 3B+ running a stock Raspbian plus a couple packages overlaid for configuring and managing the FPGA. The Raspberry Pi is a robustly supported platform, so it receives regular updates to the browser, OS, configuration and development tools. Wifi configuration is done using the RPi's native interface, with a keyboard and mouse, instead of a custom interface with a remote control. Gone are all the custom scripts and drivers from the NeTV. And as Raspberry Pi's get faster and faster, you have the option to swap out the board and upgrade over time.

The final details of the NeTV2's software environment are being finalized, but here's the general shape of it so far:

  • Default FPGA configuration is automatic on boot

  • Custom FPGA code will be uploaded over JTAG using openocd via GPIO

  • The FPGA itself features a soft-core CPU that runs a firmware of its own based on the HDMI2USB project's kernel

  • The soft-core CPU will manage things like EDID, handshaking, keys

  • Communication with the FPGA's CPU is via a UART (/dev/ttyS0), using a command-line style shell

  • Chroma key over HDCP will still be supported

  • It's anticipated you can select the chroma color, as well as a tolerance band, using commands via the UART

If you already have an HTML5 page that you run on NeTV2, the theory is you can copy that to the Raspberry Pi, put the browser in full-screen mode, and just run it and it should work.

If you're developing a new application, it's recommended you use an existing "kiosk" style framework for the RPi, which handles boot initialization and dropping to the application, or a framework like "Magic Mirror" for the Raspberry Pi. These will be much better supported by the community, instead of trying to rely on...a hardware try and support a software environment.

Tracking Progress

You can track development through:

I still haven't decided what's the best forum for doing support on NeTV2. This Punbb board is a bit of effort to maintain; most of what I do is de-spamming and that takes away time from actually interacting with users. I've seen some communities use Reddit successfully to build a support forum. This seems to be a smarter way to do it, as it removes the maintenance issue and more people are familiar with the Reddit interface. Another option might be to try a StackOverflow approach.

I'm still divided if I will use the Alphamax Media wiki to document the hardware. It seems the current standard is to use github for everything, so I may try to park all the long-form documentation content in the Alphamax Media github, which will make it a bit easier to maintain/fork/update in the long term.