Hello Leaf community,
I've been writing an Android/iOS app that borrows interface elements from other Hybrid/EV cars to display data from a Bluetooth ELM327 OBDII device for the past month or so. It's really shaping up well, but before it's ready for the Google Play store, I have a lot of work ahead of me. I don't think I'll be able to perfect the ELM237 interaction without some insight and feedback, so without further ado, I present to you, Happy Leaf 0.2!
Happy Leaf is now on Google Play
If you would like to try the app out, please sign up for the beta.
(iOS Testflight will be emailed after your Beta application)
(Updated images 05/01/17)
- [NEW] Battery Health notification
When the battery SOH changes a notification is triggered that displays the previous SOH, current SOH and odometer at the time of the SOH change.
- [NEW] BLE support for iOS
All BLE devices will show in "Nearby Devices"
Only tested on one model of BLE, please let me know if you can't connect. Please send OBD model.
- [NEW] Flow Manager
Dynamic message requests, based on priority. (non linear request order)
Higher priority messages will be requested more frequently than lower priority messages. Will eventually dramatically increase performance.
May be slower on some commands for now, more optimization will be required over time and future updates to fine tune the flow.
Connection/verification messages now through Flow Manager, increased reliability when trying to reconnect.
- [NEW] Wifi on/off (Android)
New in settings -> Connection -> Allow Wifi. Happy Leaf won't re-enable Wifi if this is disabled.
- [NEW] Distance / Temp unit override
New in settings, should convert units based on preference. Will still auto detect units and adjust accordingly.
Tested converting my U.S. LEAF to Km / C, seemed to work.
- Better, more efficient logging (should be no more memory leaks from logs)
- Fixed issue where newest data would be deleted, now correctly purges oldest data from memory. No longer time based, strictly based on 2,000 history limit.
- [NEW] Multi Language support
- [NEW] Two new notifications
Alert for rapid increase of battery temperature.
Alert for high battery output (>70kWh)
- [NEW] Setting for disabling OS notifications (on be default)
- [NEW] Offline mode
Use app without connecting to ODB device. Requires past history, so Bluetooth OBD still required for functionality. After initial connection, pressing the icon at bottom right of Welcome screen will transition to Home screen, even without Bluetooth enabled. (History still deletes after 24 hours)
- [NEW] Settings icon on Welcome screen.
- Adjusted font sizes on blue title/footer bars.
- Moved charging animation "cable" to right side of diagram, now charging voltage doesn't overlap with dropdown icon.
- Recalculated GID readings over 255. Currently untested, but may resolve GID issues where SOC > 80% but kWh remaining would be near zero (calculated from GIDs)
- [NEW] Save logs / history to sdcard or internal storage.
Disabled by default as this affects performance. Can be enabled from settings page.
Saves to /sdcard/Happy_Leaf/BETA/[date]-history.json and [date_time]-ODB-log.txt
These files will help me troubleshoot issues better
- [NEW] Notifications
New icon by settings, will have green badge showing unread notifications
Should send local notifications to device
Will only send the same notification after 30 minutes.
Currently has notifications for the following:
Low / High Tire pressures
Low / High Battery Temperature (-5c / 46c)
Low 12v Battery voltage
Low SOC (under 20%)
Low Hx (under 50%)
- Can now disable extra data (scrolling down), this should improve performance. (In settings)
- Updated colors, red on SOC meter not as bright, background color closer to white in light mode.
- Enlarged Motor watts / Climate usage charts. Shrunk SOC meter slightly.
- Fixed Tire layout to match reality.
- Cars using Km when manufacture set Miles should now see closer odometer reading
- Ability to delete history data, Settings -> Data
- Various checks to incoming OBD data to ensure consistency.
- Outside temp adjusted to documented spec, still doesn't match Leaf's display, but this could be due to a different thermometer being read. Found other codes that represent outside temp, but currently not implemented.
- [New] Dark Mode
Manually set theme via new menu button at top left of screen. (this override will persist until app is relaunched)
Automatic dark mode via Ambient light sensor on Android device
Settings for toggling light sensor, and sensor sensitivity.
Setting for Dark Mode following headlights on/off
- Better responsiveness
Most font now scales based on percentage of screen. Should look much better on any screen size, any orientation.
Fixed scaling causing app to be able to scroll sideways on smaller devices
Graph data points now average based on screen size. Smaller screens will be more readable when large amounts of data logged.
- Graph Visuals Updated
Data points are smaller now and don't have white border, much easier to read
Graph now displays kWh on left side, much easier to read
Slightly smaller legend
- If codes are failing to read, small circle at top right now turns orange. (green when retrying codes)
- Attempting to address issue where dash set units differ from manufacture units. If your odometer reading is off by ~60%, but displays the correct unit label.
Changed the default graph color
Added m/kw, watts/m and remaining KW%m/kw (ETA miles to absolute zero, based on trip m/kw)
Added total miles driven while app logging, and total miles today calculation.
(Car off while charging, hence why GIDs/Kw remaining are blank)
I started writing this app midway through 2016. I chose the app framework (HTML/Angular/Phonegap/Cordova), but then came to a loss at what to send to the OBD connection to get real responses (anything but OK). Last month I came across a breakthrough in teaching myself the ELM327 + bluetooth spec, and began seeing data. This forum played a key role in forming my understanding and getting results, thank you everybody who made this possible. I'm using the spreadsheet here for CARCan/EVCan codes: https://docs.google.com/spreadsheets/d/ ... UFm0P7ouwg
Thank you TickTock, Turbo(s), Gary and others for gathering and sharing this knowledge.
In my daily life, I depend on the OBDII connection to track watts used, M/kw per trip, and occasionally diagnostic. I had so many ideas, and wanted to visualize the data deeper than currently available apps. After this breakthrough, the app started taking shape, and works better than I dreamed.
Happy Leaf's primary goal is to be a pretty interface for data, not a diagnostic tool. I created a Leaf diagram using SVG that holds tire data, SOC data, energy movement, climate usage, motor output, and headlight status. This is the meat of the app, it easily visualizes what is going on with the vehicle.
The interface runs extremely well on the two Android devices I have available to me. A $50 Kindle Fire 7" (Android 5.1.1), and a 2012 Motorola Photon Q (Android 6.0.1). Both are rooted and have custom roms, so your results may vary. I highly recommend a tablet for this interface, phones just don't have the real-estate and I haven't spent a lot of time optimizing (though the css wouldn't take long).
Motor/Climate Usage Animation
Scroll down and see all data in real time
Scroll farther, press the play button, and watch the logs
The app is clearly far from finished, but it's getting so close that I'm not sure how much farther I can take it alone. There's still many bugs, missing features, and currently slow query times.
If you are interested in testing this app, fill out the form here
. There's still much testing/tuning to be done so it's results may vary.
If you would like to contribute to development, see the source code here