Use your cheap WiFi ear camera without the vendor app.
A viewer for cheap WiFi ear cameras (otoscopes), microscopes, borescopes and
endoscopes that normally need a vendor app ("SL ylz", "EarVision", "Soulear",
"Cooleer", "MAX-VIEW", "Depstech" and friends). It speaks the protocols of
twelve camera families, so one program covers most of that market, and it
never touches the internet.
Project page ·
Download for Android ·
by Matthew Armstrong
- No trackers, no ads, no analytics, no accounts. The app never contacts the internet.
- Android app that asks for network access only.
- Desktop version: one Python file with no dependencies, for Windows, macOS and Linux.
- Works with six camera families (table below) and detects which one your scope is.
- Wakes scopes that hide their WiFi until a Bluetooth knock (EarVision /
softish-), on desktop. - Full-resolution picture by default, with optional Square and Circle views.
- Fullscreen (button, F key or double-click), auto-level from the scope's tilt sensor, mirror, rotate, zoom.
- Snapshots (PNG) and video recording.
- Log panel with one-click diagnostics, plus Reconnect and Restart buttons.
Which cameras work?
| Family | Look for this WiFi name | Companion app it replaces | Tested |
|---|---|---|---|
| NE7 | HNDEC-xxxx | SL ylz | real scope (the author's) |
| NE3 | HNDEC-xxxx (older) | SL ylz | simulator only |
| Wifiview ("Xylla", iTiMO, Y38) | Enjoy-, JesHome-, iTiMO-, jetion_, AIR-ES | AIR-Look, iTiMO | simulator only |
| Soulear (i4season / Beken, sold under dozens of brand names) | Soulear-, SUEAR, i4season, inskam | Soulear / Suear | simulator only |
| EarVision ("JEGOAT") | softish-xxxxxx (hidden until woken, see below) | EarVision | simulator only |
| EarFairy | Cooleer_xxxxxx | Cooleer | simulator only |
| MaxSee / MAX-VIEW / JoyHonest microscopes | Maxsee_xxxx, MAXVIEW-xxxx, JH- (camera at 192.168.29.1) | MAX-VIEW, Max-see | simulator only (others have used it on real ones) |
| Depstech-style borescopes, older firmware | camera at 192.168.10.123, TCP 7060 | "WiFi endoscope" apps | simulator only |
| Depstech WF070 borescopes, newer firmware | camera at 192.168.10.123, UDP 8030 | Depstech View | simulator only |
| Appotech AX3268 endoscopes (YPC99, Kerui, GoSky/YCamera) | camera at 192.168.1.1, RTSP on 7070 | YCamera | simulator only |
| Anything serving MJPEG or JPEG over HTTP (ESP32-CAM, mjpg-streamer) | camera answers on port 80, 81, 8080 or 8081 | whatever it came with | simulator only |
| Novatek-chip cameras | camera at 192.168.1.254 | various | simulator only, lowest confidence |
The Soulear row also covers the MS5 WiFi microscope (192.168.1.1). Many
microscopes and borescopes have no recognisable WiFi name, so they are found by
their address and port instead; the viewer checks all of them for you.
"Simulator only" means the code follows other people's published reverse
engineering of those cameras and passes its tests against a simulated camera,
but nobody has tried it on the real thing yet. If yours works, or doesn't,
please open an issue with the log.
Scopes that hide their WiFi (EarVision / softish-)
These scopes don't show up in your WiFi list until a phone app sends a hidden
Bluetooth message. The viewer can do that for you on Windows, macOS and Linux:
Switch the scope on, start the viewer, and press Wake scope (Bluetooth)
(or start it with --wake). The first time, it installs its one extra
Bluetooth helper (bleak) by itself, needing internet for a few seconds. It finds
the scope, wakes it, and joins its WiFi for you. The WiFi password is derived
from the scope's own Bluetooth broadcast, so there is nothing to type.
If it can't join the WiFi by itself, the log shows the name and password, and
the Copy WiFi password button in the log panel copies it for you.
On Linux, if the wake itself fails, a phone works too: in the free nRF Connect
app connect to SOFTISH-xxxxxx and read the characteristic 0x0099 (service
0x9900); the scope's WiFi then appears.
The Android app can't do the Bluetooth step yet.
Scope light (experimental). The EarVision scope's light has no known command. In the log panel,
Probe light tries likely commands one at a time while you watch the LED; press Light changed!
when it reacts, and the log shows which commands were just sent. You can also type bytes into the
Send box (hex, e.g. 30 01 01). Guesswork on unknown firmware, at your own risk.
Quick start: double-click
- Turn the scope on (hold the button for 3 seconds) and join its
HNDEC-xxxxWiFi (no password). - Double-click the launcher for your system. You need Python 3.8+, nothing else.
| System | Double-click |
|---|---|
| Linux | TmuEarViolator4000-Linux.sh (if asked, choose Run) |
| Windows | TmuEarViolator4000-Windows.bat |
| macOS | TmuEarViolator4000-Mac.command (first time: right-click, Open) |
A browser tab opens with the picture. If the scope is on its WiFi it is found automatically. A plain MJPEG stream for VLC or OBS is at
http://localhost:8080/stream.mjpg. From a terminal:
python3 src/earscope/ne3web.py --help lists the options (--port,
--camera-ip, --protocol auto|ne3|ne7|wifiview|i4season|jegoat|earfairy|jhcmd|borescope|depstech|appotech|mjpeg|novatek, --wake, --no-browser, --version, -v).
Android (10+)
Get the latest EarViolator4000-x.y.z.apk from the
Releases page. Open it on your phone and allow
installing from your browser or file manager when Android asks. Each release
includes SHA256SUMS.txt, so you can check the file is the one GitHub built
from this source. Then join the scope's WiFi (if Android warns there's no
internet, choose Stay connected) and open Tmu Ear Violator 4000
Streamer; it finds the scope by itself.
Snapshots go to Pictures/EarViolator4000 and recordings to
Movies/EarViolator4000. See BUILDING.md to build the APK yourself.
Privacy and security
| Permissions | INTERNET and ACCESS_NETWORK_STATE only |
| Talks to | the scope on its own WiFi, and itself on 127.0.0.1 (desktop only, for the optional wake: your Bluetooth adapter) |
| Code | two Python files: app.py and ne3web.py |
The scope's own WiFi has no password: anyone in range can connect while it's
switched on. See SECURITY.md to report a problem.
More documentation
- HOW_IT_WORKS.md: protocols, architecture, endpoints
- CHANGELOG.md · CONTRIBUTING.md · SECURITY.md
- THIRD_PARTY.md: credits and bundled components
- BUILDING.md: build the APK, signing, releasing
- DESIGN_NOTES.md: findings, decisions, what is untested
Source code: The-Dorkknight/earscope-app on GitHub

