Tactically, a coup d’état involves control, by an active minority of usurpers, who block the remaining (non-participant) defenders of the state’s possible defence of the attacked government, by either capturing or expelling the politico-military leaders, and seizing physical control of the country’s key government offices, communications media, and infrastructure
This week, the majority of our episode involves the environmental air conditioning and heating systems of the 1974 Karmann Ghia. Brain and Jamie run amuck on this rusty version of what was supposed to be a perfect restoration of a classic of my era. I graduated high school in 1973 and the Karmann Ghia was a quirky but admired vehicle of the time. No match for the muscle car Z28’s and Chargers of the day, it was economical and oddly stylish. Brain continues with what is shaping up as a fantastic build and we should wind up with an all-season all-weather small car.
The amount of space required for the environmentals is non-trivial however. The front compartment of the car is destined to be pretty much devoted to that. We MIGHT squeeze in a charger or DC-DC converter, but not likely. But it’s going to have 5kw of hot water heat and an electric compressor air conditioning system.
[jwplayer streamer=”rtmp://s3einxnpkaij93.cloudfront.net/cfx/st/” provider=”rtmp” file=”news102513-iPhone.m4v” hd.file=”news102513-1280.mov” image=”http://media3.ev-tv.me/news102513.jpg” width=”950″ height=”584″ html5_file=”http://media3.ev-tv.me/news102513-1280.mov”]
But the drama of the week arose from a surprise announcement by Collin Kidder and Michael Neuweiller that THEY controlled GEVCU and had always intended to. Kind of like Alexahder Haig’s announcement when Reagaon was shot. “I AM IN CONTROL.”
I rather portrayed this as getting “kicked out” of the GEVCU group. Not precisely accurate. It was more of an entirely puzzling attempted coup d’etat accomplishing little other than minor abrasions to my personal feelings and some inconvenience in rearranging some logistics surrounding the project. While inconvenient, it’s hardly qualifies as a setback to anything other than my always optimistic view of my fellow human beings.
I kind of live in a fantasy world where everyone is honest and clean and driven by devotion to a higher cause. As many of you observe, I get my bell rung pretty badly on this with all too much regularity.
While it does make me look youthfully naive, I simply CHOOSE to believe in Abe Lincolns “better angels” of mankind and I simply won’t give it up to the narcissistic negativity of Sodom and a search for “one good man.”
But the history of this one is surreal.
Subsequent to our windfall of a large quantity of Digital Motor Controllers (DMOC) and Siemens Motors last fall, we have a device that promises a true liquid-cooled AC drive for electric vehicle builds at a reasonable price and with acceptable power of up to 118kw that we’ve since dynomometered at 144 HP. From my perspective, this has been the holy grail of EV drive trains from the beginning. An OEM quality AC drive train for under $10K. Seems a reasonable request when they are readily SELLING them to OEM’s for about $5k.
The only problem was that it also used the OEM model of a Vehicle COntrol Unit driving the system by Controller Area Network or CAN messages. The VCU in the Azure Dynamics was a bit of closed firmware. We could probably use it, but we would have had to spoof things like the Johnson Controls battery pack. And so it would require a $500 VCU that was entirely closed, entirely NOT configurable, and of limited utility.
We approached New Eagle, who had supplied the initial VCU package to AZD. But werather failed in describing a “configurable” VCU. That was a foreign concept to them and kind of anathema to their business model of basically selling the same software over and over with minor changes for each vehicle. If the end user could make minor changes through a configuration screen, how does THAT work. Men are from Mars. Women are from Venus. From my point of view, they were all gurlz.
Meanwhile, the RechargeCar guys had taken an Arduino Mega and redesigned it to have two CAN bus ports on it. There was a CAN library in the Arduino community to drive it. If we could duplicate the CAN messages using this device, we could control the DMOC and make it go. Arduino was open. And it was cheap.
So we announced an entirely made up fantasy program we called the Generalized Electric Vehicle Control Unit. A VCU that you could configure for any electric car and have it operate your way, but one that would operate the DMOC and drive the Siemens motor. In this way, you could drop the whole drive train into any car you wanted to convert, and “configure” it for whatever type of accelerator pedal you had to work with, brake transducer or potentiometer if you had one, and deal with all the minutia of interlocks, brake lights, the “feel” of the regenerative braking – a lot of things that are very much a personal choice in doing a build.
Any OEM does the same thing, and they “tune” this for what they think their customer will like. We wanted ANY of the customers – in this case, guys building EVs, to be able to do that same level of fine tuning, and not have to code in C or assembly language to do so.
The GEVCU was designed as an open source project from inception. Not only should you be able to tune it with provided configuration options, but you should have access to the source code for the whole thing. That made it kind of endlessly extensible into the future to ADD features we hadn’t thought of. Small startups and prototypers would be able to afford features found only among the big boys.
And I sat down and wrote a 27 page technical description titled the GENERALIZED ELECTRIC VEHICLE CONTROL UNIT SPECIFICATION outlining everything from philosophy down to individual EEPROM variable names. it was the master design document for the software.
I bought a kind of pricey logging version of the Kvaiser CAN bus tool and drove the Azure Dynamics eTransit Connect about, capturing massive files of CAN traffic so we had some hope of decoding the control messages between DMOC645 and VCU.
From the beginning the project fired the imagination of our viewership. The need for an AC drive system was kind of universally recognized. In learning the vagaries of using the MCP2515 CAN controller and MCP2551 CAN transceiver chips used on the Macchina to do CAN, I encountered Collin Kidder, a very young man making minor changes to the Arduino library for CAN. I showed him the spec sheet for these chips and noted that the library hardly made use of any of the features, most notably the masks and filters that Microchip had provided allowing the chips to simply ignore completely most ofthe CAN traffic, accepting and processing only the messages of interest by message ID. I was really quite seriously impressed when he replied with code to fully implement the mask/filter schema in about ONE DAY.
He volunteered to set up a github repository for the new MCP2515 library as well as the GEVCU. Sounds good to me. I know what GIT and Subversion IS and recall the battle with one that led to the other, but actually using it was not something I was familiar with syntactically.
The Arduino IDE is kind of curious. Everyone decries it and most of the Arduinoites believe it is kind of a modified C compiler. Actually it is more C++ and has pretty full Object Oriented Programming, streams, etc implemented – just no STL library per se. So WHILE generating libraries, the concept of OOP just barely grazes the Arduino body politic. But in fact it pretty much has everything you need.
Very early, I was convinced we needed to have a strong object oriented architecture where you could plug in different objects to account for different types of accelerator for example. You could have an accelerator class, but have objects of type 5K pot, halle effect, CAN based throttles, etc A differing object for each type of throttle.
Throttle’s weren’t really the concern of course. We have a limited number of DMOC645’s and when they are sold out I really don’t have any more. But when we bought our Rinehart Motion Systms controller for the Mini Cooper, they had kind of coached us that most of the race teams and OEMs they were TRYING to sell it to, used the VCU architecture and really just controlled the inverter by CAN. Siemens inverters work the same way. So do the ones in Toyotas, Leaf’s Volts, UQM etc. And so I suggested a strongly object oriented architecture with the specific view of adding inverters as we wanted by simply employing their unique message digests as they all did essentially the same thing, using different messages.
Young Kidder followed this to the letter to such success that it drew Michael Neuweiller of Sweden to immediately start on an object for the BRUSA controller he was using, and ultimately a CAN throttle as well as he could get throttle position from his VOlvo 80 over the vehicle CAN bus. Charles Galpin did start work on the throttle as well.
This kind of led to the visualization of how large this could all get. And could the mighty Macchina handle it. Turns out there are DOZENS of Arduino like boards out there some over 100MHz and using ARM CORTEX risc type controllers of amazing capacity (to me anyway). Arduino had just introduced their Arduino Due version based on the Atmel SAM3X8E ARM Cortex-M3 CPU. This was a 32-bit 84MHz processor a far step beyond the 16MHz 8-bit processor in the Arduino Mega.
But Arduino is just a very rich environment. There are literally hundreds of sheilds, software programs, and hardware developed by what some estimate as over 3.5 million ARduino fans. I actually saw a HEAD advertised for $2500 that talked and moved lips and eyes and eyebrows – specifically made for Arduino. I expect to see Arduino based Androids walking down the street any day now.
Interestingly, the Atmel chip on Due had the controllers for TWO CANbus channels BUILT INTO THE CHIP. But oddly, the Arduino team had not added the necessary transceivers and software library to do this.
Ed Clausen had volunteered some hardware for spoofing the Mass Air Flow sensor in the Gadillac Escalade. It just came in the mail one day from Massachusetts. I asked him if he could design a shield with the necessary transceivers for the CAN channels and noted another Arduino omission. They had no EEPROM to store non-volatile memory items – where you could turn it off and retain some configuration data for the next power up. Ed said he could do it, but he wanted me to purchase the professional version of the EAGLE pc board and shematic design program for both he and Collin which would make it all doable. It was $2400 for a heroically ugly software program I thought, and at that not the best of the breed. but it is true it was the one that had become the linga franca of Arduino largely because the version that would do booard sizes up to the size of most Arduino shields was free.
Well, I wrote the check and got them the software. They suggested a project to do JUST a CAN bus shield first, and that sounded like a reasonable step. Ed designed it, and I paid about $6500 to get the boards made, the components sourced, and an assembly house, Screaming Circuits, to do the soldering and assembly of these. The FIRST batch of 100 PC boards was tragically flawed in that we did not notice that one of the Arduino pin connectors was reversed on the Mega Shield EAGLE file he started with. So about $880 in boards had to be redone. He then worked with Screaming Circuits on the assembly, and to my astonishment, we received 100 of these boards with the Arduino pins mounted on the TOP side of the board rather than the bottom. I guess that’s why they call it Screaming Circuits. When you get your dicked up boards from them you’ll be screaming alright.
Because of this, none of the boards could be used AT ALL. They wouldn’t plug into the Arduino Due. And they have so many pins, it’s almost impossible to remove the little connectors and put them on the bottom side without burning the board. Six grand down a rathole because we told them that ALL the components should be on the same side. Except, of course, for the ones we wanted mounted on the OTHER side.
But things went better with what we termed GEVCU 2. I wanted the connection to the Arduino to be through an external, robust, automotive style connector. We picked the AMPSEAL and Ed devised a board with some excellent isolated analog input buffers, some MOSFET outputs, and the pins on this much larger board allowing us to plug an Arduino Due into it upside down. The large board could then be mounted in an enclosure to keep out the weather and we found weathertight USB ports and of course the AMPSEAL weather-proof connector. This is what drives the 1974 VW THING to this day.
Along the way, I learned that the Atmel SAM chip had much more advanced timers than the earlier Arduino had and you could use these as interrupts. It was a little esoteric, but a very young Brazilian named Ivan Seidel had done a library titled DueTimer that allowed you to select up to 3 timers, each with multiple levels, and all timers and all levels able to generate interrupts. I suggested that if we adopted this DueTimer, each object could have its own timer based interrupt, and in a strange sense we would very nearly achieve a real time operating system like FreeTOS. Again Mr. Kidder seized on this and we had a “tickhandler” in the software within days.
One of the requirements in the original specification was that the configuration be done without any specific software, hardware, or operating system – ideally a web page you could access from a Tablet, laptop, etc of any current or future operating system. Ed found a WiFi module from ConnectOne that is really kind of amazing. It had just what we needed, a web site with forms on it but if the end user changed any of the variables on the page, it would automatically manage the changes and give our software JUST the variables that got changed. It had its own multicontroller chip that handled all the hard work of parsing the html using GET or POST. It’s pricey at $58. But it sure cuts down the load on the Arduino Due.
So GeVCU was going extremely well. It seemed with a waive of my hand not only were new features and capabilities being implemented, but above and beyond all expectation and generally immediately. By February we were spinning a motor on a test bench and by EVCCON in August we were driving the VW THING.
Paulo Almeida came to EVCCON with our old friend Celso Menia who had attended the very first EVVCON. Paulo returned to Lisbon and within days was showing a new GEVCU design that had collapsed the Arduino Due, the socket for the WiFi, all the MOSFET outputs and buffered analog inputs, etc into a single board in a 4 x 4 x 2 inch enclosure. We worked a deal through Anne Kloopenborg in Amsterdam to get him a Siemens motor and DMOC645 at half price and as you saw in the video two weeks ago, he not only had GEVCU3 spinning the motor, but had turned me onto laser engravers and Ana Moura’s Fado music.
GEVCU is going famously. It seemed we could do no wrong. Features were added and the entire thing was starting to take on a bit of a glow. It was becoming apparent that this was going to evolve into a special piece of hardware capable of many things quite beyond the original vision – limited basically by the number of pins on the AMPHENOL connector (again, I had directed the increase to 35 pins from the DMOC matching 23 pins we originally had) and your imagination. There are but a handful of humans who at this point even know what GEVCU is, and we’re REALLY excited. It’s gone from an attempt to make an “us little guys too” patch device to something actually new and innovative and immensely powerful.
Giddy with success, I thought to launch ANOTHER project, before this one was even done. An anti-BMS BMS. Really a modernized and more flexible form of our rickety Chinese JLD404 control amp-hour meter. Something to measure voltage, current, and temperature and be programmable, like the GEVCU. This could lead to exotic displays and CAN communication with late model vehicles to run the gas gage and so forth. To make it more fun and exciting, I announced that we would award 100 CA60FI battery cells, the best we have, to whoever submitted the best design we could use going forward. And I did note that we owned the design thereby.
Collin Kidder was hugely offended by this as it did not match his sense of open source religion. Actually we never decided whether or not to open source it. The part about it becoming MINE was meant as in the designer forfeited all proprietary rights to it in exchange for the batteries. But he set off such a storm of whining about it we have decided to withdraw the entire contest. Yes, I suppose it IS a problem what to do about the batteries if two people were to team up. Particularly if one of them is unable to count to a hundred or divide it by two, for example. The BMS competition is hereby terminated.
But it was not to end there. Collin has since announced he is taking over GEVCU and will now control it from here on out. HE runs the git and HE runs the mailing list and that’s that. And he makes much of the fact that simply because I bought him a $2400 software program and have funded about $12,000 of hardware, including all of it he uses, that I have been well and adequately compensated for what I paid for, and of course the REAL value was the heroic efforts and time he put in on the project. Which he does go on at length to measure and specify. It’s like watching the young communists in the morning on MSNBC counting and pontificating about all the good they can do with other peoples money if good sense prevails and laws can be passed to seize it from those greedy bastards who have all of it. Totally surreal. He’s declared a reality free zone around GEVCU.
And it doesn’t even make sense. It’s STILL open software and open hardware. Yes, he runs the GITHUB for EVCU. No problem, we fork it to EVTV-GEVCU. Yes, he runs the mailing list with the original developers. It has about seven people in it. We have a weekly TV show viewed worldwide. And of course, the part the young communists always miss, the money. We submitted Paulo’s GEVCU4 with EIGHT MOSFET output pins to a new assembly house this week to do a first run of 30 units with 100 units to follow if they at all work. Yes, it’s another $7000 for the first run. I pray it doesnt’ come back upside down. Actually they are going to send me three proofs BEFORE doing the 30.
Michael Neuweiller notes that we have no chance to make it without them. Hell I barely knew who they were. We HAVE held them up in public and lauded them as heroes of the GEVCU revolution repeatedly. Our compensation? Effectively kicked out of the club. The dimension of the ingratitude is frankly beyond my ability to measure.
I did kind of spend a week hoping their better natures would prevail and they would come to their senses on this. And I did post a lengthy message on the mailing list noting GEVCU is mine, always was, always will be, and I’m not even certain that’s a good thing but at this point its kind of an inescapable thing. Not only will it go forward just fine Mr. Neuwieller, but the shed remnants of the original defectors will largely be forgotten by the end of November. The rest will sort themselves out I suppose on the EVTV-GEVCU fork, or that other one whatever name it was – see I’ve forgotten already.
I would note that this has apparently not QUITE been as spontaneous as it at first appears or as I rather graciously portray it here.. Mr. Neuweiller had the foresight to register the GEVCU.ORG domain name some time ago. I’m sure anyone preferring to join that team can find them there somehow and they’d love for anyone with a Jack ax to grind to come commiserate with them over what an unfair heartless SOB I really am. I expect that’s about all to come of that. The open source complaint box.
We’re going to get the hardware on order, and probably spend a little time on the software directly. It’s gotten a little over the top, with some things objectized and timeticked kind of beyond what they quite merit, causing some comically unnecessary complication and obscurity. Collin has a module in there for his THINK battery pack with BMS. Again, with a BMS I don’t quite understand how the battery pack has already failed on him. I don’t think we really need a THINK battery pack module. And frankly, while it models exactly what I wanted GEVCU to be, a BRUSA module kind of has a limtied use going forward as the drive train is about $24,000. It can be a GEVCU “plug-in”.
I have located an adult programmer of some reported genius, highly recommended by Mr. John Scrivener, who actually works on CAN and VCU in Detroit for some of the OEMs as a contractor. I’m hoping to expand GEVCU into at least the common public codes common to all OBDII systems on later model cars. Hopefully we can move the gas gage and the tachometer anyway. Maybe talk to the Android Appliation Torque this way. There are a lot of possibilities.
As many of you are aware, I have noted in the past that at the heart of EVERY successful entreprenurial enterprise lies a detail obsessed obsessive compulsive tyrant usually referred to as asshole. If you don’t know who that is, it is probably you. If you actually don’t have one, and desire to succeed, hire one with all due haste. The corollary I perhaps failed to mention is as follows: if you think it IS you, and you are wrong, he’ll probably fire you.
You see the problem the asshole has is he can delegate almost anything, including authority. What he can’t delegate is responsibility. For good or ill, I’ll end responsible for the outcome of GEVCU and I cannot escape it if I wanted to. This will provide probably a needed refresh, perhaps some new skin in the game. We’ll sort out over the next week or so the heavenly choir from the barge of the damned and do a top down revision on the currently kind of wandering software. By the time we get the hardware I am most anxious to share this little device as I think it goes quite beyond what you know to this point.
There are lots of coders in the world. The problem is there are few who know WHAT to code or why. Without a vision of the future, timeticks and objects are simply tools laying on the bench. At one point at Data Systems, I had 35 programmers on staff and it was kind of like herding cats with a five iron in a lightning storm. It’s actually MUCH easier to just do it yourself. I’m just guessing that I won’t have to.
But lest anyone be confused. GEVCU is my project, my vision, and the product of my mind. Always was, always will be, and even I can’t change any of that. There is precisely ONE point of control. Right here. EVERYBODY can of course fork it.
OR GET FORKED…
I do deeply appreciate and am somewhat in awe of all the work contributed by everyone on the GEVCU project thus far. Some immensely talented individuals. And I’m convinced that it is entirely my fault that a tragic few have wandered off the reservation. Had I been a little more snarly and abusive, everyone would be happy to this day. I kind of “let it take its own direction” in a well intentioned but girlish desire to not tramp on anyone’s creativity. And so predictably enough, it did. Lesson learned. Any of you lackeys that want onboard the EVTV-GEVCU won’t find me so easy to deal with. Its beans twice a day and ONE gill of rum in your ration and THAT’S IT. Cat O Nine for the laggards and generous with it. Ayyye….begarrr….