Submitting comprehensive sample data for CAN bus, both 11-bit and 29-bit messages, and corresponding test cases (mostly for regression test - especially regression for the 2018-04-12 fix to the decoding at the end of the CRC part).
Notes to self:
- Original acquired analog data: C:\temp2\2017-12-23\CAN decoder, new stuff bit handling at the end of the CRC segment\Data67\In\ACQ000009_Tektronix.txt
Recording 22483 traces for the purpose of evaluating a proposed fix to the CAN protocol decoder (actually only changing a single number from 16 to 17), stuff bit at the very end of the CRC segment, with a modified trigger scheme:
- Change the position of the trigger point to the end (right) so there is always a CAN message in the trace (for the previous), but still 26 µs recessive.
The time division was 100 µs / division (about 225 bit times max) to always record whole CAN messages - at 10 samples per bit time.
Using the sigrok command-line ("sigrok-cli") to bulk process data derived from Tektronix oscilloscope data of 250 kbit/s CAN traffic on a real-world system (mobile cranes). The first sample data set is 5335 oscilloscope traces obtained with the trigger set to a negative pulse on CAN-H (to start off at the end of a CAN message) - corresponding to 6.5 recessive bits, 26 µsec (detecting the space in-between CAN messages). Sometimes there is a CAN message right after this, sometimes it is a bit delayed, and sometimes it is completely empty.
A sample command line (on Windows) is:
sigrok-cli -P can:bitrate=250000:can_rx="CAN RX" -P timing:data="CAN RX" -I csv:header=true:samplerate=5000000 -i "T:\stdHMF\UserData\scripts\Tektronix2PulseView\_PulseView_AllChannels_ACQ000001_Tektronix_f5000000.txt"
Currently not in priority order.
- Allow import of analog data through CSV files. (Related: fixed bug 1064 - locale issue, decimal point, "," vs. ".".).
- Add detection of error frames to the CAN protocol decoder
- Add support for the gigga watt EEVBlog multimeter (Bluetooth, etc.)
- Add a snap feature to the "cursor" (blue) in PulveView
- Change number of significant digits for the time display in the "cursor" (blue) in PulveView
- Submit selected sample traces for CAN decoder change (for CRC segment) validation. With and without stuff bits in various places. With and without timing deviations. (Related: bug 1085, celeron55's fix, if len(self.bits) > self.last_databit + 16 → if len(self.bits) > self.last_databit + 17 (16 → 17)).
- Add support for the TDS2000 series in libsigrok, and thus, by extension, use by the new shiny stuff in PulveView.
- Change recommended procedure for submitting sample Sigrok files (traces), on Example dumps.
I am mostly interested in:
- The CAN protocol decoder (that page is currently empty, but it is listed on the protocol decoders page)
- CAN bus loggers, like IXXAT's (now acquired by HMS) USB-to-CAN compact/USB-to-CAN V2 and Kvaser's Memorator.
- The higher-level CANopen protocol (on top of CAN)
Non-empty wiki pages
Currently (2017-07-08), 28 of 77 protocol decoders (36%) have non-empty pages here on the wiki:
- ARM ETMV3
- ARM ITM
- ARM TPIU
- AVR PDI
- IR NEC
- RGB LED SPI
- SPI flash
- Stepper motor
Profile: see my Wikipedia user page.
Credentials: more than 5000 edits on the English Wikipedia.
- sigrok-cli man page
- Google+ group for sigrok
- PulseView. Includes the command line to get the source code using Git.
- PulseView, Windows binaries (nightly - development). Alternative location (but it seems redundant).
- Example data dumps - sample data in .sr format. Also includes instructions on how to contribute new ones. Includes the command line to get the whole thing using Git (as of 2017-11-26, 2286 "objects", 724 .sr files, about 65 MB in download size, 192 MB on disk).
- Random page
- Native app image (not official yet). Is for Linux and x86 only. See also AppImage (Wikipedia).
- Press. List of annotated links, mostly blog posts.
- Probe comparison
- MSO-19. Mixed oscilloscope and logic analyser by Link Instruments that (or rather its driver) crashes PulveView at startup when connected (until some time in mid 2018(?)). Some reverse engineering has been done in 2012, but it is not supported (has status "Planned"). Sigrok bug report for the crash. Software download page for it.
- The CAN bus protocol decoder
- Protocol decoder HOWTO
- Protocol decoder API
- Supported protocol decoders
- On Debian (e.g. Raspberry Pi): Installing required software
- On Debian (e.g. Raspberry Pi): Actual build
- Alternative to following the wiki pages: a script that will do most of it. ([sigrok-util.git] / cross-compile / linux / sigrok-cross-linux)
- On Windows: Native build using MSYS2 (but may not really work - sigrok-cli and PulseView are listed as not working).
- Cross compile on Linux (using MXE). The script is /sigrok-util/cross-compile/mingw/sigrok-cross-mingw. Used for nightlies? Jenkins page for the debug version.
- The Jenkins thingy - automatic build, e.g. nightlies for PulseView and "AppImage" (self-contained executable for x86 Linux). Sample: sigrok-cli with 44 configurations (43 cross-compiles), e.g. cross-x86_64-w64-mingw32 (for Windows 64-bit?).