DSO203 GCC APP - Community Edition (2.51+SmTech1.8+Fixes)

Thank You Good Sir!

Here’s an update (V3.4) that fixes a few issues with the previous version.

Some may be interested in a version developed for one of my devices. (V4.0) Adds a number of new generator functions I needed to have as well as serial decoding.

V3.4 update:

-Fixed triggering issue in SINGLE mode in 2mS, 1mS and 500uS timebases (& possibly others) where the device

would trigger twice if data captured would exceed length of the buffer, making it impossible to see the start of the

captured waveform.

-Fixed triggering issue after changing from AUTO to NORMAL modes at 500uS timebases and slower, where the

device would have to trigger more than one time before displaying a waveform.

-Fixed a bug where meter readings were inaccurate or could change while in NORMAL mode with display frozen with

the latest waveform while not triggered, also causing subsequently triggered readings to be incorrect until

a sufficient number of samples were collected.

-Modifications to level and edge triggering in the two fastest sweep ranges, improves signal acquisition for random/slow/

intermittent signals. Some devices that have shown varying abilities in this respect should improve with this.

Note that “Waiting for reset” notification after pausing in the very slowest timebases was removed to make room in ROM

so program would still fit in 2 slots. Program is functionally the same as V3.3 otherwise.

V4.0: Adds advanced generator functions and serial decoding + other misc mods. Note this version uses 3 slots. A

functionally identical 4 slot version using different compiler optimizations is also included, provides from

10% to 75% increase in frame rate, depending on functions used. Included user guide has been updated to

explain how to use.

-SWEEP FUNCTION, for all internally generated wave types. Sweeps each frequency range with an adjustable rate of

from 1/second to 1000/second with space between sweeps to allow scope synchronization.

-TONE BURSTS, for all internally generated wave types with repetition rates of 1/second to 1000/second and adjustable

burst length.

-PRECISION PULSE GENERATOR, positive or negative pulses with adjustable pulse length in 13nS increments

(at 2K/Sec and faster, gradually increasing to 33uS increments at 1/sec) and repetition rate continuously adjustable

from 1/second to >1Mhz. Repetition rate can be changed independently of pulse length. Display in notification shows

exact pulse duration.

-WHITE NOISE GENERATOR, with adjustable bandwidth from 1Hz to 1MHz. Below 1Khz, noise is filtered by X100

oversampling, below 50Khz by X10 oversampling, 50Khz and over raw digital data with no filtering. Dynamic seeding

is used to eliminate or at least minimize “repetition” patterns.

-ARBITRARY WAVEFORM GENERATOR: will generate any waveform using from 2 to 720 12bit samples at

continuously adjustable frequencies of 1/2 hz up to >500Khz, depending of sample number. Reads imported CSV file

with a one wave sequence of 12bit numbers (0 to 4095) to define waveform.

-“GEN” triggering mode, optimizes triggering parameters to synchronize hard to stabilize sweeps and tone bursts.

-“DETECTOR” mode for analog channels, changes display to a filtered amplitude response. Use with sweep generator

to produce frequency response curves. In this mode the program can automatically adjust sweep speed and

time base so all frequency ranges can be quickly scanned by changing generator frequency range. Cursor restrict

mode can be used to sample frequency at one point, and will extrapolate a frequency scale at bottom of screen.

-Analog waveform frequencies extended to 200Khz, albeit with reduced sample count/quality.

-SERIAL DECODE: Displays up to 96 chars/bytes in ASCII and HEX from RS232/TTL uart.

-FFT “window” now shifts along with XPOS in large buffer mode rather than always just reading beginning of buffer.

-Visual indicator added along with beep signaling long press engagement (display brightness flashes). Useful in noisy

environments when rather faint beeper can’t be heard.

2.5-10Khz Frequency response of loudspeaker. Fast sweeps minimize

exciting room resonances, allowing reasonably accurate results.

Tone burst response a loudspeaker.

Quick scan to identify notch filter.

Expanded scan provides better resolution and proper depth of notch.

RS232/TTL serial decoding.

Arbitrary waveform generator.

Thank you Wildcat to continue to support this little device ! :slight_smile:

Awesome! Thank you Wildcat!

Will this work with hardware version 2.52?

Thank you for making this a truly useful device.

To my knowledge, hardware versions went from 2.2 to 2.6. Perhaps you mean

a device that came with app version 2.52? Such a device would have hardware

V2.6, SYS V1.51 and FPGA V2.61. These programs should work fine on that

version or anything later. Keep in mind that the Alterbios plug-in should be installed

on any device with a 2MB drive (prior to hardware V2.72)

See <LINK_TEXT text=“http://www.seeedstudio.com/wiki/DSO_Qua … g_Firmware”>http://www.seeedstudio.com/wiki/DSO_Quad:Upgrading_Firmware</LINK_TEXT> for more info

on hardware/system versions.

Oops, I meant HW 2.72.

Hi Wildcat,

Do I need to save something to avoid a recalibration ?

Sorry, I don’t remember if after an upgrade we have to recalibrate.

Thank you

Calibration routine is the same for these 2 new versions as it was for the previous one (V3.3) so it

will not be affected. V3.4 is the same as V3.3 as far as the entire config file is concerned. V4 adds

some new functions to the menus, these will simply be added to the previous version’s config file when


If you plan to go back to V3 after loading and saving a config file with V4, the added menu

items could cause menu corruption from arrays being accessed out of bounds if saved in a position

that V3 does not support, so it may be advisable to save a copy of the WPT file in this case before


It’s not a bad idea to save a copy of the config file(s) before upgrading, no matter what versions are

involved, but calibration should not be affected with these latest versions. Also keep in mind if you

have saved any in the additional positions (CONF001.CFG to CONF009.CFG), that although calibration

is not read when loading these files, calibration info is saved in each one, so these could be used as

backups and copied back and renamed to the boot config file (the regular config file “XXXX.WPT”)

if necessary.

Hello everyone,

I bought this little lovely device a few days before. I found it’s really powerful when used with Wildcat4!

I have one question. What is the Wave Calibration of Wildcat4 is doing and how?

I could not find any difference between it is on and off.

My device is HW 2.81 and running with FPGA 281 and SYS B162

Thanks in advance for any help.

Wave calibration (long press left toggle center button with meters off) toggles any amplitude compensation applied

to the waveform so it’s height accurately displays on screen in relation to the grid. Compensation is accomplished by introducing extra “steps” in the waveform. While small and generally not noticeable, under some conditions they can be,

and will detract from what the actual waveform should look like, so they can be turned off if desired. Each V/div range

and channel is calibrated separately, also keep in mind that this won’t do anything unless the entire calibration routine

has been done (Access this by holding down button 2 for more than 3 seconds while the menu is on chA or chB).

This involves using an adjustable voltage source and DMM to calibrate each range. The included user guide explains

how to do this.

Once calibrated, toggling this will simply just adjust the height of the waveform a bit, varying somewhat for each vert

range. With calibration on, a “C” will be displayed in the menu area, off will show “U” (for uncalibrated).

Hi Wildcat,

Thank you for quick reply. Now I can see the difference.

Initially I tried CHANNEL A in 1V/DIV range. Maybe the difference introduced by the calibration is small for that setting. Now I try CHANNEL B in 0.5V/DIV range, and the difference is obvious.

I understand that the stock application always runs in “Wave Calibration ON” setting, and you implemented the ability to turn off that setting into your application.

Thanks again for your kind help, and your continued support for this little lovely device!

Just installed Wildcat’s version 4.0. Nice work Wildcat. Just a couple bugs to report….

  • When saving a configuration file (SaveFile 000.CFG), program prompts user with “OK” but immediately increments CH(A) mode setting (DC/AC/DT/TL/RS/) (e.g., DC -> AC, AC -> DT, etc). The saved configuration file must be reloaded, to restore the Channel A mode setting.

  • Analog Calibration can be confusing.
  • After calibrating DC-offsets and gains, user is incorrectly prompted (at header) to press button 2 to “confirm the re-calibration of Ch_A “. This is confusing, as user might think program needs confirmation of user inputed calibration data. At footer, user is also prompted to use right toggle to “select the next operation”. Header prompt should instead say “restart re-calibration of Ch_A”. If user incorrectly confirms re-calibration, all previously entered data is lost and must be re-entered. User must right toggle twice (<-) to find “Press button 2” or “3” to save calibration data.

  • Wildcat User Guide does not cover or explain if Ch_A / Ch_B calibrations should be performed separately or together. Preference is to do Ch_A and Ch_B independently, as the battery level may run low while trying to do both channels at once. Note: Calibration mode is accessed with long-press of button 2, only when Ch_A or Ch_B are selected. If Ch_B is selected, calibration is entered already set for Ch_B, likewise for Ch_A. It is however possible to switch from Ch_A to Ch_B within Calibration mode in order to populate both calibration tables before saving to WPT file.

  • Left toggle button beeps can be annoying and should be muted during gain calibration steps. This is especially annoying if no previous calibration data exists.


    Revision(W4.0) by Wilcat

    Alterbios 0.4: OK

    Hardware Ver V2.70

    SYS Ver 1.52

    GCCv1.7W4.0 APP(2.51+SmTech1.8+PMOS69 fixes)

    Reload parameter from disk

    DFU 3.11C.

    What’s with the bootup “Reload parameter from disk”. Anyone know what that means?

Yes it does! Never noticed this, if you use the center press left toggle button to save a config file it advances the setting

if any of the menus are set to the 2nd position. I tend to press the same button again (#3) to save config files, and it does not do it that way, so I never noticed it… You don’t need to reload a config file to change it back though, just flip the toggle left. Will be checking into it.

This is a carry-over from the original programming, I never changed it. The original English was a bit strange. I can change the wording around.

I’m not sure if your concern with the battery running low is because it could run out and turn the device off, or if it will affect calibration. As far as calibration is concerned, if I remember right, when saving one channel, the battery level affecting the other channel if it was also calibrated is taken into consideration as far as the battery may now, after time spent calibrating the second channel, be a bit lower. The battery level does not have to be very close to the exhaustion point to set the low level, say maybe 1/4 charge or a bit more should be ok. Battery levels are recorded at calibration

saving point and used as a reference. If the high battery level calibration is done while charging, the VB+ line will be high enough for good interpolation/extrapolation with a low bat level even at 1/2 charge.

OK, I suppose they could be muted as they don’t serve any function. This is again a carry over from the original version, not done on purpose.

This is also a carry-over from the original, it simply means that the start-up config file was found and used to set configuration. If no config file is found it reads “Parameter record not found”. I DID correct the original spelling that stated “Reload parameter form disk”

I appreciate the feedback! Will be posting an update shortly, which will contain a few other fixes as well (in particular a triggering issue while serial decoding in large buffer mode on the 500uS timebase), as well as added SPI and I2C decoding. Will keep all this in mind.


After reading your comments on the other thread, about ERR with saving CFG files, I noticed that I didn’t have any CFG files on the flash drive. Only had the one WPT file that was created from running the analog calibration. Apparently this was causing the CHA mode fault that you weren’t able to reproduce.

Funny how after saving the CFG and seeing the “OK” prompt, I was able to reload the CFG file settings from the file menu even though there were none; it must have been loading the WPT file instead.

After duplicating the WPT file as 000-009 CFG files, I noticed this fixed the problem. No more CHA mode incrementing when saving a CFG.

Actually, I was able to reproduce the issue, I stated so in my reply. It only does so under some

conditions though: The config has to be saved from the button 3 shortcut, and not from the file menu, the

active (flashing) menu has to be other than the file menu (this gets saved when you use the shortcut

so it goes back to it afterwards) and the final save has to be done with button 5 rather than pressing

button 3 again (button 3 can just be pressed again to save the file). The function that increments the

file save numbers incorrectly increments whatever menu was active when the hold button 3 was pressed,

rather than the file number.

This has already been fixed in the next update.

The #0 config file is the WPT file, the rest of the numbers (1 - 9) are CFG files. The #0 (WPT) file does

not have to have a file already present on the drive to be able to save it, unlike the #1 to 9. This is probably

the file you were saving.

Update: V4.1 (3 slot version only). Added I2C and SPI decoding. User guide has been

updated to explain how to use.

Also fixed a problem with serial decoding under some conditions intermittently triggering in the

500uS time base while in large buffer mode.

Fixed the “advancing menu item” issue while saving config files with left toggle press after selecting

save file function from button 3. Also changed some notifications to improve clarity as was

suggested in a recent post.

NOTE: For SPI decoding, the clock can be either on Ch B or Ch C. Using Ch C as clock allows

decoding both data channels simultaneously on Ch A and Ch B. Prior to hardware V2.72,

these devices had protection diodes that severely limited the bandwidth and timing of the digital

channels. Unless these are removed, at the speeds SPI typically uses, using Ch C the waveform

will be so far out of synch (if it triggers at all), that the function will be useless. For these devices,

Ch B can be used for the clock but decoding will then be restricted to Ch A only.

I2C DECODE: Master sends slave address + request for temp

to temp sensor IC, slave returns 12.0 degrees. NACK from

master ends transfers. Arrow colors show data direction

flow and ACK/NACK

SPI DECODE @ 4Mhz Chart displaying entire buffer

content for both channels can be toggled on/off.

SPI DECODE @ 8Mhz Channel B had to be used for

clock as digital Ch C would not properly display here,

even with protection diodes removed

hi everybody,

I just got this device, HV is 2.81

how do I install this firmware?

I see many files in this .rar other than the .sys, I don’t understand the use of.

Thank you very much for your help,


The archive includes the source code and the binaries. For installing wildcats firmware, you only need

one of the hex files. I’ve no idea if you have to consider something when using the new hardware (2.81).