{ "info": { "author": "Vincent Pelletier", "author_email": "plr.vincent@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Information Technology", "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)", "Operating System :: OS Independent" ], "description": "User-space driver and tools for ITI1480A USB analyser.\n\nHome: http://github.com/vpelletier/ITI1480A-linux\n\nDisclaimer\n==========\n\nI am not affiliated with International Test Instruments in any way.\nITI kindly accepted that I start reverse-engineering their windows-only\nsoftware so I could use with Linux the I bought from them.\nI had no privileged access to any documentation of any kind.\n\nDependencies\n============\n\n- Python_ 2.4+ (though mostly tested with 2.7 nowadays) or pypy_ for ~7 times\n faster parsing\n\n- libusb_ 1.0\n\n- python-libusb1_\n\n- cycfx2prog_\n\n- udev (should come from your distribution)\n\n- ply_\n\nFirmwares\n---------\n\nThe ITI1480A analyser is composed of 2 programable chips:\n\n- A Cypress FX2, to be programmed on first device enumeration after connection\n to analysis computer. Its firmware transmits commands send by analysis\n computer to the main analyser chip and streams capture data back.\n\n This chip controls the \"Host power\" led: if the firmware is properly loaded,\n this led must be on.\n\n- An Altera Cyclone 2 FPGA, which produces data which is stored in capture\n files by listening to events from the link under test. Its firmware is\n loaded at the beginning of each capture session.\n\n This chip controls the \"Link power\" and \"Link activity\" leds.\n\nJust for completeness, there is a small flash chip which merely contains\npower-on vendor and device identifiers so an unprogrammed ITI1480A FX2 can\nstill be distinguished from any other device's FX2.\n\nFX2\n+++\n\nA free software implementation of this firmware exists, so you have two\noptions:\n\n- Either using the proprietary firmware from\n `1480A USB Protocol Analyzer Software`_, found under the name `ITI1480A.spt`\n in installation directory.\n\n- Or provided Free Software firmware, available pre-built or from source. If\n you want to build it you need:\n\n - fx2lib_\n\n - sdcc_\n\nCyclone 2\n+++++++++\n\nNo free software implementation exist (yet). Contributions welcome.\n\nI the mean time, you need to use the proprietary implementation from\n`1480A USB Protocol Analyzer Software`_, found under the name\n`ulpitest.rbf` in installation directory.\n\n`4.1.0b ultitest.rbf`_ (latest version as of this writing) has been released\nstand-alone.\n\nInstallation\n============\n\nNotes: paths and udev group are suitable for at least Debian. You may need to\nedit udev/ITI1480A.rules and adapt below paths.\n\n::\n\n python setup.py install\n cp udev/ITI1480A.rules /etc/udev/rules.d/\n cp udev/ITI1480A.sh /lib/udev/\n wget -O /lib/firmware/ITI1480A.rbf http://www.internationaltestinstruments.com/Downloads/UlpiTest.rbf\n\n- ITI's FX2 firmware::\n\n spt2hex /path/to/ITI1480A.spt\n cp ITI1480A_1.ihx /lib/firmware/ITI1480A.ihx\n\n spt2hex may generate several files (ITI1480A_0.ihx, ITI1480A_1.ihx, ...), use\n the highest-numbered one.\n\n- Free Software FX2 firmware:\n\n To rebuild from source::\n\n FX2LIBDIR=/path_to/fx2lib/ make -C CY7C68013A\n\n To install::\n\n cp CY7C68013A/build/ITI1480A.ihx /lib/firmware/\n\nTo test installation, (re)plug your protocol analyser. If the \"Host power\" led\nturns on within a few seconds, your FX2 firmware was successfully installed and\nloaded, your analyser is ready to use.\n\nUsage\n=====\n\nTo start a capture::\n\n iti1480a-capture > captured.usb\n\nSend signal SIGINT (^C) or SIGTERM to stop the capture, wait analyser to push\nall data to host and exit.\n\nSend signal SIGTSTP (^Z) to pause the analyser, SIGCONT (fg) to resume.\n\nTo get a human-friendly text dump of a previos capture::\n\n iti1480a-display -i captured.usb\n\nTo wath running capture without saving it::\n\n iti1480a-capture | iti1480a-display -f\n\nTo watch running capture and save it for later analysis::\n\n iti1480a-capture | iti1480a-display -ft captured.usb\n\nBy default, iti1480a-display hides a lot of verbose events, like NAK'ed and SOF\ntransactions, or EOP events. You can tweak its filtering using -q (quieter) and\n-v (more verbose). Default verbosity level is 0, -q decrements it and -v\nincrements it. Verbosity levels go from -1 (most quiet) to 4 (most verbose).\n\nExample outputs: https://github.com/vpelletier/ITI1480A-linux/tree/master/examples\n\nRed timestamps mean that output is detected as being non-chronological. This\nhappens for implementation detail reasons, and is considered a bug\n(`issue #4`_).\n\n.. _Python: http://www.python.org/\n.. _pypy: http://www.pypy.org/\n.. _libusb: http://www.libusb.org/wiki/libusb-1.0\n.. _python-libusb1: http://pypi.python.org/pypi/libusb1\n.. _cycfx2prog: http://www.triplespark.net/elec/periph/USB-FX2/software/\n.. _1480A USB Protocol Analyzer Software: http://www.internationaltestinstruments.com/\n.. _4.1.0b ultitest.rbf: http://www.internationaltestinstruments.com/Downloads/UlpiTest.rbf\n.. _ply: http://www.dabeaz.com/ply/\n.. _fx2lib: https://github.com/djmuhlestein/fx2lib\n.. _sdcc: http://sdcc.sourceforge.net\n.. _issue #4: https://github.com/vpelletier/ITI1480A-linux/issues/4\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/vpelletier/ITI1480A-linux", "keywords": "usb protocol analyser ITI1480A", "license": "GPLv2+", "maintainer": null, "maintainer_email": null, "name": "ITI1480A-linux", "package_url": "https://pypi.org/project/ITI1480A-linux/", "platform": "any", "project_url": "https://pypi.org/project/ITI1480A-linux/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/vpelletier/ITI1480A-linux" }, "release_url": "https://pypi.org/project/ITI1480A-linux/3.0/", "requires_dist": null, "requires_python": null, "summary": "Tools for the ITI1480A usb protocol analyser", "version": "3.0" }, "last_serial": 1531693, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "7eb4c88baa0ecbc8f0fe91e4f54c6418", "sha256": "810ab64adc6e1a8b40361fbf5b9711a4630c87a9fc4ff32e9a0d9910c892a94e" }, "downloads": -1, "filename": "ITI1480A-linux-1.0.tar.gz", "has_sig": false, "md5_digest": "7eb4c88baa0ecbc8f0fe91e4f54c6418", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12029, "upload_time": "2012-01-05T20:31:44", "url": "https://files.pythonhosted.org/packages/53/a8/9d64c5a14b5961280286a2d285e93def41a1291a3dd19c6e61afba3054ed/ITI1480A-linux-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "d0d5747e89f11b69c5194689471af414", "sha256": "864a1d409e484171d67fb3067626f9c2f24e9c5d7db0b1c26d406b0c1320e714" }, "downloads": -1, "filename": "ITI1480A-linux-1.0.1.tar.gz", "has_sig": false, "md5_digest": "d0d5747e89f11b69c5194689471af414", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12410, "upload_time": "2012-01-05T20:52:27", "url": "https://files.pythonhosted.org/packages/99/37/90fc265b85dd6bbb22ef47314500bb100cc888abb614119f2de0dd8c1460/ITI1480A-linux-1.0.1.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "d8742751b533a8b341ac6552a7723305", "sha256": "fa311277f122e7ac7d8896bdcdd746ca5f17aae89ecc298ddaa437de10dbea44" }, "downloads": -1, "filename": "ITI1480A-linux-1.1.tar.gz", "has_sig": false, "md5_digest": "d8742751b533a8b341ac6552a7723305", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15921, "upload_time": "2012-01-08T21:03:42", "url": "https://files.pythonhosted.org/packages/5c/43/7147c64731715e37e841a6c9f5f59194caaa27ab55de532040028edecc2d/ITI1480A-linux-1.1.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "1c278636e734f1e617d79eebc2fa0ff1", "sha256": "7b388b04e65ba98682f3b3071126186a9179ee246357889296a45b3ffed2984e" }, "downloads": -1, "filename": "ITI1480A-linux-2.0.tar.gz", "has_sig": false, "md5_digest": "1c278636e734f1e617d79eebc2fa0ff1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18412, "upload_time": "2015-01-24T15:03:12", "url": "https://files.pythonhosted.org/packages/57/a1/8d9f079f59bfdfbf9b501bc9a76bf308d307fb52ac95db74a8fff3aebd74/ITI1480A-linux-2.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "d5c36db56eea8d88c0d7479438c34f84", "sha256": "46614aab2542cde611243184928a3286feaf4e481de65068a1e90b8ea4cfebbd" }, "downloads": -1, "filename": "ITI1480A-linux-2.0.1.tar.gz", "has_sig": false, "md5_digest": "d5c36db56eea8d88c0d7479438c34f84", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18429, "upload_time": "2015-01-24T15:45:40", "url": "https://files.pythonhosted.org/packages/5e/1f/590766c9b84a31fb0f8771033997f48ae771bc890629d2d5352d5b673133/ITI1480A-linux-2.0.1.tar.gz" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "18de2ccbc15011f6d1df798972a6785b", "sha256": "be2dabe4d53984ac5ae34077daee791012eaed6c3cb02c95b1aa99d6cf5f2d71" }, "downloads": -1, "filename": "ITI1480A-linux-2.1.tar.gz", "has_sig": false, "md5_digest": "18de2ccbc15011f6d1df798972a6785b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18849, "upload_time": "2015-01-24T21:43:12", "url": "https://files.pythonhosted.org/packages/cc/dd/857f58e22e1932a493f8789039b04ab27a4203b0ee90fc465c9ea4683c6a/ITI1480A-linux-2.1.tar.gz" } ], "3.0": [ { "comment_text": "", "digests": { "md5": "4b698d6d56cec59d48d6143cd0e90654", "sha256": "3b590a028ff05182c92e8fca5f7137019121afa6c7a5bf5cbd1d995b409e2047" }, "downloads": -1, "filename": "ITI1480A-linux-3.0.tar.gz", "has_sig": false, "md5_digest": "4b698d6d56cec59d48d6143cd0e90654", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24125, "upload_time": "2015-05-03T17:16:28", "url": "https://files.pythonhosted.org/packages/3f/55/3378b0f9a74c228e711051da3f21e5cb4f63d39d25983e60e5ed43ef17a5/ITI1480A-linux-3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4b698d6d56cec59d48d6143cd0e90654", "sha256": "3b590a028ff05182c92e8fca5f7137019121afa6c7a5bf5cbd1d995b409e2047" }, "downloads": -1, "filename": "ITI1480A-linux-3.0.tar.gz", "has_sig": false, "md5_digest": "4b698d6d56cec59d48d6143cd0e90654", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24125, "upload_time": "2015-05-03T17:16:28", "url": "https://files.pythonhosted.org/packages/3f/55/3378b0f9a74c228e711051da3f21e5cb4f63d39d25983e60e5ed43ef17a5/ITI1480A-linux-3.0.tar.gz" } ] }