Case study
NJFE: a Soulear camera protocol bridge for desktop inspection
Reuses otoscope's reverse-engineered i4season/Soulear protocol in an ESP32-C3 bridge and Python desktop viewer. The author credits Claude Code for implementation and reports streaming one Hopefox Find T to a Windows PC, with recording, orientation and LED controls.
- Targets
- Protocol
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Sources reviewed
Requirements & limits
- Prerequisites: Builds with PlatformIO espressif32 6.11.0, Arduino core 2.0.17 and U8g2 ^2.35.30; the desktop tools need Python with Tkinter, pyserial >=3.5, opencv-python >=4.8, NumPy >=1.24 and Pillow >=12.3.0. Only Windows testing is reported.
- Scope: Input is the camera’s Wi-Fi i4season/Soulear UDP traffic. An ESP32-C3 SuperMini with a 0.42-inch, 72×40 SSD1306 OLED reassembles JPEG frames and sends them with accelerometer data over custom USB CDC serial to the viewer. It is not a UVC webcam, the camera’s USB port is charge-only, and no vendor firmware or full app source is recovered.
- Attribution: Packet format, commands, frame assembly and rotation logic are credited to rbeilvert/otoscope, which reverse engineered Soulear’s libWifiCamera.so; NJFE does not pin the borrowed revision.
- Testing evidence: Results come from a single HKV41B-firmware Hopefox Find T (480×480 JPEG at about 17 fps). The --test N mode needs the hardware and there is no offline conformance suite.
- Limits: The camera network is open: the bridge accepts unauthenticated UDP that can inject images or replies, serial access is trusted and recordings are unencrypted. It is an inspection tool, not a medical device.
- License: GPL-3.0-or-later, with protocol code and roll calculation derived from GPL otoscope; third-party libraries keep their licenses, and no rights to vendor software or images are granted.
About this entry
The description was reviewed against primary sources.
Discussed in the survey
Primary sources
- README.md GitHub · WildweaselMS/NJFE · Revision 992866c
- NOTICE GitHub · WildweaselMS/NJFE · Revision 992866c
- REUSE.toml GitHub · WildweaselMS/NJFE · Revision 992866c
- LICENSE GitHub · WildweaselMS/NJFE · Revision 992866c
- SECURITY.md GitHub · WildweaselMS/NJFE · Revision 992866c
- wifi_scanner/platformio.ini GitHub · WildweaselMS/NJFE · Revision 992866c
- wifi_scanner/tools/requirements.txt GitHub · WildweaselMS/NJFE · Revision 992866c
- wifi_scanner/src_i4season/main.cpp GitHub · WildweaselMS/NJFE · Revision 992866c
- wifi_scanner/tools/viewer.py GitHub · WildweaselMS/NJFE · Revision 992866c
- wifi_scanner/tools/gui.py GitHub · WildweaselMS/NJFE · Revision 992866c
- README.md GitHub · rbeilvert/otoscope · Revision d14ac8e
- app/src/main/kotlin/dev/rubec/otoscope/stream/i4season/I4seasonProtocol.kt GitHub · rbeilvert/otoscope · Revision d14ac8e
- app/src/main/kotlin/dev/rubec/otoscope/stream/i4season/FrameAssembler.kt GitHub · rbeilvert/otoscope · Revision d14ac8e
More in Protocols
- hw-harness: scanner USB protocol investigation · Case study
- Roborock Local Server: a self-hosted stand-in for Roborock’s vacuum cloud · Case study
- pypush: a Python client for Apple’s push protocol · Case study
- PixMob IR reverse engineering: controlling event wristbands at home · Case study
- OpenDrop: an open reimplementation of Apple AirDrop · Case study
- bluefluff: reverse engineering Furby Connect's Bluetooth LE protocol · Case study