Skip to content

YMP-CO/ReOld-WLED

Repository files navigation

ReOld//WLED

A lightweight WLED client for legacy Android devices (2.3+). Give your old smartphones a second life as dedicated wall-mounted controllers for your smart LEDs.
This app is based on the open-source WLED project.

WebsiteBoostyYouTube: YMP Yuri


⬇️ DOWNLOAD

Download on GitHub Releases


Screenshots

Welcome Screen Chat Screen Settings Screen Voice Input Screen

About the Project

ReOld//WLED is a minimalistic application designed to control WLED-powered addressable LED strips on vintage hardware. While the official WLED app requires modern Android versions, this client brings full control to devices as old as Android 2.3 (Gingerbread).


Brief Information

  • Language: Java
  • UI: Android Support Library (AppCompat v7, Support v4) for maximum compatibility.
  • Communication: HttpURLConnection (JSON API).
  • Icons: Material Icons (Google).
  • Libraries: com.github.yukuku:ambilwarna:2.0.1.

Key Features

  • Full Synchronization: Automatically fetches the list of effects and palettes from your WLED controller.
  • Information Panel: Monitor your controller's FPS, Uptime, Free Heap, Wi-Fi Signal (RSSI), estimated current (mA) and etc.
  • Real-time Control: Adjust brightness, speed (Sx), and intensity (Ix) via responsive sliders.
  • Color Picker: Integrated color picker dialog for precise color selection.

Installation & Usage

  1. Download the APK from the Releases section.
  2. Connect your device to the same Wi-Fi network as your WLED controller.
  3. Launch ReOld//WLED and enter the IP address of your controller.
  4. Enjoy controlling your lights from your retro device!

Implementation Details

Sending Commands (AsyncTask & HttpURLConnection)

To support API 9+, the app uses a classic AsyncTask to handle network requests without blocking the UI thread.

private void sendCommand(final String json) {
    new AsyncTask<Void, Void, Void>() {
        @Override protected Void doInBackground(Void... v) {
            try {
                HttpURLConnection c = (HttpURLConnection) new URL("http://" + ip + "/json/state").openConnection();
                c.setRequestMethod("POST");
                c.setDoOutput(true);
                c.getOutputStream().write(json.getBytes("UTF-8"));
                c.getResponseCode();
                c.disconnect();
            } catch (Exception e) { e.printStackTrace(); }
            return null;
        }
    }.execute();
}

State Synchronization (JSON Parsing)

The app fetches the full /json state and dynamically populates UI elements like Spinners and SeekBars.

// Synchronizing effects and UI state
JSONObject d = new JSONObject(jsonResponse);
fill(spinFx, d.getJSONArray("effects")); // Dynamic effect list
JSONObject s = d.getJSONObject("state");
seekBri.setProgress(s.getInt("bri"));    // Sync brightness slider

Compatibility Table

Feature Android 2.2 Android 2.3 Android 3.0+
JSON API Sync N/A 🟩 Full 🟩 Full
Color Picker N/A 🟩 Full 🟩 Full
Preset Color Selection (RGB buttons) N/A 🟥 (API 11+ req.) 🟩 Full
Color Picker N/A 🟩 Full 🟩 Full
Device Diagnostics N/A 🟩 Full 🟩 Full
  • 🟩 Full support
  • 🟧 Partial support (works, but with limitations)
  • 🟨 Potential crashes (limited stability)
  • 🟥 Not supported
  • N/A Not tested

Roadmap

  • Implement local IP scanner (Discovery).
  • Add support for multiple WLED controllers (Device List).
  • Dark Mode for AMOLED-equipped old devices.

Contacts


License

Distributed under the CC-BY 4.0 License.

Other Information

This project was created as part of the "ReOld" series. Bring your old device back to life!

Note: I am a 16-year-old developer. I used a combination of my own logic and AI assistance to optimize the code for very old APIs. This project is in Beta, so please don't judge too harshly - it was built to help the community keep old tech out of landfills!

About

A lightweight WLED client for legacy Android devices (2.3+).

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages