ECP5 is a great FPGA, it was reversed in Trellis, it’s bigger than ICE40 that was reversed before in icestorm project. And it have lots of cool stuff like
- multipliers
- serdes
- 25klut min (85 max)
- and lots of memory bits
But ECP5 board available on the web are little bit expensive (if you have nothing to do with it ;). Even the OrangeCrab will be about 80$ minimum (but with DDR3 and USB on it).
There is a rumor on the web that this leds display board include an ECP5 :

It’s really interesting, because this board cost only $15 ! With the dual SDRAM (M12L16161A) provided and its dual gigabit ethernet phy (Boardcom B50612D B1KMLG). For this low-cost price I order one of course.

I just received it and if we remove the sticker we see a Lattice ECP5 ( LFE5U-25F-6BG256C).
\o/ It’s a really lowcost ECP5 dev kit !
But without schematics. Mike Walter began to reverse it and document the board on its github project.
[Edit 1 March]
Anton Blanchard give the jtag+uart pinout on its twitter profile :

I configured the FPGA with this adapter from seeedstudio (7.6$), which is a simple FT2232 adapter.
Connect and configure with openFPGALoader
ECP5 is available in openFPGALoader list as we can see :
$ openFPGALoader --list-fpga
IDCode manufacturer family model
0x81113043 lattice ECP5-5G LFE5UM5G-85F-8BG381
0x100381b Gowin GW1N GW1N-4
0x20f30dd altera cyclone 10 LP 10CL025
0x3620093 xilinx spartan7 xc7s15ftgb196-1
0x362d093 xilinx artix a7 35t xc7a35
0x900281b Gowin GW1N GW1N-1
0x1100581b Gowin GW1N GW1NR-9
0x13631093 xilinx artix a7 100t xc7a100
0x41111043 lattice ECP5 LFE5U-25F-6BG256C
0x612bd043 lattice MachXO3LF LCMX03LF-6900C
$ openFPGALoader -cdigilent --detect
idcode 0x41111043
manufacturer lattice
model LFE5U-25F-6BG256C
family ECP5
Open source synthesize and place&route tools
We can then load a simple blinker bitstream with openFPGALoader. But first, we have to synthesize one. Trabucayre gave me a simple blinker project I added to the BLP (Blinking Led Project).
This project require yosys, nextpnr and trellis to be installed. Installations instructions are given on trellis repository.
$ git clone --recursive https://github.com/SymbiFlow/prjtrellis
$ cd prjtrellis/libtrellis
$ cmake -DCMAKE_INSTALL_PREFIX=/usr .
$ make
$ sudo make install
Then for next-pnr:
$ git clone https://github.com/YosysHQ/nextpnr.git
$ cd nextpnr
$ cmake -DARCH=ecp5 -DTRELLIS_INSTALL_PREFIX=/usr/ .
$ make
$ sudo make install
And finally Yosys
$ git clone https://github.com/YosysHQ/yosys
$ cd yosys
$ make
$ sudo make install
Synthesize blinker
The blinker projet can be found on this github repository :
$ git clone https://github.com/Martoni/blp.git
$ cd blp/platforms/colorlight/
$ make
...
ecppack --svf blink.svf blink_out.config blink.bit
Then, once JTAG is plugged we can download it with openFPGALoader :
$ openFPGALoader -cdigilent blink.bit
Open file blink.bit DONE
Parse file DONE
Enable configuration: DONE
SRAM erase: DONE
Loading: [==================================================] 100.000000%
Done
Disable configuration: DONE
And see the orange LED blinking !
Some links
[this article will be edited as I progress]