All Projects → BojanJurca → Esp32_oscilloscope

BojanJurca / Esp32_oscilloscope

Licence: MIT License
ESP32 oscilloscope - see the signals through Web browser the way ESP32 sees them

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to Esp32 oscilloscope

CTBot
A simple (and easy to use) Arduino Telegram BOT Library for ESP8266/ESP32
Stars: ✭ 114 (+0.88%)
Mutual labels:  esp32-arduino
TTGO-TAudio
T9
Stars: ✭ 63 (-44.25%)
Mutual labels:  esp32-arduino
SoftwareOscilloscope
A software oscilloscope for Arduino made with Python and PyQtGraph
Stars: ✭ 98 (-13.27%)
Mutual labels:  oscilloscope
esp32-internet-ota
ESP32 + GitHub Actions + Husarnet. A boilerplate project for ESP32 allowing in-field firmware update using GitHub Actions workflow.
Stars: ✭ 28 (-75.22%)
Mutual labels:  esp32-arduino
oscilloscope.js
A small javascript plugin to create an oscilloscope of an audio-context
Stars: ✭ 28 (-75.22%)
Mutual labels:  oscilloscope
oscilloscope
A Flutter package that can display an Oscilloscope type graphical display
Stars: ✭ 17 (-84.96%)
Mutual labels:  oscilloscope
tiny scope
Tiny Scope for Arduino
Stars: ✭ 34 (-69.91%)
Mutual labels:  oscilloscope
FT2232ImageOutput
Drawing images on oscilloscope using ft2232hc chip
Stars: ✭ 29 (-74.34%)
Mutual labels:  oscilloscope
esp32FOTA
Experiments in firmware OTA updates for ESP32 dev boards
Stars: ✭ 185 (+63.72%)
Mutual labels:  esp32-arduino
M5Stack-Air-Quality-ESPHome
ESPHome configuration for M5Stack's PM2.5 Air Quality Kit with the PMSA003 particulate matter sensor and the SHT20 temperature and humidity sensor
Stars: ✭ 19 (-83.19%)
Mutual labels:  esp32-arduino
esp32cam-access-control
Open a door when a face is recognised using the ESP32-CAM
Stars: ✭ 45 (-60.18%)
Mutual labels:  esp32-arduino
ESPHome-Air-Quality-Monitor
ESPHome configuration for a DIY indoor air quality monitor for CO₂ concentration, PM2.5 and PM10 concentrations, and temperature, humidity and pressure
Stars: ✭ 42 (-62.83%)
Mutual labels:  esp32-arduino
JJMumbleBot
A plugin-based All-In-One mumble bot solution in python 3.7+ with extensive features and support for custom plugins.
Stars: ✭ 40 (-64.6%)
Mutual labels:  web-interface
music visualizer
Shader viewer / music visualizer for Windows and Linux
Stars: ✭ 137 (+21.24%)
Mutual labels:  oscilloscope
ScopeGUI
虚拟示波器 GUI for https://github.com/shuai132/ScopeMCU
Stars: ✭ 46 (-59.29%)
Mutual labels:  oscilloscope
NeoGB-Printer
An open-source and standalone Gameboy Printer emulator 100% compatible with all officially released games (110 in total) that support the accessory. Just print and save the images as BMP
Stars: ✭ 61 (-46.02%)
Mutual labels:  esp32-arduino
SidWizPlus
Oscilloscope view audio renderer originally based on SidWiz
Stars: ✭ 94 (-16.81%)
Mutual labels:  oscilloscope
esp-rgb-led-matrix
Full RGB LED matrix, based on an ESP32 and WS2812B LEDs.
Stars: ✭ 91 (-19.47%)
Mutual labels:  esp32-arduino
esp32cam-ready
Plug and Play firmware for the esp32cam. Flash, provision and connect to rtsp.
Stars: ✭ 67 (-40.71%)
Mutual labels:  esp32-arduino
TinyPixelMapper
a Pixelmapping software for the ESP32 and ESP8266 for addressible LED Strips, with a OSC controll interface and FFT
Stars: ✭ 22 (-80.53%)
Mutual labels:  esp32-arduino

ESP32 oscilloscope with Web user interface - see the signals the way ESP32 sees them

Demo ESP32 server is available at http://193.77.159.208/oscilloscope.html.

The first picture has been generated by bouncing of an end switch. ESP32 Oscilloscope performed digitalRead-s after pin has been initialized in INPUT_PULLUP mode. The second picture shows noise coming from poorly regulated power supply. ESP32 Oscilloscope used analogRead-s on an unconnected pin.

Screenshot

ESP32 oscilloscope was first meant to be just a demonstration of the ESP32_web_ftp_telnet_server_template (https://github.com/BojanJurca/Esp32_web_ftp_telnet_server_template) capabilities and is still fully included there, but it seems to be better off on its own. Only functionalities necessary for oscilloscope to work are used here.

What is new in version 2.0?

Honestly, not much, only only a new version, 2.0 of servers is used with improved performance, efficiency and stability.

Setup instructions

  1. Copy all files in this package to Esp32_oscilloscope directory.

  2. Open Esp32_oscilloscope.ino with Arduino IDE.

  3. Find and change YOUR-STA-SSID to your WiFi SSID and YOUR-STA-PASSWORD to your WiFi password.

  4. Oscilloscope uses FAT file system so select one of FATFS partition schemas (Tools | Partition scheme | ...)

  5. Compile sketch and run it on your ESP32 for the first time. Doing this, ESP32 flash memory will be formatted with FAT file system. WARNING: every information you have stored into ESP32’s flash memory will be lost.

  6. FTP to your ESP32 (By using ftp command line utility or Windows explorer. User name and password are not required) and upload the following files into /var/www/html directory:

    • android-192-osc.png,
    • apple-180-osc.png,
    • oscilloscope.html.
C:\esp32_oscilloscope>ftp YOUR-ESP32-IP
Connected to 10.0.0.3.
220-ESP32 FTP server - everyone is allowed to login
User (10.0.0.3:(none)):
331 enter password
Password:
230 logged on, use "/" to refer to your home directory "/"
ftp> put android-192-osc.png /var/www/html/android-192.png
226 /var/www/html/android-192-osc.png transfer complete
ftp> put apple-180-osc.png /var/www/html/apple-180.png
226 /var/www/html/apple-180-osc.png transfer complete
ftp> put oscilloscope.html /var/www/html/oscilloscope.html
226 /var/www/html/oscilloscope.html transfer complete
ftp> ls
200 port ok
150 starting transfer
-r-xr-xrwx   1 owner    group            1818 Aug 24 10:47      /var/www/html/android-192-osc.png
-r-xr-xrwx   1 owner    group            1596 Aug 24 10:47      /var/www/html/apple-180-osc.png
-r-xr-xrwx   1 owner    group           39515 Aug 24 10:47      /var/www/html/oscilloscope.html
226 transfer complete
ftp>
  1. Open http://YOUR-ESP32-IP/oscilloscope.html with your browser.

Things to consider when analogReading GPIOs

ESP32 has two SARs (Successive Approximation Registers) built-in among which only ADC1 (GPIOs: 36, 37, 38, 39, 32, 33, 34, 35) can be used for oscilloscope analogReadings. ADC2 (GPIOs: 4, 0, 2, 15, 13, 12, 14, 27, 25, 26) can perform analogReadings only when WiFi is not working. Since oscilloscope uses WiFi, ADC2 GPIOs are not available at this time.

ESP32 functions that perform ADC conversion (adc1_get_raw or Arduino analogRead for example) are not thread safe. If your sketch is analogReading ADC1 GPIOs then you are not supposed to use oscilloscope on these GPIOs. If you must, you can use adc () function (from oscilloscope.h) instead of adc1_get_raw () or do your own reading inside critical section like oscilloscope does:

inline int16_t adc (adc1_channel_t channel) __attribute__((always_inline));
int16_t adc (adc1_channel_t channel) {
  taskENTER_CRITICAL (&analogReadMutex);
    int i = adc1_get_raw (channel);
  taskEXIT_CRITICAL (&analogReadMutex);
  return i;
}

Since IDF 4.? you can no longer analogRead GPIOs that generate analog output themselves. You may have to use a wire to connect GPIO used for analog output to GPIO used for ADC conversion and read the signal there.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].