Releases

  • CarDash 1.2.10

    kkazakov 19 hours ago | 0 commits to main since this release

    CarDash 1.2.10

    A cleaner dashboard

    This release removes the rolling fuel-economy estimate and tightens the home layout.

    • The OBD card now shows speed and throttle only. The ECU fuel-rate PID (5E) is not reported by every vehicle, and the MAF/AFR fallback was not accurate across petrol and diesel, so CarDash no longer estimates economy. Do not expect a fuel figure to return without a verified direct source.
    • The OBD-II connection stays alive while CarDash is backgrounded and is closed only when the app detaches. Returning from navigation keeps OBD speed instead of falling back to GPS.
    • The left home card stack is raised so its bottom edge lines up with the bottom of the shortcut tiles, above their labels, at both regular and compact sizes.
    • Includes the 1.2.9 ELM327 serial-stream fix: a 0100 warm-up after ATSP0, a stale-input drain before every command, and 5E probed in the poll loop instead of a racing one-shot 0140 query.

    Install

    Download cardash-android-1.2.10.apk from the release page or the repository:

    https://git.krasi.net/kkazakov/car-interface-android/raw/main/releases/cardash-android-1.2.10.apk

    SHA-256: b889764412904fe32355ffd9bd9e3bd9cd87224132c4b1e96cdaf6d37d889720

    The build is signed with the same project key as previous releases, so it installs over 1.2.9. Android still asks you to confirm the install.

     
  • CarDash 1.2.9

    kkazakov 1 day ago | 3 commits to main since this release

    CarDash 1.2.9

    Fuel economy is back

    1.2.7 moved the rolling economy to the ECU's engine-fuel-rate PID (5E), but the one-shot supported-PID query added in that release could race the ATSP0 protocol search on a slow adapter and shift every later ELM327 response by one command. The result was a permanent — on the OBD card.

    1.2.9 fixes the serial stream:

    • warms the adapter with a 0100 request after ATSP0, with a longer timeout;
    • drains stale input before every command so a late response cannot be read as the next PID's answer;
    • removes the 0140 supported-PID query and probes 5E in the poll loop instead, retrying every 30 cycles while it is unsupported.

    The ECU fuel-rate economy itself is unchanged: vehicles that report 5E use it and match the car's trip computer; vehicles without it keep the MAF fallback.

    The release also includes the 1.2.8 Jellyfin album navigation work: the favorite heart moves to the left corner at 69 px, three separate 60 px volume buttons sit on the right, the cover is 30% smaller with taller track rows, every page has a larger back button, and both Jellyfin pages get a transparent top-right time / speed / temperature / Home strip.

    Install

    Download cardash-android-1.2.9.apk from the release page or the repository:

    https://git.krasi.net/kkazakov/car-interface-android/raw/main/releases/cardash-android-1.2.9.apk

    SHA-256: 3cf73d295ebe077a94c83d1aee6a7c1b4332e9eefa3048aa76c729aa7c3c9ad5

    The build is signed with the same project key as previous releases, so it installs over 1.2.8. Android still asks you to confirm the install.

     
  • CarDash 1.2.8

    kkazakov 1 day ago | 4 commits to main since this release

    CarDash 1.2.8

    A cleaner Jellyfin album page

    The album page now puts every control where the driver expects it and adds a persistent status strip to the Jellyfin pages.

    • The favorite heart moved into the left corner of the navigation card and is 50% larger (69 px).
    • Volume down, Mute/Unmute and Volume up moved to the right corner as three separate 60 px buttons; the surrounding volume card is gone.
    • The album cover is 30% smaller (21% of the body width, 140–252 px), leaving more room for the track list.
    • Track rows are taller and easier to tap.
    • The back button is 80% larger (83 px) on every page, including Settings, All apps and the PIN setup screen.
    • Both Jellyfin pages show a transparent top-right strip with the time, current speed, current temperature and a Home button that returns to the CarDash home screen.

    Includes the 1.2.7 ECU fuel-rate economy and all earlier work. No settings change or migration is required.

    Install

    Download cardash-android-1.2.8.apk from the release page or the repository:

    https://git.krasi.net/kkazakov/car-interface-android/raw/main/releases/cardash-android-1.2.8.apk

    SHA-256: 6cd5f4385edfceddc04790a0ad200fc99a19bb78eac7b995ef50fbcbf18cb5bc

    The build is signed with the same project key as previous releases, so it installs over 1.2.7. Android still asks you to confirm the install.

     
  • CarDash 1.2.7

    kkazakov 5 days ago | 9 commits to main since this release

    CarDash 1.2.7

    Fuel economy follows the car

    The rolling 5 km economy now prefers the ECU's engine-fuel-rate PID (5E) instead of always estimating fuel from MAF and a petrol stoichiometric ratio. That is the same injection data the car's trip computer uses, and it works for diesel engines — which run lean and were the reason the MAF estimate read much higher than the dash.

    • If the vehicle reports 5E, its fuel rate drives the economy figure.
    • If it does not, CarDash keeps the MAF/AFR fallback for petrol cars and shows the same estimate as before.
    • The native worker checks the supported-PID bitmap first, so a vehicle without 5E does not pay an extra timeout on every poll.
    • Speed, fuel rate and MAF are sampled next to each other to reduce transient pairing error.

    No settings change and no migration are required.

    Install

    Download cardash-android-1.2.7.apk from the release page or the repository:

    https://git.krasi.net/kkazakov/car-interface-android/raw/main/releases/cardash-android-1.2.7.apk

    SHA-256: 2bd589f7fb503c46e56ddcc872454d76ac1f3a64f7e5d5c8841b23efaa8e50c7

    The build is signed with the same project key as previous releases, so it installs over 1.2.6. Android still asks you to confirm the install.

     
  • CarDash 1.2.6

    kkazakov 5 days ago | 10 commits to main since this release

    CarDash 1.2.6 makes the Jellyfin album page use the stacked layout on every screen.

    • Package: com.wasp.cardash_launcher
    • Version: 1.2.6 (versionCode 26)
    • ABIs: arm64-v8a, armeabi-v7a, x86_64 (universal APK)
    • Signing: project debug key matching all prior releases
    • SHA-256: d664e9dff1ba499df93e03c0a44fe274b78ac438c665471a781c698c8650100f

    What changed

    • The album page now uses the same stacked layout as the smaller tablet at every resolution: cover and controls on top, track list below. The wide three-column layout has been removed.
    • The cover scales with the screen (30% of the body, clamped to 200–360 px), so a 1280-wide dashboard gets a larger cover instead of a small centre column.
    • The progress/transport card remains bottom-aligned with the cover; the track list gets the full width underneath.
    • The album heading now shows the Jellyfin release year in parentheses, for example Ascension (2025); a year already present in the name is not duplicated.
    • Includes the 1.2.5 larger 80/62 px transport buttons and 40 px compact volume controls, the 1.2.4 album controls and all earlier Jellyfin, volume and recents work.

    Verified

    • flutter analyze, formatting and the full 150-test suite.
    • Widget tests assert the track list is below the cover at 1280×800 and 1024×600 and that the progress card stays bottom-aligned with the cover.
    • Universal release APK built with JDK 21.

    Download cardash-android-1.2.6.apk

    Devices with the in-app updater can use Settings → Updates to download this APK and open Android's package installer. Android requires install confirmation and a one-time unknown-apps allowance; no silent install is attempted. A yellow dot appears on the Settings gear when this release is available.

    This build is debug-signed for sideloading/testing, not Play Store distribution. Gogs release attachments are limited to 32 MB, so the universal APK is linked directly from the repository.

     
  • CarDash 1.2.5

    kkazakov 6 days ago | 13 commits to main since this release

    CarDash 1.2.5 polishes the Jellyfin album controls.

    • Package: com.wasp.cardash_launcher
    • Version: 1.2.5 (versionCode 25)
    • ABIs: arm64-v8a, armeabi-v7a, x86_64 (universal APK)
    • Signing: project debug key matching all prior releases
    • SHA-256: 47ba0960bf9bf16122f482f65941f27f166283d8aeeb0eb6ae718216aaf0dad5

    What changed

    • The progress/transport card is now bottom-aligned with the album cover in both the wide three-column layout and the narrower two-column layout.
    • Previous and next grow from 54 to 62 px; play/pause grows from 68 to 80 px. The compact volume −/+ and Mute/Unmute pill grow from 36 to 40 px, so all controls are easier to hit in a moving car.
    • Includes all 1.2.4 work: the seekable song-progress slider with elapsed/total time, the centered transport row and the compact volume card. The Home card is unchanged.
    • Includes the 1.2.3 normal-app/recents and Jellyfin progress-duration work, and all 1.2.2 FYT/Syu volume, Favorites and streaming-quality work.

    Verified

    • flutter analyze, formatting and the full 150-test suite.
    • A widget test asserts the progress card's bottom edge matches the album cover's bottom edge at 1280×800 and 1024×600, and covers the slider seek and transport.
    • Universal release APK built with JDK 21.

    Download cardash-android-1.2.5.apk

    Devices with the in-app updater can use Settings → Updates to download this APK and open Android's package installer. Android requires install confirmation and a one-time unknown-apps allowance; no silent install is attempted. A yellow dot appears on the Settings gear when this release is available.

    This build is debug-signed for sideloading/testing, not Play Store distribution. Gogs release attachments are limited to 32 MB, so the universal APK is linked directly from the repository.

     
  • CarDash 1.2.4

    kkazakov 6 days ago | 14 commits to main since this release

    CarDash 1.2.4 redesigns the Jellyfin album controls.

    • Package: com.wasp.cardash_launcher
    • Version: 1.2.4 (versionCode 24)
    • ABIs: arm64-v8a, armeabi-v7a, x86_64 (universal APK)
    • Signing: project debug key matching all prior releases
    • SHA-256: 7a157490ae5c312edd87cac448d1fc7f2ceb01a57a9cce36f3bc4fe25fcfeafb

    What changed

    • The Jellyfin album page now has one seekable song-progress slider with elapsed / total time. Dragging the slider and releasing it seeks to that position.
    • Previous, play/pause and next are below the slider, centered and larger for easy tapping.
    • A compact volume card with −, Mute / Unmute and + sits to the right of the now-playing block, above the progress/transport card. The old combined ring, transport and volume card is no longer used on the album page; Home keeps it.
    • Includes the 1.2.3 normal-app/recents work and the Jellyfin progress-duration fallback, plus all 1.2.2 FYT/Syu volume, Favorites and streaming-quality work.

    Verified

    • flutter analyze, formatting and the full 150-test suite.
    • Universal release APK built with JDK 21.
    • The optional emulator install was skipped because the remote ADB server was unreachable. The album slider seek, transport controls and compact volume card are covered by the widget tests.

    Download cardash-android-1.2.4.apk

    Devices with the in-app updater can use Settings → Updates to download this APK and open Android's package installer. Android requires install confirmation and a one-time unknown-apps allowance; no silent install is attempted. A yellow dot appears on the Settings gear when this release is available.

    This build is debug-signed for sideloading/testing, not Play Store distribution. Gogs release attachments are limited to 32 MB, so the universal APK is linked directly from the repository.

     
  • CarDash 1.2.3 — normal-app recents

    kkazakov 6 days ago | 15 commits to main since this release

    CarDash 1.2.3 makes the launcher usable as a normal app as well as a HOME app.

    • Package: com.wasp.cardash_launcher
    • Version: 1.2.3 (versionCode 23)
    • ABIs: arm64-v8a, armeabi-v7a, x86_64 (universal APK)
    • Signing: project debug key matching all prior releases
    • SHA-256: 72c9c1dca0c852104e9531b7cb532cf478ce121df83da4431669e20874d2837b

    What changed

    • Removed android:excludeFromRecents="true", so CarDash appears in the recents/overview list and can be switched back to when it is running without the HOME role.
    • Added android:resumeWhilePausing="true" so the Home transition does not have to wait for the previous app to finish pausing.
    • Added android:alwaysRetainTaskState="true" so the system keeps the launcher task instead of resetting it after a long time away.
    • Includes all 1.2.2 work: the FYT/Syu MCU master-volume bridge, the volume settle/unconfirmed behaviour, the Jellyfin Favorites tab and playing-album shortcut, and the Jellyfin streaming-quality setting.

    What this does not do Android can still kill a background app. CarDash deliberately adds no keep-alive foreground service, persistent flag or battery-exemption request. On vendor firmware, set CarDash to No battery restrictions and allow autostart/recents locking if the system keeps killing it. A recents entry does not keep the process alive by itself.

    When CarDash holds the HOME role, Android may still filter the home task out of recents; use Home to return. The recents entry is primarily for normal-app mode.

    Verified

    • flutter analyze, formatting and the full 149-test suite.
    • Universal release APK builds and its manifest was checked: MainActivity has no excludeFromRecents, and resumeWhilePausing/alwaysRetainTaskState are present.
    • No Android emulator is installed in this workspace, so the on-device recents behaviour could not be exercised here. Android may still omit the home task from recents when CarDash holds the HOME role; normal-app mode is the case this release targets.

    Download cardash-android-1.2.3.apk

    Devices with the in-app updater can use Settings → Updates to download this APK and open Android's package installer. Android requires install confirmation and a one-time unknown-apps allowance; no silent install is attempted. A yellow dot appears on the Settings gear when this release is available.

    This build is debug-signed for sideloading/testing, not Play Store distribution. Gogs release attachments are limited to 32 MB, so the universal APK is linked directly from the repository.

     
  • CarDash 1.2.2

    kkazakov 6 days ago | 17 commits to main since this release

    CarDash 1.2.2 fixes the car volume on FYT/Syu head units and stops the volume card from jumping back to 100%.

    • Package: com.wasp.cardash_launcher
    • Version: 1.2.2 (versionCode 22)
    • ABIs: arm64-v8a, armeabi-v7a, x86_64 (universal APK)
    • Signing: project debug key matching all prior releases
    • SHA-256: fed6d1818cfd28b19c0e568652ad14f44ce4bf15291a635f73fd97efe1ef5a35

    The bug On FYT/Syu-based head units (Joying, Junsun, Teyes, Atoto and similar Chinese firmware) the amplifier belongs to the MCU. Android's media-stream volume is not what the driver hears, so setStreamVolume was accepted and ignored. The card then trusted the old read-back and snapped straight back to 100%, which made the car's real steps (10, 20, …) impossible to reach from the dashboard.

    The fix

    • CarDash binds the car's own com.syu.ms toolkit/sound module and sets the same master volume the car's OSD uses (0–36, MCU command C_VOL). It subscribes to the MCU level, so the dashboard and the car's knob now follow each other.
    • If the car reports an old level after a write, the card keeps the requested value and marks it with ? instead of snapping back.
    • Units without the Syu service keep the Android path, now with an extra FLAG_SHOW_UI write that can reach vendor volume panels.
    • Volume diagnostics show the raw level/max, minimum, fixed flag, control source (syu, syu-wait, system) and vendor state. Long-press Media volume.
    • No new permission, root or manifest change. The car's own knob and steering-wheel handling is untouched.

    Also in 1.2.2

    • Jellyfin Favorites tab, album-page heart and the playing-album Home shortcut.
    • Jellyfin Streaming quality setting: Direct or 320/256/192/128 kbps MP3.

    Verified

    • 149 tests pass; flutter analyze clean; debug and release APKs build.
    • The MCU volume path still needs the real-car test. After installing, long-press Media volume: source syu + vendor ready means the bridge is active. source system + vendor unavailable means this is not a Syu unit.

    Download cardash-android-1.2.2.apk

    Devices with the in-app updater can use Settings → Updates to download this APK and open Android's package installer. Android requires install confirmation and a one-time unknown-apps allowance; no silent install is attempted. A yellow dot appears on the Settings gear when this release is available.

    This build is debug-signed for sideloading/testing, not Play Store distribution. Gogs release attachments are limited to 32 MB, so the 59 MB universal APK is linked directly from the repository.

     
  • CarDash 1.2.1 — Jellyfin equalizer fix

    kkazakov 1 week ago | 21 commits to main since this release

    CarDash 1.2.1 fixes a brief Music-tile equalizer flash when Jellyfin playback is paused or stopped from the Home card.

    • Package: com.wasp.cardash_launcher
    • Version: 1.2.1 (versionCode 21)
    • ABIs: arm64-v8a, armeabi-v7a, x86_64 (universal APK)
    • Signing: project debug key matching all prior releases
    • SHA-256: 8fc6de444c2811dfe8269b21a7ad7b1f927cdde6b97d4f2f9fadd7cf0ea9b97e

    The bug

    • Pausing Jellyfin updated the Jellyfin controller immediately, but the Android MediaSession snapshot could still report CarDash's own session as playing for one system poll (~900 ms).
    • The Music tile briefly took that stale snapshot as “another app is playing” and animated its equalizer for part of a second.

    The fix

    • The Music equalizer now only animates for an external system media session; CarDash's own Jellyfin package is excluded.
    • The Home volume/playback card also ignores the stale CarDash session, so it stays on the paused Jellyfin queue instead of switching to the system source during that gap.
    • No visual or behavior changes to Jellyfin playback itself.

    Verified

    • 139 tests pass, including unit coverage for the stale CarDash session and the external-app case.
    • Android 14 emulator: play a Jellyfin album, pause from Home; the Jellyfin tile stops immediately, the Music tile stays quiet, and the Home card remains on the paused Jellyfin track.
    • All 1.2.0 Jellyfin features are included: Home button, dashboard, grouped genres, album page, Media3/background playback, notification, audio focus and playback reporting.

    Download cardash-android-1.2.1.apk

    Devices with the in-app updater can use Settings → Updates to download this APK and open Android's package installer. Android requires install confirmation and a one-time unknown-apps allowance; no silent install is attempted. A yellow dot appears on the Settings gear when this release is available.

    This build is debug-signed for sideloading/testing, not Play Store distribution. Gogs release attachments are limited to 32 MB, so the 59 MB universal APK is linked directly from the repository.