pemessier / SoulEVSpy

Apache License 2.0
9 stars 8 forks source link

Are you still working on this project? #1

Open JejuSoul opened 8 years ago

JejuSoul commented 8 years ago

Can you leave a note about the state of the code when you stopped working on it. Do you mind if others take over this project?

tyrel commented 8 years ago

The nature of open source is that anyone can fork a project and work on it themselves. If the original author, @pemessier in this case (and me to a small extent) wants, he can accept pull requests, or you can just publish your fork yourself.

By the way, I have been watching the thread on the forums, @JejuSoul, even though I don't comment much. I was also working on a separate "soul spy" type program, but I've just got too many projects to concentrate on at once.

JejuSoul commented 8 years ago

Tyrel, thanks for reply. I think time constraints will be common to most of us. It is why I think sharing the work and not duplicating effort is important. There is a Danish software developer on the forum who has shown interest in continuing development of this project. My idea is to copy some of the code from the CanZE project - https://github.com/fesch/CanZE In particular the Bluetooth part. Does this make sense?

pemessier commented 8 years ago

Hello all! I was off for the weekend, sorry for the late answer!

Indeed, as Tyrel said, if others want to contribute feel free to send pull requests and/or commit directly in the repo, I can add them as needed. I didn't had time to work on it since last November. Since our project was finally released at work, I may have more time to continue the development soon.

The last time I worked on the project, I wrote some prototype code to send ELM requests asynchronously on Bluetooth and process the answers back into the GUI application. If I remember correctly, I had a a bug causing the app to crash when receiving the packet, it should not be hard to fix. This would then allow me to send ELM requests by polling and refresh the application. This is the first goal I was trying to achieve!

I was trying to separate the ELM code from the application as much as possible.

I had a quick look at the CanZE project, it seems to have evolved a lot since I looked at the code. However we cannot copy the code directly here because CanZE is GPLv3, we use Apache 2.0 license.

It's been a while since I went on the forum, I mostly concentrate on various Facebook groups these days, I might have a few pages to read! Don't hesitate to contact me (and/or the Danish developer)!

langemand commented 8 years ago

Hello. I guess I am "the danish developer" :-). My name is Henrik Scheel, and I have been occupied as a professional software developer for many years. I haven't worked with Java or Android before, nor been involved in open-source projects with other developers, so I will be learning this along the way, along with OBD-II technicalities. I purchased my second-hand Kia Soul EV (2015) in december, and I am interested in contributing to the app. I received my Konnwei KW902 OBD-II adapter yesterday, so when I can find time for it, I will give the app a test run, and see how it goes. If I do get time to actually work on the code, I will maintain the module separation. My personal interest in the app is on acquiring and storing a combination of driving data and battery data. My goal with this, is to derive a math model, that can accurately predict energy consumption on a planned route. I gather from the forum discussion that the datapoints for my need has been identified, so it should be easy to "connect the dots", once the basic communication flow is working. In the app, I suppose we want the "mapping" between car datapoints and app displays not to be hardcoded, but perhaps some sort of configuration file? This could handle the differences between the model years, as reported by the latest entries on the discussion, as well as making the app configurable for extensions, or other use. I live and work near Copenhagen, Denmark, timezone CEST (UTC+2)

pemessier commented 8 years ago

Hello Henrik!

Well I am the "canadian developer" ;) I live in Québec City, in Canada. I am a professional software developer (C++) and this is my first official Android project as a coder (it's been a while since I've developed in Java too).

I'll have soon some spare hours to spent on the project, I began by updating my Android Studio to the latest version (2.0) last week. I'll try to make the first packet flow as planned, the rest should be easy from that point. The math model you are saying is is a great idea! We should consider as well looking at Android Auto, as the Soul EV should support it in the near future. That way, we could display better stats/graphs directly on the navigation screen.

Feel free to contribute! Cheers!

langemand commented 8 years ago

Hello Pierre-Étienne.

I have forked the github project, primarily because I don’t want to mess up the main github project by making mistakes, while trying to make things work, and learning how to control github projects.

I hit a set-back, my OBD-II adaptor was killed by the Soul: http://www.mykiasoulev.com/forum/viewtopic.php?f=6&t=554 http://www.mykiasoulev.com/forum/viewtopic.php?f=6&t=554. Perhaps it was due to inserting the adaptor while the car was on, I don’t know. Anyway, I am awaiting a recently shipped KW902 before I will do any serious attempt to run and modify the code. I will upgrade to Android Studio 2.0 as well.

I made a simple Android app (using MIT app inventor), collecting GPS positions and remaining battery capacity by entry on screen, as a first attempt of collecting the consumption data. The collected data is in google fusion tables: https://www.google.com/fusiontables/DataSource?docid=1go1BKEBI8GE7riUbsjBPQpJxixnl7_VkVKhVUqil# https://www.google.com/fusiontables/DataSource?docid=1go1BKEBI8GE7riUbsjBPQpJxixnl7_VkVKhVUqil# It is incomplete and inaccurate, but it’s what I have now, as a first basis for analyzing consumption, in to make a math model. It is my hope that “our” Android app will make it possible to collect consumption, location and accelerometer data a lot more fine-grained, from many cars and many trips. Of course it shall be up to the user of the app to decide whether to collect and upload these data; and since there are privacy concerns, the data need to be uploaded to a non-public, secure server.

I saw on the forum that two CAN-busses are available in the OBD-II plug: http://www.mykiasoulev.com/forum/viewtopic.php?p=1772#p1772 http://www.mykiasoulev.com/forum/viewtopic.php?p=1772#p1772

I suppose all the snooping until now has been on the C-CAN connected to the “standard” pins 6 & 14?

I am considering ordering yet another KW902, and re-solder the can-bus wires to the M-CAN (pins 1 & 9), to see what goes on there. I hope the heating system can be controlled from there. I really want to be able to remotely turn on the heat without the car charger plugged, I think that is a killer feature. Nissan Evalia has this, and I also made a DIY remote solution for my 1999 Peugeot Electrique, which I really appreciated during the winters. I just hope it is possible in the Soul EV.

Have Kia made a statement that they will support Android Auto (and include this in firmware upgrades for existing cars)? Can you recommend any links to Android auto tech specs? If not, I will find it myself. I am especially interested in API/communication-specs. If we can access this via the car bluetooth connection, it will be ideal. Very interesting!

Best regards,

Henrik

Venlig hilsen / best regards Henrik R. Scheel

Spjeldager Consult ApS Spjeldager 9 DK-2630 Taastrup CVR: 34491399 T: +45 2720 9828 http://www.spjeldager.dk/

Den 19/04/2016 kl. 04.45 skrev Pierre-Étienne Messier notifications@github.com:

Hello Henrik!

Well I am the "canadian developer" ;) I live in Québec City, in Canada. I am a professional software developer (C++) and this is my first official Android project as a coder (it's been a while since I've developed in Java too).

I'll have soon some spare hours to spent on the project, I began by updating my Android Studio to the latest version (2.0) last week. I'll try to make the first packet flow as planned, the rest should be easy from that point. The math model you are saying is is a great idea! We should consider as well looking at Android Auto, as the Soul EV should support it in the near future. That way, we could display better stats/graphs directly on the navigation screen.

Feel free to contribute! Cheers!

— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/pemessier/SoulEVSpy/issues/1#issuecomment-211702616

pemessier commented 8 years ago

That's too bad for your KW902, I think yours was probably faulty. Maybe you can try to open it and check, it might be just a bad/cold solder or something similar. I plug mine when the car is on or off and everything works well!

No problem about the fork, you could just have created a branch too!

Yes by default we are collecting data on the C-CAN bus. AlKl on the forum uses a Vector CANalyzer connected to both C and M CAN to gather data.

I don't know if the CAN buses (from the OBD connector, though) can be controlled when the car is off though. The OBD reader don't have power in that situation (however I don't know if the C and M buses have power on them, I didn't test with a logic analyzer). I do know however that the USB port have power at all times.

About Android Auto, the only thing we know so far is from the website (https://www.android.com/intl/en_ca/auto/) where we find the Soul EV in the supported list of vehicles (2015-2016 requires a software update). I've asked Kia Canada about it and they don't know when this will happen yet, some heard it will be during summer. I didn't read much on Android Auto so far, the connection to the car is done over USB. This would mean that we need the Bluetooth connection in parallel to the KW902 to get the OBD data. However, it seems that for now only audio playback and messaging apps are supported. Maybe there's a way to use one or the other to do what we want ;)

Best regards,

Pierre-Étienne

JejuSoul commented 8 years ago

Glad to see this project is active again. I am not really able to code here but will look in and add suggestions if I think they'll help.

Henrik - shame about your KW902. I tend to plug mine in and out when the car is off, but have occasionally done it with the car on without problem.

Android Auto will not be available in all countries. It will probably not be available in Korea. The new Ioniq EV had Android Auto at the Geneva Motor Show but not at the Jeju Expo. Hence I hope that Soul EV Spy will work (at least partially) without Android Auto.