Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added labeling to enclosure 3D model, added 3D printing instruction #19

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified 3dmodels/enclosure-bottom.stl
100755 → 100644
Binary file not shown.
Binary file modified 3dmodels/enclosure-top.stl
100755 → 100644
Binary file not shown.
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright Antmicro Ltd.
Copyright 2019-2021 Antmicro <www.antmicro.com>

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
48 changes: 33 additions & 15 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,23 +1,26 @@
===================
Video Booster Board
===================

Copyright (c) 2019-2021 `Antmicro <https://www.antmicro.com>`_

.. image:: ./img/vsb-board.png

Overview:
---------
Overview:
=========

This repository contains a KiCad PCB project for an open hardware board design that allows to improve the quality of HDMI video signals transmitted over long cables.

Key features:
-------------
Key features:
=============

* HDMI signal preconditioning with a pair of `PTN3363 <https://www.nxp.com/docs/en/data-sheet/PTN3363.pdf>`_ HDMI level shifters.
* Signal equalization controlled with on-board DIP-Switch
* On-board SiLabs `EFM32HG322F64 <https://www.silabs.com/documents/public/data-sheets/efm32hg-datasheet.pdf>`_ MCU for interactive control and board monitoring
* Supports different EDID connection scenarios

Mechanical layout and dimensions
--------------------------------
================================

The board has been mechanically optimised for usage with the `Numato Opsis <https://hdmi2usb.tv/numato-opsis/>`_ open video capture device.
It is possible to use it with different platforms using HDMI extender cables.
Expand All @@ -29,7 +32,7 @@ It follows the data flow diagram presented below:
.. image:: ./img/vsb-data-flow.svg

Getting Started
---------------
===============

Please refer to KiCad schematic files for more information regarding hardware functionalities implemented in the design.
The PCB layout has been defined with a 4-layer stackup.
Expand All @@ -42,10 +45,10 @@ This will make the on-board MCU accessible on EDID bus driven from ``J2`` HDMI i
Please check the schematics and software codebase for any other jumper configuration.

Example firmware
----------------
================

The EFM32 MCU used in the design comes with a factory programmed ``AN0042`` bootloader.
In order to make the MCU compatible with the provided example firmware it is advisable to replace the default bootloader with `Toboot <https://github.com/im-tomu/toboot>`_
In order to make the MCU compatible with the provided example firmware it is advisable to replace the default bootloader with `Toboot <https://github.com/im-tomu/toboot>`_
over SWD interface using `OpenOCD <http://openocd.org/>`_.
The SWD signals from the MCU are exposed on test pads marked with ``IO`` and ``CLK`` on the bottom side of the Video Booster Board.
Additionally there are test pads with system ground and power supply exposed next to them.
Expand All @@ -61,12 +64,12 @@ In order to build the example firmware please use the following commands::
git clone https://github.com/antmicro/video-signal-booster-board
cd video-signal-booster-board
git submodule update --init --recursive
cd example-firmware
python3 -m pip install -r zephyr/scripts/requirements.txt
cd example-firmware
python3 -m pip install -r zephyr/scripts/requirements.txt
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.10.3/zephyr-sdk-0.10.3-setup.run
chmod +x zephyr-sdk-0.10.3-setup.run
./zephyr-sdk-0.10.3-setup.run -- -d <zephyr_installation_path>
export ZEPHYR_TOOLCHAIN_VARIANT=zephyr
chmod +x zephyr-sdk-0.10.3-setup.run
./zephyr-sdk-0.10.3-setup.run -- -d <zephyr_installation_path>
export ZEPHYR_TOOLCHAIN_VARIANT=zephyr
export ZEPHYR_SDK_INSTALL_DIR=<zephyr_installation_path>
source zephyr/zephyr-env.sh
west init -l zephyr
Expand All @@ -93,8 +96,23 @@ A sample Python code that would drive the MCU over I2C bus is::
bus.write_byte_data(0x3a, 0x00, 0x03)

3D-printable enclosure
----------------------
======================

There is also a 3D-printable enclosure available in the ``3d-models`` directory.
.. image:: ./img/3dprint-enclosure.png

There are also 3D-printable enclosure .stl files available in the ``3d-models`` directory.
The enclosure allows the electronics to be covered and attaches the Video Booster Board to the Numato board installed in a typical thin mini-ITX chassis.
A connector is the source, B is the sink of the RX/TX signal.

For printing the enclosure, use slicer settings matching your used 3D printer and filament.
Setting layer thickness to a value between 0.15mm and 0.2mm is sufficient.
The image below shows proposed print orientation.

.. image:: ./img/3dprint-orientation.png

Enclosure can be assembled with the board using 3 M1.6x8 flathead bolts.

License
=======

`Apache-2.0 <LICENSE>`_
Binary file added img/3dprint-enclosure.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/3dprint-orientation.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.