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

Moderators: lily.li, violet, jeremy882, crail.lyu969

Wildcat
Elementary-1
Elementary-1
Posts: 166
Joined: Fri Jun 22, 2012 1:29 pm
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: DSO Quad

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

Post by Wildcat » Wed Jul 02, 2014 9:44 am

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.

Wildcat
Elementary-1
Elementary-1
Posts: 166
Joined: Fri Jun 22, 2012 1:29 pm
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: DSO Quad

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

Post by Wildcat » Wed Jul 09, 2014 12:47 pm

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.

Image
Frequency spectrum in log mode of 1Khz wave
sampled at 720 points from internal generator.

Image
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...
Last edited by Wildcat on Thu Jul 10, 2014 1:36 pm, edited 2 times in total.

Jerson
Kindergarten
Kindergarten
Posts: 66
Joined: Fri Sep 23, 2011 7:09 pm
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: dso Nano, dso nano quad
Location: Bombay, INDIA
Contact:

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

Post by Jerson » Wed Jul 09, 2014 1:14 pm

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

Wildcat
Elementary-1
Elementary-1
Posts: 166
Joined: Fri Jun 22, 2012 1:29 pm
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: DSO Quad

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

Post by Wildcat » Wed Jul 09, 2014 3:34 pm

Jerson wrote: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.

Jerson
Kindergarten
Kindergarten
Posts: 66
Joined: Fri Sep 23, 2011 7:09 pm
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: dso Nano, dso nano quad
Location: Bombay, INDIA
Contact:

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

Post by Jerson » Wed Jul 09, 2014 6:40 pm

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.

Code: Select all

   
   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
    }

Wildcat
Elementary-1
Elementary-1
Posts: 166
Joined: Fri Jun 22, 2012 1:29 pm
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: DSO Quad

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

Post by Wildcat » Thu Jul 10, 2014 1:40 pm

Jerson wrote: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.

Code: Select all

   
   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
    }
Updated the archive I just posted with the mod. Thanks for the suggestion.

Jerson
Kindergarten
Kindergarten
Posts: 66
Joined: Fri Sep 23, 2011 7:09 pm
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: dso Nano, dso nano quad
Location: Bombay, INDIA
Contact:

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

Post by Jerson » Thu Jul 10, 2014 5:17 pm

Thanks Wildcat

it makes operation so much better.

Regards
Jerson

ponti
Pre-kindergarten
Pre-kindergarten
Posts: 4
Joined: Sun Jul 13, 2014 7:00 pm

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

Post by ponti » Sun Jul 13, 2014 7:06 pm

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

Jerson
Kindergarten
Kindergarten
Posts: 66
Joined: Fri Sep 23, 2011 7:09 pm
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: dso Nano, dso nano quad
Location: Bombay, INDIA
Contact:

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

Post by Jerson » Sun Jul 13, 2014 7:20 pm

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

ponti
Pre-kindergarten
Pre-kindergarten
Posts: 4
Joined: Sun Jul 13, 2014 7:00 pm

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

Post by ponti » Sun Jul 13, 2014 8:03 pm

Hello Jerson

Thank u...i will tryit....i hope not that i destroy the devices... ;-)

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

Post Reply