HS102 Oscilloscope

HS102 is a portable and compact DIY oscilloscope for mobile phones and tablets using Android with HScope app. Following a similar build of the HS101, this oscilloscope is made for signal anaysis applications, including DC measurements, data logging from sensors (pay attention to input impedence), automotive checkup, audio and low frequency signals analysis. With 2 channel is possible to have also comparison between 2 signals through the XY Plot function.

  • Channels


  • Input Range

    ±5V (around ±5.4V full range)

  • ADC Resolution

    12 Bits

  • Sampling rates

    3KS/s, 6KS/s, 12KS/s, 25KS/s, 50KS/s, 75KS/s, 100KS/s, 150KS/s, 300K/s, 450KS/s, 600KS/s, 900KS/s, 1800KS/s

  • Bandwidth
    (sine wave -3dB)

    Not limited. Sine wave visible with sinc interpolation up to 400-500KHz @ 1800KS/s

  • Continous acquisition

    Up to 75KSa/s

  • Input Noise

    < 30mV (<= 12mV for Sampling Rate <= 100KSa/s)
    <=20mV with the Black Pill (<=10mV for Sampling Rate <= 100KSa/s)

  • Input Impedence

    10KΩ (if use a standard oscilloscope probe it works just with x1 factor) or see Other Modules

  • Over Voltage Protection

    Tested up to ±25V

  • Modules supported
    in HScope

    Automotive Module, Audio Module

1. How to build it

The hardware is based on STM32F103 microcontroller. It integrate 2 fast 12bit ADCs for the data acquisition. The Blue Pill development board has been chosed for its size, suiteable for this project.

Over this board we are going to install a little module for input acquisition.

The input module is the only part that need to be built with a stripboard. Here is the building scheme for this module. Components are on the top, connection are made on the back.

List of the components:
Name Value
Microcontroller STM32F103C8 Blue Pill
Microcontroller Programming Tool Raspberry Pi USB to TTL Cable (or another model specified here)
Perforated PCB Board 13x7 holes
Connectors 6 Pin single row female 2.54mm pin header connector strip (x3)
14 Pin single row male 2.54mm pin header connector strip (x2)
Resistors 4.7KΩ - 1/4W (x4), 5.1KΩ - 1/4W (x2), 1KΩ - 1/4W (x1)  
Diodes 1N4007 (x4)  
Capacitors 100uF (voltage not relevant, x2)  
IC ASM 11117 - 1.2V  
USB Cable USB OTG Cable - Micro USB to Micro USB or USB Type-C to Micro USB (according the device)
Other Probes with BNC Connectors or cable for making the probe. Plastic box or 40mm Heat-shrink tubing for boxing.  

Using a BNC connector is possible to use commercial oscilloscope probes. In alternative is possible to self made a cable with or without connector (I suggest a shielded cable like the headphone cable).

2. Other Modules

It is possible to make this circuite to work with input voltage ±15V. Check here.

3. Flash the Firmware & Configuration

The firmware flashing is made with the app STM32 Utils which allow the direct flashing of the HS102 Firwmare. In this app there are the instructions on how to connect the USB-TTL Cable to the STM32 Blue Pill board.
After the connection:
1) Go to Init Chipset and check that the app read the chipset
2) Go to the Blue Box icon and in the list select HS10X Oscilloscope, then FLASH FW
After flashing disconnect the USB-TTL cable from the STM32 board and reset the jumpers to the original position.

Firmware also available on GItHub

After installed the firmware, connect the HS102 to HScope and go in Settings->General->Hardware. Here select Model HS102 and ±5V for Input Type. Disconnect and reconnect the device to get the new hardware configurations.

4. Calibration

This device require calibration since the built and the components could be sligthy different. After having connected the HS102 go to Settings->Calibration. Connect the probe to its GND and click on Calib Zero Lvl, first for Channel 1 and then for Channel 2.
After connect Channel 1 to an indipendent and stabilized 5V source. Click on Calib Multiplier and select Channel 1 and 5V as voltage reference. Confirm the operation and repeat also for Channel 2.
Now the device is calibrated.

5. Tests

The STM32 use the USB power to work. Once connected to the phone the red led of the Blue Pill board should turn on. Opening the HScope app it should recognize the oscilloscope and show the data.
The free-version of HScope allow to use the HS102 as voltage tester and as simple oscilloscope. Sampling rate and refresh rate are limited in the free-version.
With the full version of HScope is possible to have access to real-time statistics, FFT, 2 Channels, XY Plot and to use the data logger. The refresh rate is up to 20-25 FPS.
In addition the Automotive Module allow to have high sampling rate continous recording (up to 75KSa/s) for analyse data from sensors, record audio signals or other analysis which require long time recording.
Audio Module is also supported by this device.

6. Alternative Design

This is a full PCB implementation for range 0-20V by Vladimir (source files are available on Github):

7. Other

Some implementation from the users.
Built by Владимир (Vladimir):

Built by Britt :

First Release: Nov 2018
Last Update: Feb 2019