<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected{color:[[ColorPalette::PrimaryDark]];
	background:[[ColorPalette::TertiaryPale]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity=60)';}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0px; top:0px;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0 0; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0;}
.wizardFooter .status {padding:0 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

.fieldsetFix {border:0; padding:0; margin:1px 0px;}

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])

<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]

----
Also see [[AdvancedOptions]]
<<importTiddlers>>
BitLib is the BitScope Programmer's Library.

BitLib is an external library that contains useful BitScope functions. With BitLib, a user can control all aspects of the BitScope from any programming language, as long as that language supports external libraries. BitLib functions include triggering, capturing, waveform generator functions, channel setup and streaming.

Languages that have been used to create BitLib applications include C/C++, Delphi, Python, MatLab, LabView, Ruby and VB.

BitLib is available for free download from www.bitscope.com.
 
The BitScope Connection Manager is an application that searches your system for connected BitScopes.

The Connection Manager manages the [[Probe File]] for use with other applications. It also allows you to test and configure BitScopes.

The Connection Manager can be downloaded from the website www.bitscope.com.
BitScope WaveMeter is an application that supports automatic measurement of waveforms captured by BitScope. It has a [[Frequency Detector]] that will lock onto the signal's frequency, and scale the BitScope's [[attenuation range]] to optimize the voltage resolution. WaveMeter displays [[useful information|Measurements]] on the signal including frequency, rms voltage, peak to peak voltage, sample rate etc.

To launch the program, run the file BitScopeMeter.exe in Windows, or bitscope-meter in Linux.

To begin, you will need to use a [[probe file|Probe File]] link or filename to connect to a BitScope. If you are unsure of the name of your probe file link, use the [[BitScope Connection Manager]] application to automatically locate your BitScope. On WaveMeter, select SETUP to enter the BitScope's link, and press CONNECT to attempt a connection. Note that WaveMeter will attempt to open each link in the probe file until it finds a successful link.

Once connected, WaveMeter should start capturing automatically. For details on operating the capture cycle, please refer to [[Operating WaveMeter]].

WaveMeter is built on top of the [[BitLib programming library|BitLib]], which is available for download from www.bitscope.com.
Once you are connected to a BitScope, it may be necessary to calibrate the inputs to zero.

To calibrate a BitScope, each input channel and attenuation range must be sampled. Note that when a calibration is performed, ALL inputs should be ground referenced.

To start the calibration procedure, select File->Calibrate from the Menu. You will be prompted to ground reference all inputs on the BitScope. Once all inputs are grounded, press OK to begin. The text panel on the WaveMeter should then say 'PERFORMING CALIBRATION'. Please wait until the procedure is complete.

Once completed, the ground level should be closer to zero.

If an error occurred in the calibration process, it is best to delete the calibration file bitlib.cal from your system. The calibration file can be found in the following locations... 
On Windows:
{{{
C:\Documents and Settings\<user>\Local Settings\Application Data\BitScope\state\bitlib.cal
}}}
where <user> is your current username.

On Linux:
{{{
~/.bitscope/state/bitlib.cal
}}}
Perform the calibration procedure again to re-create this file.



The capture buffer size adjusts the amount of data that is collected in one frame. The capture buffer size will determine the resolution of the waveform, and also the range of frequencies that can be detected.

You can change the range from the menu with Options -> Capture Buffer Size. The three options are Small, Medium and Large. The sizes are as follows
* Small : 100
* Medium : 400
* Large : 1600

The frequency ranges that result from this buffer size are roughly equal to the following:
* Small : 400Hz <-> 2.5MHz
* Medium : 60Hz <-> 400kHz
* Large :  15Hz <-> 150kHz

The WaveMeter will operate in two different Capture Modes, Auto and Manual. The current state is displayed in the top center of the display screen. Clicking on this text will switch between the modes. In auto mode, the WaveMeter will attempt to lock onto the waveform by adjusting the BitScope's sample rate. In manual mode, the user will need to control the sample rate.

!!Manual mode
If the [[Frequency Detector]] cannot find a lock on a frequency, or you wish to control the timebase yourself, you can switch to manual mode.

To switch to manual mode, click 'Auto' at the top of the display panel. This text should change to 'Manual'. You can also press Ctrl-M to switch to manual mode. In manual mode, clicking on the two arrows at the bottom of the display panel will now move the timebase up and down. Also, Ctrl-<left arrow> and Ctrl-<right arrow> can control the left and right arrows respectively.

When moving the timebase to a faster sample rate, once the maximum BitScope rate is reached, clicking the right arrow will then start to decrease the buffer size. This allows higher frequency signals to be detected. Note, however, that the resolution will be reduced. Moving back down the sample rates with the left arrow or switching to auto mode will return the buffer size to its original state. Conversely, when moving the timebase to a slower sample rate, once the minimum BitScope rate is reached, clicking the left arrow will begin to increase the buffer size. A larger buffer allows lower frequencies to be measured at higher resolution, but may slow down the application. 

!!Auto mode
To switch to auto mode, click 'Manual' at the top of the display panel. The text should change to 'Auto'. Ctrl-F will also switch to auto mode. In auto mode, WaveMeter will use the Frequency Detector to lock onto a frequency. If the detector cannot find a frequency, or is locked onto an alias, try [[restarting the search|Finding A Lock]].

In auto mode, the right and left arrows will attempt to find a frequency. Clicking the right arrow, or pressing Ctrl-<right-arrow>, will commence a frequency search from the fastest sample rate, usually 40MS/sec. Clicking the left arrow, or pressing Ctrl-<left-arrow>, will commence a frequency search from the slowest sample rate, usually ~10kS/sec. 

Note that when searching from the slowest sample rate (left arrow), the frequency may lock onto an alias. You should make sure that both a right-search and a left-search return the same frequency.

Also note that the signal you are attempting to measure may have a frequency that is too fast or too slow for the current sample rate. In this case, you may need to change the [[Capture Buffer Size]] to lock onto the frequency.
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #3af
PrimaryMid: #008
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #000
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
config.options.chkAnimate             = false;
To connect to a BitScope, you will need to enter a [[probe file|Probe File]] link into the setup panel. To access the setup panel, press SETUP, or select File -> Setup.

The link name has the form 
{{{
PROTOCOL:ADDRESS
}}}
where PROTOCOL is one of UDP, USB, TTY or NIL. Address is the IP address or com port of the BitScope. For more information on links, see [[Probe File]]. If you do not know the link name for your BitScope or cannot connect, please use the [[BitScope Connection Manager]] to locate your BitScope. The Connection Manager is a free application that can be dowloaded from www.bitscope.com.

If connection is successful, the panel should light up and the connection text above the main text display should display information about the selected BitScope such as 'BS325 | Y5Tzd14 | UDP:192.168.1.75'. If unsuccessful, the panel will report that no devices were found. If no BitScopes were found, check that the entry in the [[probe file|Probe File]] is correct, and that your BitScope is correctly attached. Use the Connection Manager if you have further difficulties connecting to your BitScope.
[[Getting Started]]
/***
|Name|DisableWikiLinksPlugin|
|Source|http://www.TiddlyTools.com/#DisableWikiLinksPlugin|
|Version|1.6.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|selectively disable TiddlyWiki's automatic ~WikiWord linking behavior|
This plugin allows you to disable TiddlyWiki's automatic ~WikiWord linking behavior, so that WikiWords embedded in tiddler content will be rendered as regular text, instead of being automatically converted to tiddler links.  To create a tiddler link when automatic linking is disabled, you must enclose the link text within {{{[[...]]}}}.
!!!!!Usage
<<<
You can block automatic WikiWord linking behavior for any specific tiddler by ''tagging it with<<tag excludeWikiWords>>'' (see configuration below) or, check a plugin option to disable automatic WikiWord links to non-existing tiddler titles, while still linking WikiWords that correspond to existing tiddlers titles or shadow tiddler titles.  You can also block specific selected WikiWords from being automatically linked by listing them in [[DisableWikiLinksList]] (see configuration below), separated by whitespace.  This tiddler is optional and, when present, causes the listed words to always be excluded, even if automatic linking of other WikiWords is being permitted.  

Note: WikiWords contained in default ''shadow'' tiddlers will be automatically linked unless you select an additional checkbox option lets you disable these automatic links as well, though this is not recommended, since it can make it more difficult to access some TiddlyWiki standard default content (such as AdvancedOptions or SideBarTabs)
<<<
!!!!!Configuration
<<<
<<option chkDisableWikiLinks>> Disable ALL automatic WikiWord tiddler links
<<option chkAllowLinksFromShadowTiddlers>> ... except for WikiWords //contained in// shadow tiddlers
<<option chkDisableNonExistingWikiLinks>> Disable automatic WikiWord links for non-existing tiddlers
Disable automatic WikiWord links for words listed in: <<option txtDisableWikiLinksList>>
Disable automatic WikiWord links for tiddlers tagged with: <<option txtDisableWikiLinksTag>>
<<<
!!!!!Revisions
<<<
2008.07.22 [1.6.0] hijack tiddler changed() method to filter disabled wiki words from internal links[] array (so they won't appear in the missing tiddlers list)
2007.06.09 [1.5.0] added configurable txtDisableWikiLinksTag (default value: "excludeWikiWords") to allows selective disabling of automatic WikiWord links for any tiddler tagged with that value.
2006.12.31 [1.4.0] in formatter, test for chkDisableNonExistingWikiLinks
2006.12.09 [1.3.0] in formatter, test for excluded wiki words specified in DisableWikiLinksList
2006.12.09 [1.2.2] fix logic in autoLinkWikiWords() (was allowing links TO shadow tiddlers, even when chkDisableWikiLinks is TRUE).  
2006.12.09 [1.2.1] revised logic for handling links in shadow content
2006.12.08 [1.2.0] added hijack of Tiddler.prototype.autoLinkWikiWords so regular (non-bracketed) WikiWords won't be added to the missing list
2006.05.24 [1.1.0] added option to NOT bypass automatic wikiword links when displaying default shadow content (default is to auto-link shadow content)
2006.02.05 [1.0.1] wrapped wikifier hijack in init function to eliminate globals and avoid FireFox 1.5.0.1 crash bug when referencing globals
2005.12.09 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.DisableWikiLinksPlugin= {major: 1, minor: 6, revision: 0, date: new Date(2008,7,22)};

if (config.options.chkDisableNonExistingWikiLinks==undefined) config.options.chkDisableNonExistingWikiLinks= true;
if (config.options.chkDisableWikiLinks==undefined) config.options.chkDisableWikiLinks=true;
if (config.options.txtDisableWikiLinksList==undefined) config.options.txtDisableWikiLinksList="DisableWikiLinksList";
if (config.options.chkAllowLinksFromShadowTiddlers==undefined) config.options.chkAllowLinksFromShadowTiddlers=true;
if (config.options.txtDisableWikiLinksTag==undefined) config.options.txtDisableWikiLinksTag="excludeWikiWords";

// find the formatter for wikiLink and replace handler with 'pass-thru' rendering
initDisableWikiLinksFormatter();
function initDisableWikiLinksFormatter() {
	for (var i=0; i<config.formatters.length && config.formatters[i].name!="wikiLink"; i++);
	config.formatters[i].coreHandler=config.formatters[i].handler;
	config.formatters[i].handler=function(w) {
		// supress any leading "~" (if present)
		var skip=(w.matchText.substr(0,1)==config.textPrimitives.unWikiLink)?1:0;
		var title=w.matchText.substr(skip);
		var exists=store.tiddlerExists(title);
		var inShadow=w.tiddler && store.isShadowTiddler(w.tiddler.title);
		// check for excluded Tiddler
		if (w.tiddler && w.tiddler.isTagged(config.options.txtDisableWikiLinksTag))
			{ w.outputText(w.output,w.matchStart+skip,w.nextMatch); return; }
		// check for specific excluded wiki words
		var t=store.getTiddlerText(config.options.txtDisableWikiLinksList);
		if (t && t.length && t.indexOf(w.matchText)!=-1)
			{ w.outputText(w.output,w.matchStart+skip,w.nextMatch); return; }
		// if not disabling links from shadows (default setting)
		if (config.options.chkAllowLinksFromShadowTiddlers && inShadow)
			return this.coreHandler(w);
		// check for non-existing non-shadow tiddler
		if (config.options.chkDisableNonExistingWikiLinks && !exists)
			{ w.outputText(w.output,w.matchStart+skip,w.nextMatch); return; }
		// if not enabled, just do standard WikiWord link formatting
		if (!config.options.chkDisableWikiLinks)
			return this.coreHandler(w);
		// just return text without linking
		w.outputText(w.output,w.matchStart+skip,w.nextMatch)
	}
}

Tiddler.prototype.coreAutoLinkWikiWords = Tiddler.prototype.autoLinkWikiWords;
Tiddler.prototype.autoLinkWikiWords = function()
{
	// if all automatic links are not disabled, just return results from core function
	if (!config.options.chkDisableWikiLinks)
		return this.coreAutoLinkWikiWords.apply(this,arguments);
	return false;
}

Tiddler.prototype.disableWikiLinks_changed = Tiddler.prototype.changed;
Tiddler.prototype.changed = function()
{
	this.disableWikiLinks_changed.apply(this,arguments);
	// remove excluded wiki words from links array
	var t=store.getTiddlerText(config.options.txtDisableWikiLinksList,"").readBracketedList();
	if (t.length) for (var i=0; i<t.length; i++)
		if (this.links.contains(t[i]))
			this.links.splice(this.links.indexOf(t[i]),1);
};
//}}}
There are two types of display modes used in WaveMeter; AC display and DC display. 

!!!AC Display Mode
AC mode will display the entire waveform at full scale, regardless of DC offset. To enable AC mode, select Options->Waveform Display->Display Mode->AC Mode.

!!!DC Display Mode
DC mode will show the zero point on the display, and scale the waveform accordingly. The zero point is shown as a gray line across the screen. In DC mode, you will always be able to see the zero point. To enable DC mode, select Options->Waveform Display->Display Mode->DC Mode.

You can also press Ctrl-Z to switch between the two modes.
The error in the current measurement is displayed at the bottom right of the main text box.

Errors are displayed in percentages, and are calculated differently depending on frequency or voltage measurements. 

The voltage errors are calculated from the [[attenuation range]]. The error is calculated as one step of the current attenuation range.

Frequency errors are calculated from the BitScope's sample rate. The error here is calculated as the time between two successive samples divided by location of the last accurate period detected.
 
When in [[auto|Capture Modes]] mode, the [[Frequency Detector]] will automatically locate a frequency. 

If the Detector cannot lock onto a frequency, or is trapped between 2 sample rates, you can restart the frequency lock search. To restart the search, you can
* Click the 'Searching...' or 'Locked' text on the main waveform display
* Press Ctrl-F
* Select Options -> Frequency Detector -> Find Lock
This will move the sample rate to the highest possible, and work down. This should prevent locking on alias signals.

If you wish to lock onto a low frequency signal, you can also start the search from the lowest possible sample rate and move up. To do this, you must be in auto mode. Click the left arrow at the bottom of the display, or press Ctrl-<left arrow>. This will initialize a search from the slowest sample rate.

The focus control adjusts the sharpness of the peaks in the [[Frequency Detector Function]].

There are 3 values available; wide, normal and narrow. Each of these values controls the amount of information used in calculating the frequency detection function.

Choosing a 'narrow' focus will show sharper peaks, and may enable you to lock on a frequency. However, a 'narrow' setting will remove information from the waveform. A 'wide' focus will contain all the frequency information in the waveform, but other frequency components may interfere with the frequency detection algorithm.

Internally, the focus controls the amount of center-clipping applied to the waveform before it is sent to the frequency detection function.
The [[BitScope WaveMeter]] contains a frequency detector, which attempts to detect the frequency of the incoming signal. The detector is used to calculate the frequency and period [[measurements|Measurements]].

The Detector is enabled by default. To disable the feature, switch to [[manual mode|Capture Modes]]. Click 'Auto' to disable the Detector.

To view the positions where WaveMeter has detected a period, select Options -> Frequency Detector -> [[Graticule]]. A vertical bar indicates where a period has been detected.

The Detector uses the incoming waveform in the [[Frequency Detector Function]] to detect the dominant frequency. Choose Options -> Frequency Detector -> Function to view the Detector's function.

Note: If the waveform appears stuck, or locked onto an incorrect value, you can restart the search by pressing Ctrl-F, or selecting Options -> Frequency Detector -> Find Lock. If the detector still cannot find the frequency, switch to [[manual mode|Capture Modes]] and search with the left and right arrows.
The frequency detection function is calculated from the incoming waveform. In WaveMeter, it is used to calculate the frequency and period.

You can view the frequency function by selecting Options -> Frequency Detector -> Function, or by pressing Ctrl-A. The user can adjust the [[threshold level]] and [[focus|Focus]] used for frequency detection. These values can be viewed by enabling the [[graticule|Graticule]] with Options -> Frequency Detector -> Graticule, or by pressing Ctrl-G.

Technically, the frequency detection function is an [[autocorrelation]] function, which can be used to detect repeating signals. 
Welcome to the BitScope wiki help for the [[BitScope WaveMeter]]. WaveMeter is an application that allows users to measure signals quickly and easily. WaveMeter will lock onto the frequency of a signal and display voltage and frequency measurements.

To use this document, simply click links inside the text or on the right hand menu. You can also use the 'search bar' to locate a specific entry. Click 'close' in the top right corner to close an entry. To see all references to the current document click 'more' on the top right of the entry, then 'references'. Click 'edit' if you wish to add notes to any entry.

To get started, try the sections [[BitScope WaveMeter]], [[Connecting To A BitScope]], [[Operating WaveMeter]] or [[Measurements]].
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
The graticule displays vertical bars where WaveMeter thinks it has found one period of the incoming waveform.

The graticule can be enabled by selecting Options -> Frequency Detector -> Graticule, or by selecting Ctrl-G.

If the graticule appears in the wrong position, you may need to adjust the parameters of the [[Frequency Detector Function]]. You can adjust the [[threshold level]] and [[focus|Focus]] to correct the graticule. 
[[Getting Started]]
[[Connecting To A BitScope]]
[[BitScope WaveMeter]]
[[Operating WaveMeter]]
[[Frequency Detector|Frequency Detector]]
[[Measurements]]
[[Probe File]]
[[Calibration]]
[[Options]]
[[Troubleshooting]]
While capturing, the numbers to the left and right of the waveform indicate various measurements associated with the captured signal.

On the left hand side are the voltage measurements, from top to bottom: 
*peak to peak (V p-p) - the peak to peak voltage of the displayed waveform
*RMS (V rms) - root mean square value of the displayed waveform
*mean (V avg) - the average voltage of all points on the displayed waveform
*maximum voltage (V max) - maximum voltage of the displayed waveform
*minimum (V min) - minimum voltage

On the right hand side the measurements are: 
*Duty Cycle - the percentage of time that the waveform is high/low, where high is any sample above the V avg level, and low is any sample below.
*Frequency - the estimated frequency calculated from the [[Frequency Detector]] function
*Wave Period - the inverse of the frequency
*Sample Rate - Sample rate is the rate at which BitScope is capturing the data. 
*Buffer Size - The number of samples displayed by BitScope for each iteration of WaveMeter.

In [[auto mode|Capture Modes]], the application will try to find the optimal sample rate (rate) for the current waveform. In [[manual mode|Capture Modes]], you can select the sample rate with the left and right arrows beneath the display. 

Clicking on any one of these statistics will present that measurement in the main text display with a higher number of significant figures. It will also display a small description of the measurement so you know what is currently selected.

The [[Error]] associated with the currently selected measurement is displayed in the bottom right corner of the main text display.
WaveMeter will capture a waveform and display it on the screen repeatedly. The update speed depends on your computer speed and BitScope connection. 

!!Pause and Run
By default, WaveMeter will be in RUN mode, which will capture data continuously. To pause WaveMeter at any moment, click the PAUSE button at the bottom right of the application. This will put the application in pause mode.

In pause mode, if you press the PAUSE button again, WaveMeter will perform a single capture and display the waveform and [[measurements|Measurements]] on the screen. You can leave the pause mode by pressing the RUN button.

!!Changing the BitScope settings
Several BitScope settings can be controlled through the text panel, beneath WaveMeter display. These parameters change the operation of the BitScope. You can control the coupling, the channel, and the BNC/POD input. These can be changed by clicking on their values. WaveMeter will cycle through the available options and update the BitScope to be ready for the next WaveMeter capture event.

!!!Coupling
The AC/DC coupling toggles an internal switch in the BitScope that connects a capacitor to the input to attempt to remove DC bias on the signal.

!!!Channels
Currently only the analog channels can be selected. Clicking on 'Ch A' will cycle through all possible analog channels.

!!!Input
Here you can choose to capture from the BNC analog inputs, or the 2 analog POD inputs.

!!Frequency Detection
By default, WaveMeter has the automatic [[Frequency Detector]] enabled, which means it will attempt to lock onto the frequency of the input signal, and show a few periods of the waveform. When the Frequency Detector is enabled, 'Auto' will appear above the waveform. In 'Auto' mode, press Ctrl-F to attempt to find the frequency. If WaveMeter fails to find a lock, or you wish to change the timebase manually, you can change to [[manual mode|Capture Modes]]. To change to manual mode, click 'Auto', or press Ctrl-M.

!!Display Modes
There are two types of [[display modes|Display Modes]], AC display and DC display. AC mode will display the entire waveform at full scale, regardless of DC offset. DC mode will show the zero point on the display, and scale the waveform accordingly. Press Ctrl-Z to switch between the two modes.

!!Measurements
Several voltage and frequency measurements are calculated on WaveMeter. The voltage measurements are listed to the left of the waveform, and the frequency measurements to the right of the waveform. By clicking on a measurement, this value will be displayed in a large font in the text box underneath the main waveform. For more information on measurements, please see the entry [[Measurements]].

!!Calibration
It may be necessary to [[calibrate|Calibration]] the BitScope to obtain a correct ground reference. To calibrate the BitScope, you must first be connected to a BitScope. Then make sure that ALL inputs on the BitScope are ground-referenced. Next start the calibration procedure with File->Calibration and follow the instructions. See [[Calibration]] for more details.

The avaliable options in WaveMeter are Voltage Range, Probe Attenuation, Waveform Display, Frame Averaging, Capture Buffer Size, and the Frequency Detector.

!!Voltage Range
This sets the units for all of the voltages when displayed in the main text panel. Options are mV, V, kV.

!!Probe Attenuation
Setting the probe attenuation option will adjust the [[measurements|Measurements]] according to the scale factor of your probe. Available options are 1:1, 5:1, 10:1, 100:1, 1000:1.

!!Waveform Display
In this menu, the Display Scale setting changes the horizontal scale of the waveform. This controls the height of the waveform as a percentage of the total screen height. The Scale setting does not change the [[attenuation range]], only the display height scale. The values available are Small, Medium and Large. 

Here you can also change the [[display mode|Display Modes]] to AC or DC. 

!!Frame Averaging
The reported measurements are subject to a simple linear average over previous values. The allowed values are None, Fast and Slow. None has no averaging, and displays only the raw values. Fast averages over the previous 8 samples, and slow averages over the previous 32 samples. These values will not affect the reported [[error|Error]] for voltage or frequency measurements.  

!!Capture Buffer Size
The [[capture buffer size|Capture Buffer Size]] can be set to Small, Medium or Large. The ranges are roughly:    
* Small : 100
* Medium : 400
* Large : 1600
The frequency range changes the number of points captured by the BitScope. If WaveMeter has a slow connection, try using the Small buffer size. This will reduce the resolution of the waveform, but will be faster and can detect higher frequencies. Using the Large buffer size will allow more samples to be captured, hence lower frequencies can be measured, with a higher resolution.

!!Frequency Detector
The options here control the [[Frequency Detector]]. Recommended for advanced use only.

<!--{{{-->
<div class='header' macro='gradient horz #5af #2af'>
<div class='headerShadow'></div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='sidebar'>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'>
</div><div id='sidebarTabs' refresh='macro' force='true' macro='slider chkSideBarTabs SideBarTabs "index »" "display lists of tiddlers"'></div>
<!-- <div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div> -->
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
This file configures the BitScope Link Library to connect with BitScope devices via RS-232, USB or UDP IP networks. You should not edit this file unless you are an advanced user. The probe file specifies the links that a BitScope application will attempt to connect to. The [[WaveMeter|BitScope WaveMeter]] uses the probe file to manage links. If you do not know the correct probe file link for your BitScope, then you should run the [[BitScope Connection Manager]] application to locate the BitScope on your system. The BitScope Connection Manager is free and available for download at www.bitscope.com.

!!Probe File Locations
The probe file is located in different places, depending on the operating system. There are normally 2 probe files on your system, a global and a local probe file. The local probe file should be used at all times.

!!!On Windows
On Windows installations, the probe file is located in the following locations:
{{{
C:\Documents and Settings\<user>\Local Settings\Application Data\BitScope\BitScope.prb
}}}
where <user> is your user name on your windows installation.

The global probe file is located at
{{{
<INSTALLATION DIRECTORY>\BitScope.prb
}}}
where <INSTALLATION DIRECTORY> is the location chosen when you installed a BitScope application. The default is
{{{
C:\Program Files\BitScope\BitScope.prb
}}}

!!!On Linux
On linux systems copies of the probe file are created or installed in two places, the local probe file is 
{{{
~/.bitscope/config/bitscope.prb
}}}
and the global probe file is located at
{{{
/etc/bitscope/bitscope.prb
}}}

Note that the local probe file is the probe file used by the [[WaveMeter|BitScope WaveMeter]] application. If this file does not exist, you should use the [[Connection Manager|BitScope Connection Manager]] application to locate your BitScopes and correctly configure your system. 

!!Probe File Syntax

Whitespace, blank lines or lines including '#' are ignored.

The remaining lines each define a single "link". Each link specifies a connection method and identifies a device.

The complete syntax of a LINK is:

LINK => SERIAL|NETWORK|NONE

SERIAL => UDP:ADDRESS(:PORT)?(:ID)?(:BC)?
NETWORK => (TTY|USB):DEVICE(:BC)?
NONE => NIL:BC(:PRODUCT)?(:VENDOR)?

TTY => serial connection method
USB => USB/Serial connection method
UDP => User Datagram Protcol (network) method
NIL => No connection method (simulate device)
 
DEVICE => serial or USB device (eg, /dev/ttyUSB0)
ADDRESS => IP address or host name or "MULTICAST"
PRODUCT => Device identifier (up to 8 alpha numeric)
VENDOR => Device vendor identifier (8 alpha-mueric)
PORT => IP port number (4 hex digits)
ID => BitScope LIA ID (4 hex digits)
BC => byte-code revision ID (eg, BC000301)

For example, to connect to a serial BitScope:
{{{
TTY:/dev/ttyS2
}}}
a USB BitScope:
{{{
USB:/dev/ttyUSB1
}}}
a serial BitScope, but only if it's a BS311
{{{
TTY:/dev/ttyS2:BS031100
}}}
a network BitScope via multicast
{{{
UDP:MULTICAST
}}}
or (if there are more than one BitScope on the local net) and you want to use port numbers to differentiate them
{{{
UDP:MULTICAST:4321
UDP:MULTICAST:4322
}}}
or using different IP addresses with unicast:
{{{
UDP:192.168.1.2
UDP:192.168.1.5
}}}
or if your BitScope has the hostname LABSCOPE
{{{
UDP:LABSCOPE
}}}
or to connect with our demo BS300N on the Internet
{{{
UDP:sydney.bitscope.com
}}}
!!Probe Defaults

These are reasonable defaults for a typical Windows host.
{{{
UDP:MULTICAST
USB:COM3
USB:COM4
USB:COM5
USB:COM6
USB:COM7
USB:COM8
USB:COM9
UDP:SYDNEY
TTY:COM1
TTY:COM2
NIL:BS032500
}}}
These are reasonable defaults for a typical Linux host.
{{{
USB:/dev/ttyUSB0
UDP:MULTICAST
USB:/dev/ttyUSB1
USB:/dev/ttyUSB2
UDP:SYDNEY
TTY:/dev/ttyS0
TTY:/dev/ttyS1
NIL:BS032500
}}}
<<search>><<closeAll>><<permaview>><<newTiddler>><<slider chkSliderOptionsPanel OptionsPanel 'options »' 'Change TiddlyWiki advanced options'>>

Wiki help for BitScope's Waveform Meter
WaveMeter Help
/*{{{*/
body{font-family:Verdana, Helvetica, sans-serif;}

#mainMenu {position:relative;}
#displayArea {margin-left: 1em;}

/* Size and style of the header title bar */
.header {height: 6em;}
.siteTitle {position: relative; bottom: 1em; font-weight:bold;font-family:Arial, Helvetica, sans-serif;}
.siteSubtitle {position: relative; bottom: 2em;}h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}

/* headings */
h1,h2,h3 {padding-bottom:1px; margin-top:0.2em;margin-bottom:0.5em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:2.35em;}
h2 {font-size:1.65em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

/*Tiddly title font format */
.title {font-size:2.35em;font-weight:bold;border-bottom:1px solid #333;font-family:Arial, Helvetica, sans-serif;}

/* Tiddly font format */
.tiddlyLinkExisting {font-weight:normal;}

/*
This aligns the "index" button in the sidetabs 
*/
#sidebarTabs .button {
	margin:0em 0.2em;
	padding:0.2em 0.3em;
	display:block;
}

/* 
The following main menu tabs change the 
appearance of the mainmenu, underline, block text etc
*/
#mainMenu .tiddlyLink, #mainMenu a.button{
 display: block;
 border-bottom: 1px solid #aaa;
 padding:0em 0em;
 text-decoration: none;
 width: 13em;
 margin-top: -1em;
}

#mainMenu a:hover {
 color: #000 !important;
 background-color: #bcd !important;
}

/*}}}*/


/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected{color:[[ColorPalette::PrimaryDark]];
	background:[[ColorPalette::TertiaryPale]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity=60)';}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0px; top:0px;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0 0; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0;}
.wizardFooter .status {padding:0 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

.fieldsetFix {border:0; padding:0; margin:1px 0px;}

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/%
!info
|Name|ToggleRightSidebar|
|Source|http://www.TiddlyTools.com/#ToggleRightSidebar|
|Version|2.0.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|transclusion|
|Description|show/hide right sidebar (SideBarOptions)|
Usage
<<<
{{{
<<tiddler ToggleRightSidebar>>
<<tiddler ToggleRightSidebar with: label tooltip>>
}}}
Try it: <<tiddler ToggleRightSidebar##show
	with: {{config.options.chkShowRightSidebar?'►':'◄'}}>>
<<<
Configuration:
<<<
{{{
config.options.chkShowRightSidebar (true)
config.options.txtToggleRightSideBarLabelShow (◄)
config.options.txtToggleRightSideBarLabelHide (►)
}}}
<<<
!end
!show
<<tiddler {{
	var co=config.options;
	if (co.chkShowRightSidebar===undefined) co.chkShowRightSidebar=true;
	var sb=document.getElementById('sidebar');
	var da=document.getElementById('displayArea');
	if (sb) {
		sb.style.display=co.chkShowRightSidebar?'block':'none';
		da.style.marginRight=co.chkShowRightSidebar?'':'1em';
	}
'';}}>><html><nowiki><a href='javascript:;' title="$2"
onmouseover="
	this.href='javascript:void(eval(decodeURIComponent(%22(function(){try{('
	+encodeURIComponent(encodeURIComponent(this.onclick))
	+')()}catch(e){alert(e.description?e.description:e.toString())}})()%22)))';"
onclick="
	var co=config.options;
	var opt='chkShowRightSidebar';
	var show=co[opt]=!co[opt];
	var sb=document.getElementById('sidebar');
	var da=document.getElementById('displayArea');
	if (sb) {
		sb.style.display=show?'block':'none';
		da.style.marginRight=show?'':'1em';
	}
	saveOptionCookie(opt);
	var labelShow=co.txtToggleRightSideBarLabelShow||'&#x25C4;';
	var labelHide=co.txtToggleRightSideBarLabelHide||'&#x25BA;';
	if (this.innerHTML==labelShow||this.innerHTML==labelHide) 
		this.innerHTML=show?labelHide:labelShow;
	this.title=(show?'hide':'show')+' right sidebar';
	var sm=document.getElementById('storyMenu');
	if (sm) config.refreshers.content(sm);
	return false;
">$1</a></html>
!end
%/<<tiddler {{
	var src='ToggleRightSidebar';
	src+(tiddler&&tiddler.title==src?'##info':'##show');
}} with: {{
	var co=config.options;
	var labelShow=co.txtToggleRightSideBarLabelShow||'&#x25C4;';
	var labelHide=co.txtToggleRightSideBarLabelHide||'&#x25BA;';
	'$1'!='$'+'1'?'$1':(co.chkShowRightSidebar?labelHide:labelShow);
}} {{
	var tip=(config.options.chkShowRightSidebar?'hide':'show')+' right sidebar';
	'$2'!='$'+'2'?'$2':tip;
}}>>
Shown here are some frequently encountered problems when using WaveMeter. As this software is in beta release, we appreciate any comments or suggestions you have to improve the software. Please send feedback to project@bitscope.com.

!!I can't find my BitScope
Firstly, you will need the link string for your BitScope. The link string is a [[Probe File]] entry that defines a BitScope communication link. Please use the [[BitScope Connection Manager]] to locate and test the BitScopes connected to your system. The Connection Manager will also configure your probe file. Once you have a link name, say UDP:192.168.1.75, then you will need to use to set up WaveMeter. Click SETUP on WaveMeter to access the setup panel. Enter the BitScope link string into the connection text box and press OK. Click CONNECT to attempt to connect to the BitScope. If the Connection Manager can locate a BitScope, then WaveMeter should find it as well. If the Connection Manager cannot find your BitScope, please consult the Connection Manager help files for assistance in detecting your BitScope.

!!I can't lock onto a signal
On noisy or aperiodic signals, the AutoProbe may not be able to lock to a frequency. Also, WaveMeter can sometimes get trapped, oscillating between two timebases. In [[auto mode|Capture Modes]], you can try to restart the [[find lock|Finding A Lock]] procedure. To restart the frequency search, press Ctrl-F, or select Options->Find Lock. If this fails, it may be necessary to switch to [[manual mode|Capture Modes]] to select a timebase manually, or change the settings for the [[Frequency Detector Function]]. 

WaveMeter may also have difficulty detecting signals which have 2 strong frequency components. In this case, enable the [[Graticule]] so you can see where the Detector has seen a period. If the period bars are incorrect, adjust the Frequency Detector Function parameters.

WaveMeter may also lock onto an alias of your input signal. In this case, make sure that you have the correct [[buffer size|Capture Buffer Size]] selected, and that the sample rate is higher than the frequency of your signal.

!!Connecting to a BitScope takes too long
When using a probe file to connect to devices e.g. BitScope.prb, you may experience a long delay. This is usually due to an incorrectly configured [[probe file|Probe File]]. WaveMeter will attempt to connect to each BitScope in the probe file until it finds a successful connection. If there are many invalid network links in the probe file, WaveMeter will be waiting for a timeout on each of these network links. Each network link timeout may be long, so make sure the correct BitScope link is listed first.

!!The zero-point voltage is not correct
In this case, you will need to [[calibrate|Calibration]] the BitScope to obtain a correct ground reference. To calibrate the BitScope, you must first be connected to a BitScope. Next make sure that ALL inputs on the BitScope are ground-referenced or terminated. Next start the calibration procedure with File->Calibration and follow the instructions. See [[Calibration]] for more details.  

!!Bugs
Please report any bugs you find to project@bitscope.com. In your message, please indicate your BitScope version number and the operating system you are using.  

!!I have some other problem
If you have a software related problem with WaveMeter please contact project@bitscope.com. If you have a hardware or BitScope related problem, please contact support@bitscope.com. 
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
The attenuation range of the BitScope controls the sensitivity of the A/D converter.

In WaveMeter, the attenuation is controlled automatically, and will change settings depending on the input signal.

Each BitScope has 4 separate attenuation ranges. The greatest resolution for your signal will be obtained when the peak to peak voltage spans the attenuation range. To improve the voltage resolution, you may also wish to use voltage probes to scale the signal to the most effective range.

Note that if your signal is too large for the current range, the signal may clip. Conversely, if the signal is too small for the current attenuation range, then you may see unwanted digital 'step' noise.
Autocorrelation is a signal processing function that shows periodic information of an input signal. It is used to find repeating patterns and frequency features, such as the main harmonic of the input signal.

Mathematically, the autocorrelation function is the cross-correlation of a signal with itself. Take an array x of N data points. The correlation function R is then given by

[img[R(j) = Sum_n x(n) x(n-j)|img/autocorrelation.png][http://en.wikipedia.org/wiki/Autocorrelation]]

where n runs over all the elements in array x. The autocorrelation function R will have a series of strong peaks, which occur at the same frequency of the input signal x. In WaveMeter, the peaks are counted above a certain [[threshold level]]. This allows for a steady frequency reading of the input signal.

Note that all phase information is discarded in the autocorrelation function. 

In WaveMeter, you can view the autocorrelation [[function|Frequency Detector Function]] from the menu by selecting Options -> Frequency Detector -> Function.

To view the [[threshold level]] and the detected period positions, select Options -> Frequency Detector -> [[Graticule]].
 
The threshold level is a value of the [[Frequency Detector Function]] above which peaks are detected. For example, a value of 80% would imply that all values of the correlation function above 80% of the maximum are entered into the peak detection algorithm.

In WaveMeter, three values are currently available for the threshold level; low, mid and high. These can be selected from the menu with Options -> Frequency Detector -> Threshold. 

To view the threshold level, first display the [[Frequency Detector Function]] with Options -> Frequency Detector -> Function. Secondly, enable the period [[graticule|Graticule]] from Options -> Frequency Detector -> Graticule. The horizontal bar now shown on the waveform indicates the current threshold level. To obtain a steady reading for your frequency, you should move the threshold level to a position such that the relevant peaks appear above the threshold. 

Sharper peaks can be obtained in the correlation function by adjusting the [[Focus]].