[Ovmsdev] Transition to new esp-idf
Mark Webb-Johnson
mark at webb-johnson.net
Fri Jan 19 08:39:18 HKT 2018
Michael: Can you try menuconfig Component / FAT Filesystem support / Use separate cache for each file -> OFF. Documentation shows that controlling the FS_TINY flag (which sounds like something we want).
With wifi, DEMO vehicle module, sd mounted, and server v2 running, I get:
Free 8-bit 70136/282488, 32-bit 17660/44832, SPIRAM 0/0
OVMS > sd unmount
OVMS > module memory
Free 8-bit 77604/282488, 32-bit 17660/44832, SPIRAM 0/0
--Task-- Total DRAM D/IRAM IRAM SPIRAM +/- DRAM D/IRAM IRAM SPIRAM
tiT 356 1088 0 0 +16 -20 +0 +0
Tmr Svc 20 528 0 0 -860 -6444 +0 +0
Using “separate cache for each file”, I get:
Free 8-bit 29156/282496, 32-bit 17660/44832, SPIRAM 0/0
OVMS > sd unmount
OVMS > module memory
Free 8-bit 57096/282496, 32-bit 17660/44832, SPIRAM 0/0
--Task-- Total DRAM D/IRAM IRAM SPIRAM +/- DRAM D/IRAM IRAM SPIRAM
Tmr Svc 0 552 0 0 -4 -27780 +0 +0
Seems to be 27KB vs 7KB per filesystem mount, and we have two (/sd and /store). Overall win with FS_TINY for FAT is close to 41KB.
Regards, Mark.
> On 17 Jan 2018, at 9:23 AM, Mark Webb-Johnson <mark at webb-johnson.net> wrote:
>
> Note also that the memory debugging option adds a bit of overhead.
>
> With debugging enabled (heap: light impact):
>
> OVMS > module memory
> Free 8-bit 79868/282496, 32-bit 17660/44832, SPIRAM 0/0
> --Task-- Total DRAM D/IRAM IRAM SPIRAM +/- DRAM D/IRAM IRAM SPIRAM
> no task 5312 0 0 0 +5312 +0 +0 +0
> esp_timer 49568 0 644 0 +49568 +0 +644 +0
> main 39444 0 0 0 +39444 +0 +0 +0
> ipc0 11096 0 0 0 +11096 +0 +0 +0
> Housekeeping 24740 19956 0 0 +24740 +19956 +0 +0
> tiT 132 0 0 0 +132 +0 +0 +0
> Tmr Svc 4 27800 0 0 +4 +27800 +0 +0
> ipc1 12 0 0 0 +12 +0 +0 +0
> AsyncConsole 0 36 26404 0 +0 +36 +26404 +0
>
> OVMS > metrics list m.freeram
> m.freeram 79868
>
> With debugging enabled (heap: comprehensive):
>
> OVMS > module memory
> Free 8-bit 79728/282320, 32-bit 17968/45140, SPIRAM 0/0
> --Task-- Total DRAM D/IRAM IRAM SPIRAM +/- DRAM D/IRAM IRAM SPIRAM
> no task 5312 0 0 0 +5312 +0 +0 +0
> esp_timer 49568 0 644 0 +49568 +0 +644 +0
> main 39444 0 0 0 +39444 +0 +0 +0
> ipc0 11096 0 0 0 +11096 +0 +0 +0
> Housekeeping 24644 20056 0 0 +24644 +20056 +0 +0
> tiT 132 0 0 0 +132 +0 +0 +0
> Tmr Svc 4 27800 0 0 +4 +27800 +0 +0
> ipc1 12 0 0 0 +12 +0 +0 +0
> AsyncConsole 0 20 26404 0 +0 +20 +26404 +0
> I (15614) simcom: State timeout, transition to 13
> I (15614) simcom: State: Enter PoweredOff state
> OVMS > metrics list m.freeram
> m.freeram 79728
>
> With debugging disabled:
>
> OVMS > module memory
> To use these debugging tools, must set CONFIG_HEAP_TASK_TRACKING=y
> and have updated openvehicles/esp-idf
> OVMS > metrics list m.freeram
> m.freeram 99956
>
> I think we’ve still got some stuff we can look at to lighten the impact on internal memory. Once we can get the 3.1 hardware out, I can focus on that. The memory tools Steve has built are really complete and usable now. They let us see exactly what is going on.
>
> If we had known going in that the 520KB SRAM of the ESP32 would be 80% used by the system, and only 20% for us, perhaps things would have been done differently. Anyway, we are where we are, and the WROVER module should be able to move a bunch of stuff off to PSRAM.
>
> Regards, Mark.
>
>> On 17 Jan 2018, at 12:59 AM, Michael Balzer <dexter at expeedo.de <mailto:dexter at expeedo.de>> wrote:
>>
>> Bluetooth is disabled. Has been for a while, I don't see a chance to enable it with the 3.0 module.
>>
>> I've also disabled Javascript support (duktape), Wolf, the web server and MDNS and the OBD2ECU. Telnet is enabled as I sometimes use that parallel to the async console.
>>
>> That config gives me…
>> OVMS > module memory
>> Free 8-bit 117364/286352, 32-bit 17972/45144, SPIRAM 0/0
>> …after reboot (without SD card), and with Wifi, modem, Twizy & server v2 running & connected…
>>
>> OVMS > module memory
>> Free 8-bit 23436/286352, 32-bit 17972/45144, SPIRAM 0/0
>>
>> …when idle, will drop further with transmissions pending etc.
>>
>> Opening a telnet session then results in:
>>
>> OVMS > module memory
>> Free 8-bit 18372/286352, 32-bit 17972/45144, SPIRAM 0/0
>>
>> …and still stable.
>>
>> Regards,
>> Michael
>>
>>
>> Am 16.01.2018 um 01:11 schrieb Mark Webb-Johnson:
>>> I’m seeing this:
>>>
>>> OVMS > module memory
>>> Free 8-bit 79812/282268, 32-bit 17816/44988, SPIRAM 0/0
>>>
>>> OVMS > sd unmount
>>> Unmounted SD CARD
>>>
>>> OVMS > module memory
>>> Free 8-bit 107768/282268, 32-bit 17816/44988, SPIRAM 0/0
>>> --Task-- Total DRAM D/IRAM IRAM SPIRAM +/- DRAM D/IRAM IRAM SPIRAM
>>> Tmr Svc 0 20 0 0 -4 -27780 +0 +0
>>>
>>> I guess it is FAT fs stuff, but we use that for /store as well so not sure why so much. I will look into it.
>>>
>>> With wifi client, ovms server v2, tesla roadster vehicle module, I get this:
>>>
>>> OVMS > module memory
>>> Free 8-bit 54224/282268, 32-bit 17816/44988, SPIRAM 0/0
>>>
>>> With the OBDII HUD, that drops to 45KB.
>>>
>>> Do you have bluetooth enabled (in menuconfig)?
>>>
>>> Regards, Mark.
>>>
>>>> On 16 Jan 2018, at 3:35 AM, Michael Balzer <dexter at expeedo.de> <mailto:dexter at expeedo.de> wrote:
>>>>
>>>> I've found the missing RAM. It's allocated for the SD card:
>>>>
>>>> OVMS > module memory
>>>> Free 8-bit 117364/286352, 32-bit 17972/45144, SPIRAM 0/0
>>>>
>>>> I (34235) sdcard: SD CARD has been inserted. Auto-mounting...
>>>>
>>>> OVMS > module memory
>>>> Free 8-bit 89348/286352, 32-bit 17972/45144, SPIRAM 0/0
>>>> --Task-- Total DRAM D/IRAM IRAM SPIRAM +/- DRAM D/IRAM IRAM SPIRAM
>>>> Tmr Svc 4 27804 0 0 +4 +27804 +0 +0
>>>>
>>>> I (68065) sdcard: SD CARD has been removed.
>>>>
>>>> OVMS > module memory
>>>> Free 8-bit 117332/286352, 32-bit 17972/45144, SPIRAM 0/0
>>>> --Task-- Total DRAM D/IRAM IRAM SPIRAM +/- DRAM D/IRAM IRAM SPIRAM
>>>> Tmr Svc 0 12 0 0 -4 -27792 +0 +0
>>>>
>>>> …again…
>>>>
>>>> OVMS > module memory
>>>> Free 8-bit 117332/286352, 32-bit 17972/45144, SPIRAM 0/0
>>>> --Task-- Total DRAM D/IRAM IRAM SPIRAM +/- DRAM D/IRAM IRAM SPIRAM
>>>> Tmr Svc 0 12 0 0 -4 -27792 +0 +0
>>>>
>>>> I (114985) sdcard: SD CARD has been inserted. Auto-mounting...
>>>>
>>>> OVMS > module memory
>>>> Free 8-bit 89348/286352, 32-bit 17972/45144, SPIRAM 0/0
>>>> --Task-- Total DRAM D/IRAM IRAM SPIRAM +/- DRAM D/IRAM IRAM SPIRAM
>>>> Tmr Svc 4 27804 0 0 +4 +27792 +0 +0
>>>>
>>>> E (141205) sdmmc_cmd: sdmmc_read_sectors_dma: sdmmc_send_cmd returned 0x107
>>>> E (141205) diskio_sdmmc: sdmmc_read_blocks failed (263)
>>>> I (141515) sdcard: SD CARD has been removed.
>>>>
>>>> OVMS > module memory
>>>> Free 8-bit 117332/286352, 32-bit 17972/45144, SPIRAM 0/0
>>>> --Task-- Total DRAM D/IRAM IRAM SPIRAM +/- DRAM D/IRAM IRAM SPIRAM
>>>> Tmr Svc 0 12 0 0 -4 -27792 +0 +0
>>>>
>>>>
>>>> Btw, I think the RAM usage of the telnet server is also higher than before:
>>>>
>>>> OVMS > module memory
>>>> Free 8-bit 117332/286352, 32-bit 17972/45144, SPIRAM 0/0
>>>>
>>>> OVMS > wifi mode client
>>>> Starting WIFI as a client for any defined SSID
>>>> I (380175) wifi: wifi firmware version: 403db1d
>>>> I (380175) wifi: config NVS flash: enabled
>>>> I (380175) wifi: config nano formating: disabled
>>>> I (380185) wifi: Init dynamic tx buffer num: 16
>>>> I (380185) wifi: Init data frame dynamic rx buffer num: 16
>>>> I (380185) wifi: Init management frame dynamic rx buffer num: 16
>>>> I (380185) wifi: wifi driver task: 3ffe3db4, prio:23, stack:4096
>>>> I (380185) wifi: Init static rx buffer num: 4
>>>> I (380185) wifi: Init dynamic rx buffer num: 16
>>>> I (380195) wifi: wifi power manager task: 0x3ffe846c prio: 21 stack: 2560
>>>> I (380195) wifi: mode : sta (30:ae:a4:37:25:88)
>>>> W (390205) wifi: incorrect scan type: 1073534024
>>>> I (392615) esp32wifi: Found SSID devolo-f4068d73a03e - trying to connect
>>>> I (393945) wifi: n:11 2, o:1 0, ap:255 255, sta:11 2, prof:1
>>>> I (394595) wifi: state: init -> auth (b0)
>>>> I (394605) wifi: state: auth -> assoc (0)
>>>> I (394605) wifi: state: assoc -> run (10)
>>>> I (394625) wifi: connected with devolo-f4068d73a03e, channel 11
>>>> I (394665) esp32wifi: WiFi UP with SSID: devolo-f4068d73a03e, MAC: 30:ae:a4:37:25:88, IP: 192.168.2.101, mask: 255.255.255.0, gw: 192.168.2.1
>>>> I (394665) telnet: Launching Telnet Server
>>>> I (397615) wifi: pm start, type:0
>>>>
>>>> OVMS > module memory
>>>> Free 8-bit 89700/286352, 32-bit 17972/45144, SPIRAM 0/0
>>>> --Task-- Total DRAM D/IRAM IRAM SPIRAM +/- DRAM D/IRAM IRAM SPIRAM
>>>> tiT 128 716 0 0 +0 +484 +0 +0
>>>> AsyncConsole 0 16552 26404 0 +0 +16356 +0 +0
>>>> NetManTask 8 488 0 0 +8 +488 +0 +0
>>>> wifi 0 1600 0 0 +0 +1600 +0 +0
>>>> eventTask 0 7564 0 0 +0 +7564 +0 +0
>>>>
>>>>
>>>> …but I'm not sure about that, haven't tested that in a while.
>>>>
>>>>
>>>> So, SD cards now work, and I'll not be able to use them due to the RAM usage… :(
>>>>
>>>>
>>>>
>>>> Am 15.01.2018 um 19:21 schrieb Michael Balzer:
>>>>> Transition went fine. "make flash" didn't even erase "/store", I had expected that to happen, good to know.
>>>>>
>>>>> And…
>>>>>
>>>>> OVMS > sd status
>>>>> SD CARD is inserted
>>>>> Name: SL32G
>>>>> Type: SDHC/SDXC
>>>>> Speed: default speed
>>>>> Size: 30436MB
>>>>> CSD: ver=1, sector_size=512, capacity=62333952 read_bl_len=9
>>>>> SCR: sd_spec=2, bus_width=5
>>>>>
>>>>> → me too (the minion) :)
>>>>>
>>>>>
>>>>> BUT… after reconfiguration to the same components as before, I'm now missing about 30-40 KB of free RAM.
>>>>>
>>>>> After loading just the Twizy module & the v2 server, I'm now again down to…
>>>>>
>>>>> OVMS > module memory
>>>>> Free 8-bit 2632/286352, 32-bit 17972/45144, SPIRAM 0/0
>>>>>
>>>>> …so it crashes as soon as it needs to actually do anything, like sending a notification.
>>>>>
>>>>> This is without any of the new CAN logging stuff yet, that's stashed away for the transition.
>>>>>
>>>>> I'll now check the config again for any more options to save RAM…
>>>>>
>>>>> Regards,
>>>>> Michael
>>>>>
>>>>>
>>>>> Am 15.01.2018 um 06:48 schrieb Stephen Casner:
>>>>>> In order for the the "module memory" and "module tasks" commands to
>>>>>> work, the configuration needs to be changed from the sdk.default.hw30
>>>>>> that Mark just provided. CONFIG_FREERTOS_USE_TRACE_FACILITY needs to
>>>>>> be enabled, CONFIG_HEAP_POISONING must be enabled (LIGHT or
>>>>>> COMPREHENSIVE), and CONFIG_HEAP_TASK_TRACKING must be enabled. I have
>>>>>> attached a diff for the sdkconfig. That diff also includes a section
>>>>>> for enabling telnet, which some of you may be using.
>>>>>>
>>>>>> Please also note that in this revised implementation of "module
>>>>>> memory" the block address is now the address that is returned from
>>>>>> malloc, not the address of the header that precedes it, and the length
>>>>>> of the block is now exclusive of the debugging overhead.
>>>>>>
>>>>>> -- Steve
>>>>>>
>>>>>> On Mon, 15 Jan 2018, Mark Webb-Johnson wrote:
>>>>>>
>>>>>>> All committed and pushed now.
>>>>>>>
>>>>>>> Developers MUST now update their ESP IDF and XTENSA build tools to use this new build. They should also compare sdkconfig and sdkconfig.defaults.hw30 to verify differences. I also suggest you do a ‘make flash’ (rather than ‘make app-flash’) at least once, to update the bootloader to the latest (as bootloaders before v2.1 are no longer supported).
>>>>>>>
>>>>>>> Check
>>>>>>> https://esp-idf.readthedocs.io/en/latest/get-started/index.html#setup-toolchain <https://esp-idf.readthedocs.io/en/latest/get-started/index.html#setup-toolchain> <https://esp-idf.readthedocs.io/en/latest/get-started/index.html#setup-toolchain> <https://esp-idf.readthedocs.io/en/latest/get-started/index.html#setup-toolchain> <https://esp-idf.readthedocs.io/en/latest/get-started/index.html#setup-toolchain> <https://esp-idf.readthedocs.io/en/latest/get-started/index.html#setup-toolchain> <https://esp-idf.readthedocs.io/en/latest/get-started/index.html#setup-toolchain> <https://esp-idf.readthedocs.io/en/latest/get-started/index.html#setup-toolchain>
>>>>>>> to see the version of XTENSA toolchain required for latest Espressif IDF ‘master’ builds. As of this writing, it is 1.22.0-80-g6c4433a-5.2.0.
>>>>>>>
>>>>>>> I hope this goes smoothly for you.
>>>>>>>
>>>>>>> Regards, Mark.
>>>>>>>
>>>>>>> commit dfcc658557fc480bcccb09b23bc24399bb6e7497 (HEAD -> master, origin/master, origin/HEAD)
>>>>>>> Author: Mark Webb-Johnson <mark at webb-johnson.net> <mailto:mark at webb-johnson.net> <mailto:mark at webb-johnson.net> <mailto:mark at webb-johnson.net>
>>>>>>> Date: Mon Jan 15 07:56:45 2018 +0800
>>>>>>>
>>>>>>> Provide a sdkconfig.default.hw31 for OVMS v3.1 hardware
>>>>>>>
>>>>>>> commit 003592d553c881f735fb228b08836a13c306cec3
>>>>>>> Merge: e58c5b6 b28db5e
>>>>>>> Author: Mark Webb-Johnson <mark at webb-johnson.net> <mailto:mark at webb-johnson.net> <mailto:mark at webb-johnson.net> <mailto:mark at webb-johnson.net>
>>>>>>> Date: Mon Jan 15 07:49:13 2018 +0800
>>>>>>>
>>>>>>> Merge branch 'for-master'. This requires ESP-IDF v3.0 support:
>>>>>>>
>>>>>>> OVMS developers should now:
>>>>>>>
>>>>>>> 1] Pull the latest OpenVehicles IDF, and checkout MASTER branch.
>>>>>>>
>>>>>>> 2] Update XTENSA tools to match version required by Espressif for MASTER branch.
>>>>>>>
>>>>>>> 3] For ovms hardware v3.0, a sdkconfig default file sdkconfig.default.hw30 has
>>>>>>> been provided. That can be merged/copied to sdkconfig as appropriate.
>>>>>>>
>>>>>>> 4] For ovms hardware v3.1, a sdkconfig default file sdkconfig.default.hw31 will
>>>>>>> been provided in the next update.
>>>>>>>
>>>>>>> 5] It is recommended that developers perform at least one full 'make flash'
>>>>>>> with this version, to update the bootloader to latest. Note that the
>>>>>>> sdkconfig.default.* files are now set to require bootloader at least v2.1
>>>>>>> (or later), and bootloader v2.0 is no longer supported.
>>>>>>>
>>>>>>> Enjoy.
>>>>>>>
>>>>>>>
>>>>>>>> On 15 Jan 2018, at 7:25 AM, Mark Webb-Johnson <mark at webb-johnson.net> <mailto:mark at webb-johnson.net> <mailto:mark at webb-johnson.net> <mailto:mark at webb-johnson.net> wrote:
>>>>>>>>
>>>>>>>> Merge is ok, but triple checking a couple of things. Should be committed and pushed within the next half hour.
>>>>>>>>
>>>>>>>> Regards, Mark
>>>>>>>>
>>>>>>>>> On 15 Jan 2018, at 1:09 AM, Stephen Casner <casner at acm.org> <mailto:casner at acm.org> <mailto:casner at acm.org> <mailto:casner at acm.org> wrote:
>>>>>>>>>
>>>>>>>>> Mark,
>>>>>>>>>
>>>>>>>>> It looks like you were not able to do the sdkconfig.default and merge
>>>>>>>>> as you planned?
>>>>>>>>>
>>>>>>>>> -- Steve
>>>>>>>>>
>>>>>>>>>> On Fri, 12 Jan 2018, Stephen Casner wrote:
>>>>>>>>>>
>>>>>>>>>>> On Sat, 13 Jan 2018, Mark Webb-Johnson wrote:
>>>>>>>>>>>
>>>>>>>>>>> @Steve can you update our master clone to latest from Espressif and
>>>>>>>>>>> make sure your stuff is still ok?
>>>>>>>>>> I have just now done this. I had already done a rebase a few days ago
>>>>>>>>>> before committing the improved version of the OS changes so I could
>>>>>>>>>> issue a pull request. There were a few commits since then, which I
>>>>>>>>>> have now merged. My code still runs correctly.
>>>>>>>>>>
>>>>>>>>>>> I guess steps for developers will be:
>>>>>>>>>>>
>>>>>>>>>>> 1) pull the openvehicles IDF and switch to master branch. Sub module update.
>>>>>>>>>>>
>>>>>>>>>>> 2) download and install xtensa build chain to match.
>>>>>>>>>>>
>>>>>>>>>>> 3) update OVMS master, make clean, check menu config, then build and play.
>>>>>>>>>> Sounds right.
>>>>>>>>>>
>>>>>>>>>>> I can get my part done by Sunday 14th night (HKT), so suggest to do
>>>>>>>>>>> the Merge of the OVMS firmware master branch then.
>>>>>>>>>> I'll be sleeping then, so you can go ahead and do the merge.
>>>>>>>>>>
>>>>>>>>>> -- Steve
>>>>>>>>> _______________________________________________
>>>>>>>>> OvmsDev mailing list
>>>>>>>>> OvmsDev at lists.teslaclub.hk <mailto:OvmsDev at lists.teslaclub.hk> <mailto:OvmsDev at lists.teslaclub.hk> <mailto:OvmsDev at lists.teslaclub.hk>
>>>>>>>>> http://lists.teslaclub.hk/mailman/listinfo/ovmsdev <http://lists.teslaclub.hk/mailman/listinfo/ovmsdev> <http://lists.teslaclub.hk/mailman/listinfo/ovmsdev> <http://lists.teslaclub.hk/mailman/listinfo/ovmsdev>
>>>>>>>> _______________________________________________
>>>>>>>> OvmsDev mailing list
>>>>>>>> OvmsDev at lists.teslaclub.hk <mailto:OvmsDev at lists.teslaclub.hk> <mailto:OvmsDev at lists.teslaclub.hk> <mailto:OvmsDev at lists.teslaclub.hk>
>>>>>>>> http://lists.teslaclub.hk/mailman/listinfo/ovmsdev <http://lists.teslaclub.hk/mailman/listinfo/ovmsdev> <http://lists.teslaclub.hk/mailman/listinfo/ovmsdev> <http://lists.teslaclub.hk/mailman/listinfo/ovmsdev>
>>>>>> _______________________________________________
>>>>>> OvmsDev mailing list
>>>>>> OvmsDev at lists.teslaclub.hk <mailto:OvmsDev at lists.teslaclub.hk> <mailto:OvmsDev at lists.teslaclub.hk> <mailto:OvmsDev at lists.teslaclub.hk>
>>>>>> http://lists.teslaclub.hk/mailman/listinfo/ovmsdev <http://lists.teslaclub.hk/mailman/listinfo/ovmsdev> <http://lists.teslaclub.hk/mailman/listinfo/ovmsdev> <http://lists.teslaclub.hk/mailman/listinfo/ovmsdev>
>>>>> --
>>>>> Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
>>>>> Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> OvmsDev mailing list
>>>>> OvmsDev at lists.teslaclub.hk <mailto:OvmsDev at lists.teslaclub.hk> <mailto:OvmsDev at lists.teslaclub.hk> <mailto:OvmsDev at lists.teslaclub.hk>
>>>>> http://lists.teslaclub.hk/mailman/listinfo/ovmsdev <http://lists.teslaclub.hk/mailman/listinfo/ovmsdev> <http://lists.teslaclub.hk/mailman/listinfo/ovmsdev> <http://lists.teslaclub.hk/mailman/listinfo/ovmsdev>
>>>> --
>>>> Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
>>>> Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
>>>> _______________________________________________
>>>> OvmsDev mailing list
>>>> OvmsDev at lists.teslaclub.hk <mailto:OvmsDev at lists.teslaclub.hk>
>>>> http://lists.teslaclub.hk/mailman/listinfo/ovmsdev <http://lists.teslaclub.hk/mailman/listinfo/ovmsdev>
>>>
>>>
>>> _______________________________________________
>>> OvmsDev mailing list
>>> OvmsDev at lists.teslaclub.hk <mailto:OvmsDev at lists.teslaclub.hk>
>>> http://lists.teslaclub.hk/mailman/listinfo/ovmsdev <http://lists.teslaclub.hk/mailman/listinfo/ovmsdev>
>>
>> --
>> Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
>> Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
>> _______________________________________________
>> OvmsDev mailing list
>> OvmsDev at lists.teslaclub.hk <mailto:OvmsDev at lists.teslaclub.hk>
>> http://lists.teslaclub.hk/mailman/listinfo/ovmsdev
>
> _______________________________________________
> OvmsDev mailing list
> OvmsDev at lists.teslaclub.hk
> http://lists.teslaclub.hk/mailman/listinfo/ovmsdev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20180119/e1a48853/attachment.htm>
More information about the OvmsDev
mailing list