Skip to content
rbeilvertPublic

About

Wi-Fi otoscope companion app

Resources

Stars

21 stars

Watchers

2 watching

Forks

Repository files navigation

otoscope
Otoscope

A FOSS Android app for cheap Wi-Fi otoscope cameras.


Otoscope is a reverse-engineered drop-in replacement for the proprietary companion apps these cameras ship with, with none of their ad SDKs, analytics, or trackers.

  • Discovers the camera either over Bluetooth Low Energy or by scanning nearby Wi-Fi, depending on the model.
  • Joins the camera's Wi-Fi access point in an isolated, process-bound network. No impact on your saved Wi-Fi config.
  • Streams live video over the camera's native protocol — UDP or RTSP MJPEG — decoded in pure Kotlin. No proprietary .so, no FFmpeg dependency.
  • Auto-rotates the image using the camera's on-board accelerometer / gyro, clipped to a circular mask matching the otoscope lens.
  • Horizontal-mirror toggle for self-examination, and a switch to turn auto-rotation off.
  • Fullscreen view of the camera image; the stream options fold away so the image keeps most of the screen.
  • Ring-light on/off toggle and charging indicator on models that expose them.
  • Photo and video capture, written straight to Pictures/Otoscope and Movies/Otoscope, with an in-app gallery to review, share and delete them.
  • Optional free-text caption (e.g. "Left ear") burnt into the corner of every capture.

Hardware compatibility

The app supports a set of camera families across two discovery paths. Pick your family on the home screen; the app scans the right way and hands the video off to the vendor-specific protocol automatically.

Family Discovery SSID prefix Wi-Fi auth Video Companion app
Xylla BLE Enjoy-XXXXXX
JesHome-XXXX
open UDP/8032 MJPEG "AIR-Look" (com.air.airlook)
iTiMO BLE iTiMO-XXXXXX
jetion_XXXX
open UDP/8031 MJPEG "iTiMO" (com.molink.john.itimo)
JEGOAT BLE softish-XXXXXX WPA2 UDP/61501 MJPEG "EarVision" (com.atomath.wifi_camera)
EarFairy Wi-Fi Cooleer_XXXXXX open RTSP/7070 MJPEG "Cooleer" (com.cooingdv.cooleer)
Soulear (i4season) Wi-Fi Soulear-XXXXX open UDP MJPEG, control on 10005/10006 "Soulear" (com.i4season.bkCamera_soulear)
Y38 Wi-Fi AIR-ES-XXXXXX open UDP/8032 MJPEG (Xylla-compatible) "AIR-Look" (com.air.airlook)

If you have a wireless otoscope that isn't picked up by Otoscope, please file an issue including preferably the original companion application ID, a screenshot of the BLE advertisement (e.g. from nRF Connect), the Wi-Fi SSID if available and any scan/connect logs from adb logcat.

Build

Requires Android Studio Ladybug+ or a CLI Android SDK with API 37 + JDK 17.

# Bootstrap the Gradle wrapper once. If you have any modern Gradle:
gradle wrapper --gradle-version 9.6.1 --distribution-type bin

# Debug build (no signing required):
./gradlew assembleDebug

# Install on a connected device:
adb install -r app/build/outputs/apk/debug/app-debug.apk

Status

Feature State
BLE discovery ✅ for Xylla, iTiMO, JEAGOAT
Wi-Fi discovery ✅ for EarFairy, Soulear, Y38
Wi-Fi join ✅ open or WPA2
Live video ✅ MJPEG decoded in-app (UDP or RTSP)
Auto-rotate + circular mask ✅ driven by camera accelerometer / gyro
Horizontal-mirror toggle ✅ for self-examination
Screen stays awake ✅ during live stream
Battery + model readout ✅ where the camera exposes it
Photo / video capture ✅ JPEG stills and H.264 MP4 clips
Capture gallery ✅ in-app review, share and delete
Brightness control 🚧 On-Off implemented for EarFairy, Soulear

License

GPL-3.0-or-later. The project is independent of and not affiliated with any of the OEMs or companion-app publishers. All trademark references are nominative.

About

Wi-Fi otoscope companion app

Resources

Stars

21 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages