Skip to content

Instantly share code, notes, and snippets.

View urish's full-sized avatar

Uri Shaked urish

View GitHub Profile
{
"version": 1,
"author": "Uri Shaked",
"editor": "wokwi",
"parts": [
{
"type": "board-esp32-s3-box-3",
"id": "esp32",
"top": -24.91,
"left": -388.54,
@urish
urish / tt05_dffram_test.py
Created July 11, 2024 06:34
tt05_dffram_test.py
# SPDX-License-Identifier: Apache-2.0
# Copyright (C) 2024, Uri Shaked
from ttboard.demoboard import DemoBoard
from ttboard.mode import RPMode
import random
from machine import Pin
WRITE_EN = 0x80
import time
import machine
from ttboard.demoboard import DemoBoard
from ttboard.mode import RPMode
from ttboard.pins.pins import Pins
import rp2
# We use the PIO as we need to generate a tx_valid pulse of a single clock cycle
@urish
urish / vga-clock-playground.v
Created May 21, 2024 11:12
Matt's VGA Clock for the VGA Clock Playground
/*
* Copyright (c) 2024 Uri Shaked
* SPDX-License-Identifier: Apache-2.0
*/
`default_nettype none
module tt_um_vga_example(
input wire [7:0] ui_in, // Dedicated inputs
output wire [7:0] uo_out, // Dedicated outputs
@urish
urish / fix-windows-path.js
Created April 7, 2024 10:18
Node.js script to remove duplicate path entries on Windows 11
// The script removes duplicate path entries from the User's path.
// It prints a power shell command that you should execute in order to update
// the User's path with the new value.
const { execSync } = require('child_process');
const machinePath = execSync('powershell.exe [Environment]::GetEnvironmentVariable(\\"Path\\", [EnvironmentVariableTarget]::Machine)').toString();
const userPath = execSync('powershell.exe [Environment]::GetEnvironmentVariable(\\"Path\\", [EnvironmentVariableTarget]::User)').toString();
const machinePathParts = machinePath.split(';');
@urish
urish / lib.rs
Last active April 5, 2024 20:39
Rust inverter chip (prototype API)
// Wokwi Custom Chips with Rust
use wokwi_chips_api::println;
use wokwi_chips_api::pin::{Pin, PinMode, WatchEdge};
// chipInit() will be called once per chip instance.
#[no_mangle]
pub unsafe extern "C" fn chipInit() {
println!("Hello from Rust Chip!");
v {xschem version=3.4.4 file_version=1.2
}
G {}
K {}
V {}
S {}
E {}
T {Transmission gate (incl. inverter)} 380 -190 0 0 0.4 0.4 {}
N 680 -980 1000 -980 { lab=VPWR}
N 840 -740 870 -740 {
@urish
urish / text-orient.sch
Created March 14, 2024 11:44
Text orientation test for Xschem Viewer
v {xschem version=3.4.5 file_version=1.2
}
G {}
K {}
V {}
S {}
E {}
L 4 70 -80 90 -80 {}
L 4 80 -90 80 -70 {}
L 4 80 70 80 90 {}
@urish
urish / tt02-caravel-breakout-test-firmware.ino
Last active March 4, 2024 17:36
Quick test firmware for TT02 using the standard caravel breakout board
#include <defs.h>
//#include <math.h>
#include <stub.h>
#include <hw/common.h>
#include <uart.h>
#include <uart_api.h>
// there is some Caravel issue happening that prevents the usual SET and CLR from working
// a fast read followed by write results in the whole register being cleared.
unsigned int temp;
@urish
urish / tt-analog-draw.tcl
Last active June 26, 2024 18:24
Minimal analog project for TT08 (just bare minimum to pass tapeout)
# This script has moved to tt-support-tools:
# https://github.com/TinyTapeout/tt-support-tools/blob/tt08/def/analog/magic_init_project.tcl