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

I think it has most of the fixes but the feature set is not exactly the same because they are based on different branches. So the Wildcat version has the extra stuff in he posted, but it doesn’t have everything in. For example, I don’t think it has the FFT spectrum display.



At the moment I run the Wildcat version.

I am thinking of getting a second DSO203 but it looks like most come with the 8MB flash disk now. Even the one’s on Amazon labelled as 2MB apparently seem to come with 8MB.



I know the 8MB one’s need a different SYS (1_6) to run the different flash whereas the Community App normally uses SYS25116.



I have started trying to check out what the potential differences are between these 2 SYSs as I’d be reluctant to get a 2nd Model that didn’t allow running these other versions. So far I can see differences in the Ext_Flash code and the FAT12 and 2FAT12 modules which is understandable given the differences in the flash operation, page sizes etc.



What I don’t know at the moment is how these affect the operation of the APP.



I have a number of questions for anybody else who is looking into this.


  1. Has anybody tried running the Community APP under the 8MB compatible SYS_1.6 with a 8MB model? Did it work OK? If yes, then that’s great and the other questions are not important.


  2. Does anybody know what bits of the APP may be affected by change in EXT_Flash calls (buffer sizes etc.)


  3. Does anybody know what was changed in the SYS25116 originally to make it more suitable for the Community App over the regular stock as originally supplied? I do have stock SYS1.50 source, so I guess I could compare that against SYS25116 source.


  4. Assuming something needs to be changed to make it compatible, I guess the best way forward is to base it on SYS1_6 with full 8MB capability, make any small adjustments to the SYS (equivalent to anything done in SYS25116), and adjust the APP if there are any specific buffer or call dependencies. I know how to build the APP, but I have never done the SYS and the supplied source looks as though it is compiled differently. Anybody have any experience of building the SYS?





    ********************* Update***************************

    Investigating differences between SYS 1.50, 25116 and 1.60 a bit further



    Apart from the actual extflash code differences which I think are internal to the SYS and probably don’t affect the App I found the following main differences between 25116 and the 1.50 / 1.60 variants



    a) Few cosmetic changes regarding output of hardware and version text

    b) SYS 1.60 adds a new FIFO control constant. What was FIFO_START is now called FIFO_READY and a new FIFO_START is defined with a new number. FIFO_START as defined in the APP BIOS retains the same number (2) and will still behave the same even though it now invokes the FIFO_READY function in SYS.

    c) The Config in SYS25116 sets up the DMA_CNDTR4 and TIM7_PSC registers differently to 1.5/1.6. That seems to be something to do with DMA refresh but I don’t think directly affects the App code

    d) SYS25116 has an extra system parameter ANALOG_PSC which sets the TIM7_PSC (Prescale value). This one is interesting as it does seem to be one of the main dependencies of the normal Community App on SYS25116. It is used in the signal waveform generator piece of code. However, the Wildcat version comments these lines out and specifically says these would have required the SYS25116 version to work. So I think that means the Wildcat version doesn’t use this whereas the normal Community app does try to set this. The Wildcat version effectively uses the same prescale value for all frequencies which has a small effect on limiting the top frequency which seems a small price to pay to avoid using a special SYS.



    With that I think there is at least a decent chance that the Wildcat version will work with SYS1.60 and 8MB Flash. I also suspect the standard community one would mostly function as the ANALOG_PSC call will just be ignored with maybe a change in signal gen function and some frequencies incorrect.



    I’d therefore be very interested in anybody with a 8MB version who has tried one of these Apps.



    The other thing worth noting here is that SYS 1.60 seemed to start out being written to support either 2MB or 8MB with auto-detection but then got hard coded in places to 8MB.

Now thats bad programming. that should be sortet out!

I wish i could help, but my programming skills are kinda low.

Maybe it would be possible to switch the community app to use AlterBIOS fatfs calls instead? I have already implemented support for 8MB devices there.



The 8MB version requires 4kB sector buffers, so that might cause some trouble. Especially if you are short on memory already.

Using AlterBios sounds like a good long term plan. But I still think this might work in the short term by just using Community App with SYS 1.6. The signal generator of the regular Community App would be screwed up but that could be fixed on the app side by using the Wildcat approach.

Hi there,

I got the last version from ebay, 2.72 too, HW v2.7b and tried many things to get a better app because of really bad accuracy regarding tensions. (zero and Abs values)

The selling brand is different than seedstudio -it wasn’t available here when I purchased it.



I tried the community app with all the resource required : it worked, but can’t save parameters (was discovering 8m Flash memory)

I reinstalled the SYS_B160.hex system, and the app had problems (graphical and functional, sorry I didn’t remind exactly what, but i can make another test).

So I tried Gabonator version, with the 2.61 fgpa but kept my Sys_B160 fmw, and it worked partially, I can save parameters and (better) calibration settings, but failed to save data (bmp, dat, csv) and corrupts seriously the memory if I try.



So, actually I have it on slot 1, reinstalled my original V110 app on slot 3 working on a mixed system :

Fgpa 2.61, SysB160, gabonator (can’t save bmp), and original app V110 (not community) which works well despite the bad accuracy.



I tried altbios04 : Can’t install it, tried altbios03 : memory chip corrupted.

It costed me a lot of time to calibrate these applications, but Gabonator gave me really better results.

Really sad I can’t use the community app, I saw in the release notes a better calibration handling and all others good stuffs…

Can I help more ?

Thanks.

I forgot to mention Quadpawn to jpa: (great work really impressive, thanks a lot!)

It works, but the process to install it is not conventionnal, because when I drop the hex file on the virtual disk, I don’ t get another instance with the .rdy extension, it just became busy while copying the file.

But If I power off/on, the application is ok with my configuration, it is able to write calibration.

Hello all,



I just bought a DSO and right now I am really happy with it. The finishing and the hardware is very great for such a low price.



Anyway, I would like to participate in the software developpment, I really like to code and this project is challenging.

My questions are, could anyone summarize to me which firmware/APP/FPGA are the ‘best’ and the most used by developpers here ?

From my reading on this forum, which is from my side a bit messy, I believe that the best firmware is the one from Marco => Where can I find the latest source code ? I am not sure if the one I got is the right one.

For the APP it seems this one from Gabonator is the one to use. Right ?

What about the FPGA ?



Thanks a lot everyone !



Flo

Flo: It seems that we are trying to figure out what can be ran on the new 8MB 2.72HW units. (BTW: Don’t go above 35V)



fflan: I tried to install QuadPawn as well. My setup is not modified at all: Stock everything from the store.

It has HW version 2.72, SYS 1.60, App (PLUS A1) 1.10.

I held button 4, starting copying PAWN_011.HEX. It set for a while and then said that USB Drive disconnected.

I turned it on and off and QuadPawn came up. So, so far, same results as you (no .rdy file)

Howewer, I don’t see calibration.ini file after running the Calibration app.



Looking at the Calibration app, save_calibration() should create this file. Do you have it ?

EDIT: I see CALIBRAT.INI now. I needed to unplug the cable and replug it.



In early November, Petteri Aimonen, made a few changes related to 8M devices. Some of the comments were:

“Upgrade to AlterBIOS 0.4 to make it work on 8M devices.” and “Add support for 8M flash chip”



So, it is strange that you can’t get this bios to work. Although, I didn’t try.


Yes, pawn is ok for me too !

I have two files : CALIB.DAT and CALIBRAT.INI (which I saved elsewhere)

I think they are for APP110 and Pawn when I have it (APP110 is now installed on slot 3 and it uses slot 3/4, so I don’t have pawn working anymore : not surprising.)


My problem is actually with SYS1.6, alterbios seems to not install anything. (How to be sure it is installed ?)

I have tried Sys1.52 and the community app wasn’t saving anything…

I don’t remember if I tried at this moment AlterBios, but I think I did.



Pehaps the good combination is the older SYS, alterbios0.4 and the community app : to be tried…



My other concern is gabonator, really good and working with sys 1.6 (I can save parameters, but others files corrupts the memory, and I lose calibration, and because It is not stored on the flash memory, I can’t restore it.

<LINK_TEXT text=“http://www.seeedstudio.com/forum/viewto … 441#p18441”>http://www.seeedstudio.com/forum/viewtopic.php?p=18441#p18441</LINK_TEXT>



An ideal configuration would be (for me) : Gabonator and the community APP fully working, with or without Pawn

OR

Gabonator and Pawn

OR

Community APP and Pawn

The main fault on the origina APP is tension and zero V accuracy, ridiculous…and well adressed by the two others;…



Thanks for your help

Thanks to recent posters for running the tests on the 8MB hardware which do show that there are problems with running the alternative software on this model. I, for one, am keen we get this resolved as I don’t want to get stuck with the supplied software on the second 8MB model I am getting when my existing 2MB model can run all the alternate apps without problems.



Here is my attempt at a summary of software sources to be considered. Please correct, add as needed.



There are 4 main apps plus the Pawn scripting apps.



Standard APP as supplied by manufacturer



Gabonator, Different UI approach, source at https://github.com/gabonator/DS203



Community App, many improvements, source at https://github.com/pmos69/dso203_gcc



Wildcat - Branch of Community App, not all features but some nice improvements, Zip of code is in post here <LINK_TEXT text=“http://www.seeedstudio.com/forum/viewto … cat#p18218”>http://www.seeedstudio.com/forum/viewtopic.php?f=26&t=2957&p=18218&hilit=Wildcat#p18218</LINK_TEXT>



Then there are 3 main current versions of SYS



SYS1.50 as supplied by manufacturer 2MB support, can be used with Wildcat, source at https://github.com/Seeed-Studio/DSOQuad_SourceCode



SYS252116 small modification to standard SYS (2MB) to support more signal gen range, used by Community App, source is in this post <LINK_TEXT text=“http://www.seeedstudio.com/forum/viewto … 116#p16851”>http://www.seeedstudio.com/forum/viewtopic.php?f=26&t=2957&p=16851&hilit=SYS25116#p16851</LINK_TEXT> although it is labelled as 1.6



SYS1.6 as supplied by manufacturer and supports only 8MB, source is <LINK_TEXT text=“http://kapsi.fi/~jpa/stuff/other/dso_qu … ources.rar”>http://kapsi.fi/~jpa/stuff/other/dso_quad_8M_version_sources.rar</LINK_TEXT>



SYS1.6 and 1.5 mainly differ around the ExtFlash support. Logically the API looks the same which is why I thought that the alternate apps might have worked. My current theory is that because the 1.6 SYS has much bigger Flash buffers then there may be a problem with the RAM memory footprint of the SYS and the APPs overlapping because of that. I don’t know at the moment what sets the memory base addresses of the app and the SYS to see if the apps can be adjusted to avoid any conflict.



It is possible that Alterbios could be used with the older SYS but I can’t find any good explanation of Alterbios operation other than it can take over the standard Bios calls, but there was a comment that the App also has to be adjusted to use this.

And which of these will work with latest Hardware revision 2.72 and 8M flash? The list itself is not new, we need to know which of these support the hardware, or are working on supporting it.

@bobtidey : Good summarize…

I’ve seen a source code managing the two memory chipset, but I don’t remember which app it was.



I have just tried that (the community pack) :

SYS 1.50 1.6 from Marco Sinatti ( http://pmos69.net/dso203/SYS25116.hex )

APP_G251.hex

FPGA 2.61

The device is recognized like having a 2Mo, you can’t format, you can’t access or save, but the app starts.

Alterbios 0.4 does not install (or I don’t know how, because it kept copying for ever)



So actually we need Sys1.6 on this device.

I put SYS_B160 and restart with community app : “parameter record not found” before starting.

But now I can format and I can save calibration parameters (dummy test)

I get a file 9222D88A.WPT.

I succeed to save ONE BMP of 47k and ONE BUF, but after that, the next files are 0 ko, I get ERR with all the next trials.

After a new quick format I can save another bitmap (you must disconnect/reconnect usb to see it)

In either case, the bitmap is readable but not… nice, for the less…

I can’t access to the timing under AUTO triggering : the field is empty

I can’t access to frequency above 50khz in square mode…



So, it’s useless like that…



I can try the Wildcat version under Sys1.6, but I’m sceptic. Edit: Confirmed, it is worse, when saving the second bitmap, it crashes.



@rapp.chr : read my previous post, APP110 (original for v2.7, the only one good for saving bmp etc), gabonator (with the restiction of saving wav, bmp…) and quadpawn are working with system 1.6 on my quad.



edit : Forgot to mention the dfu version v3.12c, and I miss a logo (grey frame)

Thanks, I must have missed that :slight_smile:

Hello everyone,



Thanks for the summarize, it helps!



I am looking at the source code, and I think I will work on the SYS to start with the basics, and after on the community APP. The Gabonator one does not seem to need any improvment :slight_smile:.

For the 2MB/8MB story, I guess you mean the external flash ? I saw on the schematic that the ext flash is a 16MB. Even if I guess few MB are used to load the FPGA (normally less than 1mb should be enough), to what needs are the left ones?



However I saw with disappointment that the JTAG port on the STM32 is used by other stuff and is not available for debug :cry: . I was expecting to debug it using an Rlink and Ride (similar to ST link).



Thanks!

Great to hear you are looking at this as well. If you are looking on 2.7 schematic the flash is M25PE16-VMW6P which is 16MBit (2Mbyte) which is the previous one. I haven’t found a full schematic for the 2.72 hardware but it should have a 64Mbit (8Mbyte) component.



One strategy might be to understand the memory usage of the SYS and APP as I suspect a greater RAM memory footprint of the 1.6 SYS may be conflicting with the current alternate APPs. The processor is supposed to be 256K ROM and 48K RAM but as has been found out here it seems to actually have the larger memories of a different version with 512K ROM and 64K RAM. AlterBios is one example that is exploiting a bit of the extra capacity.



I can see for example that the RAM usage of the APP in the Community / Wildcat App is set to start at 0x3000 (12K) for constants copied from RAM plus heap variables and the stack set at 0xAAF0. The linker files give the basic set up plus one can get an assembler listing from the .elf file which shows all the memory locations used. The SYS functionality is accessed via a bios jump table and I think uses RAM from 0 upwards. Now the 1.6SYS definitely uses significantly more memory as its EXT Flash buffer is 0x1200 long compared with 0x300 for the 1.5 SYS. This is because the paging in the 8MB Flash is different. I haven’t worked out yet where the top of the 1.6SYS RAM usage is yet. I was hoping to check the memory positioning of the AP110 factory app which does work with SYS1.6 but I can’t find the source for that. I think there is sufficient spare space to maybe reposition the APP RAM a bit to avoid a conflict if there is one.



What dev environment are you intending to use? So far I have only attempted building APPS and I used the CodeSorcery toolchain 2011.03 as linked on the community github. Originally I tried a more recent one but although it built OK the APP wouldn’t execute correctly.

Added Pmos69’s FFT and spectrograph functions:



Added selectable Hamming window or adjacent bin summing, some amplitude compression and screen calibration in decibels. Adjacent bin summing provides flat frequency response at the expense of resolution restricted to every other bin. Provides flat response similar to a flat top window but only expands bandwidth to 2 bins.



Corrected FFT frequency values displays. Also allowed meters to show with FFT on but channel turned off.



Optimized code so still fits within 2 ROM “slots” (barely, beware if recompiling…) - without spilling into the 3rd.

Hello,could you please tell me why cant I download wildcat3 to my device.I have:

HW:2.72

SYS:1.52

APP:2.53

It gives me an error of not enough space on the drive.The available space is 492k and the file is around 2G.Do I have to download all the files in the folder?I have other apps on it too but dont use them.Is that a promlem?

Thank you for your time in advance.

I’m not sure I understand the numbers you quote 492k and 2G. The file you need to install is just APP1.hex (or APP2, APP3 if putting in different slots). This is a 183k file. The rest of the material in the zip is the source code etc.



You start up the DSO with the USB connected and left hand button pressed which puts it in download mode and then just copy the APP1.hex file across.



By the sound of it you may have the latest hardware with 8GB disc. You can check this by looking at drive properties when mounted. If so then this software may not be compatible with this yet as it was built for the previous models with 2GB discs. That is one area I am interested in sorting out. There is no harm in trying as you can restore the original software if you have its hex file.

I guess you are getting a HEX file that is bigger than what it is supposed to be(possibly rendered in HTML format). You should use the right-click save-as option to save the HEX file before you use. Check the HEX file size to be sure you got it correctly.