Data AcQuisition And Real-Time AnalysisScope - Spectrum - Spectrogram - Signal Generator
Software for Windows
Science with your Sound Card!
Contact us about
Revision History - v11.0.0
Daqarta v11.0.0 - 5 March 2020
New DaquinOscope macro mini-app uses an inexpensive Arduino Uno board to collect and display 1, 2, or 4 simultaneous 0-5 V DC analog channels or 1, 2, 4, or 8 simultaneous 0-5 V digital channels, with full triggering controls. Includes up to 4 optional square wave outputs, or 3 square waves plus a wavetable oscillator that drives a simple 8-bit R-2R DAC for 0-5 V analog output. (Free, no license needed!)
Simple AC-to-DC Input Level Shifter and Limiter circuit allows Arduino, which normally only handles 0-5 volt DC inputs, to easily accomodate AC analog signals such as sound card outputs. Can be used with above DaquinOscope, DC_Chart_Recorder and Arduino_Counter mini-apps.
New Arduino_Race_Timer can time races with up to 6 contestants, reporting times and entrant names in the order they come in. Contestants can be people or animals running a foot race, or real or model cars in a drag race, soapbox derby, or pinewood derby, or any sort of race-type situation with separate start and end points and no multiple laps. Can also be used as a reaction timer, either for indivivual training or competition among up to 6 contestants. (Free, no license needed!)
New Port macro command set allows Daqarta to control USB and serial port devices such as Arduino and Numato GPIO boards.
New DaqPort Arduino Sketch can be uploaded to Arduino program memory, allowing the Arduino to act as a peripheral device controlled by Daqarta via USB / serial port commands to support the above DaquinOscope, DC_Chart_Recorder, Arduino_Counter, Arduino_RCtime, and Arduino_Race_Timer mini-apps. (Open source - may be used with other software and extended or modified as needed.)
Isolation topic now includes tests and recommendations for two inexpensive USB isolators.
New Full-Scale Range - DaquinOscope Method topic added to Full-Scale Range sound card calibration topic. Updated Full-Scale Range - Input Voltage Method to include Arduino, Numato, and simple CMOS square sources as well as enhanced manual switch method.
The Spectrum RMS button now affects Y-log (dB) mode by reducing the display and cursor readings by 3.0103 dB. The Y-axis header will show dB V RMS if active, versus dB V Pk (peak amplitude) if not. With User Units, it will show dB:Pa RMS instead of dB:Pa (or whatever unit is in use). The RMS button is ignored in SPL mode, since RMS is mandatory for SPL measurements (including via the Sound Level Meter or using the Voltmeter to read SPL in its dB mode). In that case there is no RMS indication on the Y-axis header; it just shows dB SPL.
New DDisk Cursor Units toggle in the DDisk control dialog allows cursor position readouts to show time (or bytes or samples) relative to the start of the file instead of the normal start of the display frame. When reviewing long files, this makes it easier to locate an event whose time you have noted or logged elsewhere.
Buf0-7 Macro Array Copy/Swap Operations now include Copy From USB/Serial Port commands to copy the Device Control Block (DCB) from an open port, and to copy 1024-sample blocks of analog or digital data from an Arduino running DaqPort. (Discusssed in detail in Port Setup Commands and Special Bulk Data Read sections of USB / Serial Communications Port Access topic.)
Macro IF statements now support AND, OR, and XOR operators, allowing multiple expression tests in the same IF. For example, even though IF.(A=4) || (B=5) is not supported directly, you can now get the same result via:
IF.A=4 OR.B=5 ;Commands here will run if A=4 OR B=5 ELSE. ;Commands here will run if neither is true ENDIF.
The above AND, OR, and XOR operators can also be applied to WHILE statements.
Although Daqarta 32-bit integers and 32.32 fixed-point variables are always treated as signed values in the range of 2^31-1 to -2^31, unsigned 32-bit integers from such sources as Arduino boards can now be handled properly when converted to floating point variables via the new A=uns(UA) Macro Math Function.
Macro String Arrays Str0-Str7 now include options for writing and reading binary values, not just text strings, allowing high-density variable storage with easy indexing.
String expressions now allow selectable formats by using a Macro String Array to hold multiple formats selected by simple variables, as in Mtr0=V(Str0[10 * UN]) to show different decimal places depending on UN. Alternatively, the new Fmt variables can be used to hold up to 10 different formats that can be changed as needed, and used as in Mtr0=V(Fmt?9).
New WaitBtns Button Select Macro provides a simple way for macros to obtain user input via a panel of up to 8 buttons, with programmable labels and normal or "radio button" operation.
Spectrum Window Width now includes an offset button that allows reduced widths (512, 256, or 128) samples to be shifted to the start '<' or end '>' of the 1024 data samples used in computing the spectrum of each channel, instead of the default center 'o'. Needed for use with DaquinOscope for spectra of multi-channel analog data.
New Enable macro command allows macros to disable selected controls, dialogs, and menus, and to enable them later. Can be used to prevent inadvertent manual activation of controls that are incompatible with a running macro, or which might compromise test results. Controls disabled this way can still be activated by the macro.
Enable#IG replaces former Posn#I command.
The Square Wave dialog now includes a Square Wave Freq control that is a duplicate of the normal Tone Freq control for convenience, plus displays of computed Jitter Frequency and Jitter Period for Snap mode.
Upload To Waveform Channel subtopic in Macro Array Copy/Swap Operations section now includes information about subsequent processing capabilities. Macro Array Display Operations now includes Direct Display vs. Uploaded Data comparison subtopic, as well as new Upload Display Bitmap subtopic with discussion of new Buf0#d=UB command. Main Display Buttons subtopic discusses new Buf0#Ch=n command. Used for process and display of non-sound-card data, such as from an Arduino or Numato device that uses Port Access. Used by DC_Chart_Recorder and DaquinOscope macro mini-apps.
String Variables and Expressions now includes Binary-to-String Format options which allow binary values to be sent as-is to strings, such as when sending data for USB / Serial Communications Port Access.
New Buf0#M=n command in Macro Array File Operations allows bitmap n to specify arbitrary non-sequential buffers for Save command.
File Open now allows opening 8-channel .DQA, .WAV, or .DAT files, even though Daqarta only displays 4 channels at a time. The Display Channels buttons at the lower left of the display will be labeled Ch0-Ch3 (default) and Up/Down arrows will appear to their right, allowing display (and cursor readout) of any 4 adjacent channels, from Ch0-Ch3 to Ch4-Ch7.
Custom Controls now allow pre-invocation operation of individual controls, before the controls are visible.
Filename Auto-Increment can now be applied separately to Macro Array File saves via AutoInc#Bu=1 just before a save such as Buf0="<SaveDQA". Alternatively, AutoInc#Bu=2 applies the current main Auto-Increment state, whether set via an AutoInc macro or the main File Menu option. Variants of the AutoInc macro command can now reset the count and base name for BufN as well as main file saves like SaveDQA.
The Arb_From_Equation macro mini-app now includes 11 additional Arb waveform files (42 total). The new files include simple Sine, Ramp, and Triangle waves for use with the DaquinOscope Wave Oscillator function, plus a new Sine Series section with complete code, waveform images, and discussions for Ramp (Sawtooth), Square, Triangle, and Equal-Amplitude sine series.
New fixed-point Special Macro-MIDI Variables Posn#i to Posn#o join special integers Posn#0 to Posn#9, allowing easy communication between main Daqarta macro scripts and MIDI Changes scripts. Since Daqarta variables are global and can be accessed directly by macros and their subroutines, these special variables are convenient to use for parameters that are passed to or received from subroutines, or used for internal subroutine calculations. This helps to avoid accidental re-use of main macro variables.
The WaitKey Event Wait macro now allows WaitKey=127 (or above) to wait for Enter (13), TAB (9), or Backspace (8) as well as any displayable character, with the actual key readable via the Key state macro as Key?#.
New MsgStyle x option allows messages to be shown without an [X] in the title bar, which might otherwise allow users to cancel while a macro like _Get_String is waiting for character entry via WaitKey.
X-Axis eXpand Max and Min macros XpandMax and XpandMin now allow use of #N suffix to set in units of display width. In waveform display mode, for example, XpandMax#N=UX allows UX values up to the maximum display width of 1023. This allows setting a fixed fraction of the full-scale display width, regardless of the sample rate.
New Posn?L macro reads the mouse wheel counter, allowing macro scripts to control any Daqarta parameter via wheel motion.
Updated Aliasing Demonstration using new AliasDemo.GEN using swept 4-component sine series created above.
Help menu now includes List of Included Files option with links to the relevant Help topic for each file. For example, if you have noticed a file named Arb_Agnesi.DAT among the DD / Open data files, you can look it up in the Included Files list under "Headerless Data (.DAT) Files" and click on it. You'll be taken to the "Witch of Agnesi" subtopic under the Arb_From_Equation macro mini-app for a full description.
New Buf0="<>(UX)" rotates macro array Buf0 by UX positions, where positive UX rotates right (up) and negative rotates down.
New LoopBreak=0 command allows IF Statements to provide early exit from subroutine macros. LoopBreak=-1 additionally exits all callers as well, providing a more user-friendly alternative to Cancel= to abort a macro.
New str() Integer To String function returns the equivalent 4-character ASCII string of an unsigned integer. For example, if UI = 8 then str(UI) returns h30303038 = "0008", while if UI = 16 it returns h30303136 = "0016", etc.
New bcnt() Bit Count function returns the number of bits set in the variable or expression in parentheses. Values are rounded to 32-bit integers before evaluation; a value of -1 always returns 32
New special bit channel select command Ch#n=UA enables Port Bulk Read commands for DaquinOscope digital inputs BufV#Dn=Port?D and BufV#Dn=Port?C to use separate variables to specify bit number, as well as buffer number Ch.
Macros can now set Trigger Delay directly in samples, regardless of the current Smpls/sec state, using TrigDelay#N=UD, where UD can be any value or expression. You can read the current delay in samples via UD=TrigDelay?N.
New Posn?A Miscellaneous Position macro returns a bitmap of active channels.
New Disp?m returns a bitmap of displayed channels.
New Macro Array Display Operation Buf0#VU allows setting a Unipolar display range, while Buf0#Vx=1 allows Buf0#V, Buf0#VU, and Buf0#Vs ranges to be shown regardless of the User Units state. Buf0#Vx=0 restores the normal vertical axis, while Buf0#Vx=2 specifies that all BufN file saves use the current #V or #VU values, instead of #Vf.
If the Daqarta installer detects that Daqarta is already running, it now displays "Please close Daqarta if open, then hit OK to proceed." Allows closing a running Daqarta and continuing, also allows continuing if the problem was Windows Explorer erroneously claiming Daqarta was open.
Bug Fix: When the Voltmeter is in dB mode, with User Units active and a calibration file loaded for the selected Voltmeter channel, the meter should show dB (including SPL) relative to the baseline calilbration Units/Volt (or dB:Units/Volt). Any frequency response calibration data should be ignored, since the meter operates on the raw waveform data without any filtering. But a correction for the response peak dB (needed for Spectrum operations, which do consider frequency response) was erroneously applied to the baseline.
Bug Fix: Any error in a multitasking macro task now causes all tasks to be uninstalled. This prevents Daqarta crashing in certain cases where a problem in one task causes problems in other tasks.
Bug Fix: When appending macro array (Buf0-7) data to an existing .WAV or .DQA file such as with A.Buf0="<SAveWAV:MyFile", short appends could cause excess file growth and inability to read File Info when later opened.
Bug Fix: Remote Control utility programs DqaDlg (dialog based) and DqaCmd (command line) have been updated. These are in the Documents - Daqarta - Utility folder. Formerly, they could not communicate with Daqarta if a file was open such that its name appeared in Daqarta's title bar.
Bug Fix: Macro expressions using certain combinations of operations in nested parentheses were not parsed correctly.
Bug Fix: Spectrum Y-log (dB / power spectrum) displays for averaged data (waveform or spectrum average) could be erroneous in extreme cases, where lots of negative Spectrum Curve or Tilt sent the lowest values below -180 dB and the display magnification was set to show only a small dB range.
Bug Fix: Square Wave Interpolate mode was causing occasional spurious bursts of clicks at certain frequencies.
Bug Fix: When the Chart Recorder macro mini-app was in Pause mode, trace cursor motion caused the display to update with the latest data. This thwarted efforts to position the cursors at waveform points of interest.
Bug Fix: Data Zero Manual Adjust macro commands LI.Zero, etc, sometimes gave strange results.
Bug Fix: With attenuator Options set to Use dB, and dB Relative toggled to 'dB User Units', changes to various User Units controls such as Units/Volt factor or Units Name did not automatically update the Generator dB Slider readouts.
Bug Fix: Certain macro IF tests failed when comparing indexed variables to immediate strings, such as IF.Buf="Test".
Bug Fix: Internal headers for .WAV and .DQA files saved via Macro Array File Operations such as Buf0="<SAveWAV:MyFile" did not indicate the number of channels correctly if greater than 2.
Bug Fix: The Buf0#N command to set the number of buffers to be used for a file operation or a Copy List From Notes command was erroneously limiting to one less than the maximum buffer number, failed if Buf6#N=2 or Buf4#N=4.
Bug Fix: Named 2-state toggle macros such as SmplSec="smpl" always forced the active state ("sec" in this case).
Bug Fix: Special Macro-MIDI variables Posn#0 to Posn#9 did not allow scroll by +/- 1 (Posn#0=>1 or Posn#0=>-1) that is supported in most other variables.
Bug Fix: String Array copying between indexes such as Str1=Str0[0,100] did not work properly.
Bug Fix: String numerical evaluation using A=Str0?E[100,123] format failed if first character was null. Now returns 0.
Bug Fix: CursChan and CursChanDot macros to set active readout channels now accept variables and expressions, not just immediate values.
Bug Fix: IF tests comparing the contents of a Custom Macro Message (Msg) to a String Array, as in IF.Msg=Str0[10,20] now work properly. (The Msg character order was previously reversed for the IF test.)
Bug Fix: Decimate button and other Slow controls in X-Axis dialog were getting re-enabled on Averager completion, despite display still being in Pause mode. Now re-enabled only after subsequent unPause.
Bug Fix: File name Auto-Increment did not work properly with macro file saves such as SaveDQA="MyFile".
Bug Fix: The AutoInc macro was always toggling the Auto-Increment state, regardless of the value supplied. This caused files to be saved with the same name twice before increment and repeat.
Bug Fix: Custom Controls labels and titles are now properly limited to 32 characters. Previously, a longer entry could overwrite the following entry.
Bug Fix: LogName#0 macro variant to clear named log file before writing (instead of appending) was erroneously defaulting to .CRV extension in App_Data folder instead of .TXT in User_Data.
Bug Fix: On Windows XP systems where only Master Mute (not Wave Mute) was set in the Generator Volume Slider dialog, switching the attenuator Options to Use dB resulted in the dB slider dialog not showing Mute active.
Bug Fix: On Windows XP systems which have separate Master and Wave output volume controls, the attenuator Options dialog could improperly enable Use dB if only one of the two were calibrated. (They must be combined to get overall dB for the dB slider, so both must be calibrated.)
Bug Fix: Macro IF statements that test "radio button" variables using names (such as IF.Wave="Sine" instead of values such as IF.Wave=0) could result in a subsequent unexpected jump in Y-log (dB) Spectrum axis to its most-sensitive range.
Bug Fix: If appending to existing Mtr0-Mtr3 meter text using a trailing n newline, as in Mtr0=Mtr0 + A +p20 +B +n, the newline was ignored and the following line would lose all padding (from p20, etc) and just append with no spaces.
Bug Fix: When using monospace fonts like Lucida Console with Mtr0-3, Msg, or Notes, the underscore in a number format like A(8_0) was not handled properly, adding extra spaces needed for other fonts (where a space character is only half as wide as visible characters).
Bug Fix; Long delta cursor readout values of -1000.00000 or more caused truncation of 'm' unit prefix to apparent 'r'.
Questions? Comments? Contact us!We respond to ALL inquiries, typically within 24 hrs.
Over 35 Years of Innovative Instrumentation
© Copyright 2007 - 2023 by Interstellar Research
All rights reserved