Alternative dso firmware [Application Software Design Entry]

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

Alternative dso firmware [Application Software Design Entry]

Post by gabonator1 » Tue Dec 25, 2012 4:49 am

Ok, I think this is the right time to join the competition officially. Most of you probably know, that there is a firmware that was focused more on clear and simple user interface instead of reliable functionality. Last weeks I spent a lot of time improving this firmware. It is still not perfect, but it offers a nice set of features:

UART decoder - with automatic baudrate calculator
CANBUS decoder
MIDI message decoder
Mask tests - simple PASS/FAIL test, feature that is present mostly on very expensive devices!
Export to SVG - interactive graphs!
Export to WAV - open it and examine it in any sound editing program
Three operands mathematical operations
Precise chromatic tuner - frequency counter with 0.1Hz accurancy with nice visualization
Spectral analysis
Wireless connection with android device for remote control of DSO (with complete tutorial how to add serial port and attach bluetooth module) + including sample project for android in java
Snake game :)
Serial port monitor

I was planning to add more features, but today I ran out of RAM memory, so I will focus more on fixing some bugs instead of new features from now. I would like to thank Petteri Aimonen (jpa) who found out that there is extra 32kB ROM in STM32F108 microcontroller, this allowed me to embed nice images and icons into the firmware :)

I would like to thank following guys for reporting bugs, ideas and improvements:
Frederic Borry - for implementing better navigation, and better oscilloscope grid functions
Jose Zapico
Dave Robinson
... and for everyone else who I forget to mention here :)

Here is a github page with screenshots of this project:
https://github.com/gabonator/DS203

Raw firmware can be downloaded here:
https://raw.github.com/gabonator/DS203/ ... P_G251.hex

And merry christmas to everyone :)

Gabriel

marchino
Pre-kindergarten
Pre-kindergarten
Posts: 3
Joined: Sun Jun 05, 2011 3:22 am
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: DSO QUAD

Re: Alternative dso firmware [Application Software Design En

Post by marchino » Tue Dec 25, 2012 6:14 am

It is my first Christmas gift....

Thank you and merry Christmas Gabonator

sgoumen
Pre-kindergarten
Pre-kindergarten
Posts: 1
Joined: Thu Dec 27, 2012 2:30 am

Re: Alternative dso firmware [Application Software Design En

Post by sgoumen » Thu Dec 27, 2012 2:36 am

Hi
Thank you for the great job.
I do have a problem though.
I have download firmware from link
raw.github...
The hex file is 407KB. The uppgrade went OK
After that i have downloaded the hex from
github...master/Bin
the file is 1.118 KB
I can not tranfer it to DFU folder i get an error of not having enough space to make the transfer.
(My DFU is only 492KB)

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: Alternative dso firmware [Application Software Design En

Post by gabonator1 » Thu Dec 27, 2012 5:28 am

You are probably at this address:
https://github.com/gabonator/DS203/tree/master/Bin
and you right-clicked the APP_G251.HEX to save it to your HDD. This file is over 1MB, and when you look inside it, you will see that it contains some HTML code. This is probably bug in github, because it offers you to save the file as "APP_G251.HEX", while the file is actually a web page and not a real HEX file...

To download the HEX file from github, click on APP_G251.HEX with left mouse button and then click on "RAW" button on top right. Only after this step you can save it by clicking on File->Save as... or pressing CTRL+S

c.wilt
Pre-kindergarten
Pre-kindergarten
Posts: 27
Joined: Thu Jul 19, 2012 9:05 pm
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: DSO Quad

Re: Alternative dso firmware [Application Software Design En

Post by c.wilt » Thu Dec 27, 2012 11:24 pm

Loaded your firmware last night and started calibration. Excellent contribution, thank you.

I see there is a user app section. Is this based on jpa's pawn? If so how do I load my apps?

Thanks, again.

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: Alternative dso firmware [Application Software Design En

Post by gabonator1 » Fri Dec 28, 2012 12:18 am

No, I am sorry because the user apps are in object oriented C++
See the "Sierpinski triange" sample code for reference:
https://github.com/gabonator/DS203/blob ... eenSaver.h

After making your own module, you need to include it in _Modules.h file (and in _Modules.cpp when your code has cpp file, but for simple experiments you can place your complete code inside single .h file)

jpa
Elementary-2
Elementary-2
Posts: 215
Joined: Wed Nov 02, 2011 4:06 am
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: DSO Quad

Re: Alternative dso firmware [Application Software Design En

Post by jpa » Fri Dec 28, 2012 4:19 am

gabonator1 wrote: I was planning to add more features, but today I ran out of RAM memory, so I will focus more on fixing some bugs instead of new features from now.
I haven't checked, but I have just a hunch that there may be 16kB of more RAM lurking in there also :)

c.wilt
Pre-kindergarten
Pre-kindergarten
Posts: 27
Joined: Thu Jul 19, 2012 9:05 pm
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: DSO Quad

Re: Alternative dso firmware [Application Software Design En

Post by c.wilt » Fri Dec 28, 2012 4:36 am

Going by the discussion of memory constraints I assume there is no way to have both the alternative firmware and pawn at the same time?

jpa
Elementary-2
Elementary-2
Posts: 215
Joined: Wed Nov 02, 2011 4:06 am
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: DSO Quad

Re: Alternative dso firmware [Application Software Design En

Post by jpa » Fri Dec 28, 2012 6:10 am

c.wilt wrote:Going by the discussion of memory constraints I assume there is no way to have both the alternative firmware and pawn at the same time?
Installed at the same time? Sure, should work without problem.

Running at the same time? Probably not, because RAM is so limited. Also I'm not sure if there would be that much benefit. Most of the applications I have made with Pawn so far are designed to run stand-alone. One might think about extending gabonator's firmware with Pawn scripts, but then we would have to wrap all the C++ interfaces etc. Probably easier to extend it using C++ directly.

On another note, I have been thinking about the possibility of loading separately compiled C/C++ modules to RAM and running them. That would make it possible to have high-speed extension modules for the Pawn language, and also to load dynamically extensions for other firmwares.

c.wilt
Pre-kindergarten
Pre-kindergarten
Posts: 27
Joined: Thu Jul 19, 2012 9:05 pm
Are you a staff member of seeedstudio?: no
Which products/projects are your favorite?: DSO Quad

Re: Alternative dso firmware [Application Software Design En

Post by c.wilt » Fri Dec 28, 2012 8:36 am

jpa wrote:Installed at the same time? Sure, should work without problem.
I tried but could not get them installed at the same time. Have you tried? If you got it to work what order did you load it in?
jpa wrote:Running at the same time? Probably not, because RAM is so limited. Also I'm not sure if there would be that much benefit. Most of the applications I have made with Pawn so far are designed to run stand-alone. One might think about extending gabonator's firmware with Pawn scripts, but then we would have to wrap all the C++ interfaces etc. Probably easier to extend it using C++ directly.
I expected that they would not run at the same time. Just being able to switch back and forth is all I am looking to do. I have a few pawn scripts that read sensors that come in handy. I like very much the new firmware but hate to give up pawn for it.
jpa wrote:On another note, I have been thinking about the possibility of loading separately compiled C/C++ modules to RAM and running them. That would make it possible to have high-speed extension modules for the Pawn language, and also to load dynamically extensions for other firmwares.
That could be useful too.

Post Reply