[Ovmsdev] OVMS v3
jeremy.whaling at gmail.com
Wed Oct 1 00:24:07 HKT 2014
Two thumbs up for MBED! I really like the web based development, which
allows easy coding "in the cloud" from anywhere without the trouble of
having to install something locally. I'm working with another friend on a
"gid meter" for the leaf that uses the mbed, CANary (search for it on
mynissanleaf or mbed projects). Not that there's much you could port from
that but I feel I could make a bigger contribution for the Leaf port if you
go that route. :-) The CANary uses the LPC1768 variant (cortex M3).
On Tue, Sep 30, 2014 at 7:56 AM, Mastro Gippo <gipmad at gmail.com> wrote:
> Hi Mark! I will review the options and give my 2 cents later, as I'm
> writing this mail while sitting at the open source hardware summit and I'm
> meeting a lot of interesting people here. Of them, Eric Pan from seeed
> studio showed me this option that recently emerged:
> Hope that doesn't shuffle the cards too much again! :)
> Mastro Gippo
> On Sep 30, 2014 4:34 PM, "Mark Webb-Johnson" <mark at webb-johnson.net>
>> And the winner is (or at least who I think the winner should be):
>> *MBED (and probably Freescale **K64F variant)*
>> [image: unknown.jpg]
>> Firstly, hats off to Mastro for pointing this out last year. Back then, I
>> didn’t think much of it - it had some good points, but I am very wary of
>> cloud projects, and closed source cloud terrifies me. But, in the past
>> year, the project has come so far, and actually using the hardware left me
>> very impressed.
>> I think our decision comes down to two choices:
>> 1. A Linux base, probably compute-module style, with Megabytes of
>> RAM, Gigabytes of Flash, incredible flexibility but a challenge to keep
>> power consumption down.
>> 2. An embedded base, with hundreds of Kilobytes of RAM, Megabytes of
>> Flash, and all the complexities that go along with embedded systems
>> For me, the MBED architecture now offers a viable compromise between the
>> two. The latest M4 processors give enough flash space (10 times what we
>> have in our OVMS v2 hardware CPU), and RAM (64 times what we have in our
>> OVMS v2 hardware CPU), that the limitation are lifted. More importantly,
>> drag-and-drop programming means that even if flash space became an issue,
>> we could always just offer different firmware for different vehicles - but
>> this time with re-flashing being simply plugging the module into the PC and
>> drag-and-drop the new firmware file in place. Think of it as like having a
>> PICKIT built onto the board, but with the programming software being the
>> file manager of the operating system - the OVMS v3 module shows up as a
>> drive on the desktop and you just drop the new firmware onto it.
>> Let me explain, in a little more detail, how MBED works.
>> - The MBED boards actually have two processors. The larger processor
>> runs the end-user application (OVMS in our case), and the smaller processor
>> makes up a system called the MBED HDK, based on the CMSIS-DAP standard.
>> - The MBED HDK consists of a USB port (standard Micro-B type)
>> connected to the MBED HDK CPU (on the board), some control circuitry, and
>> an ICSP connection to the main CPU.
>> - When you plug the MBED into the host O/S, it emulates a flash
>> drive; dropping a file onto that drive programs the file onto the main CPU
>> - It also emulates a serial port to the host O/S so when you plug it
>> in you get a serial port to the main CPU.
>> - It provides a CMSIS-DAP standard debugger interface (for more
>> advanced debugging).
>> - The board itself can be powered from the USB, during MBED
>> development or firmware updating.
>> - As well as support for open source GCC toolchain (and others), the
>> MBED included access to an on-line compiler - the code is kept in the
>> cloud, in a shared revision control system, can be compiled there, and
>> binaries downloaded for installation on the boards.
>> - There are a large number of open source libraries available for the
>> MBED platform.
>> - Coding is in C / C++.
>> - The MBED software includes a RTOS with thread support (which should
>> make our job much easier than the current state-based and interrupt
>> - There are lots of low-power modes to work with.
>> The MBED platform provides the lowest barrier-to-entry I’ve ever seen for
>> embedded computing. No serial ports necessary. Just clone the project,
>> tweak, compile, download (with no large IDEs required). Drag-and-drop
>> firmware flashing.
>> It is also still raw in places. For example, I purchased an NXP LPC4088
>> MBED board to also experiment with (512KB flash, 96KB RAM, 32MB SDRAM, dual
>> CAN) - only to find that the firmware on the HDK for that board doesn’t
>> support OSX (despite the board being available for a year). That said, the
>> freescale K64F seems pretty close to what we want, and has no such issues.
>> The other part of the puzzle is how we offer this. Some people want
>> displays, other don’t. For 2G GSM one module was fine, but for 3G we need
>> different modules for Asia, Europe and USA. Some want Bluetooth 2.1, others
>> 4.0 BLE. Some want Wifi, others want cheap. Some want expansion. etc. What
>> I’m thinking of is a baseboard design, with plug-in expansion modules.
>> - The baseboard would contain the MBED HDK + main processor, power
>> supplies, as well as connectors for vehicle, diag, expansion, and USB.
>> - It would most likely be based off the K64F open source architecture.
>> - We would have several (perhaps 4 or so) plug-in sockets on the
>> baseboard, to allow expansion modules to be plugged in. Each of these
>> sockets would have connections to the main processor as well as expansion
>> - The baseboard would give OVMS on 1x CAN port.
>> - A 3G module would provide GSM + GPS (and would expose both
>> antenna connectors to the outside world). The expansion board for this
>> would be the same, but we would solder on different modules depending on
>> the frequencies required.
>> - A CAN expansion module would use Microchip MCP2515 controllers +
>> MCP2551 transceivers (or something like it) to take SPI bus from the main
>> CPU and expand CAN pins on the vehicle connector. Plug it in, and the
>> system then has one or two more CAN ports available.
>> - A wifi expansion module would provide WIFI connectivity.
>> - A Bluetooth expansion module would use the HC-?? style bluetooth
>> SPP modules. Similar to the 3G module, we can simply use the same expansion
>> board - just solder on different bluetooth modules for v2.1 or v4.0 BLE.
>> - A generic expansion module could be used to add custom functions.
>> - For the expansion modules, I’m think of two rows of connectors (one
>> on each side) to provide connectivity and support. Very sturdy and cheap.
>> (something like this: https://www.sparkfun.com/products/10414).
>> Anyway, those are my thoughts, and suggestions given what is available
>> today. I started this v3 search looking for a Linux base, and really had my
>> heart set on it. But I just can’t solve the power and complexity issues. To
>> meet the goals of having something easy to pick up, MBED really seems the
>> only viable option today.
>> But, this is no longer my project. There are now so many people involved,
>> and so many end-users. We are about to hit 1,000 users on the
>> openvehicles.com website.
>> So what do others think?
>> Regards, Mark.
>> On 17 Jun, 2014, at 9:06 am, Mark Webb-Johnson <mark at webb-johnson.net>
>> Actually, an opportune time as I've made some progress. I'll reply to
>> your mail here, but take into account the follow-up discussions.
>> - The requirements of the OVMS community are diverse. Some want
>> pre-heating, some want relay control, some want a display, some want to
>> reprogram their ECUs, some want GSM, and others want none of these. What we
>> are trying to build is a framework that can be adapted by others.
>> - I am stunned that nothing like this exists on the market. I've
>> spent the past six months looking for a low-power, low-cost, module with
>> wifi+bluetooth and a development environment. Linux/RTOS/whatever. But, I
>> haven't found anything perfect. I understand Kevin's frustration - it seems
>> that GEVCU and OVMS could base on the same hardware, but even with that
>> there appear to be difference in requirement that would just drive up costs
>> for OVMS (or drive down functionality for GEVCU).
>> - On the GEVCU front, I tend to agree with Rickard's comment that the
>> two systems complement each other, but are very different. OVMS could be a
>> telematics module for GEVCU, and would add great functionality to that
>> - I spent some time looking at a modular approach. Design a base
>> board with CPU, power and CAN buses. Have that base board support plug-in
>> modules for wifi, bluetooth, cellular, etc. In that way, we can use
>> pre-certified modules, and the user buys what they need. But, the problem
>> with this approach is that if what you need is bluetooth+wifi+cellular, the
>> cost is driven up considerably.
>> - Talking to the China factories, it turns out that bluetooth/wifi is
>> cheap as hell and trivial to implement - so long as we are ARM based. They
>> laugh when we mention Microchip. They are stunned when we say we don't run
>> - A data plan just for the car is expensive (particular in some
>> countries like USA), but if we can offer hotspot functionality then it can
>> be shared with other devices in the car. For that, we would need to be
>> Linux based.
>> - On the power front, I don't really see the problem as being low
>> power while running, but rather the ability to support a sleep mode when
>> the car is off. We don't need low power always - we just need it for the
>> 90% of the time the car is sitting idle, not charging, not driving. The CPU
>> is not an issue here - they all support a deep sleep mode and we can reduce
>> power requirement to quite literally a trickle. The problem is the comms.
>> We need to be able to be remotely 'woken up' and keeping these
>> GSM/Wifi/Bluetooth modules low power while supporting network stacks is
>> just not possible. The established industry uses USSD messages to remotely
>> wake up their systems, and now I understand why. A GSM module can be
>> designed to be in deep sleep, with very little power usage, but still able
>> to receive a USSD message.
>> - GSM modules like the TELIT and SIMCOM are interesting in that they
>> support running code inside the module itself. This is something we haven't
>> taken advantage of, but offers us the opportunity of offloading a
>> significant amount of what we do.
>> - For me, the requirement comes down to a base framework and module
>> that supports:
>> - 32bit CPU with enough grunt, and a low-power sleep mode
>> - Dual CAN
>> - Async + I2C + SPI + GPIO expansion
>> - SD-Card
>> - USB
>> - Lots of RAM and FLASH
>> - Wifi
>> - Bluetooth
>> - Optional GSM
>> - Optional display (or can we get away with bluetooth to a
>> - What is interesting is the advent of low-cost Linux frameworks
>> that are very close to what we need. Things like the BeagleBone and
>> RasberryPi are fascinating, but really designed for HDMI video output - and
>> the overhead of GPU + HDMI is a huge power drain. The closest I've found to
>> what we require is (
>> http://compulab.co.il/products/computer-on-modules/cm-t335/) - pretty
>> amazing little device - low power, wifi+bluetooth, dual CAN, up to 512MB
>> RAM and 1GB FLASH, for around US$50 (in horrendous quantities). I'm working
>> with my contacts in China to see if we can base on a dev board something
>> like that. If they can make Android phones for US$50, we should be able to
>> get the guts of such a device for something similar. Then, add on GSM, take
>> it from a BOM to a product, and we're probably looking at something still
>> <US$150 but with so much more. The closest thing to ideal I've found at the
>> moment is build a baseboard (connectors, power, CAN buses, etc) and have
>> slots to take that CM-T335 module and an optional GSM module. But, I still
>> think we can find something on the China market even closer to what we
>> Anyway, those are my thoughts. My conclusion is that to me it seems
>> sensible to work from a low-power linux base with built in dual-can, wifi +
>> Regards, Mark.
>> OvmsDev mailing list
>> OvmsDev at lists.teslaclub.hk
> OvmsDev mailing list
> OvmsDev at lists.teslaclub.hk
-------------- next part --------------
An HTML attachment was scrubbed...
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 125629 bytes
Desc: not available
More information about the OvmsDev