<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">Thanks Henrik<div><br></div><div>every bit helps<br><br><div dir="ltr"><span style="background-color: rgba(255, 255, 255, 0);">Regards</span><div>Shane</div></div><div dir="ltr"><br><blockquote type="cite">On 3 Apr 2021, at 12:33, henrik.scheel@spjeldager.dk wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><div dir="auto">Each byte is a cell-bundle voltage, and you simply multiply the byte value with 0.02<div><br></div><div>See https://github.com/langemand/SoulEVSpy/blob/master/app/src/main/java/com/evranger/soulevspy/util/BatteryManagementSystemParser.java<br><br>Best regards, </div><div>Henrik<br>--<div>Best regards / venlig hilsen</div><div>Henrik Scheel</div><div>Mobil: +45 2720 9828</div></div></div><div style="line-height:1.5"><br><br>-------- Oprindelig besked --------<br>Fra: ovmsdev-request@lists.openvehicles.com<br>Dato: lør. d. 3. apr. 2021 13.02<br>Til: ovmsdev@lists.openvehicles.com<br>Emne: OvmsDev Digest, Vol 111, Issue 9<br><blockquote>Send OvmsDev mailing list submissions to<br>     ovmsdev@lists.openvehicles.com<br><br>To subscribe or unsubscribe via the World Wide Web, visit<br>   http://lists.openvehicles.com/mailman/listinfo/ovmsdev<br>or, via email, send a message with subject or body 'help' to<br>  ovmsdev-request@lists.openvehicles.com<br><br>You can reach the person managing the list at<br>       ovmsdev-owner@lists.openvehicles.com<br><br>When replying, please edit your Subject line so it is more specific<br>than "Re: Contents of OvmsDev digest..."<br><br><br>Today's Topics:<br><br>   1. Re: Coding help (Michael Balzer)<br><br><br>----------------------------------------------------------------------<br><br>Message: 1<br>Date: Sat, 3 Apr 2021 13:02:06 +0200<br>From: Michael Balzer <dexter@expeedo.de><br>To: ovmsdev@lists.openvehicles.com<br>Subject: Re: [Ovmsdev] Coding help<br>Message-ID: <53c8b247-77d8-b272-5c6d-a815c5aa413f@expeedo.de><br>Content-Type: text/plain; charset="utf-8"; Format="flowed"<br><br>OVMS# obd can1 request device -t1000 7e4 7ec 2102<br>7e4[7ec] 2102: Response:<br>ff ff ff ff c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c5 | ................<br>c5 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 | ................<br>c4 c4 c4 c4???????????????????????????????????? | ....<br><br>OVMS# obd can1 request device -t1000 7e4 7ec 2103<br>7e4[7ec] 2103: Response:<br>ff ff ff ff c4 c4 c4 c4 c4 c4 c4 c5 c5 c4 c4 c4 | ................<br>c4 c4 c4 c4 c4 c5 c5 c5 c4 c5 c5 c5 c4 c5 c4 c4 | ................<br>c5 c4 c4 c4???????????????????????????????????? | ....<br><br>OVMS# obd can1 request device -t1000 7e4 7ec 2104<br>7e4[7ec] 2104: Response:<br>ff ff ff ff c4 c4 c5 c4 c4 c4 c4 c4 c4 c4 c4 c4 | ................<br>c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 | ................<br>c4 c5 c4 c4???????????????????????????????????? | ....<br><br><br>Your voltages obviously are 16 bit values, so you'll need to use <br>RXB_UINT16() and multiply your loop index by 2.<br><br>Regards,<br>Michael<br><br><br>Am 03.04.21 um 12:04 schrieb Shane @ Kilve Engineering:<br>> Hi has anyone got a sample of the data for the cell voltages on the <br>> ioniq vfl just so I can see how the macro is handling it? Or is it <br>> played out the same as below?<br>><br>> Regards<br>> Shane<br>><br>>> On 29 Mar 2021, at 22:20, Michael Balzer <dexter@expeedo.de <br>>> <mailto:dexter@expeedo.de>> wrote:<br>>><br>>> Shane,<br>>><br>>> Am 29.03.21 um 20:17 schrieb Shane @ Kilve Engineering:<br>>>> can any one tell me what the "v.e.c.login" is and is it need for <br>>>> something to work?<br>>><br>>> v.e.c.config          yes = ECU/controller in configuration state<br>>><br>>> It's not used by the framework currently.<br>>><br>>>> also any one with any ideas how to deal with cell voltages in a <br>>>> string this long? ?took me blumim ages to find the bms when the tx <br>>>> and rx are 128 address apart!!<br>>>><br>>>> 748[7c8]:e113 10 90 10 92 10 93 10 93 10 8e 10 92 10 8f 10 90 10 92 <br>>>> 10 6c 10 93 10 93 10 8f 10 91 10 92 10 92 10 92 10 92 10 92 10 92 10 <br>>>> 90 10 8e 10 90 10 92 10 8d 10 90 10 91 10 8f 10 8e 10 8f 10 91 10 90 <br>>>> 10 90 10 91 10 8e 10 91 10 8e 10 91 10 90 10 8e 10 90 10 92 10 90 10 <br>>>> 94 10 91 10 91 10 93 10 90 10 91 10 90 10 8f 10 93 10 92 10 8e 10 90 <br>>>> 10 91 10 8b 10 92 10 90 10 91 10 8e 10 90 10 90 10 90 10 91 10 90 10 <br>>>> 8f 10 90 10 90 10 8e 10 92 10 8e 10 91 10 89 10 91 10 91 10 91 10 8d <br>>>> 10 8f 10 8d 10 86 10 8a 10 8e 10 8f 10 91 10 90 10 92 10 94 10 88 10 <br>>>> 8f 10 94 10 91 10 91 10 91 10 93 10 91 00 00 00 00 00 00 00 00 00 00 <br>>>> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00<br>>><br>>> Simply loop over the cells contained. Have a look at the buffer macro <br>>> utils, e.g.:<br>>> https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/blob/master/vehicle/OVMS.V3/components/vehicle_hyundai_ioniqvfl/src/vehicle_hyundai_ioniqvfl.cpp#L44<br>>><br>>> Regards,<br>>> Michael<br>>><br>>><br>>>> Shane<br>>>><br>>>><br>>>><br>>>>> On 5 Mar 2021, at 20:45, Michael Balzer <dexter@expeedo.de <br>>>>> <mailto:dexter@expeedo.de>> wrote:<br>>>>><br>>>>> Shane,<br>>>>><br>>>>> OvmsVehicle::PollSetPidList(m_can1, obdii_polls);<br>>>>> ? ? OvmsVehicle::PollSetState(0);<br>>>>><br>>>>> needs to be done in your vehicle init, i.e. the constructor after <br>>>>> RegisterCanBus().<br>>>>><br>>>>> Please read the vehicle_obdii module source for a complete polling <br>>>>> example.<br>>>>><br>>>>> Regards,<br>>>>> Michael<br>>>>><br>>>>><br>>>>> Am 05.03.21 um 17:59 schrieb Shane @ Kilve Engineering:<br>>>>>> Thanks Michael,<br>>>>>><br>>>>>> Had a try and ended up with this bit added but return anything<br>>>>>><br>>>>>> Where am I going wrong?<br>>>>>><br>>>>>> Shane<br>>>>>><br>>>>>> *******<br>>>>>><br>>>>>> #include "ovms_log.h"<br>>>>>> *static**const**char**TAG= "v-edeliver3";<br>>>>>><br>>>>>> #include "vehicle_edeliver3.h"<br>>>>>> #include "metrics_standard.h"<br>>>>>><br>>>>>> *namespace*? {<br>>>>>><br>>>>>> *const*OvmsVehicle::poll_pid_tobdii_polls[] =<br>>>>>> {<br>>>>>> ? ? { 0x7e3, 0x7eb, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0xf194, { 10, <br>>>>>> 10, 10, 10 }, 0, ISOTP_STD }, //VIN<br>>>>>> ? ? { 0x7e3, 0x7eb, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0xe003, { 10, <br>>>>>> 10, 10, 10 }, 0, ISOTP_STD }, //SOH<br>>>>>> POLL_LIST_END<br>>>>>> };<br>>>>>> };<br>>>>>><br>>>>>> OvmsVehicleEdeliver3::OvmsVehicleEdeliver3()<br>>>>>> ? {<br>>>>>> ? ? ESP_LOGI(TAG, "Start eDeliver3 vehicle module");<br>>>>>><br>>>>>> RegisterCanBus(1,CAN_MODE_ACTIVE,CAN_SPEED_500KBPS);<br>>>>>> ? }<br>>>>>><br>>>>>> OvmsVehicleEdeliver3::~OvmsVehicleEdeliver3()<br>>>>>> ? {<br>>>>>> ? ? ESP_LOGI(TAG, "Stop eDeliver3 vehicle module");<br>>>>>><br>>>>>> memset(m_vin, 0, *sizeof*(m_vin));<br>>>>>> ? }<br>>>>>><br>>>>>><br>>>>>> //testing polls<br>>>>>><br>>>>>> *void*OvmsVehicleEdeliver3::IncomingPollReply(<br>>>>>> ?? canbus* bus, uint16_t type, uint16_t pid, uint8_t* data, <br>>>>>> uint8_t length, uint16_t mlremain)<br>>>>>> {<br>>>>>> string& rxbuf = med_obd_rxbuf;<br>>>>>><br>>>>>> OvmsVehicle::PollSetPidList(m_can1, obdii_polls);<br>>>>>> OvmsVehicle::PollSetState(0);<br>>>>>><br>>>>>><br>>>>>> // init / fill rx buffer:<br>>>>>> *if* (m_poll_ml_frame == 0) {<br>>>>>> rxbuf.clear();<br>>>>>> rxbuf.reserve(length + mlremain);<br>>>>>> ?? }<br>>>>>> rxbuf.append((*char**)data, length);<br>>>>>> *if* (mlremain)<br>>>>>> *return*;<br>>>>>><br>>>>>> // complete:<br>>>>>> *switch* (pid) {<br>>>>>> *case* 0xe003: {<br>>>>>> *unsigned* *int* soh_raw = ((*unsigned* *int*)rxbuf[0] << 8) | <br>>>>>> (*unsigned* *int*)rxbuf[1];<br>>>>>> *float* soh = soh_raw / 10;<br>>>>>> StdMetrics.ms_v_bat_soh->SetValue(soh);<br>>>>>> *break*;<br>>>>>> ?? ? }<br>>>>>> ?? }<br>>>>>> }<br>>>>>><br>>>>>><br>>>>>> // end testing polls<br>>>>>><br>>>>>><br>>>>>><br>>>>>>> On 5 Mar 2021, at 12:37, Michael Balzer <dexter@expeedo.de <br>>>>>>> <mailto:dexter@expeedo.de>> wrote:<br>>>>>>><br>>>>>>> Shane,<br>>>>>>><br>>>>>>> on OBD polling basics: <br>>>>>>> http://lists.openvehicles.com/pipermail/ovmsdev/2020-December/014758.html<br>>>>>>><br>>>>>>> Regards,<br>>>>>>> Michael<br>>>>>>><br>>>>>>><br>>>>>>> Am 04.03.21 um 19:45 schrieb Shane @ Kilve Engineering:<br>>>>>>>> Good evening Michael,<br>>>>>>>><br>>>>>>>> Or any one that has the time to help,<br>>>>>>>><br>>>>>>>> Ive now successfully retrieved as much info as I can without <br>>>>>>>> polling any info for the maxus, but I have have now found an ecu <br>>>>>>>> that responds to pid requests.<br>>>>>>>><br>>>>>>>> For example if I use the obdii pid scanner I get the loads of <br>>>>>>>> data back and I?ve decoded some of it, just need a bit of <br>>>>>>>> guidance how to write the code to get the same info<br>>>>>>>><br>>>>>>>> A part of a scan is as follows<br>>>>>>>><br>>>>>>>> Scan complete (7e3 e000-e100)<br>>>>>>>> Scan started : 2021-03-04 18:32:36 GMT<br>>>>>>>> Last response: 2021-03-04 18:32:39 GMT<br>>>>>>>> 7e3[7eb]:e000 00<br>>>>>>>> 7e3[7eb]:e001 64<br>>>>>>>> 7e3[7eb]:e002 4b<br>>>>>>>> 7e3[7eb]:e003 26 bc<br>>>>>>>> 7e3[7eb]:e004 00 07<br>>>>>>>> 7e3[7eb]:e005 2f<br>>>>>>>> 7e3[7eb]:e006 2e<br>>>>>>>> 7e3[7eb]:e007 02 00<br>>>>>>>> 7e3[7eb]:e008 01 ff<br>>>>>>>> 7e3[7eb]:e009 02 00<br>>>>>>>> 7e3[7eb]:e010 02 00<br>>>>>>>><br>>>>>>>> I know that e003 is SOH = 26bc = 9916 /100 = 99.16% SOH<br>>>>>>>> And e002 is a temp 4b = 75 / 10 = 7.5 degrees<br>>>>>>>><br>>>>>>>> So if some one can help me with an example of how to correctly <br>>>>>>>> code this one I can work out the rest,<br>>>>>>>><br>>>>>>>> Ive looked through various vehicles but everyone uses different <br>>>>>>>> methods and I can?t seem to get one to work for me.<br>>>>>>>><br>>>>>>>> Any help much appreciated<br>>>>>>>><br>>>>>>>> Shane<br>>>>>>>><br>>>>>>>>> On 15 Feb 2021, at 08:05, Michael Balzer <dexter@expeedo.de <br>>>>>>>>> <mailto:dexter@expeedo.de>> wrote:<br>>>>>>>>><br>>>>>>>>> Shane,<br>>>>>>>>><br>>>>>>>>> I forgot to mention: if you're working on a new vehicle module, <br>>>>>>>>> you'll also need to start the bus somewhere in your <br>>>>>>>>> initialization code. Example:<br>>>>>>>>><br>>>>>>>>> ? RegisterCanBus(1, CAN_MODE_ACTIVE, CAN_SPEED_500KBPS);<br>>>>>>>>><br>>>>>>>>> Regards,<br>>>>>>>>> Michael<br>>>>>>>>><br>>>>>>>>><br>>>>>>>>> Am 15.02.21 um 08:36 schrieb Michael Balzer:<br>>>>>>>>>> Shane,<br>>>>>>>>>><br>>>>>>>>>> Am 14.02.21 um 16:42 schrieb Shane @ Kilve Engineering:<br>>>>>>>>>>> can any one help me with a bit of code to retrieve ve some <br>>>>>>>>>>> data from ecu can1/6f2? 00 4c 00 00 01 97 bc 00 as i cant <br>>>>>>>>>>> poll this ecu it just broadcasts when its active, ive tried <br>>>>>>>>>>> polling it but does not respond, i need to choose one byte <br>>>>>>>>>>> and allocate it to a PID.<br>>>>>>>>>><br>>>>>>>>>> I don't know what you mean by "allocating a byte to a PID", <br>>>>>>>>>> but if you want to process frames received directly, simply <br>>>>>>>>>> override IncomingFrameCan1() (or ?2/3/4 depending on your bus).<br>>>>>>>>>><br>>>>>>>>>> Reduced example:<br>>>>>>>>>><br>>>>>>>>>> void OvmsVehicleXYZ::IncomingFrameCan1(CAN_frame_t *p_frame)<br>>>>>>>>>> {<br>>>>>>>>>> ? uint8_t *d = p_frame->data.u8;<br>>>>>>>>>><br>>>>>>>>>> ? switch (p_frame->MsgID)<br>>>>>>>>>> ? {<br>>>>>>>>>> ??? case 0x6f2:<br>>>>>>>>>> ????? // for example, assuming the SOC is in byte 1:<br>>>>>>>>>> StdMetrics.ms_v_bat_soc->SetValue(d[1]);<br>>>>>>>>>> ????? break;<br>>>>>>>>>> ? }<br>>>>>>>>>> }<br>>>>>>>>>><br>>>>>>>>>> If you're outside a vehicle context, you can register your own <br>>>>>>>>>> CAN receiver by creating a queue and calling <br>>>>>>>>>> MyCan.RegisterListener(). See the vehicle module for an example.<br>>>>>>>>>><br>>>>>>>>>> Regards,<br>>>>>>>>>> Michael<br>>>>>>>>>><br>>>>>>>>><br>>>>>>><br>>>>>>> -- <br>>>>>>> Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal<br>>>>>>> Fon 02333 / 833 5735 * Handy 0176 / 206 989 26<br>>>>>>> _______________________________________________<br>>>>>>> OvmsDev mailing list<br>>>>>>> OvmsDev@lists.openvehicles.com <br>>>>>>> <mailto:OvmsDev@lists.openvehicles.com><br>>>>>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev<br>>>>>><br>>>>>><br>>>>>> _______________________________________________<br>>>>>> OvmsDev mailing list<br>>>>>> OvmsDev@lists.openvehicles.com<br>>>>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev<br>>>>><br>>>>> -- <br>>>>> Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal<br>>>>> Fon 02333 / 833 5735 * Handy 0176 / 206 989 26<br>>>>> _______________________________________________<br>>>>> OvmsDev mailing list<br>>>>> OvmsDev@lists.openvehicles.com <mailto:OvmsDev@lists.openvehicles.com><br>>>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev<br>>>><br>>>><br>>>> _______________________________________________<br>>>> OvmsDev mailing list<br>>>> OvmsDev@lists.openvehicles.com<br>>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev<br>>><br>>> -- <br>>> Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal<br>>> Fon 02333 / 833 5735 * Handy 0176 / 206 989 26<br>>> _______________________________________________<br>>> OvmsDev mailing list<br>>> OvmsDev@lists.openvehicles.com <mailto:OvmsDev@lists.openvehicles.com><br>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev<br>><br>><br>> _______________________________________________<br>> OvmsDev mailing list<br>> OvmsDev@lists.openvehicles.com<br>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev<br><br>-- <br>Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal<br>Fon 02333 / 833 5735 * Handy 0176 / 206 989 26<br><br>-------------- next part --------------<br>An HTML attachment was scrubbed...<br>URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20210403/32a783ba/attachment.htm><br>-------------- next part --------------<br>A non-text attachment was scrubbed...<br>Name: OpenPGP_signature<br>Type: application/pgp-signature<br>Size: 203 bytes<br>Desc: OpenPGP digital signature<br>URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20210403/32a783ba/attachment.sig><br><br>------------------------------<br><br>Subject: Digest Footer<br><br>_______________________________________________<br>OvmsDev mailing list<br>OvmsDev@lists.openvehicles.com<br>http://lists.openvehicles.com/mailman/listinfo/ovmsdev<br><br><br>------------------------------<br><br>End of OvmsDev Digest, Vol 111, Issue 9<br>***************************************<br></blockquote></div><span>_______________________________________________</span><br><span>OvmsDev mailing list</span><br><span>OvmsDev@lists.openvehicles.com</span><br><span>http://lists.openvehicles.com/mailman/listinfo/ovmsdev</span><br></div></blockquote></div></body></html>