
Test lattice ecp5 fofotprint
Jeo0/atg-client
automatic trajectory generator cross-platform client for acoustic volumetric displays (dis our thesis :))

automatic trajectory generator cross-platform client for acoustic volumetric displays (dis our thesis :))
OLD obfuscated DontUse link is an open-source printed circuit board by Jeo0, from the Jeo0/atg-client repository on GitHub. It is a 6-layer board of 499.5 × 326 mm with 548 parts on 1,157 nets, routed with 5,727 tracks and 1,200 vias.
It is built around the LFE5U-25F-6BG256C, MIC4127YML-TR and TLV62569DBV, with the W25Q32JVSSIQ, 74HC595D and TPS54302 among its other parts. Its parts include 165 ICs, 99 capacitors, 19 resistors, 3 connectors and 3 inductors. It belongs with the lEDs and displays boards and the FPGA and CPLD boards of this library.
Automatic Trajectory Generator Client — A cross-platform desktop application for acoustic volumetric displays. (Undergraduate thesis project) see https://github.com/Jeo0/3rd-opengl-test for the desktop client status (to be merged here afterwards)
atg-client is a cross-platform GUI client for controlling and visualizing acoustic volumetric displays — devices that levitate and move particles in mid-air using ultrasound to create 3D images visible to the naked eye.
The client is responsible for:
The project is split into two main parts:
| Directory | Description |
|---|---|
software/ | The desktop GUI client (C++, OpenGL, ImGui) |
hardware/ | PCB schematics and hardware design files (KiCad) |
| Technology | Role |
|---|---|
| C++ 14 | Core application language |
| OpenGL 4.6 | 3D rendering |
| GLFW | Cross-platform window and input management |
| GLAD | OpenGL function loader |
| Dear ImGui | Immediate-mode GUI framework |
| GNU Make | Build system |
| KiCad | Hardware PCB design |
atg-client/
├── software/ # Desktop client source code
│ ├── src/
│ │ ├── main.cpp # Entry point — initializes and runs the GUI app
│ │ ├── guiApp.cpp # Core app class: window, OpenGL, ImGui lifecycle
│ │ ├── shaders/ # GLSL vertex and fragment shaders
│ │ ├── opengltings/ # OpenGL helper utilities (e.g., shader reader)
│ │ ├── window/ # Window abstraction layer
│ │ └── 3rdparty/ # Third-party source files (e.g., glad.c)
│ ├── include/ # Header files and library includes
│ ├── build/ # Compiled output (generated, not tracked)
│ └── Makefile # Build script (cross-platform: Linux & Windows)
│
├── hardware/ # Hardware design files
│ ├── KiCad/ # PCB schematics and layouts
│ ├── diamond/ # Diamond-pattern transducer array designs
│ ├── lib/ # KiCad component libraries
│ └── docs/ # Hardware documentation
│
├── TODO # Active development notes
└── README.mdBefore building, ensure your system meets the following requirements:
Install mesa-utils and run:
sudo pacman -S mesa-utils # Arch Linux
glxinfo | grep "OpenGL version"sudo pacman -S glfw base-develNavigate to the software/ directory and use GNU Make:
cd ./software/
make clean # Remove any previous build artifacts
make # Compile the project
make run # Build (if needed) and launch the applicationThe compiled binary will be placed at software/build/example_glfw_opengl3.
Note: Always run
make cleanbeforemakeafter pulling new changes to avoid stale build artifacts.
g++, gcc, make)pkg-config configured for your MinGW environmentcd .\software\
make clean
make
make runThe compiled binary will be placed at software/build/example_glfw_opengl3.exe.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 256 | Speaker_Ultrasound | Buzzer_Beeper:Buzzer_15x7.5RM7.6 | LS1, LS10, LS11, LS100, LS101, LS102, LS103, LS104, LS105, LS106, LS107, LS108, LS109, LS110, LS111, LS112 +240 |
| 128 | MIC4127YML-TR | Package_DFN_QFN:DFN-8-1EP_3x3mm_P0.65mm_EP1.55x2.4mm | U100, U102, U103, U104, U105, U107, U108, U109, U110, U112, U113, U114, U115, U117, U118, U119 +112 |
| 65 | 0.1μF | Capacitor_SMD:C_0805_2012Metric | C1, C2, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23 +49 |
| 32 | 74HC595D | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U1, U11, U16, U101, U106, U111, U116, U121, U126, U131, U136, U141, U146, U151, U156, U161 +16 |
| 21 | 100nF | Capacitor_SMD:C_0805_2012Metric | C65, C85, C86, C87, C88, C89, C90, C91, C100, C101, C102, C103, C104, C105, C106, C107 +5 |
| 11 | 4.7K | Resistor_SMD:R_0805_2012Metric | R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11 |
| 8 | 10μF | Capacitor_SMD:C_0805_2012Metric | C67, C71, C73, C84, C95, C97, C99, C108 |
| 4 | 22μF | Capacitor_SMD:C_0805_2012Metric | C68, C69, C72, C74 |
| 2 | TLV62569DBV | Package_TO_SOT_SMD:SOT-23-5 | U9, U10 |
| 1 | 10k | Resistor_SMD:R_0805_2012Metric | R17 |
| 1 | 120R | Inductor_SMD:L_0805_2012Metric | FB1 |
| 1 | 12k | Resistor_SMD:R_0805_2012Metric | R16 |
| 1 | 16k | Resistor_SMD:R_0805_2012Metric | R19 |
| 1 | 1K | Resistor_SMD:R_0805_2012Metric | R13 |
| 1 | 1μH | Inductor_SMD:L_Taiyo-Yuden_NR-30xx | L2 |
| 1 | 2.2μH | Inductor_SMD:L_Taiyo-Yuden_NR-30xx | L3 |
| 1 | 22R | Resistor_SMD:R_0805_2012Metric | R12 |
| 1 | 22k | Resistor_SMD:R_0805_2012Metric | R15 |
| 1 | 4.7μH | Inductor_SMD:L_Bourns_SRN6045TA | L1 |
| 1 | 47μF | Capacitor_THT:CP_Radial_D6.3mm_P2.50mm | C66 |
| 1 | 51k | Resistor_SMD:R_0805_2012Metric | R18 |
| 1 | 68k | Resistor_SMD:R_0805_2012Metric | R14 |
| 1 | Conn_01x03_Pin | Connector:FanPinHeader_1x03_P2.54mm_Vertical | J1 |
| 1 | JTAG | Connector_IDC:IDC-Header_2x05_P2.54mm_Vertical | J2 |
| 1 | LFE5U-25F-6BG256C | Package_BGA:LFBGA-289_14x14mm_Layout17x17_P0.8mm | u2 |
| 1 | SMAJ12A | Diode_SMD:D_SMA | D2 |
| 1 | SS34 | Diode_SMD:D_SMA | D1 |
| 1 | Screw_Terminal_01x02 | TerminalBlock:TerminalBlock_bornier-2_P5.08mm | J4 |
| 1 | TPS54302 | Package_TO_SOT_SMD:SOT-23-6 | U8 |
| 1 | W25Q32JVSS | Package_SO:SOIC-8_5.3x5.3mm_P1.27mm | U7 |

Jeo0/atg-client
automatic trajectory generator cross-platform client for acoustic volumetric displays (dis our thesis :))

JulienKluge/Clock-odial
Clock-odial is a PCB featuring a ECP5 fpga for frequency/clock signal processing



lsartory/Clavier
An FPGA-based mechanical keyboard with an integrated USB hub and communication interfaces


cfbird/usb3-sdr
USB3 direct-sampling HF SDR: AD9649 ADC -> ECP5 FPGA DDC -> FT601 USB 3. KiCad 9 + Verilog, co-designed by Claude and Gemini (AGY).

Rahul9-spb/FPGA-1
A compact 4-layer FPGA development board based on the Lattice LFE5U-25F-6BG256C, designed to explore high-speed PCB design, FPGA hardware, memory interfaces, and signal integrity practices.

It measures 499.5 × 326 mm and has 6 copper layers, 1.6 mm thick.
548 parts, built around the LFE5U-25F-6BG256C, MIC4127YML-TR, TLV62569DBV and W25Q32JVSSIQ. 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.
From the Jeo0/atg-client repository on GitHub, at the commit this page was made from: the board is hardware/projects/arraypcb/OLD-obfuscated-DontUse-link.kicad_pcb and its schematic hardware/projects/KiCad/shematic1/FPGA.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask Jeo0 before reusing the design.