README file for Gamma Grapher Nano


This is a project to convert a DSO 201 Nano oscilloscope into a multichannel analyzer for gamma spectrometry. This software should work with all versions of the DSO 201 except version 3. This project was originally known as Gamma Grapher Version 2. I have renamed it Gamma Grapher Nano to avoid confusion.


1) what version of DOS Nano to buy?

You want the DSO Nano 201, version 2. It sends the input signal to the 12 bit ADC built into the ARM chip. Version 1 has a metal pin for audio, version 2 has a 3.5mm audio plug. I don’t have a verison 2 yet but don’t expect problems. If there are I’ll buy one for testing and field use. The DSO 201 PRO aka DSO 201 Version 3 does not have removable micro SD card. I don’t know if it will work or not. And it is much more expensive. Seed Studio is no longer making version 1 or version 2, but you can find it carried still by many sellers, including Amazon and ebay. Here is a side by side comparison: http://www.seeedstudio.com/wiki/DSO_Nano

The DSO 203 uses an 8 bit external ADC, not good enough resolution for our use. It is also over twice as expensive.

I have a STM prototype development card with LCD. It will allow more flexibility as display and analog hardware. I will be testing with it soon. My goal is to have a single enclosure device with built in probe. A nd since people have purchased some of these already I am obligated to finish the software for it. There should not be too much work required.

2) Is code open source? Both code and hardware are open source. Seed Studio provides schematics. My software is archived at Source Forge. Original oscilliscope software is open source with at lest 3 versions that I know of. My latest code uses the STM provided source libraries, open source operating system, my own open source filesystem code , etc. I welcome reuse of my code on other projects and improvements to my code, as long as you share your work.
See the file COPYING as well as each file for license information.

This project is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This project is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

3) What is required to program the DSO?
Both firmware download and access to files is over standard mini USB cable. Firmware is download through a built in DFU download code. Power up with down button pressed, attach USB code and use the DFU utility. The DFU code and instructions are included in the release package. I use Linux so there may be issues with Windows systems that I know nothing about. However DFU download software is widely used so there is good support on the web.

4) How to purchase?
I have no plans to sell kits at this time. At this time the user is responsible for providing a scintillation probe and associated electronics. Which is pretty simple. Seed Studio sells the adapters to go from Nano MCX coax connector to BNC coax. So signal connections are easy. Just remember that the the high voltage must be isolated away from signal through a capacitor coupling! Typical of 2 connector probes. Input to Nano is limited to about 80 V. Gain is adjustable through settings menu to accomidate probe signal level.

There is confusion about the connections for DSO 201 Nano version 2. Drawings show a 3.5 mm audio jack instead of MCX connector. I do not have a version 2 Nano to verify actual connector type.

I use probes with their own battery operated power supply. As I put my hardware together I can provide examples. There are plenty of examples of home made probes and power supplies in the files section. Probes that work with audio card based systems should work fine with GGN.

5) What micro flash (TF) card should be used?

Only micro SD flash (TF) cards are supported. The SDHC type cards use different interface and are not compatible. Typically flash cards up to 2GB are SD not SDHC. They are inexpensive and widely available.

6) What development environment is required?

Development environment is for both gcc under Linux or IAR under windows. I use the light version of Code Sourcery C compiler. It is identified as “Sourcery_CodeBench_Lite_for_ARM_EABI”. For development environment I use Eclipse. It works well with makefile based projects. You need to add the C/C++ add on to it. Programming of Nano is done through dfu utility over USB bus. Source code is available from source forge or in files area of gammaspectrometry group at Yahoo. Source Forge code is located at: http://sourceforge.net/projects/gammagrapherv2/

7) What are the steps to load GGN firmware into a DSO 201 Nano?

  1. Power off the Nano;
  2. While pressing on “down” (-) button turn Nano back on;
  3. Connect mini B USB cable between computer and Nano;
  4. Go to the GGV2 folder;
  5. If code was rebuilt run “sh build_dfu.sh”, not normally needed.
  6. From shell: “sudo dfu-util -a 0 -D ggn.dfu”; (or the equivalent under Windows)
  7. Cycle the power and your latest firmware should be running.

8) What is setup procedure?

  1. Connect signal source to coax connector on the Nano. Input can be 0 – 2.8 V. Signal can be positive or negative.
  2. Connect a piezo transducer to the reference pin if version 1 Nano. Use a 3.5 mm mono(?) plug to connect the transducer with version 2.
  3. Press M key to enter setup menu.

The 4-way button has markings that should be ignored. Buttons will be referred to as up, down, left, and right.

To adjust parameters there is a menu feature. Press the M key to enter menu mode and to return to display mode. Use up and down keys to select a menu item. Use left and right buttons to adjust settings or selection action. Press the >|| key to display text explaining the particular setting. You can manually save parameters to flash card as file settings.bin. Saved settings are restored on power up or through menu.

In display modeThe button marked for pause and forward controls acquisition of spectrum. This allows you to stop the spectrum acquisition. Pressing a second time clears all data and restarts acquisition.. A small symbol at upper left shows if stopped or running. In the menu are options for saving spectrum into standard format onto flash card..

8) How do I access the saved spectrum files and the settings file?

The way the nano communicates with a host is it appears to be mass storage device on the USB bus This uses existing code and is a standard means of communicating over USB. The nano looks like a generic mass storage device with FAT32 or FAT16 filesystem. You may have to manually mount it. If new files are created on the Nano it may be necessary to unmount and remount the Nano.

The sd card in nano is accessed on the most primitive level over USB, Just block reads and writes. File-system code resides on the PC. However there is also file system code in the Nano. So you have two independent pieces of software on two different pieces of hardware accessing the same flash card at the level of block reads and writes. This can really get things confused! Disconnect Nano from USB cable except when retrieving files. Spectrum files are named spectxxx.yyy. xxx is a number incremented for each new file. yyy is an extension identifying the file format. “csv” is comma separated values, easily imported by spread sheet software. “n42” referes to the N42 file format developed for Homeland Security in USA. Other formats may be added later.

9) Can I leave USB cable connected?

Yes, the USB cable can be left connected. It recharges the Nano while connected. Note that an increase in low level electronic noise is introduced by the USB cable. It will show up as very low energy spectrum. You can use the “zero pole” setting to eliminate it.


Problems are tracked through Source Forge ticket system.

Project Admins:

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks