DS203 quad user interface design

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

Post Reply
gabonator1
Kindergarten
Kindergarten
Posts: 85
Joined: Thu Sep 15, 2011 7:54 pm
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: dso quad
Location: Sered, Slovakia

DS203 quad user interface design

Post by gabonator1 » Tue Sep 20, 2011 8:17 pm

Hello,

I like the small ds203 very much and currently I am working on completely new user interface design. Here is a concept how should it look like:
Image

It's a screenshot of simple application made in Visual Studio 2005 C++. I am planning to do all the development on PC and then to compile it for STM32 processor. For this purpose I made a abstraction class "BIOS" that implements all the device dependent functions. I am curious if the hardware will be ever able to handle so much drawing... But I will test it on the device soon...

If you have any ideas how to improve the UI design, please drop message in this thread.
And if you are brave enough, here is a source code and compiled exe (absolutelly not optimized)
http://pub.valky.eu/ds203ui.rar. What it actually does is drawing some noisy sine wave and a few windows on top of it.

Gabriel

gabonator1
Kindergarten
Kindergarten
Posts: 85
Joined: Thu Sep 15, 2011 7:54 pm
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: dso quad
Location: Sered, Slovakia

Re: DS203 quad user interface design

Post by gabonator1 » Thu Sep 29, 2011 5:12 am

Here is a very early preview of my own user interface for ds203, only few functions are implemented (Input and Generator tabs), but at least, it shows some waveforms

Image
download source codes & compiled hex file here:
http://pub.valky.eu/ds203ui_preview1.zip

bielec
Pre-kindergarten
Pre-kindergarten
Posts: 38
Joined: Wed May 18, 2011 5:43 pm
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: DS203

Re: DS203 quad user interface design

Post by bielec » Thu Sep 29, 2011 5:30 pm

gabonator,
This looks very promising and in my opinion is much more intuitive than the original f/w. In fact, if you added triggering this would do for my purposes. I beleive that a scope is primarily for visualising the signal and estimating amplitude and timing. All the other stuff is "bells and whistles".

Keep up the good work.

Bainesbunch
Elementary-1
Elementary-1
Posts: 106
Joined: Fri Mar 18, 2011 11:45 pm
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: DSO Quad

Re: DS203 quad user interface design

Post by Bainesbunch » Fri Sep 30, 2011 3:05 am

gabonator,

Excellent concept and good luck with it.

I am a VS .net coder and have created a PC client to read the XML OP from the Nano, I have started work on something for the quad but stopped when I found out that the data save was non usable. Perhaps when you come to designing the OP file we could collaborate so that the PC client makes best use of the available data. My Client currently does FFT spectrum analysis and decodes I2C ans SPI and UART signals.

I would love to get a look at your abstraction for the BIOS. I really good dev tool would be an emulator to debug and test on interactively but I guess this project is not main stream enough to attract the work required to create one especially since the FPGA stuff would have to be update-able as new versions where released.

Once again Good Luck ... Good Job and drop me a PM if I can help.

BTW if you are looking for Beta testers stick me on the list.

Cheers Pete.

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: DS203 quad user interface design

Post by Jerson » Fri Sep 30, 2011 2:16 pm

Hi Gabonator1

I too am a fan of the quad. However, I am sure the original authors must be busy with something else. Otherwise, it seems to me a brilliant idea to have a pocket scope that can do so much. In fact I loved the Nano so much, I blindly purchased the quad and sold my nano to a client. Now I realise it wasn't a smart move.

I like what you're doing with the UI and I wish I can help. I wish I can help in some way. I am used to coding a few types of processors and Arm7 is one of them. I haven't really had the time to indulge in the hacking of this scope, but your idea looks promising.

Let me know if you need any specific help and I'll try to assist whichever way I can. I cannot promise much because I am pretty loaded at the moment.

I sure hope to have some of the following
* better / reliable triggering
* better calibration procedures
* a better DSO quad.

Regards
Jerson
http://jerson.co.in

gabonator1
Kindergarten
Kindergarten
Posts: 85
Joined: Thu Sep 15, 2011 7:54 pm
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: dso quad
Location: Sered, Slovakia

Re: DS203 quad user interface design

Post by gabonator1 » Fri Sep 30, 2011 4:15 pm

Hi everyone!

I really appreciate your interest. The progress of this project is highly dependent on my free time, which is currently very precious. What you see is what have I done mostly during nights when I returned from work :). My plan was to design a powerful and easy to read/write C++ framework for developing custom exensions for ds203. After implementing all the basic functions, it shoud be quite simple for everyone to change/implement new features with the basic knowledge of C/C++. The reason I released the early preview application is to find more people who would like to involve in this project. They don't need to be programmers, after some time when the application will be more or less working, we will need testers and people with good ideas to improve functions of the ds203.

Currently I am looking for someone from the hardware/software designers of ds203 (maybe some seeedstudio stuff?), I am having some stupid problems with configuring stm32's peripherals and I can't move forward...
It would be nice to have some experienced FPGA designer for developing advanced triggering algorithms.

My application can be compiled for two platforms - ArmM3 and for Win32, the project file "ds203.sln" can be opened with Visual Studio 2005. All the development and testing was made in Windows environment and Visual Studio. And when I thought it is working well, I compiled it with batch file "ds203ui/OnArmM3/makefile.bat" which automatically loads the compiled .hex file onto ds203 device. So even if this is reading someone who doesn't have ds203 scope, can try to compile and run the project to get the basic overview of the firmware features.

I am planning these features for the new firmware:
- Advanced signal generator (I need it for my current project)
- more types of waveforms and better resolution than 36 points importable from the 2MB disk
- simple AM/FM modulation
- transferring waves from scope view into generator (you will record some wave form at first and then the dso will synthetize it - simple recorder/player)
- Realtime USB transfer of sampled data (2nd planned feature)
- Realtime Uart decoder with automatic baud rate calculator
- True RMS voltmeter (I found many posts about the low accurancy of ds203, but I believe it is a simple task to calibrate it)
- Export to WAV (Windows PCM), SVG http://gabonator.yweb.sk/sim/download/s ... s/nice.svghttp://valky.eu/?data/news/owon.txt, TEXT file
- FFT (I don't know whether this feature can be used for anything meaningful, but it looks good)

I am sick of all the expensive oscilloscopes that have a full range of nice features, but their architecture is closed and does not offer any way of implementing new features. I am happy that I found ds203, maybe it does not have input circuits or frequency range as normal oscilloscopes, but for visualizing and analysing signals it's a perfect tool.
At least it can be considered as development board with 32 bit microcontroller + fpga + display, a nice toy for everyone who want to start learning how to work with these devices and don't want to spend money on some dev-board and JTAG programmer.

Here is my current problem:
I cannot change the number of samples for the generator. It does not work by calling __Set(ANALOG_CNT, xxx), nor by settings the DMA values directly (*((vu32 *)(0x40020400+0x48))) = xxx. I can change the pointer for source data (DMA2_CMAR4), but it always sythesize only the first 36 values. Any idea?

relavak
Pre-kindergarten
Pre-kindergarten
Posts: 11
Joined: Wed Jun 08, 2011 8:02 am
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: DSO QUAD

Re: DS203 quad user interface design

Post by relavak » Sun Oct 02, 2011 5:19 am

Here is my current problem:
I cannot change the number of samples for the generator. It does not work by calling __Set(ANALOG_CNT, xxx), nor by settings the DMA values directly (*((vu32 *)(0x40020400+0x48))) = xxx. I can change the pointer for source data (DMA2_CMAR4), but it always sythesize only the first 36 values. Any idea?
If you look at the DS0Quad_SourceCode/SYS_V1.50/source directory from github, in the file Config.c on line 425 you will see the offending code DMA2_CNDTR4 = 36 // DMA2_CH4 number of data(*2 Bytes) In theory, if you call __Set(ANALOG_CNT, XXX) it should reset this value to the specified value. I haven't looked at the ARM spec, but my guess is that you cannot change the value of the CNDTR4 register unless you first stop the DMA. You should be able to stop it by:

DMA2_CCR4 &= ~1;

and restart by

DMA2_CCR4 |= 1;

relavak
Pre-kindergarten
Pre-kindergarten
Posts: 11
Joined: Wed Jun 08, 2011 8:02 am
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: DSO QUAD

Re: DS203 quad user interface design

Post by relavak » Sun Oct 02, 2011 9:27 am

Gabonator,

I was trying to compile your code in Linux to see if I could add some stuff but it doesn't have a Makefile. I tried to make one but there are lots of microsoft specific things that I didn't want to invest in fixing without having a way to check them back in. Two issues so far: it seems that filenames and how they are included are not consistent in term of upper/lower case (windows doesn't seem to care), and there seems to be references to include files that are probably microsoft only (like windows.h). Also, I think you build both the arm version and a windows version, but I'm not sure which files go with which version. Right now all the top level files need a windows.h file. It would be nice at a minimum the arm code could build without window, and better if even the debug version could build in a cross-platform way.

gabonator1
Kindergarten
Kindergarten
Posts: 85
Joined: Thu Sep 15, 2011 7:54 pm
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: dso quad
Location: Sered, Slovakia

Re: DS203 quad user interface design

Post by gabonator1 » Mon Oct 03, 2011 6:08 am

relavak, try this:
http://pub.valky.eu/ds203ui_preview2.zip

I tried to use correct names of files in includes, also I put there simple makefile for linux, but I didn't try it. Please tell me if you succeed building it for linux, or what steps were necessary to successfully build the code on linux machinue. For better cooperation, I would like to place this project on sourceforge or github. Which one do you prefer (svn/git) ?

relavak
Pre-kindergarten
Pre-kindergarten
Posts: 11
Joined: Wed Jun 08, 2011 8:02 am
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: DSO QUAD

Re: DS203 quad user interface design

Post by relavak » Mon Oct 03, 2011 11:34 am

I tried to compile in linux and found some problems. The first problem is that I didn't have instructions on how you expected to compile the code so I did this:

Code: Select all

cd Build/arm_linux
make
which is not what I think you did, but anyway that is what I eventually got to work. Unfortunately I had to change quite a bit of stuff including:

Code: Select all

mv Source/HwLayer/bios.h Source/HwLayer/Bios.h
mv Source/Core/design.h Source/Core/Design.h
mv Source/Gui/toolbar.h Source/Core/Toolbar.h
in Source/HwLayer/ArmM3/src/interrupt.c use interrupt.h not Interrupt.h
in Source/HwLayer/ArmM3/src/startup.c use interrupt.h not Interrupt.h
in Source/HwLayer/ArmM3/src/cbios.cpp use BIOS.h not bios.h (line 5)
You also need new versions of the common/build.mk and arm_linux/Makefile files. You can see I changed quite a bit of stuff especially in build.mk.

I prefer github mainly because I'm trying to learn to use git. I hate svn but like cvs.

UPDATE: I found a way to eliminate the need to change the .lds files. New updates2.zip file.

Post Reply