Skip to the content
PCBKitNew board
4 layers43.2 × 48.8 mmDAC peripherals, the printed circuit board in 3D

Copyright (c) 2023 Damien Morlier Lin Yudong Morgan Adamsson Samuel Svensson Matteo Rodriguez Derek Holzer

Size
43.2 × 48.8 mm
Copper layers
4
Thickness
2.63 mm
Parts
35
Nets
68
Pads
248
Tracks, vias
411, 137
Pours
13
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
5 Oct 2022
Updated
10 Mar 2023

Overview

DAC peripherals is an open-source printed circuit board by DamienMorlier, from the DamienMorlier/ScanProcessingFPGA repository on GitHub, published under the MIT licence. It is a 4-layer board of 43.2 × 48.8 mm with 35 parts on 68 nets, routed with 411 tracks and 137 vias.

It is built around the 74LVC2T45DC. Its parts include 16 ICs, 7 capacitors, 6 resistors, 5 connectors and 1 transistor. It belongs with the audio and music boards of this library.

Main components

1

README

README.md
text
MIT License

Copyright (c) 2023 Damien Morlier Lin Yudong Morgan Adamsson Samuel Svensson Matteo Rodriguez Derek Holzer

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

ScanProcessingFPGA

This project is an open-source project adaptating the Scanimate technology used in the 80s, the goal of this project was to design an hardware accelerator that would fit on a user-affordable FPGA to meet the PAL standards at 25 frames per second with being able to control it using OSC(Open Sound Control) messages.

For this project, we have used a Pynq Z2 board and a video DAC(Texas Instruments THS 8136), you'll find the ISO file for the pynq z2 board here :

The DAC needing other components to work properly with the FPGA, we have created a kicad design than you can use to print a PCB board and don't need to figure about complex wiring.

So far the following elements have been implemented :

  • Function generators with modulable parameters including different waveforms(Sawtooth, Triangle, Sinewave) and frequency, phaseshift, harmonics
  • HDMI Input read
  • DAC output read
  • Perspective processors
  • Rotation processors
  • Connexion matrix to connect the function generators between then to create complex X and Y ramps

Our project is free of use and modifying and licensed under the MIT license.

This project has been created at KTH by :

  • Yudong Lin
  • Matteo Rodriguez
  • Samuel Svensson
  • Morgan Adamsson
  • Damien Morlier

Under the supervision of our tutor Derek Holzer

Components to buy

  • Pynq Z2 board :
  • THS8136 :
  • Boards files :

Installation

FPGA setup

To install the project on the Pynq Z2 board :

  • Set the jumper(1) to the SD side and plug in the USB powering and ethernet cable(4)(5)

  • Get the ISO file of the board here :

  • Flash the SD card using Rufus(https://rufus.ie/fr/) or balena etcher(https://www.balena.io/etcher)

  • Insert the SD card into the SD card slot of the FPGA board(3)

  • Turn on the board

If you wish to power the FPGA board using a power supply, you need to switch the jumper(2)

After a few minutes, the led DONE on the board should turn on and the ethernet connexion should be appearing

Sending OSC messages

In order to send OSC messages, your computer needs to be connected to the FPGA via the ethernet cable, then you can use every OSC interface you have(or use python-osc to code in python)

Interface setup :

  • IP :
  • Port :

Then you can send OSC messages to the board, you can find a detailed description of the available messages at the bottom of the page

Edit the Project

In order to edit the project, you'll need the version 2022.1 of Vivado that you can find here :

Any others versions of the tool would not be able to open the project.

Then clone the following repo :

In vivado, select Run TCL Script and then run build_ip.tcl in the repo

Then you can run the build_project.tcl script from this repo and the architecture and block design of the project should open to you

The HDMI pipeline should not be severely transformed for the integrity of the project

Our implementation of the Scanimate is located inside of the IP Datapath_DMA

After editing the project, you can then generate the bitstream and replace the board bitstream located here

And reboot the board

Adding Hardware Modules

If you wish to modify the project and add some custom written blocks, you'll need to have knowledge in hardware description languages(VHDL, Verilog, SystemVerilog) and knowledge in digital design and expertise in using Vivado

How to use GHDL to simulate

Here is a quick tutorial on using an open-source tool to simulate your written modules in hardware description languages

Installation :

bash
sudo apt-get install ghdl

Analyse :

bash
ghdl -a all-your-files

Elaborate :

bash
ghdl -e top-entity

Run :

bash
ghdl -r top-entity --wave=PathToResults\Name_wave.ghw

Then you can use gtkwave to visualize your tests

Automatically run test bench

text
./run_testbench.sh run <test-bench-entity>

Roadmap

Here is a list of modules that could be implemented to enhance the experience on the project

  • Add an ADC input to have a external input to the connexion matrix
  • Implement the HDMI output

Ressources

Parts

35
QtyValueFootprintReferences
1474LVC2T45DCPackage_SO:VSSOP-8_2.3x2mm_P0.5mmU2, U3, U3, U4, U5, U5, U6, U7, U7, U8, U9, U9, U10, U11
6100nCapacitor_SMD:C_0603_1608MetricC1, C2, C3, C5, C6, C7
375Resistor_SMD:R_0603_1608MetricR2, R3, R4
210KResistor_SMD:R_0603_1608MetricR5, R6
2Conn_01x10_FemaleConnector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_VerticalJ3, J4
12kResistor_SMD:R_0603_1608MetricR1
14.7uCapacitor_SMD:C_0603_1608MetricC4
1Conn_01x03_FemaleConnector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_VerticalJ1
1Conn_01x08_FemaleConnector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_VerticalJ5
1Conn_02x03_Odd_EvenConnector_PinSocket_2.54mm:PinSocket_2x03_P2.54mm_VerticalJ2
1LK112M18TRPackage_TO_SOT_SMD:SOT-23-5U1
1Q_NMOS_DGSPackage_TO_SOT_SMD:SOT-23Q1
1THS8135PHPPackage_QFP:TQFP-48-1EP_7x7mm_P0.5mm_EP5x5mmIC1

Questions

How big is the DAC peripherals PCB?

It measures 43.2 × 48.8 mm and has 4 copper layers, 2.63 mm thick.

What parts does the DAC peripherals use?

35 parts, built around the 74LVC2T45DC. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the DAC peripherals KiCad files?

From the DamienMorlier/ScanProcessingFPGA repository on GitHub, at the commit this page was made from: the board is DAC/DAC-peripherals/DAC-peripherals.kicad_pcb and its schematic DAC/DAC-peripherals/DAC-peripherals.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the DAC peripherals design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 4 layers60 × 28 mmRailLink, the printed circuit board in 3D

    RailLink

    Misaka0x2730/RailLink

    Compact isolated version of J-Link v9.

    83 parts134
  • 4 layers53 × 42 mmMioLink, the printed circuit board in 3D

    MioLink

    Misaka0x2730/MioLink

    ARM JTAG/SWD debugger (BlackMagic port) based on RP2040.

    117 parts30GPL-3.0
  • 2 layers46.2 × 83 mmPregnantLaserMouse, the printed circuit board in 3D

    PregnantLaserMouse

    Board-Folk/PregnantLaserMouse

    A optical mouse replacement pcb for the Amiga pregnant mouse

    28 parts21
  • 2 layers57.9 × 39.9 mmMCU Link MR, the printed circuit board in 3D

    MCU Link MR

    ErichStyger/MCU-Link-MR

    Open Source MCU-Link CMSIS-DAP Debug probe for mobile robots (e.g. Pixhawk)

    121 parts20MIT
  • 4 layers50 × 35.5 mmReceiverE5, the printed circuit board in 3D

    ReceiverE5

    kuro68k/Superplay

    Arcade joystick

    47 parts6GPL-3.0
  • 4 layers165.6 × 125.5 mmSparkPNT GNSSDO Plus panelized, the printed circuit board in 3D

    SparkPNT GNSSDO Plus panelized

    sparkfun/SparkFun_GNSSDO

    The SparkFun GNSS Disciplined Oscillator (GNSSDO / GNSSDO+) is a precision time and frequency reference based on the Septentrio mosaic-T GNSS receiver.

    478 parts6
  • 4 layers100 × 100 mmEcevr proto, the printed circuit board in 3D

    Ecevr proto

    till-s/kicad-lan9254-evr-prototype

    Prototype for EtherCAT EVR; kicad files

    401 parts4