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

The same way you do with the original apps. Didn’t write specific info as most were familiar with them already.



Select file menu: shift right toggle to the right until file menu appears in the notification area. You can just hold

the right toggle to the right until the selection stops the end with the file menu. The default from boot up will be

to “LOAD FILE000.CFG” This is to make it easy to select different config files. Button 4 will cycle between LOAD,

FILE000, and .CFG. With LOAD blinking, use left toggle to change it to SAVE. Select different files with

FILExxx. Cycle through the file types with left toggle, then save by center pressing left toggle.



CFG are configuration files.



BMP are screenshots of anything displayed on the screen, including the FFT, MAP and spectrograph,

etc. (you can use the load function to view these on the device or view them via USB on a computer),



DAT files save the screen trace buffer from all 4 channels (you view these by first loading them back into the

device with the LOAD function. This then makes them available to recall and display from channel D via

“REC_A, REC_B etc…” selecting the saved ch A, B, C, or D trace).



BUF files, unlike the DAT files which save only what is shown on screen, save the entire buffer. After loading

these back up, the device will be in PAUSE with the saved trace displaying. You can use the XPOS control to scroll

through the buffer, if it was saved with the full buffer. Pressing RUN will return the device to it’s previous state.



CSV files are a comma delimited readout of the entire buffer for all 4 channels, used to export the waveform

data to external programs that can then reconstruct the waveforms. These cannot be loaded back into the device.



Note that saving more than a few files on the early (2MB) devices will quickly corrupt them unless the Alterbios

add-on is installed. This is a problem with the early operating systems used on these devices and not the program.

Alterbios patches the OS so the files are saved correctly.

Hi Wildcat,



Awesome firmware! Unfortunately with version 3.2 it seems to limit voltage to 30V. Is this a bug or by design? I had version 2 installed and I don’t think it had that limitation, though I only had it installed briefly so I might not have noticed. I noticed it first after calibrating. My calibration source was 53V but the scope showed 30V as Vmax and using the markings on screen. I slid the pot down on my volt source and as it went below 30V the screen updated to show under 30V. I also looked at a sine wave peaking over 30V and it clips flat at 30V.



If it’s a bug and I downgrade to v3 to try to fix it, will it lose my calibration settings?



I’m running hardware v2.7 (2mb ram), sys 1.52, FPGA 2.61.

There is nothing in the program that can do this. If you are getting full screen voltage on the lower ranges then it’s

likely a hardware problem. Some of the later devices have clamping diodes at the inputs that clamp right around

30 volts. These have been reported to be found in hardware v2.72 Perhaps your unit has these?

There is no resistor ahead of these clamps to limit the current. This was a rather bad design to say the least, and it’s

recommended to remove them, since applying any more than 30 volts directly to the input could likely result in a shorted channel.



You can check if your unit has them by connecting a power source of say 50 to 60 volts through a limiting resistor in series

(10K ohm or larger) with a multimeter at the input (scope side of the resistor). If the voltage limits to 30 volts or so at the

input, this is your problem.



There is more info on this on the wiki:

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



Also search the Quad forum for: Channel A short (bad) (solved)

Thanks Wildcat. You’re right that it’s limited to +30V but can see -43V. However, I didn’t have the +30V limit with the stock firmware. Before I installed Wildcat I was looking at +83Vmax sine waves that showed no clipping or distortion. Also, when I did the calibration with your firmware and it asked for 50-60V, I gave it 53V and the calibration screen read near 53. So it seems very unlikely that it’s a hardware problem.



I went back to Wildcat v2 and it had the same problem:

[attachment=3]IMAG001.png[/attachment]

but I found that when I slid YPOS down, Vmax started showing larger values:

[attachment=2]IMAG002.png[/attachment]

and when I slide it down far enough, I see +44.8V as expected, but I have to slide it almost to the bottom of the screen:

[attachment=0]IMAG003.png[/attachment]

I swapped the battery poles and it reads -43.6V but I don’t have to slide YPOS way up, I can see -43.6V even with the line at the bottom of the screen:

[attachment=1]IMAG000.png[/attachment]

In fact, I can slide YPOS down much father and it keeps reading -43.6Vmin for awhile but when it gets low enough (maybe 3/4 down the screen?) it starts scaling down and showing lower voltage for Vmin.

Does it limit at the top of the screen for any of the other lower ranges? Is there any offset to the trace with the probe

grounded?



The reason it was able to show 53 volts during calibration and not on the screen is because during calibration, the “0”

reference level is moved to the bottom of the screen.



If the limiting at the top of the screen does not happen with the other ranges, it would indicate that the 10 volt range

section in the scope’s preamp is causing this. If this is the case, the reason other programs may not show this is because

my program operates the ADC at between step 54 to step 254 (out of a total of 256 steps), while the original programs

operated it from step 0 to step 199, leaving the remaining (200 to 255) unused. So if clipping is occurring, like it seems

like it is around step 212 in your first screenshot, it’s because the full range of the ADC is being restricted.

The reason I shifted the operating point up 54 is because the first steps are somewhat non-linear, causing compression

of the waveform and inaccurate meter readings. This is also the reason you can go “below” the bottom of the screen, since

the bottom now sits at step 54.



Basically what it looks like is happening is simply that instead of clipping just above the top of the screen like it should,

something in the preamp is clipping a bit lower so it’s visible on screen. The original programs allowed 55 or so steps at

the top, and none at the bottom. My versions shift the operating point 54 up so it allows no room above the top, and

54 below the bottom. If the hardware is operating properly, it should make no difference, (except for the non-linearity near

the bottom).



I would check the calibration just to make sure something is not way off. You can save the WPT file as a backup from

the device onto a computer. Then perhaps boot the device with no config file in order to load the defaults. The original

WPT file could then be copied back to the device, restoring original calibration but the device’s drive should have any

file present deleted with a Windows machine before copying the config file back to avoid file corruption problems.



However, you will probably find the problem is with the preamp clipping, not allowing the full range of the ADC to be used.

You may also find that some of the other ranges may clip below the top also I just finished a new update, now just checking

out the added functions to make sure there is no problems and will be posting it shortly. I will see if I can include a control

(perhaps in the calibration process) to change the operating point of the ADC. With this, you could “shift the screen up” so

the clipping is above the top and not visible. Calibration may need to be redone.



Edit: Attached are executables recompiled with an offset of 25, placing the “window” in the middle of the ADC. It does not

appear to affect calibration. You can try these to see if it fixes the problem. Note however that with this, distortion

(compression) at the bottom of the screen is starting to be visible. (EG: if you have say a sine wave exactly centered in

the middle of the screen, as the level is raised, it will reach the top well before reaching the bottom) This is well known

problem inherent in the hardware and was quite noticeable with the original firmware.



Also note that this is a compilation of a new version with added functions, specifically, added:

A log amplitude scaling option for the FFT: When selecting gain in the notification area, all the way left will be the LOG

option, as well as the auto and manual settings (now go to +42db). Also updated the internal generator to produce high

quality waveforms (using up to 720 samples/period, depending on frequency) and added continuous frequency control

for the generator (Press left toggle center button while on the freq range menu the wave out, a frequency display

will show in the notification area, shift frequency up/down with left toggle) Also added a few other things and fixed a

couple of minor bugs.

New update. Also included is a “user guide”. See “UserGuide.rtf” included with source code.

Note that this is a bit of a work in progress, but is mostly complete. I’m posting what I have so far

in hopes it will be of help to someone. For the time being it’s in RTF format (disable word wrap

so text formats correctly).



CHANGELOG TO VERSION W3.3:



-Added LOG amplitude scaling option to FFT display. Use left toggle in Ch D menu in notification

area: LOG>AUTO>0db>+6db>…>+42db



-Changed FFT buffers to 32 bit. Allows proper dynamic range so LOG display works correctly, gain is

increased to +42db (+48 with log scale). Changed windowing from Hamming to Hann for better

compatibility with the increased dynamic range.



-Updated internal generator output to produce high quality waveforms using up to 720 sample points

(gradually reducing at the highest frequencies to remain within DAC capabilities: 5khz range

samples @ 360, 10khz @ 180 and 20khz @ 72)



-Added continuously variable frequency control for generator output: While in OUTPUT menu and freq

range item blinking, press left toggle center button to access frequency display in notification

area. Output frequency can be finely adjusted up or down with left toggle. Eg: if set to 100hz range,

frequency can be shifted from 50Hz to 200hz in steps of approx +/- 0.7% (0.7Hz). Note that at the

higher frequency ranges, highest frequency available will be limited and range step size increased

due to internal DAC sampling rate and clock divider limitations.



-Added frequency scaling and seconds ticks to spectrograph display.



-Program will now only save BMP screenshots in 64K colors if spectrograph or map mode is

displayed, otherwise will save in 16 color mode so files are not unnecessarily large. Either

type will load for viewing.



-Changed voltmeters from reading 0.XXX KV to XXX V when reading over 100 volts on X10 ranges



-Added ability to shift the ADC operating “window” to compensate for hardware issues. See

“README.TXT” latest changelog for more info on this.



-Fixed %Duty meter item (was not working at all in V3.2)



-Fixed a bug where, if not triggered in normal modes, certain items on the display would not

be updated or would show incorrectly when changing settings until the device triggered again.



-More code compacting to keep program within 2 program slots + misc minor bug fixes.





Frequency spectrum in log mode of 1Khz wave

sampled at 720 points from internal generator.





Frequency scale for spectrograph



EDIT:

As per Jerson’s suggestion I updated the archive I just posted with added beeps for the

push button functions.



In addition to the first short beep when you first push a button, the instant after holding the

button down that it enters the “long press” mode a somewhat longer beep is heard. Releasing

the button anytime after the beginning of this second beep, but before a third short beep

indicating the “hold” mode is engaging, assures that you will enter the long press mode.

I find that identifying button hold times this way greatly improves operation.



Thanks to Jerson for the suggestion…

Hello Wildcat



Just a small suggestion. Can you implement a beep when a button reaches Long press and another beep when it reaches HOLD? That will make it easy to release when you intend to long press and not hold.



Very nice work



Regards

Jerson

Thank you.



I like the idea of a beep when reaching long press. I find myself often not holding down long enough and

wind up with the wrong function. This way you would just wait for the beep, I like it.

Not sure how useful a beep when reaching hold would be though, because by then the hold function would pop up

anyways, it doesn’t wait until you release the button, the instant it times out the function engages.

The way I implement this in my embedded systems code is like this. I do not know how easy it will be to adapt it to the DSO

By this way, suppose the user wants to LONG press the button, s/he waits till the second beep and lets go. Since the timer is < level3 time, FuncLevel2 executes. Function only executes on releasing the button.

</s> On Keypress start background seconds timer with value 0 while (Keypressed) { if (timer == Level1) Beep(); if (timer == Level2) Beep(); if (timer == Level3) Beep(); } if (timer < Level2) FuncLevel1(); // execute function at level1 depth else { if (timer < Level3) FuncLevel2(); // function at level2 depth else FuncLevel3(); // function at level3 depth } <e>

Updated the archive I just posted with the mod. Thanks for the suggestion.

Thanks Wildcat



it makes operation so much better.



Regards

Jerson

Hello and Greetings from Germany



So, i have also this little nice Device. I bought this last Week. Now i read the most of Statements and Fixes but…im not sure how i can modifiy my DSO203. I have:



HW_Version:V2.72,SYS-Vers. 1.60 , DSO APP (PLUS A1) V1.10 , DFU V3.13C



I want to test the System from Wildcat, but im a absolute Beginner…a elektronix technican but in Robotix. With this little Device i have zero experience!



Who can help me, step by step, what i must do that i can try the new System from Wildcat…or other!?



Sorry …i learn fast…promised… :lol:



Greetings klaus

Greetings Ponti



Welcome here.



It is very easy to upgrade your device to run Wildcat version of the firmware.


  1. Download the archive from this thread.


  2. Extract the .HEX files somewhere you can find them


  3. Connect the DSO to your PC via USB.


  4. Press and hold the first button of DSO and switch on the DSO. You will see a different screen on the DSO. A new drive will appear on your Windows machine.


  5. Now, you can copy any one of the HEX files to the DSO drive on your machine(remember which HEX you copied). The PC will beep to indicate USB disconnect and again USB connect.


  6. Turn off the DSO and you may disconnect USB now.


  7. Press button on DSO as per hex file number you loaded. If you loaded app2.hex, you press button 2 and power on the DSO and so on. For App1.hex, you should not press button 1 as it will bring you back to step 4.


  8. Voila, new firmware is running.



    Good luck

Hello Jerson



Thank u…i will tryit…i hope not that i destroy the devices… :wink:



I have the 8MB Version…its that a Problem??



Question: when the Test its not good, or i want the original firmware…can i restore the original Firmware later or not?



Greetings



Klaus

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!!



Greetings…klaus

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

Wildcat,

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.