BitScope

Note: “BitScope DSO” is the software interface for the BitScope USB oscilloscope.  This is totally different from the “Bitscope” package used to monitor digital audio in JACK Audio Connection Kit.

I have an old 2-channel analog oscilloscope, but it’s not very convenient and doesn’t have any storage capabilities, making it really difficult to measure transients or things that happen long after the trigger.

LIZEN LAS-5020 20 MHz 2-channel analog oscilloscope

I looked around at different options and decided a USB scope would be nice to have.  Since I’ve started using predominantly Ubuntu Linux at home, but Windows XP at work, I wanted something that would work in both operating systems.  The BitScope seemed to be what I wanted, but is quite expensive, with even the cheapest pocket analyzer at $475. (My old analog scope was less than $50 on eBay.)  With the help of a saved eBay search for “bitscope”, though, I eventually ended up finding one for 1/3 the normal price.

Photograph of BitScope BS50U Pocket Analyzer

As is often the case with deals like this, the unit didn’t work when I got it.

Repair

The seller said it worked fine for him, so I poked around some more.  I tried it in Windows and it didn’t work there, either.  I went to Gnome System Log (/var/log/messages), and saw this among the messages it displays when I plug it in:

Jun  1 23:18:24 Inspiron kernel: [53398.974351] hub 1-0:1.0: over-current change on port 1

Aha.  It’s drawing too much current from the USB bus and getting shut down.  This is the sort of thing I develop at work, so I should (theoretically) know how to fix this.  I found a compatible DC power supply (12 VDC, 800 mA, 2.5 mm center positive) and tried it with that, and it worked!  It also worked when I first plugged it into the external supply, then plugged in the USB cable, and then disconnected the external supply.  So it seemed like an inrush current problem rather than a short circuit/bus power problem.

(According to the USB spec, devices cannot draw more than 100 mA in an unconfigured state, except for a brief inrush current spike, but the amount of excess charge during that spike is limited to 50 µC.  In other words, you aren’t allowed to put more than 10 µF across the VBUS line to ground.  A lot of USB device manufacturers ignore these requirements, and most computers don’t care, but my Dell Inspiron 8600 seems to be especially picky.)

The BitScope website emphasizes the fact that it’s “open design hardware”, but there were no schematics for this unit on their web site, and the eBay purchase didn’t include a manual.  So I wrote to the company and asked for help.  They were very helpful, going so far as to scan in a manual and convert it to PDF for me:

The company told me there’s a “slow-start” circuit, but it’s more of a “delayed start”.  While plugging in USB, the PWREN pin on the USB FIFO (FT245BM) is brought high immediately.  This keeps the PMOS switch IRF7314Q open, so no current can flow from VBUS into the rest of the circuit.  After initialization, the PWREN pin snaps low, opening the PMOS switch and connecting 47 µF directly across VBUS to ground.  My computer doesn’t like this much current, and presumably shuts down the FIFO, evidenced by the PWREN pin going high again about 8 ms later.  (Remember that I am just eyeing this up on an analog scope with no storage ability.  Thankfully, Linux was kind enough to continually re-initialize the USB port, trying to connect and failing over and over again, so I didn’t have to keep plugging and unplugging the USB cable manually while holding the probes against the relevant pins.)

After realizing this, I decided I should try to make the FET open up a little more slowly so the current into the cap is not so high.  So I connected a 1 µF cap (time constant of 10 ms) from the gate of the FET to ground.  It worked!  But when I looked at the system log, it was still showing the over-current error.  In fact, it looked like it got the over-current error, shut down, re-initialized, and then started correctly, probably because the cap was still charged from the previous attempt.  Then I realized what I had done.  By putting the cap to ground, the FET was held closed during startup, so there was still an inrush spike while plugging in, instead of after initialization. So I connected the cap between the gate and VBUS instead:

A 1 uF capacitor is connected between VBUS and the gate of the FET

Photo of a 1 uF capacitor soldered between VBUS and the gate of the FET

Now the gate is pulled up instantly along with VBUS at plug-in, but when PWREN goes low, the FET gate voltage is slowly dropped down, so it doesn’t open fully until after ~10 ms.  Now it works on bus power with the laptop, and doesn’t complain about over-current at all.

Software

After getting the electronics working, I started up the DSO software.

You have to download and install kylixlibs3-borqt along with the BitScope DSO software or it won’t work.  I used the BitScope-maintained kylixlibs3-borqt_3.0.2bs-1_i386.deb package from the download page.  Other .deb files are available from the kylixlibs SourceForge site, but I don’t know if they work for this.

So then it continually popped up the .csv import screen, indicating that it can’t connect to the hardware.  Eventually I figured out that I had the wrong thing entered in the configuration dialog.  Press the SETUP button and put /dev/ttyUSB0 in the IP Address or Port box under the Setup tab.

Screenshot showing \

I had tried just ttyUSB0 alone and it wasn’t working.

Launcher

After getting it working, I made a Launcher for the main panel.  Right-click Applications, click Edit Menus, go to the Other menu, press New Item.

I got the real icon out of the Windows version, which you can download directly here:

Icon file for BitScope DSO

There’s also a scope icon on Rachel’s pages.

It works!

My body has a built-in signal generator:

11 thoughts on “BitScope

  1. I honestly don’t use it that much, so I’m not sure I can give a good review.

    The software is rather frustrating to me. I’d consider that the weakest point. It’s open source, so theoretically people can write their own software and improve on it, but I don’t know of any.

    None of the buttons in the software are labeled, so I forget what each thing does and have to look it up in the manual each time. There’s no tooltip or anything.

    It lets you adjust the signal level in two ways: One actually adjusts the analog gain of the input, the other does digital scaling, allowing the signal to clip before it reaches the edge of the screen. I find this very non-intuitive compared to a normal scope, and wish it at least gave some indication that the waveform was clipping due to the BitScope and not due to the circuit being tested, like turning the trace red when it hits the rails or showing red limit lines on the screen. I don’t see why anyone would want to show less resolution than possible, though. The waveform would only clip at the screen edges if I wrote it.

    It’s hard to get a good trigger.

    An “Auto” button would be nice, too, like digital scopes. If it found multiple waveforms at very different frequencies, it could easily give me the option of which to display.

    Also, I wish it were possible to use it in a 1-in/1-out configuration for sending waveforms into a device and measuring what comes out. This model can only run in 1-in, 2-in, or 1-out. So it cannot do http://www.bitscope.com/software/dso/guide/1.2/?p=12#tfa

    Here’s another possibility, for only $90:

    http://www.justblair.co.uk/seeed-studio-dso-nano-pocket-digital-storage-oscilloscope-review.html
    http://www.seeedstudio.com/depot/micro-digital-storage-oscilloscopedso-nano-p-512.html

  2. The triggering is level sensing. My 120 bitscope will trigger well at peaks of the waveform but at any intermediate point their is a dual response ie both -ve and +ve displays are possible. I am currently working on a trigger generator to go in place of the pre-scaler.

  3. Yes, that’s the problem with triggering. Seems like they could make it much better with some software changes, but their emphasis is on making it “just like” a real oscilloscope instead of making it better than a real oscilloscope. 🙂

    It looks like they released a new version of DSO a few days ago. I wonder if it has any improvements to functionality or if it’s just cross-platform.

  4. Hmmm…

    “BitScope is a built and tested (and previously build it yourself DIY), open design, digital storage oscilloscope and logic analyzer (also, digital sampling oscilloscope, mixed signal oscilloscope, DSO) based on the MicroChip PIC … that uses open source software and commercial software for Windows, Linux and Macintosh ”

    They give you a library to interface with it, at least.

    http://www.bitscope.net/download/?p=1

  5. The analog input on my BS50’s front panel seems to work fine, but the analog POD inputs on my BitScope are not working anymore. I don’t know if I’m doing something wrong or what.

    Also, any hints about how to use the AWG (Arbitrary Waveform Generator) when you run the BitScope on Linux?

    Anyway… could you share the “BitScope BS50U manual and schematic” file with me or point me where to download it? I would be extremely grateful to you if you can do that.

    Thanks in advance!

  6. You’re my hero! 🙂
    My BitScope is fully working now! …thank you A LOT for the PDF!

    In addition, it seems the company behind this product is launching fresh software updates. A good thing too.

    All the best!

Leave a Reply

Your email address will not be published. Required fields are marked *