Thursday, January 28, 2016

EE Team Updates

Today the EE team converged once again to check in regarding what each of us were working on, if we were stuck on issues, and finally, discuss the very important (and safety critical) shutdown sequence of the car.

First, Rango discussed a sizing issue that was realized after our newly printed PCB was put into our lovely-looking, insulated PCB enclosure:

The EE team apprised of a redesign: our first printed PCBs had not accounted for the size of the lips/flange of the adaptor connecting the PCB to peripherals, CAN bus, and power lines. As such, the cover to the insulating box surrounding the PCB does not lie flush to the PCB. Unhappiness.

We then went through in detail exactly what sequence of events needs to happen the moment the driver turns the key to “off” (assuming no critical errors initiating or during the shutdown sequence - we’ll handle that next Tuesday). In our discussion, we took into account safety checks, possible design improvements to our sequence, and the conditions necessary to safely turn off the vehicle.   The following is the Opel’s democratically-decided shutdown protocol:

The team’s white board design of the checks and action sequence that the car’s driving state machine ought to undergo in order for the car to safely shutdown.

Our team checked in at the beginning of the meeting to discuss their current projects, their short-term goals, and the obstacles that they need to overcome.

Rebecca continued her work on the User Interface Module. Specifically, she is working on getting test examples on the SPI protocol up and running, and beginning to write the code for the User Interface.

Toby is continuing his work on the Power Distribution Module. He is going to add connectors to his computer and experiment with the gauges so that he knows he is able to communicate with them using I2C.

Jonathan located a handful of 2-twisted-wires that we will use to wire the CAN bus. He also started working on matching up pins in each module’s external peripheral/CAN bus connector.


The Skanda and Bryson duo are writing unit tests for the Driver Interface. Certain functions in their driver utility code currently do not have tests written for them, so they will continue to work on that in the near future and work on implementing the car initialization sequence.

Hugo - electric vacuum pump to buy; pricey, but had all the comments

Hugo was looking for more improved parts to use in our braking system. He found an electric vacuum pump that satisfies all of our requirements and that was more efficient than our previous pump. Even though the part is pricey, he felt that its functionality was worth the cost.

Jordan continued working on designing the circuits used to control the driver interface relays.

Helmuth managed to talk to the motor controller (!), getting a motor interface communication example using CANOpen up and running!

The team is busily working on finishing the OpelGT system modules!

Electrical Architecture Finalized

After a few months of design, we finalized the electrical system architecture of the electric Opel GT. Our design philosophy was to create small, simple modules that all interface over a shared CAN bus and tie the Motor Controller, BMS, and charger together. The diagram shows the architecture including the power sources for the modules. Signals are shown with thin lines and power connections are shown in bold. This diagram is abbreviated, but shows the significant details for the turn-on and turn-off of the vehicle. Six of the modules in the car are being designed in house, while three others are commercial products.

evt arch.png

In-House Modules:

  • Driver Interface: Acts as interface between user controls and their associated peripherals (ignition, lights, drive mode, etc). Controls the state of the vehicle.
  • Throttle Interface: Reports throttle and brake pedal positions and ensures accurate readings with redundant measurements.
  • User Interface: Responsible for reporting status of the vehicle to the user through gauges, indicator lights, and displays. Also responsible for logging vehicle state.
  • Wheel Velocity Sensor: Reads vehicle velocity from hub sensors and broadcasts to the vehicle.
  • Motor Interfaces: Acts as the interface between our modules’ CAN bus and the sevcon CANOpen bus. Also generates control signals for motor controller.
  • Low Voltage Detection System: Monitors low voltage power buses and backup power sources
Off the Shelf Modules:
  • Tritium IQ Battery Management System
  • Sevcon Gen4 Size 10 Motor Controller
  • Brusa NLG513 Charger

All of the modules will reside in small aluminum extruded enclosures. All the PCB’s are designed from a common template to keep input/output connectors the same, allowing us to design only one faceplate. Each module will have one 8-pin CAN/Power connecter, one 23-pin auxiliary connector, one 6-pin programming header, and breakout for up to 8 status LEDs. An NXP LPC11C14 microcontroller is the heart of each module, powered off a shared 12V power bus.

A prototype of the Wheel Velocity Sensor module was completed today. While the 9 pin can connector was not available from digikey, all other components have been assembled and tested.

We are excited to have our first module complete and to see through the completion of several more over the next few weeks. We hope to have our custom designed hardware for all of the modules in hand within the next two months, working in a prototype state on our testbench shortly after.

Wednesday, January 20, 2016

EE Meeting: Car Startup Sequence

On Tuesday, the EE subteam gathered to discuss the Opel’s startup sequence. We hammered out a specification detailing all the steps between initial turn of the key to Motor Controller enable. The discussion revolved around several themes:
  • In what ways should the Opel’s startup sequence be similar to the startup sequence of a conventional gas-powered car?
  • How robust should each electrical module be to failures in the other modules?
  • In the case of a failure, how much decision-making responsibility should the driver be given? Should the driver be warned with an indicator on the UI? Should the car be allowed to start up if the failure occurs in a nonessential module?
  • Which systems should turn on which other systems? In what order? How do we check that the required systems are functioning correctly?
  • Since the DI’s codebase is already very large, the team expects an increasing probability of bugs as the new startup sequence is coded into the DI state machine. What steps should be taken to combat this?
Startup sequence

Clutch and turnkey
Old DI state transition diagram (to be updated with changes to startup sequence)

Monday, January 18, 2016

MechE: Playoff Saturday!

A quick turnaround from the all-nighter on Thursday, and the gang was back where we left off!  We needed to take some ride height and suspension measurements on faculty advisor, Professor Dan Frey's original Opel, so he invited us over to his house to inspect the Opel as well as watch the Pat's Playoff game against the chiefs.  

The squad made it in early to make up for the time, with Ryan getting right to CAD practice on the 2D transmission mounting parts.


Alex and Alberto continued cutting the necessary support members for the rear suspension structure, according to the CAD that we began to finalize on Thursday night.

 Crazy Jake continued cranking away as the team librarian, reading up on some serious suspension research in order to make sure that we would take the correct measurements at Dan's house.

The frame is slowly beginning to take shape, and we're hoping to install the motor/transmission assembly soon.  EVT legend John Kongoletos was back to offer some mentoring to the young welders!

Jarrod continued working through the CAD and relaying the measurements to the weld addition to getting everyone setup and organized with Solidworks EPDM on their personal laptops.  

After lunch, the MechE subteams met with their EE team counterparts to discuss the integrated tasks such as enclosures and throttle setup.  Then we were done for the day, packing it up and heading to Dan's house.

The trip is never complete without checking out Dan's chicken coop and holding the hens!

The young members got a chance to meet Dan and we had a good time taking a break from welding to watch the game.  At least most of us were happy that the Pats won!

 At halftime we made it out to Dan's garage, where he gave us the rundown on all of his vehicles and current car projects....

And Crazy Jake got down to take all of the necessary Opel measurements to take back to the shop.  Overall it was a successful & productive day, and a fun time hanging out with Dan.  Now we just have to finish up the electric Opel for him!  Two more weeks of IAP, let's go!

Friday, January 15, 2016

MechE Marathon Thursday is back!

The MechE Team tradition of staying up late on Thursday nights was reinstated yesterday!  With much work to be done, nearly the entire team made it out for the "other 9 to 5" Marathon Thursday work party!

After the weekly team organizational meeting, it was all hands on deck for the MechE crew.  The remaining Miata control arm mounting components of the original subframe were ground down and sanded, with the necessary jigs and fixtures put in place to prepare for welding. 

A combined effort of welding and CAD-ing at the same time brought everything together, and it's looking like the new subframe geometry will fit nicely in the rear of the car! 

Alex and Z were able to design the lower deck for supporting the batteries, and AA was able to weld it all together.

The frame still needs further development and construction, but the dimensions have now been confirmed and everything appears to be aligned correctly.

Saturday's meeting will focus on incorporating and mounting the drivetrain components, and proceeding to attach the entire assembly to the scrap Opel frame.  Still much work to be done, but we're hoping to be starting the installation process on the black Opel next week!

After a long work night, there's nothing better than the routine trip to Beantown right before it closes at 4AM!  

Wednesday, January 13, 2016

EE Module Design Review: Wheel Velocity Sensor

On Tuesday, all the EE's gathered for the first module design review.

Electronics architecture (depicted on whiteboard)

The Opel's electronics architecture is designed to be modular. It consists of a number of modules where each module is designated a specific high level function, such as logging or sensing. The Opel's Vehicle Controller Area Network (VCAN) bus facilitates communication of data between the modules. Over the past semester, members of the EE crew have been working out the implementation details of their assigned modules. While each module is derived from the same generic design, members must specify the code and any auxiliary electronics required for their specific module.

Dev board, which shows the generic PCB layout

The module design review on Tuesday was for the Wheel Velocity Sensor (WVS). The purpose of the WVS is to measure wheel velocity and relay this information back to the Driver Interface (DI) module over VCAN. Separate WVS modules exist for the right and left wheels. Should the car enter a prolonged drift, the DI would be able to sense the condition from WVS messages and respond appropriately.

The design review began with an overview of the WVS operating principle. Essentially, the WVS measures motor speed from the frequency of the sinusoidal back-EMF waveform. Designers Allison (sophomore) and Helmuth (freshman) took us on a deep dive into the underlying analog signal conditioner schematic. The circuit uses a comparator with added hysteresis to transform the motor back-EMF waveform into a square wave. On the embedded end, the LPC microcontroller computes the wheel velocity from pulse period and broadcasts this data over VCAN.

WVS schematic

Next, the designers walked us through the PCB layout. The WVS specific analog circuitry is located in the middle of the right half plane of the PCB model below.

Wheel Velocity Sensor PCB

The design review was very successful. Designers did a great job presenting, and members were able to walk away with a better understanding of the WVS's inner workings. We were able to evaluate design choices, change component values, and catch typos. Among other things, we decided that 12V logic would probably not be suitable for our 5V tolerant microcontrollers.

Miata Modifications continued

Tuesday night.  Still planning on Marathon Thursday later this week, but it's been marathon every night so far.  Gotta make the most of IAP!

Crazy Jake is back in action, reading up on some new suspension books from the library.

Jarrod and Ryan looking at the CAD, and working through the new assemblies.  After taking some measurements on the actual Opel, we are trying to get the solidworks models for the subframe assembly to be as true to form as possible.  

After some investigation, they realized we need to lose about four inches in width between the wheels to get the geometry in a desirable configuration.  Although the original miata subframe fit nicely between the Opel frame members, we're going to need to chop it up a bit.

All hands on deck in Dlab!  We're still working there, where we have ventilation for the angle grinder usage, and we can help out our students taking our AIBD course this IAP.

We cut down the members to give sufficient clearance, and began work on setting up a jig to hold everything together in the proper orientation.  We hope to get all the fixtures in place so that we can begin welding on Thursday.

Monday, January 11, 2016

Suspension: Drivetrain Incorporation

Monday night, and we keep rolling through the week.  The eGear Transmission unit is a bit too wide to fit cleanly through the top of the original Miata subframe, so Ryan and Jarrod worked on cutting it up to provide the necessary clearance.

We needed to remove about an inch from the interior support members on each side.  Ryan is quickly becoming proficient in using the angle grinder.

Big thanks to Dlab, giving us some space to work with all of the necessary safety protection.

The motor and transmission are now bolted together.  The transmission fits down the middle, with the motor temporarily supported on the top surface of the subframe.  We are still considering how to clean up the subframe and how the final structure will look.  For now, it just has the exposed open tube.

Of course we can never leave well enough alone, and Jack, Nate, and Jarrod ended up having a motor+transmission deadlifting contest.  No need for an engine hoist!

Sunday, January 10, 2016

Suspension: Miata Modification

First Saturday work day of IAP for the MechE team!  Plenty of new work to do now that we have the new parts.  We're hoping that the Miata suspension geometry provides an adaptable platform and valuable reference for developing our independent Opel suspension.

Colonel CAD Alberto was at it immediately, focusing on generating Solidworks models for the Miata subframe structure, and then the control arms and knuckle.

Alex and Z went to town on battery duty, starting to work with the subframe structure team to design the battery support structure in the rear of the car.  We hope to be integrating the battery mounting CAD into the rear subframe models soon.  

Ryan and Olivia are working on mounting the Miata/Suspension+Motor+Transmission subframe into the Opel frame.  Testing is taking place on the old rear half of the white Opel that we still have in the back room.  

It is still unclear if we will need to cut away the wheelwell/frame in any places in order to allow clearance for the upper control arm in the new independent suspension layout.  The previous design with the straight axle had no problems, but Ryan and Olivia cleared out some space with the angle grinder so that we could take the necessary measurements.

The goal is to get rid of the white Opel shell in the very near future.  The solidworks models are coming together, and we hope to have an integrated subframe prototype sometime next week.