{ "info": { "author": "David Carne", "author_email": "davidcarne@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.0" ], "description": "# Lattice iCEBlink40 Programming Tool\n\nThe Lattice iCEBlink40 is a low-cost FPGA board (currently $50 cad) supporting the iCE40 LP/HX families. While the iCEcube programming software on linux supports the chips, it doesn't ship with a port of iceutil.exe to program the board itself. This is an open-source tool, licensed under GPL2, to allow for programming of the FPGA board from linux. \n\nThis script has only been tested by the author with the iCEblink40-LP1K board, with the M25P10VP flash. Other users have reported that it works with the HX1K flavour boards.\n\nThis tool was created from black-box inspection of the USB datastream between a VM running iceutil and the iCEblink40-LP1K evaluation board. No binary analysis, binary reverse engineering or disassembly was used during the creation of this tool; all information in this file was derived from black-box analysis.\n\nThe iCEBlink boards only support programming of the flash memory used to boot the FPGA. Direct SPI programming of the FPGA does not appear to be possible.\n\n# Requirements:\n\n- python 3 or newer\n- pyusb 1.0 or newer\n\n# Usage \n\n## iCEburn.py\n\nThe main flash programming tool is iCEburn.py. It supports two operation flags, `-e` for erase, and `-w` for write. The most common usage is:\n\n\n`./iCEburn.py -ew path\\_to\\_build.bin`\n\n\n## regtool.py\n\nRegtool is an example test script to poke at registers via the FPGA data link. The argument\n\n -r 0xAB\n\nwill do a read of register 0xAB and print the result to the console. The argument\n\n -w 0xAB:0xCD\n\nwill write register 0xAB with value and print the result to the console. With the stock FPGA firmware\n\n ./regtool.py -w 5:0x48\n\nwill stop the scrolling pattern and fix LED3 on.\n\nRegtool is primarily intended as an example of API usage, and not as a production grade tool.\n\n\n# Bugs\n\n- If using old versions of pyUSB, you may get an error:\n\n AttributeError: \"'NoneType' object has no attribute 'libusb_exit'\"\n\nThis is a bug in pyusb.\n\n\n# TODO\n\n- Add additional flash devices\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/davidcarne/iceBurn", "keywords": "fpga,ice40,programmer", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "iCEburn", "package_url": "https://pypi.org/project/iCEburn/", "platform": "", "project_url": "https://pypi.org/project/iCEburn/", "project_urls": { "Homepage": "https://github.com/davidcarne/iceBurn" }, "release_url": "https://pypi.org/project/iCEburn/0.1.1/", "requires_dist": [ "pyusb" ], "requires_python": ">3.3", "summary": "Programmer for iCEblink40 boards", "version": "0.1.1" }, "last_serial": 4014260, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "219e9af8da992fcf4c11ed5dae9b1156", "sha256": "f8becd8f2dc47b8bce40c619056630e47ecfa6c7d31dccfacafc72d08dbdf362" }, "downloads": -1, "filename": "iCEburn-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "219e9af8da992fcf4c11ed5dae9b1156", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.3", "size": 7243, "upload_time": "2018-06-29T05:27:51", "url": "https://files.pythonhosted.org/packages/6f/9d/23e12ea26b13aba4fafd2e72b077ed5f813f4598540b058e55d2ead5ff4d/iCEburn-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e6a7e5a546ad777ec2c9134a5779ca11", "sha256": "d8ff6e464647e537c9016831af9d723dec7dcfb2f6020e1834a931aad2b49ee7" }, "downloads": -1, "filename": "iCEburn-0.1.1.tar.gz", "has_sig": false, "md5_digest": "e6a7e5a546ad777ec2c9134a5779ca11", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.3", "size": 6208, "upload_time": "2018-06-29T05:27:52", "url": "https://files.pythonhosted.org/packages/03/f3/81afcf2028a42214bf81740acd5a27ddd3cbbdb4e35cfd2c118c2bb597ab/iCEburn-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "219e9af8da992fcf4c11ed5dae9b1156", "sha256": "f8becd8f2dc47b8bce40c619056630e47ecfa6c7d31dccfacafc72d08dbdf362" }, "downloads": -1, "filename": "iCEburn-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "219e9af8da992fcf4c11ed5dae9b1156", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.3", "size": 7243, "upload_time": "2018-06-29T05:27:51", "url": "https://files.pythonhosted.org/packages/6f/9d/23e12ea26b13aba4fafd2e72b077ed5f813f4598540b058e55d2ead5ff4d/iCEburn-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e6a7e5a546ad777ec2c9134a5779ca11", "sha256": "d8ff6e464647e537c9016831af9d723dec7dcfb2f6020e1834a931aad2b49ee7" }, "downloads": -1, "filename": "iCEburn-0.1.1.tar.gz", "has_sig": false, "md5_digest": "e6a7e5a546ad777ec2c9134a5779ca11", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.3", "size": 6208, "upload_time": "2018-06-29T05:27:52", "url": "https://files.pythonhosted.org/packages/03/f3/81afcf2028a42214bf81740acd5a27ddd3cbbdb4e35cfd2c118c2bb597ab/iCEburn-0.1.1.tar.gz" } ] }