Skip to content

Instantly share code, notes, and snippets.

Avatar

Piotr Esden-Tempski esden

View GitHub Profile
@esden
esden / native-nmigen-win10-guide.md
Created Jun 29, 2020
Installing and running nmigen with native binary toolchain on Windows 10
View native-nmigen-win10-guide.md

This guide describes the steps necessary to setup the FPGA tools, python, nmigen and zadig drivers for the iCEBreaker-fpga development board on Windows 10.

Download the following software:

Install the following in whichever order:

  • git
@esden
esden / icebreaker-ftdi-public-template.conf
Last active Jul 5, 2020
Just the ftdi programming template for icebreaker.
View icebreaker-ftdi-public-template.conf
# The Vendor ID and Product ID seem to identify a particular chipset
# to target. I used the libftdi utilities and OS X USB Prober app to
# poke around and figure out what numbers to use.
vendor_id=0x403
product_id=0x6010
# The rest of the fields are settings which can be written to the
# FT2xx with the --flash-eeprom option.
@esden
esden / streaming_setup_and_more.md
Last active May 11, 2020
Esden's (1BitSquared) Streaming setup and a bunch of the tools I use on stream.
View edid-4k-samsung-tv.txt
Section "Monitor"
Identifier "SAMSUNG"
ModelName "SAMSUNG"
VendorName "SAM"
# Monitor Manufactured week 2 of 2014
# EDID version 1.3
# Digital Display
DisplaySize 1110 620
Gamma 2.20
Option "DPMS" "false"
@esden
esden / single-led-panel-pmod-phy.wd
Created Mar 19, 2019
Wavedrom listing describing the timing diagram of an iCEBreaker single Pmod LED Panel driver
View single-led-panel-pmod-phy.wd
{signal: [
['Input',
{name: 'R', wave: 'x4343434343434343x..........', data: ['R1[0]','R0[0]','R1[1]','R0[1]','R1[2]','R0[2]','R1[3]','R0[3]','R1[4]','R0[4]','R1[5]','R0[5]','R1[6]','R0[6]','R1[7]','R0[7]']},
{name: 'G', wave: 'x4343434343434343x..........', data: ['G1[0]','G0[0]','G1[1]','G0[1]','G1[2]','G0[2]','G1[3]','G0[3]','G1[4]','G0[4]','G1[5]','G0[5]','G1[6]','G0[6]','G1[7]','G0[7]']},
{name: 'B', wave: 'x4343434343434343x..........', data: ['B1[0]','B0[0]','B1[1]','B0[1]','B1[2]','B0[2]','B1[3]','B0[3]','B1[4]','B0[4]','B1[5]','B0[5]','B1[6]','B0[6]','B1[7]','B0[7]']},
{name: 'SCLK', wave: 'hn.......h....', period:2, phase:0.5},
{name: 'LATCH', wave: '0........10...', period:2},
{name: 'BLANK', wave: 'x.......1..0..', period:2},
{name: 'ARST', wave: '1.............', period:2},
{name: 'ACLK', wave: '0........10...', period:2}
@esden
esden / led_panel.md
Last active Sep 2, 2020
FAQ: Collection of links and information about RGB LED Panels and FPGA
View led_panel.md

A common name for the interface is HUB75

The displays use shift registers for columns and two sets of row multiplexers.

Typical organization

32x32 panel

  • Organized in two halfs of 16x32 tiles
  • 32 bit long RGB column drive shift registers
  • 4 bit to 16 row drive demultiplexers
@esden
esden / led-demo.pcf
Last active Oct 25, 2018
This is the generated verilog from @scanlime icebreaker-icestudio-ledmatrix design af3b1559
View led-demo.pcf
# Code generated by Icestudio 0.4.0-dev
# Thu, 25 Oct 2018 18:32:14 GMT
set_io v5beaf0[4] 28
set_io v5beaf0[3] 31
set_io v5beaf0[2] 34
set_io v5beaf0[1] 38
set_io v5beaf0[0] 43
set_io vb20513[5] 3
set_io vb20513[4] 48
@esden
esden / start-kicad-project.md
Last active Aug 5, 2020
Starting a new KiCad Project esden style.
View start-kicad-project.md

Create a new directory:

mkdir myhardware-git
cd myhardware-git

Initialize git:

git init
@esden
esden / bmp_tpwr_en.scr
Last active Sep 17, 2020
Small gdb script to enable Black Magic Probe Target Power 'tpwr'.
View bmp_tpwr_en.scr
#!/usr/bin/env arm-none-eabi-gdb -nx -batch -x
# The Black Magic Probe has level shifter buffers on its frontend,
# this gdb script enables Black Magic Probe target power,
# this is needed if you are not providing reference voltage from your target.
# Do not run this script or enable target power if you have VREF connected.
# The BMP side TPWR is connected to the 3.3V regulator of the Black Magic Probe
# and it has no protections, so don't fry your target or Black Magic Probe by
# being hasty and not thinking about what you are doing. :D
You can’t perform that action at this time.