Skip to content

Instantly share code, notes, and snippets.

View suarezvictor's full-sized avatar

Victor Suarez Rovere suarezvictor

View GitHub Profile

Hacking HY300 Pro+ Projector (720p)

Hello manufacturer. Good device. But software we want to customize. If you allow, we will buy more.

Despite being advertised as "4K 1080P", it really downscales those to 720P.

But for 28.50 EUR from Amazon Warehuose Germany in 2025, one can't exactly complain. https://www.amazon.de/dp/B0DSP74YQW

Chengdu Hotack Technology Co., Ltd. is the OEM?

Kicad DRC constraints for manufacturing at JLCPCB

This guide aims to design boards that pass DFM analysis, considering JLCPCB's capabilities specifications. It assumes designs of at least 4 layers, 1oz copper max thickness, and the ENIG surface finish.

These are, according to JLCPCB at the time of writing:

  • Minimum track width/spacing: 0.09mm (3.5 mil) or 3 mil (0.076mm) acceptable in BGA fan-outs
  • Via outer diameter: 0.1mm larger than hole (0.15mm preferred), half of that corresponds to annular width
  • Drill diameter: 0.15mm (using their most expensive option)
  • Via hole to hole Spacing: 0.2mm
@suarezvictor
suarezvictor / oshw_logo.cpp
Last active December 4, 2025 14:35
OSHW logo animation example
// This file is Copyright (c) 2025 Victor Suarez Rovere <suarezvictor@gmail.com>
// SPDX-License-Identifier: AGPL-3.0-only
#include "misc.h"
#include "processing_api.h"
using namespace processing;
PGraphics canvas;
@suarezvictor
suarezvictor / digilent_arty.py
Created June 13, 2024 23:14
FullHD on Arty board using Litex
# Copyright (c) 2024 Victor Suarez Rovere <suarezvictor@gmail.com>
# SPDX-License-Identifier: AGPL-3.0-only
# code portions from LiteX framework (C) Enjoy-Digital https://github.com/enjoy-digital/litex
import sys
import argparse
from migen import *
from litex.soc.cores.clock import *
from litex.soc.integration.builder import *
@suarezvictor
suarezvictor / delay_line.py
Created June 7, 2024 18:39 — forked from newhouseb/delay_line.py
ECP5 Delay Line with ~50ps precision
# This is an nmigen delay line for ECP5 FPGAs using the open source toolchain. It strings together a series of
# manually placed carry chains into a "thermometer." It returns a signal that's (length) long that represents
# the chain "snapshotted" at the primary clock domain (using the flip flops colocated in the slice).
#
# This can be used in a Time to Digital Converter (i.e. to measure the time between to events) or in
# an ADC by comparing (with LVDS) a signal to a reference signal.
#
# Note that the bit precision (read: delay per carry element) varies as a function of temperature. On
# a LFE5U-25F-8MG285C, I've measure delay times of approximately 43ps on average. Due to assorted reasons,
# the delay time will vary between bits and due to variations in routing (even when manually places), you might
@suarezvictor
suarezvictor / delay_line.py
Created June 7, 2024 18:39 — forked from newhouseb/delay_line.py
ECP5 Delay Line with ~50ps precision
# This is an nmigen delay line for ECP5 FPGAs using the open source toolchain. It strings together a series of
# manually placed carry chains into a "thermometer." It returns a signal that's (length) long that represents
# the chain "snapshotted" at the primary clock domain (using the flip flops colocated in the slice).
#
# This can be used in a Time to Digital Converter (i.e. to measure the time between to events) or in
# an ADC by comparing (with LVDS) a signal to a reference signal.
#
# Note that the bit precision (read: delay per carry element) varies as a function of temperature. On
# a LFE5U-25F-8MG285C, I've measure delay times of approximately 43ps on average. Due to assorted reasons,
# the delay time will vary between bits and due to variations in routing (even when manually places), you might
@suarezvictor
suarezvictor / mult_test.c
Last active December 31, 2023 02:32
test using 9x9 multipliers
//Copyright (C) 2023 Victor Suarez Rovere <suarezvictor@gmail.com>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
typedef uint32_t uint18_t, uint19_t, uint27_t, uint23_t;
typedef uint16_t uint9_t, uint10_t, uint15_t;
typedef uint8_t uint1_t;
@suarezvictor
suarezvictor / adder_based_comparison.c
Created December 24, 2023 00:39
Comparison operator using adders and logic
//comparison operator using adders
//(C) 2023 Victor Suarez Rovere
#include <stdio.h>
//select type (all were tested)
typedef unsigned char type;
//typedef signed char type;
//typedef unsigned short type;
@suarezvictor
suarezvictor / donut.c
Created October 23, 2023 05:42
donut from Andy Sloane
//original at https://gist.github.com/a1k0n/8ea6516b4946ab36348fb61703dc3194
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <math.h>
#define debug(...)
//#define debug printf
@suarezvictor
suarezvictor / test0_x1.cpp
Created August 26, 2023 17:50
QSPICE C++ test
// Automatically generated C++ file on Sat Aug 26 14:20:23 2023
//
// To build with Digital Mars C++ Compiler:
//
// dmc -mn -WD test0_x1.cpp kernel32.lib
#include <stdio.h>
#include <malloc.h>
#include <stdarg.h>
#include <time.h>