Difference between revisions of "TODO"
Jump to navigation
Jump to search
Uwe Hermann (talk | contribs) (Updates.) |
|||
Line 6: | Line 6: | ||
* <s>Don't initialize and scan for hardware on all plugins if the '''-d <plugin>''' option is used; instead, only initialize the specified plugin.</s> | * <s>Don't initialize and scan for hardware on all plugins if the '''-d <plugin>''' option is used; instead, only initialize the specified plugin.</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). | ** <s>There are possible issues if no libusb-device is enabled (e.g. only OLS or only demo).</s> | ||
** There may be issue if none of the drivers is enabled, print useful error in that case(?) | ** There may be issue if none of the drivers is enabled, print useful error in that case(?) | ||
* <s>output modules shouldn't assume the device has SR_DI_CUR_SAMPLERATE, and segfault when they get NULL -- HWCAPs should be checked for SR_HWCAP_SAMPLERATE.</s> | * <s>output modules shouldn't assume the device has SR_DI_CUR_SAMPLERATE, and segfault when they get NULL -- HWCAPs should be checked for SR_HWCAP_SAMPLERATE.</s> | ||
* libsigrok.h/libsigrokdecode.h: Only list public API functions. | * libsigrok.h/libsigrokdecode.h: Only list public API functions. | ||
** <s>Prefix all public functions with | ** <s>Prefix all public functions with sr_ or srd_.</s> | ||
* Windows port: Implement anykey.c replacement. | * Windows port: Implement anykey.c replacement. | ||
* <s>CLI: Restructure command line option syntax.</s> | * <s>CLI: Restructure command line option syntax.</s> | ||
Line 17: | Line 17: | ||
* <s>Fix segfaults in protocol decoders, e.g. '''sigrok-cli --samples 2050 -a transitioncounter'''.</s> | * <s>Fix segfaults in protocol decoders, e.g. '''sigrok-cli --samples 2050 -a transitioncounter'''.</s> | ||
* demo driver: Add a mechanism to set/report a samplerate, needed for some output file formats and other stuff. | * demo driver: Add a mechanism to set/report a samplerate, needed for some output file formats and other stuff. | ||
* Finish protocol decoder API design | ** hex output: Not all lines/columns are of the same length (as they are with real LAs). | ||
** VCD: All samplenumbers are 0 (instead of the proper samplecount). | |||
** OLS, gnuplot: Hangs on MinGW for some reasons (not sure if related). | |||
* Finish protocol decoder API design. | |||
== sigrok 0.3 == | == sigrok 0.3 == | ||
Line 35: | Line 38: | ||
** have OLS driver use udev if available, fall back to serial port probing otherwise | ** have OLS driver use udev if available, fall back to serial port probing otherwise | ||
** Find alternative to udev for windows and macos | ** Find alternative to udev for windows and macos | ||
* Add support for downloading/installing the Python Windows installer. | * <s>Add support for downloading/installing the Python Windows installer.</s> | ||
* 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) | ||
Line 47: | Line 50: | ||
** However there is no way to pass any information back as to what went wrong — and this is important for user-friendliness. | ** 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. | ** Perhaps an error code is not enough; maybe something like sigrok_errno(errorcode, "unsupported device") is better. | ||
* Clean up device-specific globals in hardware drivers, to properly permit multiple devices per driver. | |||
** <s>asix-sigma</s> | |||
** <s>demo</s> (not relevant) | |||
** <s>link-mso19</s> | |||
** openbench-logic-sniffer | |||
** saleae-logic | |||
** zeroplus-logic-cube | |||
== | == Contributors wanted == | ||
* Add output for latex package [http://www.ctan.org/tex-archive/graphics/pgf/contrib/tikz-timing tikz-timing]. | |||
* Linux distro packages for non-Debian distros. | |||
* FreeBSD packages/ports. | |||
* 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 | * Open-source firmware for the FX2 devices | ||
<blockquote> | <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> | </blockquote> |
Revision as of 01:36, 3 February 2011
sigrok 0.2
Support OLS file format output (https://github.com/jawi/ols/wiki/OLS-data-file-format).CLI: Fix save sessionimplement load session.Don't initialize and scan for hardware on all plugins if the -d <plugin> option is used; instead, only initialize the specified plugin.- 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(?)
output modules shouldn't assume the device has SR_DI_CUR_SAMPLERATE, and segfault when they get NULL -- HWCAPs should be checked for SR_HWCAP_SAMPLERATE.- libsigrok.h/libsigrokdecode.h: Only list public API functions.
Prefix all public functions with sr_ or srd_.
- Windows port: Implement anykey.c replacement.
CLI: Restructure command line option syntax.libsigrok, libsigrokdecode: Proper shared libs setup and version numbers to be able to handle API/ABI compatibility issues sanely later.Also, provide correct and complete libsigrok.pc/libsigrokdecode.pc files.
Fix segfaults in protocol decoders, e.g. sigrok-cli --samples 2050 -a transitioncounter.- demo driver: Add a mechanism to set/report a samplerate, needed for some output file formats and other stuff.
- hex output: Not all lines/columns are of the same length (as they are with real LAs).
- VCD: All samplenumbers are 0 (instead of the proper samplecount).
- OLS, gnuplot: Hangs on MinGW for some reasons (not sure if related).
- Finish protocol decoder API design.
sigrok 0.3
- stackable protocol decoder implementation
- modular filter system
- take arguments in the regular thing:key=value format
- integrate current probe compression filter
- resampling module: sample up/down based on factor argument
- noise filter: filter out pulses shorter than the samplerate's period
- support OLS file format input
Future
- udev:
- Make udev optional, only build MSO driver if it's available
- have OLS driver use udev if available, fall back to serial port probing otherwise
- Find alternative to udev for windows and macos
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.
- 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.
- Clean up device-specific globals in hardware drivers, to properly permit multiple devices per driver.
asix-sigmademo(not relevant)link-mso19- openbench-logic-sniffer
- saleae-logic
- zeroplus-logic-cube
Contributors wanted
- Add output for latex package tikz-timing.
- Linux distro packages for non-Debian distros.
- FreeBSD packages/ports.
- 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.