Difference between revisions of "TODO"
Jump to navigation
Jump to search
Line 19: | Line 19: | ||
* libsigrok, libsigrokdecode: Proper shared libs setup and version numbers to be able to handle API/ABI compatibility issues sanely later. | * libsigrok, libsigrokdecode: Proper shared libs setup and version numbers to be able to handle API/ABI compatibility issues sanely later. | ||
* Ensure that "make distcheck" works fine, and that you can build sigrok using that generated tarball (i.e. no missing files etc). | * Ensure that "make distcheck" works fine, and that you can build sigrok using that generated tarball (i.e. no missing files etc). | ||
* Make sure all output formats work OK and there are no segfaults. | * <s>Make sure all output formats work OK and there are no segfaults.</s> | ||
* Make sure all combinations of --enable-*/--disable-* options works for configure. | * Make sure all combinations of --enable-*/--disable-* options works for configure. | ||
** There are possible issues if no libusb-device is enabled (e.g. only OLS or only demo). | ** There are possible issues if no libusb-device is enabled (e.g. only OLS or only demo). | ||
Line 27: | Line 25: | ||
* libsigrok.h/libsigrokdecode.h: Only list public API functions. | * libsigrok.h/libsigrokdecode.h: Only list public API functions. | ||
** Prefix all public functions with sigrok_ or sigrokdecode_. | ** Prefix all public functions with sigrok_ or sigrokdecode_. | ||
== sigrok 0.2 features == | == sigrok 0.2 features == | ||
Line 33: | Line 30: | ||
* support OLS file format input and output (https://github.com/jawi/ols/wiki/OLS-data-file-format) | * support OLS file format input and output (https://github.com/jawi/ols/wiki/OLS-data-file-format) | ||
* cli: fix save session, implement load session | * cli: fix save session, implement load session | ||
* sigrok_errno: | |||
** Most functions should return SIGROK_OK or SIGROK_ERR_* (same for LIBSIGROK_OK etc). | |||
** Most backend functions return status as an integer, which is SIGROK_OK if all went well, or SIGROK_ERR_* and similar if an error occurred. | |||
** However there is no way to pass any information back as to what went wrong — and this is important for user-friendliness. | |||
** Perhaps an error code is not enough; maybe something like sigrok_errno(errorcode, "unsupported device") is better. | |||
== | == Future == | ||
* Add support for downloading/installing the Python Windows installer. | |||
* Fix/workaround libusb 1.0 [[Windows]] port issues: | * Fix/workaround libusb 1.0 [[Windows]] port issues: | ||
** Device renumeration not yet supported (needed for FX2 based LAs) | ** Device renumeration not yet supported (needed for FX2 based LAs) | ||
** File descriptor / socket based polling not supported in Windows. Workaround (short-term): Use a thread in sigrok. | ** File descriptor / socket based polling not supported in Windows. Workaround (short-term): Use a thread in sigrok. | ||
* Make sure all optional components are really optional in the build system: | * Make sure all optional components are really optional in the build system: | ||
** Only require Python if the users wants protocol decoders, the rest should also build/compile/run fine without Python installed. | ** Only require Python if the users wants protocol decoders, the rest should also build/compile/run fine without Python installed. | ||
* | * sigrok uses uint64_t as an internal datatype to represent a sample, limiting the number of probes on supported hardware to 64. But high-end logic analyzers can have hundreds of probes. A solution would be to switch to either a roll-our-own byte array type, or use [http://gmplib.org/ GMP]. In any case, the overhead of switching over shouldn't be too bad: the filter code and frontend datafeed callback functions will need to use it, but hardware drivers should have enough with a couple of lightweight wrappers. | ||
== Hardware drivers == | == Hardware drivers == | ||
Line 64: | Line 56: | ||
**zeroplus-logic-cube | **zeroplus-logic-cube | ||
==== Open-source firmware for the FX2 devices | == Contributors needed == | ||
* Add output for latex package [http://www.ctan.org/tex-archive/graphics/pgf/contrib/tikz-timing tikz-timing] | |||
* Open-source firmware for the FX2 devices | |||
<blockquote> | |||
The Cypress FX2-based devices, such as the Saleae Logic and the USBee SX, use only a minimal vendor-provided firmware. The only thing it really does is set the sample rate and turn on the chip's auto-mode. Nevertheless, the vendors provide the firmware as a binary blob, with no source. | The Cypress FX2-based devices, such as the Saleae Logic and the USBee SX, use only a minimal vendor-provided firmware. The only thing it really does is set the sample rate and turn on the chip's auto-mode. Nevertheless, the vendors provide the firmware as a binary blob, with no source. | ||
It would be great if sigrok could ship with an own firmware implementation for these devices. Some links: | It would be great if sigrok could ship with an own firmware implementation for these devices. Some links: | ||
* [http://sdcc.sourceforge.net/ SDCC], the Small Devices C Compiler, is a compiler specifically suited to small MCUs, and has support for the 8051 core in the FX2. | ** [http://sdcc.sourceforge.net/ SDCC], the Small Devices C Compiler, is a compiler specifically suited to small MCUs, and has support for the 8051 core in the FX2. | ||
* [http://allmybrain.com/2008/12/05/an-open-source-library-for-writing-firmware-on-the-cypress-fx2-with-sdcc/ fx2lib] is an open-source library for writing firmware on the FX2. It has a number of interesting functions, including implementing custom USB vendor commands. | ** [http://allmybrain.com/2008/12/05/an-open-source-library-for-writing-firmware-on-the-cypress-fx2-with-sdcc/ fx2lib] is an open-source library for writing firmware on the FX2. It has a number of interesting functions, including implementing custom USB vendor commands. | ||
* [http://gnuradio.org/ GNU Radio]'s USRP2 board has an FX2 on it, and GNU Radio has extensive custom firmware for it. | ** [http://gnuradio.org/ GNU Radio]'s USRP2 board has an FX2 on it, and GNU Radio has extensive custom firmware for it. | ||
</blockquote> | |||
Revision as of 04:43, 16 January 2011
sigrok 0.1 release-critical issues
sigrok 0.1 comprises only sigrok-cli, i.e. GUI and protocol decoders are not part of the release.
- Ensure that segfaults are rare / non-existing in CLI. Use code reviews and valgrind or similar to check.
- Windows port
- At least a working sigrok-cli with the demo driver is required.
- Implement anykey.c replacement.
- Mac OS X port: Make sure sigrok-cli builds, and at least the demo driver works.
Update sigrok-cli man page.Document --continuous option.Document --input-file option.Add examples of basic usage with -o samplerate.
Make sure all output modules handle unknown DF types gracefully (problem in event handlers)- Temporarily remove non-functional options from CLI
- PDs
- session saving/loading
cli: pack list of drivers, modules etc into one option which displays all of those. Update manpage accordingly.- libsigrok, libsigrokdecode: Proper shared libs setup and version numbers to be able to handle API/ABI compatibility issues sanely later.
- Ensure that "make distcheck" works fine, and that you can build sigrok using that generated tarball (i.e. no missing files etc).
Make sure all output formats work OK and there are no segfaults.- Make sure all combinations of --enable-*/--disable-* options works for configure.
- There are possible issues if no libusb-device is enabled (e.g. only OLS or only demo).
- There may be issue if none of the drivers is enabled, print useful error in that case(?)
- libsigrok.h/libsigrokdecode.h: Only list public API functions.
- Prefix all public functions with sigrok_ or sigrokdecode_.
sigrok 0.2 features
- support OLS file format input and output (https://github.com/jawi/ols/wiki/OLS-data-file-format)
- cli: fix save session, implement load session
- sigrok_errno:
- Most functions should return SIGROK_OK or SIGROK_ERR_* (same for LIBSIGROK_OK etc).
- Most backend functions return status as an integer, which is SIGROK_OK if all went well, or SIGROK_ERR_* and similar if an error occurred.
- However there is no way to pass any information back as to what went wrong — and this is important for user-friendliness.
- Perhaps an error code is not enough; maybe something like sigrok_errno(errorcode, "unsupported device") is better.
Future
- Add support for downloading/installing the Python Windows installer.
- Fix/workaround libusb 1.0 Windows port issues:
- Device renumeration not yet supported (needed for FX2 based LAs)
- File descriptor / socket based polling not supported in Windows. Workaround (short-term): Use a thread in sigrok.
- Make sure all optional components are really optional in the build system:
- Only require Python if the users wants protocol decoders, the rest should also build/compile/run fine without Python installed.
- sigrok uses uint64_t as an internal datatype to represent a sample, limiting the number of probes on supported hardware to 64. But high-end logic analyzers can have hundreds of probes. A solution would be to switch to either a roll-our-own byte array type, or use GMP. In any case, the overhead of switching over shouldn't be too bad: the filter code and frontend datafeed callback functions will need to use it, but hardware drivers should have enough with a couple of lightweight wrappers.
Hardware drivers
- Clean up device-specific globals in hardware drivers, to properly permit multiple devices per driver.
asix-sigma- demo
link-mso19- openbench-logic-sniffer
- saleae-logic
- zeroplus-logic-cube
Contributors needed
- Add output for latex package tikz-timing
- Open-source firmware for the FX2 devices
The Cypress FX2-based devices, such as the Saleae Logic and the USBee SX, use only a minimal vendor-provided firmware. The only thing it really does is set the sample rate and turn on the chip's auto-mode. Nevertheless, the vendors provide the firmware as a binary blob, with no source.
It would be great if sigrok could ship with an own firmware implementation for these devices. Some links:
- SDCC, the Small Devices C Compiler, is a compiler specifically suited to small MCUs, and has support for the 8051 core in the FX2.
- fx2lib is an open-source library for writing firmware on the FX2. It has a number of interesting functions, including implementing custom USB vendor commands.
- GNU Radio's USRP2 board has an FX2 on it, and GNU Radio has extensive custom firmware for it.