diff --git a/examples/ecp5_evn/Makefile b/examples/ecp5_evn/Makefile
new file mode 100644
index 0000000..88496ae
--- /dev/null
+++ b/examples/ecp5_evn/Makefile
@@ -0,0 +1,21 @@
+PROJ=blinky
+
+all: ${PROJ}.bit
+
+
+%.json: %.v
+	yosys -p "synth_ecp5 -noccu2 -nobram -nomux -json $@" $<
+
+%_out.config: %.json
+	nextpnr-ecp5 --json $< --basecfg ../../misc/basecfgs/empty_lfe5um5g-85f.config --textcfg $@ --um5g-85k --package CABGA381
+
+%.bit: %_out.config
+	ecppack $< $@
+
+%.svf: %.bit
+	../../tools/bit_to_svf.py $< $@
+
+prog: ${PROJ}.svf
+	openocd -f ../../misc/openocd/ecp5-evn.cfg -c "transport select jtag; init; svf $<; exit"
+
+.PHONY: prog
diff --git a/examples/ecp5_evn/blinky.v b/examples/ecp5_evn/blinky.v
new file mode 100644
index 0000000..5d48712
--- /dev/null
+++ b/examples/ecp5_evn/blinky.v
@@ -0,0 +1,71 @@
+module top(input clk_pin, input btn_pin, output [7:0] led_pin);
+
+    wire clk;
+    wire [7:0] led;
+    wire btn;
+
+    (* LOC="A10" *) (* IO_TYPE="LVCMOS33" *)
+    TRELLIS_IO #(.DIR("INPUT")) clk_buf (.B(clk_pin), .O(clk));
+
+    // Pressing and holding SW4 will trigger led array fading
+    (* LOC="P4" *) (* IO_TYPE="LVCMOS33" *)
+    TRELLIS_IO #(.DIR("INPUT")) btn_buf (.B(btn_pin), .O(btn));
+
+    (* LOC="B17" *) (* IO_TYPE="LVCMOS33" *)
+    TRELLIS_IO #(.DIR("OUTPUT")) led_buf_0 (.B(led_pin[0]), .I(!led[0]));
+    (* LOC="A17" *) (* IO_TYPE="LVCMOS33" *)
+    TRELLIS_IO #(.DIR("OUTPUT")) led_buf_1 (.B(led_pin[1]), .I(!led[1]));
+    (* LOC="C17" *) (* IO_TYPE="LVCMOS33" *)
+    TRELLIS_IO #(.DIR("OUTPUT")) led_buf_2 (.B(led_pin[2]), .I(!led[2]));
+    (* LOC="B18" *) (* IO_TYPE="LVCMOS33" *)
+    TRELLIS_IO #(.DIR("OUTPUT")) led_buf_3 (.B(led_pin[3]), .I(!led[3]));
+
+    (* LOC="A18" *) (* IO_TYPE="LVCMOS33" *)
+    TRELLIS_IO #(.DIR("OUTPUT")) led_buf_4 (.B(led_pin[4]), .I(!led[4]));
+    (* LOC="B19" *) (* IO_TYPE="LVCMOS33" *)
+    TRELLIS_IO #(.DIR("OUTPUT")) led_buf_5 (.B(led_pin[5]), .I(!led[5]));
+    (* LOC="A12" *) (* IO_TYPE="LVCMOS33" *)
+    TRELLIS_IO #(.DIR("OUTPUT")) led_buf_6 (.B(led_pin[6]), .I(!led[6]));
+    (* LOC="A13" *) (* IO_TYPE="LVCMOS33" *)
+    TRELLIS_IO #(.DIR("OUTPUT")) led_buf_7 (.B(led_pin[7]), .I(!led[7]));
+
+
+
+    localparam ctr_width = 24;
+    localparam ctr_max = 2**ctr_width - 1;
+    reg [ctr_width-1:0] ctr = 0;
+    reg [9:0] pwm_ctr = 0;
+    reg dir = 0;
+
+    always@(posedge clk) begin
+    ctr <= btn ? ctr : (dir ? ctr - 1'b1 : ctr + 1'b1);
+        if (ctr[ctr_width-1 : ctr_width-3] == 0 && dir == 1)
+            dir <= 1'b0;
+        else if (ctr[ctr_width-1 : ctr_width-3] == 7 && dir == 0)
+            dir <= 1'b1;
+        pwm_ctr <= pwm_ctr + 1'b1;
+    end
+
+    reg [9:0] brightness [0:7];
+    localparam bright_max = 2**10 - 1;
+    reg [7:0] led_reg;
+
+    genvar i;
+    generate
+    for (i = 0; i < 8; i=i+1) begin
+       always @ (posedge clk) begin
+            if (ctr[ctr_width-1 : ctr_width-3] == i)
+                brightness[i] <= bright_max;
+            else if (ctr[ctr_width-1 : ctr_width-3] == (i - 1))
+                brightness[i] <= ctr[ctr_width-4:ctr_width-13];
+             else if (ctr[ctr_width-1 : ctr_width-3] == (i + 1))
+                 brightness[i] <= bright_max - ctr[ctr_width-4:ctr_width-13];
+            else
+                brightness[i] <= 0;
+            led_reg[i] <= pwm_ctr < brightness[i];
+       end
+    end
+    endgenerate
+
+    assign led = led_reg;
+endmodule
diff --git a/misc/openocd/ecp5-evn.cfg b/misc/openocd/ecp5-evn.cfg
new file mode 100644
index 0000000..8828b92
--- /dev/null
+++ b/misc/openocd/ecp5-evn.cfg
@@ -0,0 +1,16 @@
+# this supports ECP5 Evaluation Board
+
+interface ftdi
+ftdi_device_desc "Lattice ECP5 Evaluation Board"
+ftdi_vid_pid 0x0403 0x6010
+# channel 1 does not have any functionality
+ftdi_channel 0
+# just TCK TDI TDO TMS, no reset
+ftdi_layout_init 0xfff8 0xfffb
+reset_config none
+
+# default speed
+adapter_khz 5000
+
+# ECP5 device - LFE5UM5G-85F
+jtag newtap ecp5 tap -irlen 8 -expected-id 0x81113043
