Chapter 1: Beginnings
Chapter 2: Further Beginnings
Chapter 3: Hello World
Chapter 4: More On GPIO
Chapter 5: Interrupts
Chapter 6: More On Interrupts
Chapter 7: Timers
Chapter 8: Adding Some Real-World Hardware
Chapter 9: More Timers and Displays
Chapter 10: Buttons and Bouncing
Chapter 11: Button Matrix & Auto Repeating
Chapter 12: Driving WS2812 RGB LEDs
Would you like to be notified by email when Jason Sachs publishes a new blog?
Last year I wrote about some of the key characteristics of oscilloscopes that are important to me for working with embedded microcontrollers. In that blog entry I rated the Agilent MSOX3024A 4-channel 16-digital-input oscilloscope highly.
Since then I have moved to a different career, and I am again on the lookout for an oscilloscope. I still consider the Agilent MSOX3024A the best choice for a general-purpose benchtop oscilloscope -- at approximately US$5400, it's a fairly good value, although still not inexpensive.
While looking for other some other test equipment, I recently ran across the website of Hameg, which has a series of mixed-signal oscilloscopes. Hameg is a German company that's a subsidiary of Rohde & Schwarz; both companies are fairly well known in Europe but much less familiar here in the USA. The Hameg HMO2024 is a 200MHz, 4-channel analog, 8-digital-input benchtop oscilloscope that retails for approximately US$3000, or 45% less than the MSOX3024.
I recently had a chance to test out the HMO2024 and see how it compares to the Agilent scopes I've tried. Here's what I found.
Just to recap, there are a number of important features I consider essential:
Aside from the user interface, all of these features/options are described in the specifications of the Hameg HMO2024, and it looked like an attractive alternative to the Agilent scope for engineers with a more limited budget.
The HMO2024 has 4 analog channels. The vertical gain and offset are controlled by a single pair of knobs, applying to the currently-selected channel, rather than a dedicated vertical gain and offset knob per channel. At first I was concerned that this would become inconvenient and cumbersome, but I found the ability to select a channel and change the gain and offset very easy to use.
The vertical offset of the analog channels is fairly flexible and occurs prior to the oscilloscope ADC: you can offset a channel by up to ±10 divisions, so if you're looking at a 2V/division waveform, you can offset it by up to ±20V. This is much better than the lower-end Tektronix oscilloscopes (MSO2000, MSO3000 series) where the offset happens post-ADC and you just get the ability to move the scope trace up and down, but not as good as the Agilent behavior.
For comparison I ran some tests on the HMO2024 and an Agilent MSO6014A oscilloscope that we have at our company, looking at 2 channels: one with the scope probe and ground input tied together to chassis ground, and the 2nd probe connected to a 24V power supply. The Agilent MSO6014A was able to offset the 24V signal so it showed up on the screen even at 10mV/division: an impressive 2400 divisions of offset!
Here's some statistics on noise:
|HMO2024, 0V input, 1msec/div, sampling mode||4.7mV||15.6mV||31.6mV|
|HMO2024, 24V input, 1msec/div, sampling mode||91mV||320mV||480mV|
|HMO2024, 0V input, 1msec/div, hi-res mode||1.4mV||6.5mV||15.1mV|
|HMO2024, 24V input, 1msec/div, hi-res mode||20mV||80mV||160mV|
|HMO2024, 0V input, 10usec/div, hi-res mode||1.7mV||7.8mV||26.2mV|
|HMO2024, 24V input, 10usec/div, hi-res mode||26mV||120mV||180mV|
|MSO6014A, 0V input, 1msec/div, 10mV/div sampling mode||3.0mV||13.8mV||23.8mV|
|MSO6014A, 24V input, 1msec/div, 10mV/div sampling mode||3.6mV||13.8mV||23.8mV|
|MSO6014A, 0V input, 1msec/div, 10mV/div hires mode||0.5mV||2.2mV||4.0mV|
|MSO6014A, 24V input, 1msec/div, 10mV/div hires mode||0.7mV||3.3mV||13.1mV|
|MSO6014A, 0V input, 10usec/div, 10mV/div hires mode||3.9mV||17.5mV||28.8mV|
|MSO6014A, 24V input, 10usec/div, 10mV/div hires mode||3.5mV||16.3mV||37.5mV|
The HMO2024 has noise characteristics on par with the MSO6014A for the 0V input. For the 24V input the MSO6014A had a big advantage over the HMO2024 because the gain can be increased with a large offset to keep the scope waveforms within the visible area.
Triggering options are pretty intuitive, and there are a lot of options: slope trigger, dual slope trigger (called "B-trigger" in their manual, which is a signal exceeding a threshold and then later dropping below another threshold, with trigger count or time qualifications), pulse trigger, logical combinations of states (good for the digital inputs), video, or serial bus trigger.
There is also a dedicated AUTO/NORM key, which I found very helpful. How many times have you run into this situation: you get your trigger conditions defined, and are all ready to go with Normal triggering, and what do you see on your scope? Nothing. Darn. So you wonder what's going on, and the only way to see the oscilloscope inputs is to go to Auto triggering. Then you have to adjust your settings and go back to Normal triggering. Repeat as necessary. Well, with most scopes this requires a few button/menu selections, and it quickly becomes a pain. With this scope it's a single button press, which makes this a snap.
Most oscilloscopes have a trigger holdoff setting you can adjust, that inhibits subsequent triggers for a certain interval after a trigger has happened. The HMO2024 does not have this feature. I'm used to having it, so I'm a little disappointed by its absence -- it's useful when you are triggering on long sequences with spaces in between, so that you can have the scope disregard triggers that might happen in the middle of a signal. I suppose in most cases you can accomplish the same thing with a pulse trigger, but somehow it seems like there are cases where a trigger holdoff would be important.
This scope has a Zoom feature to acquire long waveforms and then view a smaller time period within the acquired waveform, while viewing the entire waveform in a small portion of the screen. This is also very useful, and puts the HMO2024 in line with other scopes with this feature like the MSOX3000 series.
There are also the usual cursor measurement and automeasurement features to compute mean/max/min/peak/frequency/etc. values. The measurement feature had something I used to use a long time ago when I had access to one of the LeCroy scopes: a "statistics" display showing mean/max/min/standard deviation of a measurement taken over multiple oscilloscope traces. This is useful if you need to see variation over a long time.
The Math menu allows you to define new "virtual" signals as functions of the digitized analog input signals. In addition to the obvious ones (add, subtract, multiply, divide) you can compute squared, square roots, log, derivatives, integrals, high-pass-filter, and low-pass-filter based on an input signal. The integral and HPF and LPF features I found particularly useful. Unfortunately there seems to be a bug in the HPF and LPF features, in that you're supposed to be able to adjust the filter time constant, but it appeared as if adjusting the filter time constant did nothing at all. The integral and derivative features should have had a user-adjustable constant of integration/differentiation as well; instead, they appear to use successive display points, which means when you change the horizontal scale to view over a longer timescale, the integral constant changes.
One feature that Hameg needs to fix in this scope is the ability to quickly adjust a numeric setting with a very wide range. Some of the settings (for example the HPF and LPF cutoffs) you sit there and spin and spin and spin the adjustment knob for a long time before you can get it to where you want. Either they need to put into place a nonlinear adjustment (when the adjustment knob is spun very fast, increase the gain of the adjustment change), or they need a data entry mechanism to enter constants digit by digit rather than having to incrementally adjust up or down.
The connector on the front of the scope allows you to connect an optional HO3508 8-channel logic probe cable (about $400 list price) to view digital signals. This is pretty straightforward to use, and like other scopes with this feature, you can name individual signals so you aren't restricted to just calling them D0, D1, D2, etc.
I found two major flaws in the digital input feature.
One is that, although you can adjust the input threshold of the digital signals (TTL, 5V CMOS, ECL, and user-selectable levels), you cannot use separate thresholds for different digital inputs. This is a very poor design choice. Anyone who works on embedded systems long enough will realize that you often find both 3V and 5V digital signals present, and this scope does not offer a reliable way to view those signals at the same time as digital inputs. It would also have been nice to include a selectable hysteresis level (again, on a per-input basis) to handle either noisy signals or clean digital signals for which it is not easy to attach digital probes without picking up unwanted noise.
The other flaw is that in order to view the digital signals, you give up one of the analog channels. You can either get analog channel 3 or the digital signals, but not both. (With the higher-bandwidth scopes in this series that give you 16 digital inputs, you lose one analog channel for each group of 8 digital inputs.) This is a pretty raw deal. I don't know whether the analog signals are always acquired, and it's just that you can't display channel 3 when you look at the digital inputs, or whether the scope stops acquiring channel 3 altogether when you turn on the digital channels. Either way, this is a very poor design choice.
Another feature that disappointed me was that the pulse trigger (trigger on pulses with widths above or below or between limits) only is applicable to the analog inputs, and not the digital inputs. Huh? This seems like an oversight that could have been prevented.
I looked at the optional HOO10 serial decoder for UART/SPI/I2C signals. This is a fairly inexpensive option at about $400 list price. (For the Agilent MSOX3000 series, it costs $730 for UART and another $730 for SPI and I2C decode.)
This option allows you to define two bus signals as functions of the analog or digital inputs. So if you want to decode UART, you tell the scope which signal to use, and if you want to decode SPI, you tell the scope which signal is CLK, which is chip select, and which is the data. I only had a chance to test UART, and not SPI or I2C, but it's a very valuable feature to have. In the old days, when I worked on an SMBus project, I can't remember how many times I would spend 5-10 minutes poring over oscilloscope traces just to try to figure out what data was being sent, and I never knew whether I had made an error. These days, with serial bus decode, you can display data values on the scope very quickly and save your valuable time for working on more important things.
The HOO10 allows you to view data values (in binary, decimal, hex, or ASCII) and trigger off specific data values. I found it very easy to trigger off a single UART data value; the scope had a feature to trigger off multiple successive UART values, but I could not get it to work, and I couldn't tell whether I wasn't doing something right or whether there was a bug in the trigger function.
Here's a screenshot of a UART decode, which was a very long UART signal that I was able to trigger and zoom to view individual bytes.
When I first looked over the spec sheet for the HOO10 I was worried because it only showed the ability to decode one signal: UART RX or TX, but not both, and SPI MISO or MOSI, but not both. However, this is per serial decode bus. You have two buses you can decode and display, so can set up one for UART RX and the other for UART TX, or one for SPI MISO and the other for SPI MOSI, or some other combination.
There is also an optional module HOO12 for CAN/LIN decode for automotive applications. This retails for about $660, slightly less expensive than the MSOX3000 series CAN/LIN decode at $730. I was not able to test out this module.
Scopes are great at viewing data, but often you need to capture this data either as an image or as the raw data. In the 1990s we were stuck using floppy disks or RS232 or GPIB to transfer data to a PC. These days scopes use USB thumb drives or LAN (Ethernet) network connections.
The HMO2024 has a built-in USB host port for plugging in a thumb drive, and comes with a USB device connector and RS232 connector on the back, so you can connect to a PC directly. There are optional connectors for Ethernet (HO730: $317) and GPIB (HO740: $383). I tried out the Ethernet connector, which is my preferred choice, since modern scopes now have a builtin web-browser to make it easy to download data without requiring any external software.
This series of scopes does have a builtin web browser for the Ethernet connection, and it is very easy to download oscilloscope screen shots (like the UART screenshot shown above). But there is no feature for downloading the raw oscilloscope data via a web browser. Hameg needs to add this feature - it's a must-have in my opinion, and I found it sorely lacking. What you get instead is a dialog box for entering in SCPI commands. I played around with SCPI for a while and all I could manage is for the scope to report the date and time; none of the other commands I tried worked.
After I gave up trying to use the web-browser, I tried out using Hameg's free oscilloscope communications software, HMExplorer, which is supposed to be able to download scope data as images or data in CSV format. I say "supposed to" because the software is one of the ten worst software programs I have ever used. It has a weird user interface that is very nonintuitive, and although I could get a CSV download started, the progress bar that is displayed restarts many times (imagine Porky Pig trying to get out a sentence) before it finally manages to finish. I was able to download CSV data this way, but only the smaller dataset (corresponding to the displayed data) and not the larger "full" dataset; the program warned me that it might take a half hour to transfer, and offered no adjustable control for how many samples to transfer to the PC. I started on the long transfer, again got restart after restart, until finally the data started to transfer, and then it stalled at about 80%. When I tried to click Cancel it told me that I would have to restart the instrument to resume communcations.
This is a Windows program, so as bad as it is, Mac and Linux users are out of luck completely.
The user's manual is not particularly helpful, and the translation from German to English is incomplete, with a few German terms scattered around the manual and screenshots showing the program with German-language dialog boxes.
As an aside: what I don't understand about semiconductor and test equipment companies from other countries that produce English documentation, is why they don't just find one or two bright college students who are native English speakers, and pay them $100 to proofread and correct their documentation, and take screenshots in English. Sure, really good translation is expensive, and I can kind of understand poorly-translated English, but it shouldn't cost very much to get a native speaker to fix these manuals, and it would work wonders on company reputation. When I read a manual with poorly-translated English, what sticks in my mind is that the company hasn't bothered to make a quality product. Products from China are notorious for having bad English documentation. I would not have expected a European company to run into this situation.
So I gave up trying to use HMExplorer.
This left me with the USB thumb drive as the only viable option for saving raw waveform data. It was easy to get this data onto a thumb drive, and the time needed to save data onto a thumb drive is very quick, only a second or two. (One of the older Tektronix scopes, either the TPS2000 series or TDS3000 series, would take an extremely long time to save data onto USB thumb drive or CompactFlash card. I mean 15 or 20 seconds for maybe 100K of data. Boo.) My only complaint with the thumb drive method of saving data, is that the HMO2024 does not offer a way to save all the data into one CSV file. Instead you have to save one .CSV file per oscilloscope trace. This is a poor design choice that should be fixed. All the analog data is being sampled simultaneously, so there's no reason the scope shouldn't be able to save one file with 1 column of time data and at least the 4 columns of waveform data from the 4 input channels. (if possible the digital inputs and math waveforms as well.)
The one other thing that's neat about this scope, is that it comes with a nice assortment of test signals. Instead of the usual signal and ground test points for a 1kHz square wave, you get 5 test points:
You can select in the scope whether you want a 1kHz or 1MHz calibration waveform, or whether you want a SPI/I2C/UART signal at various bit rates, or whether you want digital outputs that are counter bits or random patterns. This is very useful to try out the oscilloscope functionality. It got me going quickly with the UART bus decoder, although it looked like the UART data was random; I would have expected something predefined like a bunch of 0xAA55 data or a counter, or test data like sentences from Lewis Carroll's "Jabberwocky".
Not only is the test signal feature useful for trying out this oscilloscope, but if you are working on embedded systems and need to find a source of SPI/I2C/UART signals, this scope offers that. (Perhaps not as useful as the arbitrary waveform generator option available on the Agilent MSOX3000 series, but you only get 1 channel output from that scope, so SPI/I2C signals are out of the question.)
The "Component Tester" feature looked interesting (some kind of AC waveform applied to determine component impedance by graphing current vs. voltage) but I didn't have a chance to try it out.
Hameg sells two categories of oscilloscopes.
The HMO2024 is the top end of the lower-end (HMO2000) series, which offers choices of 2 or 4 channels and 70/100/150/200MHz bandwidth. (Just for reference: the list price of the 2-channel 70MHz scope is roughly $1650, the 4-channel 70MHz scope is roughly $2050)
The higher-end HMO3000 series (HMO3032/3034/3042/3044/3052/3054) offers 2 or 4 channels and 300/400/500MHz bandwidth that is "software-upgradable" like the Agilent MSOX3000 series -- all of the oscilloscopes are inherently 500MHz, but the bandwidth is factory-limited depending on how much you're willing to pay. The main differences between this series and the HMO2000 series besides bandwidth seems to be that the HMO3000 series is slightly larger in depth and slightly heavier, and the HMO3000 series offers 16 digital channels (if you give up two analog channels) vs. the 8 digital channels on the HMO2000 series. Otherwise the feature set appears to be about the same.
The HMO3000 series is new and Hameg hasn't published a list price.
The HMO2024 is an interesting low-cost oscilloscope with a lot of good features and some room for improvement.
At this point I'm finding it hard to make up my mind. The Agilent MSOX3024 is a better scope, but costs more. The Hameg HMO2024 offers a price that almost lets me afford 2 of them for the price of the Agilent scope, and has better analog signal handling than low-end Tektronix scopes, and a much more intuitive UI than Lecroy scopes -- but it also has a few disadvantages that are enough of a stumbling block to make me hesitate before wanting to purchase it.
My recommendation would be if your budget is restrictive or you can live with the limitations I've mentioned, the Hameg HMO2000 series is a really attractive value, and it easily beats the Tektronix and Lecroy scopes I've tried. If your budget is less of a concern, and you need the higher quality, I'd recommend the Agilent MSOX3000 series.
P.S. There's a pretty good review of this oscilloscope on Youtube which covers some of the features I haven't, and you can see it in action.
P.P.S. What's the worst software I've ever used? It's the PC software to use the Extech 380803 Power Analyzer, which is a nice little briefcase-sized box that lets you measure AC and DC power flows. The last time I tried using this software (2001? 2002?) it was atrocious 16-bit Windows 3.1 software, with poorly sized dialog boxes, when the rest of the world was using Windows 2000. Another item in my top 10 is the software for the now-discontinued Fluke Hydra 2600 series datalogger, which again, was a nice piece of hardware, with kludgey software that left a bad taste in my mouth. I do wish test equipment manufacturers would view good auxiliary software as a vital part of their responsibility toward customers.
Add a Comment