forked from timvideos/HDMI2USB-litex-firmware
-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Also adding a bunch more information. Fixes #64.
- Loading branch information
Showing
2 changed files
with
190 additions
and
76 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,190 @@ | ||
# HDMI2USB MiSoC Firmware | ||
|
||
#### Quick Links | ||
|
||
* [Main Repo](https://hdmi2usb.tv/firmware/) | ||
* [Website](https://hdmi2usb.tv/firmware-misoc) | ||
* [Report a bug](https://github.com/timvideos/HDMI2USB-misoc-firmware/issues/new) | ||
* [misoc + migen website](https://m-labs.hk/gateware.html) | ||
|
||
|
||
### Supported Boards | ||
|
||
This firmware is supported on the following to boards; | ||
|
||
* Digilent Atlys - http://digilentinc.com/atlys/ | ||
|
||
The original board used for HDMI2USB prototyping. | ||
Use `BOARD=atlys` with this board. | ||
|
||
* Numato Opsis - http://crowdsupply.com/numato-lab/opsis | ||
|
||
The first production board made in conjunction with TimVideos.us project. | ||
Use `BOARD=opsis` with this board. | ||
|
||
|
||
### Development Boards | ||
|
||
* Pipistrello - http://pipistrello.saanlima.com/ | ||
|
||
A small FPGA board with only one HDMI output port. | ||
Due to the lack of video *inputs*, this board is only useful for developers. | ||
Use `BOARD=pipistrello` with this board. | ||
|
||
* miniSpartan6+ - https://www.scarabhardware.com/minispartan6/ - | ||
[*In progress*](https://github.com/timvideos/HDMI2USB-misoc-firmware/tree/minispartan6%2B) | ||
|
||
A small FPGA board with HDMI input and HDMI output. | ||
Due to the low speed ram and USB interface, this board is only useful for | ||
developers who want to work on the HDMI subsystem and need a small board | ||
that fits in their pocket. | ||
|
||
# Getting started | ||
|
||
For using a HDMI2USB board, prebuilt versions of the firmware are available in | ||
the | ||
[HDMI2USB-firmware-prebuilt](http://github.com/timvideos/HDMI2USB-firmware-prebuilt) | ||
repository. | ||
|
||
For helping with the development, instructions for setting up the build | ||
environment are found in the [scripts/README.md](scripts/) file. | ||
|
||
# Documentation | ||
|
||
User documentation is found on the [HDMI2USB website](https://hdmi2usb.tv). | ||
|
||
High level documentation for the firmware can be found in the [docs](docs/) | ||
directory. More documentation is found in the source code. | ||
|
||
![System Diagram](doc/architecture.png) | ||
|
||
# License | ||
|
||
This code was original developed by [EnjoyDigital](https://enjoy-digital.fr) | ||
and unless otherwise noted is; | ||
* Copyright (C) 2015 / TimVideo.us | ||
* Copyright (C) 2015 / EnjoyDigital | ||
|
||
and released under a [BSD/MIT license](LICENSE). This includes the | ||
[gateware](gateware/), the [lm32 firmware](firmware/lm32/) and related files. | ||
|
||
The [FX2 firmware](firmware/fx2) is under the | ||
[GPL version 2.0 (or later)](http://www.gnu.org/licenses/gpl-2.0.en.html). | ||
|
||
Code under the [third_party](third_party/) directory comes from external | ||
sources and is available in their own licenses. | ||
|
||
# Contact | ||
|
||
TimVideo.us: | ||
|
||
* Mailing List: | ||
* https://groups.google.com/forum/#!forum/hdmi2usb | ||
[[Join](https://groups.google.com/forum/#!forum/hdmi2usb/join)] | ||
* hdmi2usb@googlegroups.com | ||
|
||
* IRC: | ||
* irc://irc.freenode.net/#timvideos | ||
[[Web Interface](http://webchat.freenode.net/?channels=timvideos)] | ||
|
||
EnjoyDigital: | ||
* florent@enjoy-digital.fr | ||
|
||
# Current Status | ||
|
||
### HDMI2USB | ||
|
||
The `hdmi2usb` targets are for doing capturing and streaming using the FX2 USB | ||
interface. | ||
|
||
##### Atlys | ||
|
||
[`atlys_hdmi2usb`](targets/atlys_hdmi2usb.py) | ||
|
||
* `VideomixerSoC` validated: MiniSoC + 2 x HDMI in + 2 x HDMI out | ||
* `HDMI2USBSoC` validated: VideomixerSoC + JPEG encoder + USB streaming | ||
|
||
##### Opsis | ||
|
||
[`opsis_hdmi2usb`](targets/opsis_hdmi2usb.py) | ||
|
||
* `VideomixerSoC` validated: MiniSoC + 2 x HDMI in + 2 x HDMI out | ||
* `HDMI2USBSoC` validated: VideomixerSoC + JPEG encoder + USB streaming | ||
|
||
### HDMI2Eth | ||
|
||
The `hdmi2eth` targets are for doing capturing and control using the Ethernet | ||
found on many boards. | ||
|
||
##### Atlys | ||
|
||
[`atlys_hdmi2eth`](targets/atlys_hdmi2eth.py) | ||
|
||
* `EtherboneSoC` validated: BaseSoC + 10/100Mbps HW Ethernet UDP/IP stack and | ||
Etherbone | ||
|
||
* `VideomixerSoC` validated: EtherboneSoC + HDMI in + HDMI out | ||
* `HDMI2ETHSoC` validated: VideomixerSoC + JPEG encoder + UDP streaming | ||
|
||
### Base | ||
|
||
The `base` targets are used during initial bring up and verification of basic | ||
features. Getting MiniSoc running on new hardware is the first step towards | ||
supporting it. All the other, more functional, targets are built on top of this | ||
target. | ||
|
||
##### Atlys | ||
|
||
[`atlys_base`](targets/atlys_base.py) | ||
|
||
* `BaseSoC` validated: CPU + DDR2 + UART | ||
* `MiniSoC` validated: BaseSoC + 10/100Mbps Ethernet MAC handled by the CPU | ||
|
||
##### Opsis | ||
|
||
[`opsis_base`](targets/opsis_base.py) | ||
|
||
* `BaseSoC` validated: CPU + DDR3 + UART | ||
* `MiniSoC` validated: BaseSoC + 1Gbps Ethernet MAC handled by the CPU | ||
|
||
##### Pipistrello | ||
|
||
[`pipistrello_base`](targets/pipistrello_base.py) | ||
|
||
* `BaseSoC`: CPU + LPDDR + UART | ||
* `VideomixerSoC`: BaseSoC + HDMI out | ||
|
||
##### miniSpartan6+ | ||
|
||
* `BaseSoC`: CPU + UART | ||
|
||
|
||
|
||
|
||
# The HDMI2USB Project | ||
|
||
**The HDMI2USB project develops affordable hardware options to record and | ||
stream HD videos (from HDMI & DisplayPort sources) for conferences, meetings | ||
and user groups.** | ||
|
||
We are currently developing our own hardware (the | ||
[Numato Opsis](https://hdmi2usb.tv/numato-opsis), and also provide firmware for | ||
various prototyping boards. | ||
|
||
HDMI2USB started in 2013, and is an active ongoing project in its third | ||
iteration of hardware prototyping. Today you can download early working | ||
firmware and have real capture happen, but we actively wish to improve and are | ||
seeking assistance: | ||
|
||
* **For video recording individuals+teams:** Be an early adopter; get a | ||
board, start using it, report back to us with feedback | ||
|
||
* **For software/FPGA developers:** Get involved in contributing code both to | ||
the capture software + FPGA stack | ||
|
||
Our aim is this becomes the defacto, incredibly affordable and easy to use | ||
video recording hardware for conferences, meetings and user groups worldwide. | ||
|
||
**Find out more about HDMI2USB and why we're doing this in [ABOUT + FAQ](http://hdmi2usb.tv/faq)** | ||
|
||
![HDMI2USB Diagram](https://hdmi2usb.tv/img/hdmi2usb.png "HDMI2USB Diagram") |