MrOnion's OnionBoard - GP IO/Power PCB (requires CPU board)

A home for new designs that are growing but haven't quite got their legs yet!
Post Reply
User avatar
MrOnion
QFP80 - Contributor
Posts: 45
Joined: Tue Jul 06, 2010 1:03 pm
Location: Espoo, Finland

MrOnion's OnionBoard - GP IO/Power PCB (requires CPU board)

Post by MrOnion »

Hi all,

This is my 1989 Volkswagen Golf MK2 project car that I'm planning to run FreeEMS with:

.. pic here ... ;)

It now runs on microsquirt module based EMS and has been running ok. The idea to switch from a working system to FreeEMS is to experiment new things and build a base for future ideas. The S12X MCU looks promising and because of the MS3 closed source politics my DIY spirit has a little more love on this project.

The car is only used in the summer and I attend several trackday events during the season. Only the shell is original. Axles, suspension, tank, etc parts are from a MK3 VR6. 12" brembos at front and VR6 disks at rear. Koni/Eibach shocks and springs...

The current engine is a N/A street tuned. Using it as a testbed for my EMS fiddlings to get things right. I have a turbo engine in the works and is halfway finished.

Current engine:
  • 1.8 GTI block with 1.6 AKL pistons (balanced with rods)
  • 2.0 MK3 8V GTI head
  • Siemens "Simos" sequential injection as base setup
The turbo engine is going to be almost the same except stronger block (AEB), G60 pistons and rods (ugly I know, but cheap), crossflow 8V head and a GT28R turbo.

For FreeEMS I'm planning to use the ELMicro CardS12 MC9S12XDP512 module:
http://elmicro.com/en/cards12.html

I will be adding different small breakout boards to get everything connected. It would be tempting to use the MS3X expansion card for this, but it still don't have enough A/D inputs etc to use it as the only breakout and I HATE the d-sub connector.

For injector outputs I'm already using this on my MS setup:
http://www.diyautotune.com/catalog/diyp ... p-386.html

So I could have two of these to run the injectors. For wasted spark ignition I could continue running two BIPs.

The triggerwheel is a 60-2 at the crank and because the old block didn't have a place for the VR sensor I had to relocate the wheel outside of the block:
Image

The hall sensor for the cam is at the distributor. Although I have replaced the distributor cap with wasted spark coil and the sensorwheel is spinning under it.

For these signal inputs I could use a double LM1815 board or other dual VR conditioner. Not sure if the cam hall-sensor can used with these?! There is a board available at my "local" online store:
http://autotune.fi/data/th/c_at-vr_doub ... 5c_2a8.jpg

Most of the sensors I use are just standard bosch, MPX4250 for the MAP and Innovate LC-1 for AFR. I could roll my own A/D conditioner board for all A/D needs if there isn't anything ready? This shouldn't be too hard...

The TPS and Idle are a little trickier because of the "semi drive-by-wire" type bosch throttlebody (same as in 1.8t, etc). TPS has two potentiometers and needs to be reverse connected (+5V to GND and GND to vref) to the other one to work as 0-5V fullscale. This works ok in the MS.

The Idle has been impossible to get working using the PWM output. I have experimented with different frequencies etc and it opens the plate a little and creeps up until its fully open. So, there is no control what so ever... Oldschool PWM idle valve is working ok, but it feels a little oldfashioned and hate the extra plumbing... Anyone have any insight on this one? Is there a h-bridge of some sort to switch the polarity back and forth? I'm not planning to run any AC so all I need is the coldstart idle to work.

For idle PWM (old valve for the time being) and fuelpump relay I could use this simple board:
http://autotune.fi/data/th/c_at-io.jpg_35c_2a8.jpg

So, we'll see where all this leads, but I'm feeling quite confident ;) More info when things get a little further...
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: VW Golf -89 Street/Trackday Car with ELMicro CardS12

Post by Fred »

MrOnion wrote:It would be tempting to use the MS3X expansion card for this
Likely the circuit topology is dubious too, TBH.
For injector outputs I'm already using this on my MS setup:
http://www.diyautotune.com/catalog/diyp ... p-386.html
If they're high z then all you need are four to220 autofets with four 1k resistors to the cpu and four 100k resistors to ground, and you're sorted. No heatsink required. No markup either ;-)
The triggerwheel is a 60-2 at the crank
Once you get it running I'll fix the code to allow > 2k RPM.
For these signal inputs I could use a double LM1815 board or other dual VR conditioner.
This may interest you: http://brickems.com/brickrpm/

However I hear the guy behind it is pretty slow to deliver :-p (I'll put together a batch within a week, I owe two to a faithful supporter).
There is a board available at my "local" online store: http://autotune.fi/data/th/c_at-vr_doub ... 5c_2a8.jpg

Not sure if the cam hall-sensor can used with these?!
You will need to modify either circuit to give a good signal from a square wave, however as a cam sync, it will likely be OK without mod. See this: viewtopic.php?f=9&t=1675 Andy/Dan can fill you in in more detail if necessary.
I could roll my own A/D conditioner board for all A/D needs if there isn't anything ready? This shouldn't be too hard...
Pretty easy, follow the schematics here: viewforum.php?f=58 they're usableish as is.
The Idle has been impossible to get working using the PWM output. I have experimented with different frequencies etc and it opens the plate a little and creeps up until its fully open. So, there is no control what so ever... Oldschool PWM idle valve is working ok, but it feels a little oldfashioned and hate the extra plumbing... Anyone have any insight on this one? Is there a h-bridge of some sort to switch the polarity back and forth?
You'll have to be more clear.
For idle PWM (old valve for the time being) and fuelpump relay I could use this simple board:
http://autotune.fi/data/th/c_at-io.jpg_35c_2a8.jpg
Again, unless double ended, a simple autofet setup is easiest and reliable and simple and and and :-)

Rather than more big posts, setup skype and we'll have a chat one night this week. It's the fastest way to knock out details in a hurry.

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
MrOnion
QFP80 - Contributor
Posts: 45
Joined: Tue Jul 06, 2010 1:03 pm
Location: Espoo, Finland

Re: VW Golf -89 Street/Trackday Car with ELMicro CardS12

Post by MrOnion »

Thanks Fred,

I'll get my board and firmware running first. Then we can have a chat about the externals. The ravage schematics seems like a good source of examples.

We can check the throttlebody later if it's possible to get it to work. Basically it does not respond the same way to the pwm as a separate bosch idle valve does. I've tried it with MS and my arduino setup. People with Audi/VW 1.8t engines also report about the TBs idle motor not working correctly with MS setups... Not sure about the current state though...

It's a 2-wire DC motor with a switch at closed state. Same kind of setup is also in bosch mono-motronic singlepoint injector systems. There is no spring that the pwm is "fighting against". Instead you can drive the throttle plate in both directions. So, I was wondering if anyone has driven this kind of polarity switching DC idle motor of some sort?

Another thing that I almost forgot is the power regulators. I've been using these Pololu units in my home automation projects and was wondering if they are up to par in car environment:
http://www.pololu.com/catalog/product/2110

I will use some simple de-coupling (cap+coil) in front anyway. These provide more current than necessary and propably one of these is enough to power the whole setup. However I see most of you using two supplies, one for cpu + other chips and the other for A/D vref. Is this mandatory? The Elmicro card has a solder bridge that connects the VRH to VDDA. By opening it one could use a second supply for this. What do you prefer? Is there a current limit in the VDDA output?
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: VW Golf -89 Street/Trackday Car with ELMicro CardS12

Post by Fred »

If you use switching supplies, you're on your own if you have noise issues. You can try it, though, if you want.

I still don't understand how your throttle/idle situation is. Though I think I'm closer now than I was :-)

Twin supplies is not required except for a special feature which doesn't exist yet. Leave it bridged.

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
MrOnion
QFP80 - Contributor
Posts: 45
Joined: Tue Jul 06, 2010 1:03 pm
Location: Espoo, Finland

Re: VW Golf -89 Street/Trackday Car with ELMicro CardS12

Post by MrOnion »

Ok, maybe I will build a linear regulator supply to be safe ;)

The throttlebody is actually Siemens VDO not Bosch... Here's a pic:
Image

I also found this PDF to get more info about the internals:
http://www.timloto.org/download/pdf_les ... ebody1.pdf

Someone in the motec forum is also asking about this ;)
http://www.motec.com/forum/viewtopic.php?f=11&t=2086
lumpensack2003
QFP80 - Contributor
Posts: 38
Joined: Sun Oct 26, 2008 11:32 pm

Re: VW Golf -89 Street/Trackday Car with ELMicro CardS12

Post by lumpensack2003 »

Hi MrOnion,

the DC motor only moves the throttle stop.
To move the throttle stop in both directions you need a full bridge (aka H-bridge). Years ago I built one with 2 IRF7389 and this moved the throttle stop perfectly.

Cheers,
GJ
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: VW Golf -89 Street/Trackday Car with ELMicro CardS12

Post by Fred »

OK, now I understand. And now that I do, what he said ^ :-)
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
MrOnion
QFP80 - Contributor
Posts: 45
Joined: Tue Jul 06, 2010 1:03 pm
Location: Espoo, Finland

Re: VW Golf -89 Street/Trackday Car with ELMicro CardS12

Post by MrOnion »

Thanks! Now we are at the same page. So, h-bridge it is then...

I found couple of motordrivers that could be useful:

http://www.pololu.com/catalog/product/755
http://www.pololu.com/catalog/product/1451

The current readings are more than enough and not the cheapest, but...

This leads to another question or questions... How will the firmware cope with this? I made a simple grep search though the sourcefiles but didn't find anything useful concerning idle? Fred?

Both of the boards use either one or two inputs for directions and one pwm output for speed. These could be connected to the mcu with the throttlestop closed switch. When the firmware starts it could do a "reset" by closing the plate until the switch turns on. Then drive the plate open until the TPS gives a reading were after and brake it there (TPS vs CLT table?). So, if I use only one TPS it means the idle DC can only be operated like that when I don't touch the gas pedal, right?

This could work at first, but we could hook up both TPS sensors, so they are independent... Just read the "normal" TPS info for AE, etc from the first one and operate the DC from the other... I have to check, but I think the "normal" TPS reading starts only after the the DC TPS? This is why I connected it "reversed" to get the fullscape 0-5V reading... Have to check this...

lumpensack2003 is talking about moving only the "throttle stop", but if I understood the workings of the TB correctly it can operate the plate (15 deg max) regardless of the actual position. If i'm driving and my TB is 50% open, I can still add 15 deg to it with the DC. I'm not sure if this is a problem or not?! Like, if I'm running a cold engine and the DC likes to add extra 10deg to the plate for idle will not reset it when I open the throttle more. It has the extra 10 all the way...

EDIT:
I'll go to the garage tomorrow and take out the TB from the car to check the throttlestop. Looking at the picture in the PDF in my earlier post it looks like only the throttlestop is moving. I'll shut up until I have some hard evidence ;)
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: VW Golf -89 Street/Trackday Car with ELMicro CardS12

Post by Fred »

I CBF explaining how I'd impl the control algo for that here. But it's non-std and would require custom code. Should work fine once tuned, though.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
MrOnion
QFP80 - Contributor
Posts: 45
Joined: Tue Jul 06, 2010 1:03 pm
Location: Espoo, Finland

Re: VW Golf -89 Street/Trackday Car with ELMicro CardS12

Post by MrOnion »

Sure thing, Boss!

My ELMicro board arrived yesterday, but the BDM is still in delivery. Have to wait for it to get the SM running...

In the mean time i'll try to experiment with my arduino and hookup the TB. I will go to the garage today to help my friend weld an extra O2 bung into he's Evo and will pick up the TB in the process... First, I try to get the eletronics working and then move it to the S12 board and experiment with some custom code. When i'm at that stage I will harass your ass more ;).
But it's non-std and would require custom code
Yes, I'm aware and willing to write that code. Just to get myself on track here, what is the standard way then? If everyone is writing their own idle code, is there a "placeholder" for it somewhere in the source tree to start from? Any examples of async task like this from a working setup regardless of the hardware type used? This is just to understand how to connect my idle code into the freeems firmware the preferred way.

Checked the schematics of jaguar and ravage. Jaguar didn't have any idle connections (accessory relay/pwm?) and ravage is using the toyota 3-wire ISCV. Is the ravage idle code released somewhere? Maybe in dev branch?

Not expecting a long answer here, just point me into some old threads if any and I'll work it from there ;)
Post Reply