Alternative dso firmware [Application Software Design Entry]

Every scope I have ever used has always auto ranged the measurements independently from the waveform display scale. For example we want a measurement of Vp-p but we want to zoom in on the rising edge to look for overshoot, ringing, etc. I can input a 30v p-p wave to my bench scope. Display the wave at 100mv per division to look for oddities. Push the the measure button and get a reading of 30v p-p even though it is off the scale of the display.



With the current DSO quad software everything is linked. If I feed it 30Vp-p and have the scale/resolution set to 100mv the measurements are wrong because the ADC scale is set to 100mv and therefore the measurement overflows the ADC.



Does what I am saying make sense?

I caught an implementation boo boo with this. Ch1 is measuring Baud and I change the setting by mistake to MATH.

[attachment=0]SDC10030.JPG[/attachment]

The problem is now fixed. It was caused by setting the measurement input to Math while the Math calculation was turned off (oscilloscope/math/operator = off), now the application automatically adjusts the math operator to A+B+C mode when turned off.

Thank you very much

I know I promised not to add new modules, but I could not resist :slight_smile:

This time I was playing a little with GPIO. I wanted to make a simple application communicating with popular DS1820 thermometers. These devices are small integrated circuits in TO92 package and the protocol they use is called “one-wire” bus. You only need single pin to write&read from them. Because I already have a UART connector accessible from outside I wanted to share the TX pin for this purpose. I added few functions to my BIOS implementation to control and read from the GPIO pins. ARM M3 MCUs have internal pullup resistors, so you can directly attach the thermometer on the four pin UART connector (PIN1->GND, PIN2->TX, PIN3->VCC) and the application will show the device ID, scratchpad contents and also the temperature with 1/16 of C resolution.







The source code can be found here, there is a nice implementation of pin control in class CPin:

<LINK_TEXT text=“https://github.com/gabonator/DS203/blob … GpioTest.h”>https://github.com/gabonator/DS203/blob/master/Source/Gui/User/GpioTest.h</LINK_TEXT>

Joined the forum specifically to thank you gabonator !

I received my DS203 the other day and was perplexed by the Factory firmware. After a quick bit of searching your name kept popping up, so I took a look here, liked the ‘lifestyle’ type of easy on the eye look to your firmware and the functions. Plus, that you obviously spend a heck of a lot of time on the project. Installed it, ran it and the DS203 was scoping away til I thought to charge the battery !



Again, thanks so much…brilliant work !





As a bug report and hopefully useful bit of info not crtiticsm…the Square wave in the generator seems to often start with a display of 36MHz, but then will drop down as though at the 9MHz top speed. It goes straight into the 8MHZ ranges from that errant 36MHz.

Also, I noticed a spelling mistake on one screen, will try to find again, but something small like ‘triger’ instead of ‘trigger’.

Hello gabanator,



I’m new to the DSO203/Quad, received one last week - but was reading this forum previously.



The improvements you, jpa and pmos69 made to this small piece of hardware are really great. This shifts the possibilities enormous.



I’m impressed by your newest modul, the connection of DS1820 one-wire thermometer chips.

Which steps are nessesary to have the UART connector accessible from outside? (my DSO have a aluminum alloy shell)



Many thanks, your work is very helpful!

Sorry for my bad english.

Hello Thomas,

here is a tutorial how to make the UART interface available by drilling a small hole to the plastic casing and placing there a 4-pin connector. I think there wont be much difference with the aluminium shell. Maybe you will find a less invasive method that does not require drilling, but I can’t help you with that since I have only the plastic version of DSO.



<LINK_TEXT text=“https://github.com/gabonator/DS203/tree … rialOutput”>https://github.com/gabonator/DS203/tree/master/Man/SerialOutput</LINK_TEXT>

Hello Gabriel,



thank you very much, that’s a fine documentation of the modification.

I’ll read it many times to understand it fully, and than give it a try.



Thomas

Hello guys,



if you really like my work, please consider becoming a judge in the DSO QUAD competition and vote for my project :slight_smile: This competition ends in only 3 days!



http://www.seeedstudio.com/blog/2012/12/28/6157/

Hello Gabriel



I am thinking aloud here.



Since we have a frequency generator, it would be possible to sweep the frequencies. This in turn could be used to build a module to check inductance / capacitance / LC. This will enable RLC functionality for the DSO.



The swept frequency could also be used to do frequency characterisation curves (response curves) for audio equipment.



Regards

Jerson



ps: this pdf has some ideas to use the PC sound card.

<LINK_TEXT text=“http://icom.hsr.ch/fileadmin/user_uploa … ter_EN.pdf”>http://icom.hsr.ch/fileadmin/user_upload/icom.hsr.ch/publikationen/RLC_Meter_EN.pdf</LINK_TEXT>

And some code from another source

<LINK_TEXT text=“http://www.kerrywong.com/2010/10/16/avr … asurement/”>http://www.kerrywong.com/2010/10/16/avr-lc-meter-with-frequency-measurement/</LINK_TEXT>

Already done, twice actually. :slight_smile:



http://essentialscrap.com/dsoquad/freq.html

<LINK_TEXT text=“https://github.com/PetteriAimonen/QuadP … y-Response”>https://github.com/PetteriAimonen/QuadPawn/wiki/Frequency-Response</LINK_TEXT>

The result of DSO Application Software Competition has come out! :lol: <LINK_TEXT text=“http://www.seeedstudio.com/blog/2013/01 … -came-out/”>http://www.seeedstudio.com/blog/2013/01/31/gold-prize-of-dso-competition-came-out/</LINK_TEXT>



Congratulations gabonator1! I will email you for more detailed information soon:)

Congratulations Gabriel. You truly deserve the honour.

Congrats Gabriel !!

Looks like you’re gonna have a metal case DSO Quad after all :wink:

Hallo gabonator1,



just one question: Did you plan to finish the Oscilloscope/Calibration Modul for your DS203 customized firmware?



Greetings from Germany

Thomas

Hello gys,



thank you for your support in the competition! I am very happy to be the winner, but I am also a little disappointed by the fact JPA didn’t win anything since he did a lot of very important work including fixing the BIOS FAT functions and developing first customized FPGA image…



Hallo Thomas, naturlich ich mochte das Firmware besser machen, vielleicht nicht dieses Monat, weil ich habe zu viel zu tun fur die Schule, und was fur funktionen fehlt dir in dem Oscilloscope Modul?

And regarding the calibration - I think there are not a lot things to improve - current hardware version of DSO is simply not designed to be a precise measurement device.



Currently I am working on my disertation thesis and also I am working on one publication I would like to finish in few weeks - it is about measuring the gamma radiation, I have used the DSO as a impulse counter for GM tube, it sends the calculated gamma dose rate value through bluetooth to PC, a GPS module is also attached to PC to build the radiation map.



Measurement from yesterdays trip around my city can be seen here:

http://pub.valky.eu/geiger/

Hello gabonator1,


Regarding the completion degree of your firmware, maybe there is a confusion because you write



[size=85]Todo list:

finish oscilloscope module - 92% done

calibration - 80% done

fft view - 80% done

signal generator - 90% done

connection with android tablet/phone - 90% done

optimize ROM usage (many bitmaps are stored as 8bits per pixel) - 0%

[/size]

… but to be honest, I didn’t notice anything not working…



There is a function which I would love: the ability to display alle 4096 samples at once by default (i.e. a complete sweep) and to be able to zoom in (a factor 16 = 4096/256 shoud be possible). Of course, this would not work for the shortest time bases. Maybe this is what is called oversampling. Or is it already implemented and I didn’t find it?



Anyways, I congratulate for your fantastic work, thank you!

Patrick

Patrick, it’s already there, User modules -> Zoom, it allows you to see whole 4096 sample buffer on single screen as well as zooming in to see few samples on screen.



Thank you Gabriel, this is great.



I have played with this feature yesterday, but it is not very useful for me because:

  • I couldn’t stop sampling (as “zoom” it is not integrated in the oscilloscope, the usual commands do not apply)
  • triggering was not stable (the wave is stable in the oscilloscope, but not in the “zoom” mode)



    … but your Alternative dso firmware is something fantastic and I don’t intend to use anything else in the future - with or without zoom!



    Another question: is there something like an user documentation? The firmware is very user friendly but some informations about specific functions or the general philosophy would be helpful (e.g. the fact that the generator seems to be in a separate software block, but in reality it still works while the oscilloscope is running, or how to use the masks, the cursors, the PID controller…). Some informations about the compatibility with other applications (like jpa’s Pawn interpreter and alterbios) would be helpful too.



    Thanks+Regards

    Patrick