Difference between revisions of "User:PeterMortensen"

From sigrok
Jump to navigation Jump to search
(→‎Shortcuts: Added an item.)
(→‎Shortcuts: Added an item.)
 
(70 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Recent activity==
==Recent activity==


===2017-04===
===2020-01===
 
Getting insight into what happens with PC keyboards on the signal level and on higher levels (related to repurposing an old PS/2 keyboard (BTC 5349) as a macro keyboard, with the help of an [https://store.arduino.cc/arduino-leonardo-with-headers Arduino Leonardo]):
 
#For the keyboards listed below: Verify that all keys work (by capturing in PulseView and observe there is actually a signal. Note that the accent and umlaut key requires pressing a letter after).
#For the keyboards listed below: Capturing and submitting information for PS/2 PC keyboards (CLK and DATA), including during pressing and releasing  and bidirectional traffic (PC initialising the keyboard, e.g. at connect and/or PC startup). Submit to Git repository "[https://sigrok.org/gitweb/ sigrok-dumps]": Keyboards (all European layout):
##BTC 5349 (102 keys IBM/AT type, corresponding to IBM Model M (Enhanced)). 100 mA (measured). Mechanical keyboard?
##Fujitsu/Siemens ([https://en.wikipedia.org/wiki/File:ISO_keyboard_%28105%29_QWERTY_UK.svg 105 keys] + 10 media keys (sleep, mail, play, stop, speaker controls, etc.). IBM/AT type. ?? mA.
##Microsoft ''"Natural Keyboard Elite"''. [https://en.wikipedia.org/wiki/File:ISO_keyboard_%28105%29_QWERTY_UK.svg 105 keys]. 500 mA (nominal).
##[https://en.wikipedia.org/wiki/Apple_Extended_Keyboard Apple Extended Keyboard II]. [https://en.wikipedia.org/wiki/File:ISO_keyboard_%28105%29_QWERTY_UK.svg 105 keys] + one power key. ??? mA. Mechanical keyboard. Uses [https://en.wikipedia.org/wiki/Apple_Desktop_Bus#Physical ADB], not PS/2 (physically similar, but 4-pin mini-DIN connector). A single pin for data and 'PSW' connected directly to the power switch. All communication is host initiated (polling).
#Consider adding regression tests for the PS/2 decoder. It will include if it handles the 2-3% clock frequency offset for the BTC 5349 (probably, as there is CLK, but that is not the case if decoding as the UART protocol decoder).
#Some higher-level protocol decoder work for PC keyboards (not decided on yet), e.g. identifying scan code sequences as the corresponding keys.
#Some hardware to allow an Arduino Leonardo to pose as a PC ([https://en.wikipedia.org/wiki/Open_collector open collector] outputs). To explore what commands various keyboards responds to and what modes they might enter (for example, Linux allegedly tries put keyboards into "Set 3" (the powerup default is usually "Set 2")). The three LEDs on the keyboard can also be used for user feedback for the macro keyboard.
#Existing content on the wiki, etc. regarding PC keyboards, etc.:
##Keyboards (none found, but are probably not supposed to exist, only actual capturing hardware(?)).
##[[Protocol_decoder:Ps2|PS/2 decoder page]]. Does not exist??
##''"The decode of some PS/2 (or USB) keyboard/mouse traffic could yield an ASCII text file of all the keys that were pressed on the keyboard."'' (on [[Protocol decoder output|a planning page]])
##Look in bug tracker for PS/2, keyboards, etc.
###Bug #1460 - [https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=commitdiff;h=4370348c4fcdbd708715c35a38fdf06c9364d518 ps2: end data byte at rising clock edge of the stop bit]
##Look in Git log
### [https://sigrok.org/gitweb/?p=sigrok-dumps.git;a=commit;h=16931eb480ba5df923c1508f3d83719eddcc5ab3 PS/2 keyboard data submitted on 2019-12-21] (discovered on [https://sigrok.org/gitweb/?p=sigrok-dumps.git;a=log projects / sigrok-dumps.git / commit ])
##Look in IRC log
##Look in blog posts for info on PS/2, etc.
#Updating the wiki
##Add PS/2 low-level reference (details about the CLK signal) to the PS/2 protocol decoder page. IRC ref. [2020-01-07 01:49:07] and [2020-01-07 18:09:02] (UTC+1)). Add to the resources section. Is: http://www.nerdkits.com/videos/interrupts_and_ps2_keyboard/
##Add keyboard documentation, pictures (not decided on yet).
#Ideas:
##Deliberately send data to the keyboard with a parity error.
##Deliberately add noise to the signals (say, wide-band white noise by electronics means), forcing parity errors. This should force the receiver (keyboard or host PC) to respond.
##Send unknown commands to the keyboard. It should respond with 0xFE (in contrast to the normal 0xFA).
##Try all the keyboard commands in ''[https://www.win.tue.nl/~aeb/linux/kbd/scancodes-12.html Keyboard commands]''.
##For a keyboard that is ''both'' capable of USB and PS/2: Record the startup sequence when connected via PS/2 to a PC host. To see if there is any indication on the signal level of such capability.
 
Other:
 
#Updating broken links here. For example, for the CAN protocol decoder.
 
===2019-04===
 
#Building a Docker container for compiling sigrok-cli and PulseView. It is supposed to both run under Linux and Windows (x64).
#Testing a new driver by user ''droghio'' that should work for the [[Tektronix TDS2024B|TDS2024C Tektronix  oscilloscope]]. Some placeholding:
#*Part of "lsusb -v" output: "Bus 008 Device 005: ID 0699:03a6 Tektronix, Inc."
#*Notes to self: the ''"[git://sigrok.org/sigrok-util util]"'' repository (for building and stuff) - [https://github.com/sigrokproject/sigrok-util read-only mirror at GitHub]. [https://github.com/sigrokproject/sigrok-util/blob/master/cross-compile/linux/sigrok-cross-linux Cross-built script].
 
===2018-04===
 
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 [https://sigrok.org/bugzilla/show_bug.cgi?id=1085 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
 
===2017-12===
 
Recording 22483 traces for the purpose of evaluating [https://sigrok.org/bugzilla/show_bug.cgi?id=1085 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.


Using [[PulseView]] to decode data from a Tektronix oscilloscope of SPI communication to a CAN controller, [http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010406 MCP2515].
The time division was 100 µs / division (about 225 bit times max) to always record whole CAN messages - at 10 samples per bit time.


===2017-07===
===2017-07===
Line 12: Line 68:


<pre>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"</pre>
<pre>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"</pre>
===2017-04===
Using [[PulseView]] to decode data from a Tektronix oscilloscope of SPI communication to a CAN controller, [http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010406 MCP2515].
==Task list==
Currently not in priority order.
* Allow import of analog data through CSV files. (Related: fixed  [https://sigrok.org/bugzilla/show_bug.cgi?id=1064 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: [https://sigrok.org/bugzilla/show_bug.cgi?id=1085 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 [[Tektronix TDS2000B series|TDS2000]] series in libsigrok, and thus, by extension, use by the new shiny stuff in PulveView.
===On wiki===
* Change recommended procedure for submitting sample Sigrok files (traces), on ''[[Example dumps#Contributing dumps|Example dumps]]''.
==Glossary==
*''BBB'' [https://en.wikipedia.org/wiki/BeagleBoard#BeagleBone_Black BeagleBone Black]
*''GH'' [http://en.wikipedia.org/wiki/GitHub GitHub]
*''ISTR'' ????
*''LA'' Logic analyser
*''ML'' Mailing list
*''OLS'' ????
*''PR'' Pull request (a Git term). ''Not'' "problem report".
*''SR'' Sigrok
*''srd'' ????
*''WIP'' Work in progress. Mostly related to particular Git commits.
*''PD'' protocol decoder. Non-standard spellings are ''Pd'' and ''pd''.
*''PV'' PulseView. Non-standard spellings are ''Pv'' and ''pv''.
==Some bug reports==
* [https://sigrok.org/bug/1155 Possible problem with the MSO-19 USB driver on Windows]. PulveView crashes at startup if the MSO-19 is connected.


==Interests==
==Interests==
Line 56: Line 157:
*[[Protocol decoder:Uart|UART]]
*[[Protocol decoder:Uart|UART]]
*[[Protocol decoder:Z80|Z80]]
*[[Protocol decoder:Z80|Z80]]
==Meta==
===Creating sub pages for proposals===
E.g., to work on drafts and proposals for new or old wiki entries, without affecting the main wiki (this is not specific for this project). Add this non-existent link ("IRC shenanigans" is an example) somewhere on the user page (it can be deleted later if the reference is not needed):
<syntaxhighlight lang="none">
[[User:PeterMortensen/IRC shenanigans]]
</syntaxhighlight>
Rendered:
[[User:PeterMortensen/IRC shenanigans]]
Open that page and add some content.


==Profile==
==Profile==
Line 65: Line 182:
==Shortcuts==
==Shortcuts==


* [https://sigrok.org/doc/pulseview/0.4.1/manual.html PulseView manual]
* [[Sigrok-cli|sigrok-cli man page]]
* [[Sigrok-cli|sigrok-cli man page]]
* [https://plus.google.com/communities/109843678338531936878 Google+ group for sigrok]
* [https://plus.google.com/communities/109843678338531936878 Google+ group for sigrok] (now defunc as Google+ closed down)
* [[PulseView]]. Includes the command line to get the source code using Git.
* [[PulseView]]. Includes the command line to get the source code using Git.
* [[Downloads#Windows_Download|PulseView, Windows binaries]] (nightly - development). [[Windows#Windows_installers|Alternative location]] (but it seems redundant).
* [[Downloads#Windows_Download|PulseView, Windows binaries]] (nightly - development). [[Windows#Windows_installers|Alternative location]] (but it seems redundant).
* [[Example dumps|Example data dumps]] - sample data in .sr format. Also includes instructions on how to contribute new ones.
* [[Downloads#Linux_AppImage_binaries|PulseView, Linux binaries]] (nightly - development).
* [[Example dumps|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&nbsp;MB in download size, 192&nbsp;MB on disk).
* [[Special:Random|Random page]]
* [[Special:Random|Random page]]
* [https://sigrok.org/jenkins/job/sigrok-native-appimage/ Native app image] (not official yet). Is for Linux and x86 only. See also [https://en.wikipedia.org/wiki/AppImage AppImage] (Wikipedia).
* [[Press]]. List of annotated links, mostly blog posts.
* [[Probe comparison]]
* [[Link Instruments MSO-19|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"). [https://sigrok.org/bugzilla/show_bug.cgi?id=1155 Sigrok bug report for the crash]. [http://www.linkinstruments.com/doupdate_mso19.htm Software download page for it.]
* [[Windows|sigrok, Microsoft Windows page]]
** [[Windows#Device specific USB driver|Device specific USB driver - WinUSB - Zadig]]
* [[AR488]], an Arduino-based [https://en.wikipedia.org/wiki/IEEE-488 GPIB]-to-serial port adapter. That is, serial over USB. And serial on the host side.


===Protocol decoders===
===Protocol decoders===
Line 84: Line 210:
* On Debian (e.g. Raspberry Pi): [[Linux#Building 3|Actual build]]
* On Debian (e.g. Raspberry Pi): [[Linux#Building 3|Actual build]]
* Alternative to following the wiki pages: [https://sigrok.org/gitweb/?p=sigrok-util.git;a=blob;f=cross-compile/linux/sigrok-cross-linux;h=2c8e559efde8cf6ae9a365bf1a4324a33600fae7;hb=HEAD a script that will do most of it]. (''[sigrok-util.git] / cross-compile / linux / sigrok-cross-linux'')
* Alternative to following the wiki pages: [https://sigrok.org/gitweb/?p=sigrok-util.git;a=blob;f=cross-compile/linux/sigrok-cross-linux;h=2c8e559efde8cf6ae9a365bf1a4324a33600fae7;hb=HEAD a script that will do most of it]. (''[sigrok-util.git] / cross-compile / linux / sigrok-cross-linux'')
* Windows:
**On Windows: [[Windows#Native_build_using_MSYS2|Native build using MSYS2]] (but may not really work - sigrok-cli and PulseView are listed as not working).
**[[Windows#Cross-compile_using_MXE|Cross compile on Linux]] (using [http://mxe.cc/ MXE]). The script is [https://sigrok.org/gitweb/?p=sigrok-util.git;a=blob;f=cross-compile/mingw/sigrok-cross-mingw;h=8330406ecd28969d8d29c8ad23df8968a4b9ec68;hb=HEAD /sigrok-util/cross-compile/mingw/sigrok-cross-mingw]. Used for nightlies? [https://sigrok.org/jenkins/job/sigrok-cross-mingw/buildtype=static,debugtype=debug,platform=cross-i686-w64-mingw32/ 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: [https://sigrok.org/jenkins/job/sigrok-cli/ sigrok-cli] with 44 configurations (43 cross-compiles), e.g. cross-x86_64-w64-mingw32 (for Windows 64-bit?).
* The [[Building#Installing_to_a_non-standard_directory_using_LD_LIBRARY_PATH|LD_LIBRARY_PATH trick]]

Latest revision as of 23:51, 16 December 2022

Recent activity

2020-01

Getting insight into what happens with PC keyboards on the signal level and on higher levels (related to repurposing an old PS/2 keyboard (BTC 5349) as a macro keyboard, with the help of an Arduino Leonardo):

  1. For the keyboards listed below: Verify that all keys work (by capturing in PulseView and observe there is actually a signal. Note that the accent and umlaut key requires pressing a letter after).
  2. For the keyboards listed below: Capturing and submitting information for PS/2 PC keyboards (CLK and DATA), including during pressing and releasing and bidirectional traffic (PC initialising the keyboard, e.g. at connect and/or PC startup). Submit to Git repository "sigrok-dumps": Keyboards (all European layout):
    1. BTC 5349 (102 keys IBM/AT type, corresponding to IBM Model M (Enhanced)). 100 mA (measured). Mechanical keyboard?
    2. Fujitsu/Siemens (105 keys + 10 media keys (sleep, mail, play, stop, speaker controls, etc.). IBM/AT type. ?? mA.
    3. Microsoft "Natural Keyboard Elite". 105 keys. 500 mA (nominal).
    4. Apple Extended Keyboard II. 105 keys + one power key. ??? mA. Mechanical keyboard. Uses ADB, not PS/2 (physically similar, but 4-pin mini-DIN connector). A single pin for data and 'PSW' connected directly to the power switch. All communication is host initiated (polling).
  3. Consider adding regression tests for the PS/2 decoder. It will include if it handles the 2-3% clock frequency offset for the BTC 5349 (probably, as there is CLK, but that is not the case if decoding as the UART protocol decoder).
  4. Some higher-level protocol decoder work for PC keyboards (not decided on yet), e.g. identifying scan code sequences as the corresponding keys.
  5. Some hardware to allow an Arduino Leonardo to pose as a PC (open collector outputs). To explore what commands various keyboards responds to and what modes they might enter (for example, Linux allegedly tries put keyboards into "Set 3" (the powerup default is usually "Set 2")). The three LEDs on the keyboard can also be used for user feedback for the macro keyboard.
  6. Existing content on the wiki, etc. regarding PC keyboards, etc.:
    1. Keyboards (none found, but are probably not supposed to exist, only actual capturing hardware(?)).
    2. PS/2 decoder page. Does not exist??
    3. "The decode of some PS/2 (or USB) keyboard/mouse traffic could yield an ASCII text file of all the keys that were pressed on the keyboard." (on a planning page)
    4. Look in bug tracker for PS/2, keyboards, etc.
      1. Bug #1460 - ps2: end data byte at rising clock edge of the stop bit
    5. Look in Git log
      1. PS/2 keyboard data submitted on 2019-12-21 (discovered on projects / sigrok-dumps.git / commit )
    6. Look in IRC log
    7. Look in blog posts for info on PS/2, etc.
  7. Updating the wiki
    1. Add PS/2 low-level reference (details about the CLK signal) to the PS/2 protocol decoder page. IRC ref. [2020-01-07 01:49:07] and [2020-01-07 18:09:02] (UTC+1)). Add to the resources section. Is: http://www.nerdkits.com/videos/interrupts_and_ps2_keyboard/
    2. Add keyboard documentation, pictures (not decided on yet).
  8. Ideas:
    1. Deliberately send data to the keyboard with a parity error.
    2. Deliberately add noise to the signals (say, wide-band white noise by electronics means), forcing parity errors. This should force the receiver (keyboard or host PC) to respond.
    3. Send unknown commands to the keyboard. It should respond with 0xFE (in contrast to the normal 0xFA).
    4. Try all the keyboard commands in Keyboard commands.
    5. For a keyboard that is both capable of USB and PS/2: Record the startup sequence when connected via PS/2 to a PC host. To see if there is any indication on the signal level of such capability.

Other:

  1. Updating broken links here. For example, for the CAN protocol decoder.

2019-04

  1. Building a Docker container for compiling sigrok-cli and PulseView. It is supposed to both run under Linux and Windows (x64).
  2. Testing a new driver by user droghio that should work for the TDS2024C Tektronix oscilloscope. Some placeholding:

2018-04

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:

  1. 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

2017-12

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.

2017-07

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"

2017-04

Using PulseView to decode data from a Tektronix oscilloscope of SPI communication to a CAN controller, MCP2515.

Task list

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 + 16if 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.

On wiki

  • Change recommended procedure for submitting sample Sigrok files (traces), on Example dumps.

Glossary

  • BBB BeagleBone Black
  • GH GitHub
  • ISTR ????
  • LA Logic analyser
  • ML Mailing list
  • OLS ????
  • PR Pull request (a Git term). Not "problem report".
  • SR Sigrok
  • srd ????
  • WIP Work in progress. Mostly related to particular Git commits.
  • PD protocol decoder. Non-standard spellings are Pd and pd.
  • PV PulseView. Non-standard spellings are Pv and pv.

Some bug reports

Interests

I am mostly interested in:

Protocol decoders

Non-empty wiki pages

Currently (2017-07-08), 28 of 77 protocol decoders (36%) have non-empty pages here on the wiki:

Meta

Creating sub pages for proposals

E.g., to work on drafts and proposals for new or old wiki entries, without affecting the main wiki (this is not specific for this project). Add this non-existent link ("IRC shenanigans" is an example) somewhere on the user page (it can be deleted later if the reference is not needed):

[[User:PeterMortensen/IRC shenanigans]]

Rendered:

User:PeterMortensen/IRC shenanigans

Open that page and add some content.

Profile

Profile: see my Wikipedia user page.

Credentials: more than 5000 edits on the English Wikipedia.

Shortcuts

Protocol decoders

Building sigrok