resources/README.md
# How to add a new board
Create a subdir in [`boards`](boards) with a unique name/identifier for the board.
Add the following files to that subdir:
- `info.json`, including the following fields:
- `label`: string. The name that will be shown in the GUI.
- `device`: string. The main FPGA device on the board.
- `datasheet`: string. URL to the board datasheet/website.
- `prog`: list of strings. The identifiers of the programmers supported for the board.
- `pinout`: a placeholder, to be filled from the constraints file.
- A `*.pcf` or `*.lpf` constraints file.
Optionally:
- A `iomode.json` file for constraining the mode of I/O pins. By default, all pins are considered to be
of mode `inout`; therefore, `input` and `output` need to be defined only.
- A diagram named `pinout.svg`.
- A `rules.json` file.
Then, execute `regenereate_pinouts.py` for having the `pinout` field of the `info.json` filled automatically.
Check the content of field `pinout` in `info.json`.
Furthermore, check whether a JSON file exists in [`devices`](devices), which corresponds to the device field in the
`info.json` file.
If it is missing, it can be optionally added.
Last, commit the changes and open a Pull Request!
NOTE: adding boards to Icestudio does not imply that the designs can be synthesized or implemented. Currently, Icestudio
depends on `apio` for those tasks. Therefore, adding boards to Icestudio is only useful for defining I/O pins and/or for
using Board Rules. Further features require separated PRs to `apio`'s sources.
# Supported boards
## HX1K
| Board name | Interface | |
| :---------------------------------------------------------------------- | :-------: | :------------------------------------------------------- |
| [IceZUM Alhambra](https://github.com/FPGAwars/icezum) | FTDI | |
| [Nandland Go board](https://www.nandland.com/goboard/introduction.html) | FTDI | [#394](https://github.com/FPGAwars/icestudio/issues/394) |
| [iCEstick Evaluation Kit](http://www.latticesemi.com/icestick) | FTDI | |
## HX4K
| Board name | Interface |
| :--------------------------------------------------------------------------------------- | :-------: |
| [Alhambra II](https://github.com/FPGAwars/Alhambra-II-FPGA) | FTDI |
| [Kéfir I iCE40-HX4K](http://fpgalibre.sourceforge.net/Kefir/) | FTDI |
| [EDU-CIAA-FPGA](http://www.proyecto-ciaa.com.ar/devwiki/doku.php?id=desarrollo:edu-fpga) | FTDI |
## HX8K
| Board name | Interface |
| :--------------------------------------------------------------------------------------------------------------- | :-------: |
| [Alchitry-Cu](https://alchitry.com/products/alchitry-cu-fpga-development-board) | FTDI |
| [BlackIce](https://hackaday.io/project/12930-blackice-low-cost-open-hardware-fpga-dev-board) | Serial |
| [BlackIce II](https://github.com/mystorm-org/BlackIce-II) | Serial |
| [icoBOARD 1.0](http://icoboard.org/about-icoboard.html) | GPIO RPi |
| [iCE40-HX8K Breakout Board](http://www.latticesemi.com/Products/DevelopmentBoardsAndKits/iCE40HX8KBreakoutBoard) | FTDI |
| [iceFUN](https://www.robot-electronics.co.uk/icefun.html) | Serial |
## LP8K
| Board name | Interface |
| :------------------------------------------------------ | :-------: |
| [TinyFPGA B2](https://tinyfpga.com/b-series-guide.html) | Serial |
| [TinyFPGA BX](https://tinyfpga.com/bx/guide.html) | Serial |
## UP5K
| Board name | Interface |
| :---------------------------------------------------------------------------------------------------------------------------- | :-------------: |
| [Fomu (PVT)](https://github.com/im-tomu/fomu-hardware) | dfu-util |
| [iCEBreaker](https://github.com/icebreaker-fpga/icebreaker) | FTDI |
| [iCEBreaker bitsy](https://github.com/icebreaker-fpga/icebreaker) | FTDI |
| [UPDuino v1.0](http://gnarlygrey.atspace.cc/development-platform.html#upduino) | FTDI |
| [UPDuino v2.0](http://gnarlygrey.atspace.cc/development-platform.html#upduino_v2l) | FTDI |
| [FPGA 101 Workshop Badge Board](https://github.com/mmicko/workshop_badge) | FTDI |
| [iCE40 UltraPlus Breakout Board](http://www.latticesemi.com/en/Products/DevelopmentBoardsAndKits/iCE40UltraPlusBreakoutBoard) | FTDI |
| [dadamachines doppler](https://dadamachines.com/product/doppler/) | samd51 on board |
| [iCESugar v1.5](https://github.com/wuxx/icesugar) | HID |
# Planned support
| Board name | Interface | |
| :------------------------------------------------------ | :-------: | :------------------------------------------------------- |
| [Orange Crab](https://github.com/gregdavill/OrangeCrab) | FTDI | [#392](https://github.com/FPGAwars/icestudio/issues/392) |