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

First note that there are 4 app slots on the device but most of the scope apps take up 2 of these. When the device starts without any button presses then it loads the app in slot1 but in reality that is slot1 + 2.

If you load wildcat hex for slot 1 then it overwrites the default app and also uses slot 1+2. If you load it in slot 2 then it will use slot 2+3, and will also have overwritten half of the scope app (1+2) which will therefore no longer work. If you load it in slot 3 then it uses slot3+4. So the sensible choices are either to load it in slot 1 and use it as a replacement for the default app, or to load it in slot 3 and leave slot1+2 alone as the standard app. It is significantly better than the standard app so you will want is as the default start up from slot 1 even if you start off trying it in slot 3.

If you overwrite the stock app in slot 1 and you want to restore it then you use exactly the same procedure, but you will need the hex file for this which is available on-line, so you may want to get that first.

Hello bobtidey

thanks for ur explanations!!

Thats are good news for me, particularly the things with the Slots…ok, i will remember later. I found the original SYS and APP from my Devices. But also a newer one, SYS V1.61 and APP V1.11. Its this also OK ? u know it what its better as the SYS V1.160 an APP V1.10 ?

When i change the sys or/and APP, must i calibrate the device again, or one time its enough??

a other question: i found : PA1_110. PA3_110 and PA1_111, PA3_111 and …FPGA´s and also AP1_100… whats this? How i can use this Files?

I think for the beginning its better, i load all Files for Trying in Slot 3+4. Then i can tryit and the original Firmware its not broken. Later i can also load the system what i want to use in Slot 1+2…right!? The firmware from wildcat33, must i load all 3 files or only one?

Ok, i think i have enough Information for trying. Thank u!!


There are basically 4 types of files used here. APP, SYS, FPGA and DFU

Starting at the end, DFU is a fundamental boot/loader. It goes into a fixed piece of memory and is used to start the device on power up and provide the firmware uploading ‘disk’ when you power up with 1st button pressed. You should NEVER need to load this and is about the only way you can ‘brick’ the device as without it you can’t load software easily anymore. It is possible to recover from this but it means opening up and attaching special serial connections.

The FPGA is the logic array instructions that control the interface to the actual scope part and control the ADC and FIFO buffer the data. These instructions are held in the CPU firmware memory and downloaded to the array. Again you should not need to update this. Some people have done customised versions for special purposes like logic analysers. It is also loaded not via HEX but using a 2 file technique.

SYS files are like the BIOS / Kernel of the device. They provide a fixed set of access functions / utilities for accessing the hardware, displays, storage etc. There are some small differences between the hardware versions of the device, notably in the 2MB/8MB storage area and the SYS version is specific to that, and it is primarily in those storage functions tat the SYS files differ. There is a APP called ALTERBIOS that patches the SYS to fix some bugs and add extra capability.

APPS are what go into the normal APP slots 1-4. There is also some hidden memory both ROM and RAM that some APPS exploit.

So the summary is that most of the time you should only be interested in loading APP hex files. Occasionally there may be a need to update the SYS, FPGA very rarely, and DFU ‘never’.

Loading an APP is just 1 HEX file. If it uses more than 1 slot then it contains all the data. So when you see multiple HEX files for an APP thta is because it has been linked for the different slots that it could be loaded into. An APP labelled with a 1 will normally go into slot 1 and whatever subsequent slots it needs.

Calibration method tends to be APP specific and so does need to be redone when loading a new APP.

THANK U for u´r Help!!! Now i understand.

Greetings Klaus


Learning how to use an oscilloscope with my DS203 purchase and have a lot to learn. Looks like some great work, so THANK YOU!.

I have some questions, but before I ask I wanted to go through your UserGuide.rtf. However, no matter what program I use to load it, the formatting is making it impossible to follow.

Would it be possible for you to convert the UserGuide to a .pdf file so the proper formatting is retained?

Thanks Again.

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.