MEGAsquirt A place to collectively sort out this megasquirt gizmo

Which MS do I want?

Thread Tools
 
Search this Thread
 
Old 09-25-2010, 12:13 AM
  #21  
Boost Pope
iTrader: (8)
 
Joe Perez's Avatar
 
Join Date: Sep 2005
Location: Chicago. (The less-murder part.)
Posts: 33,019
Total Cats: 6,587
Default

I understand what you're saying. And I'm not unsympathetic. Among other things, my job involves designing audio mixing boards. And not the cheap-*** Mackie stuff that you see in the back of some nightclub, either. We do high-end broadcast consoles that typically sell for $20,000 to $30,000 each.

And we publish our schematics, because our customers expect it.

Look, the reality of the situation is that if somebody wants to clone the MS3 design, they're going to do it. I absolutely guarantee that given a week and enough beer, I could hand you a complete schematic of the MS3 mainboard, and given another couple of weeks I could produce a functioning PCB. I'm not likely to do that, mainly because I have better ways to spend my free time and secondarily because I don't want to receive an angry letter from Their Holienesses threatening to sue me, but this isn't rocket science. If they've kept true to form, all of the signal traces are on the outer layers, so you wouldn't even need to mill or X-ray the board to see how it all goes together.

I'll tell you what really bugs me here. The Megasquirt was built on openness. Even though it's always been a commercial product, it's been managed as though it was an open-source design. Everybody can see the code, everybody can see the hardware. Not happy about the way the idle routine works? Fire up the assembler. Having a problem with a certain circuit? Redesign it. Heck, the only original circuits left on the 3.0 board in my '92 that are still doing anything are the power regulator, the clock, and the analog inputs. Everything else I've re-done, some of it because it simply didn't work, some because it just rubbed me the wrong way. (I mean, who in their right mind uses the same ground return paths for high-current inductive loads as they do for analog sensors and a microprocessor? And don't tell me about split planes- they all come together at the connector.)


If they want to keep the source code a secret, fine. Software isn't my strong point anyway, and you guys have always done a great job on that side of the project.

(Actually, that's not even entirely accurate. I can't count the number of times I've helped someone diagnose a weird problem by examining the PORTx and ENGINE bytes in their datalogs, and were it not for having access to the msns-extra.h and ram_vars.txt files, I'd have never been able to figure those out.)

But the schematics? Gimme a break. The hardware design has always been sub-optimal (or, at best, not very versatile) and I just can't see that changing. And c'mon, there's nothing special about the hardware, people. TI and Maxim did all the hard work there- any fool can throw some FETs together and make an injector driver.


This is really what it boils down to: If it weren't for that sense of community involvement, the MS would never have become what it is today. Without the Extra code, for instance, Bruce and Al would still just have some trivial little TBI controller for retrofitting onto 40 year old V8s with distributors. I mean, we have you, personally, to thank for this! And Phil, and Jean, and James, and all the folks who have come up with all the other little software hacks and circuits that make the Megasquirt a truly useful product, some of whom are members here (kday, Reverant, JasonC, AbeFM, I'm looking at you guys.) Heck, so far as I can tell, I was the first person to publish a logic-level ignition driver circuit for the MS1 that allowed you to do a software reflash without blowing up your ignition coils. Do I care if people copy my design? Of course not! That's what it's for!

But now that they've achieved "fame and fortune" riding on the backs of the community of selfless contributors, the cabal have suddenly decided to betray all that trust, assure us all that they know best, and request that we simply prostrate ourselves upon the altar of their awesomeness.

And frankly, it pisses me off.
Joe Perez is offline  
Old 09-25-2010, 04:03 AM
  #22  
Elite Member
iTrader: (1)
 
richyvrlimited's Avatar
 
Join Date: Jun 2006
Location: Warrington/Birmingham
Posts: 2,642
Total Cats: 42
Default

I can only really concur Joe.
richyvrlimited is offline  
Old 09-27-2010, 09:02 AM
  #23  
Supporting Vendor
 
Matt Cramer's Avatar
 
Join Date: Sep 2006
Posts: 2,332
Total Cats: 67
Default

Let me see if I can help you with a couple questions about the schematics. The MS3X board is closely related to the Sequencer - which does have at least an early draft of its schematics available.

http://www.megamanual.com/seq/schem.htm

1. The cam input VR circuit is the same filter / Schmidt trigger circuit as used on the V3.57. The only difference is that a 1K, 5 volt pull up is present on the input pin, and you can jumper it in for sensors that lack an internal pull up.

2. The injector drivers are VND5N07 FETs, as used in the Sequencer.

3. The spark output is a 74ACT541M line driver using the exact same circuit as the Sequencer (only connected to the MS3 processor instead of a separate sequencing processor, of course). The design did go through a couple revisions of what resistors to use - IIRC, the final version has 100 ohm resistors.

Last I heard, the plan was to release the source code for MS3 once they had a stable release version.
__________________
Matt Cramer
www.diyautotune.com
Matt Cramer is offline  
Old 09-27-2010, 10:49 AM
  #24  
Junior Member
 
muythaibxr's Avatar
 
Join Date: May 2007
Location: Columbia, MD
Posts: 248
Total Cats: 0
Default

Yeah, we plan on releasing source. James and I just discussed that Friday.

I have a few more things I want to get in first, but we *will* release source.

But as I said before, I can't force B&G to release schematics. We are still VERY open in my opinion.

Much of the ms3 source is the same as what's in ms2/extra now, as I've been backporting many of the improvements, and we will release the full ms3 1.0 source as soon as it's ready.

Ken
muythaibxr is offline  
Old 09-27-2010, 11:18 AM
  #25  
Boost Pope
iTrader: (8)
 
Joe Perez's Avatar
 
Join Date: Sep 2005
Location: Chicago. (The less-murder part.)
Posts: 33,019
Total Cats: 6,587
Default

Originally Posted by Matt Cramer
Let me see if I can help you with a couple questions about the schematics.
Thanks for spoon-feeding me. It would be tragic if I were able to answer these questions for myself.


1. The cam input VR circuit is the same filter / Schmidt trigger circuit as used on the V3.57.
...which was the same as the one on the V3.0 board. So, in other words, it's a non-differential circuit with a non-adaptive zero threshold, no common-mode noise rejection, and fiddly potentiometers.

Same story on the crank input, I presume?

It'd be nice to know which components I have to remove and which pins I can jump onto in order to install a proper MAX9926-based dual VR decoder circuit. Shame they didn't do this in the original design. Would have had a much lower parts count and been more robust and foolproof.


2. The injector drivers are VND5N07 FETs, as used in the Sequencer.
Nice choice of part. Built-in current and thermal protection, no need for external drivers. Should be fairly easy to figure out how to remove them and substitute LM1949s for folks who need to drive lo-z injectors.

What's the grounding scheme look like? IOW, which pins are injector/IAC/EBC/relay ground, which pins are analog ground, and which pins are logic ground?


3. The spark output is a 74ACT541M line driver using the exact same circuit as the Sequencer
So, not only will it have the same fundamental flaw as the traditional output circuit for the MS1 / MS2 (the outputs will float high when the CPU is inactive, such as during a reflash) but in addition, there's no way to achieve a +12 output on the ignition pins, as would be required by Subarus, some VWs, etc.

That's just stellar.


Last I heard, the plan was to release the source code for MS3 once they had a stable release version.
I appreciate that. Honestly, I do.

Now, if Bruce & Al could only see the light.
Joe Perez is offline  
Old 09-27-2010, 11:21 AM
  #26  
Boost Czar
iTrader: (62)
 
Braineack's Avatar
 
Join Date: May 2005
Location: Chantilly, VA
Posts: 79,490
Total Cats: 4,079
Default

Originally Posted by Joe Perez
It'd be nice to know which components I have to remove and which pins I can jump onto in order to install a proper MAX9926-based dual VR decoder circuit. Shame they didn't do this in the original design. Would have had a much lower parts count and been more robust and foolproof.



does this help? I used frank's diagram to fit Abe's NB circuit into the VR area of a v3.0 board.
Braineack is offline  
Old 09-27-2010, 11:25 AM
  #27  
Boost Pope
iTrader: (8)
 
Joe Perez's Avatar
 
Join Date: Sep 2005
Location: Chicago. (The less-murder part.)
Posts: 33,019
Total Cats: 6,587
Default

Originally Posted by Braineack
does this help?
It would, if the reference designators and pad numbers were all the same between the 3.0 and the MS3X. Of course if that were the case, I could figure it out myself.
Joe Perez is offline  
Old 09-27-2010, 11:27 AM
  #28  
Boost Czar
iTrader: (62)
 
Braineack's Avatar
 
Join Date: May 2005
Location: Chantilly, VA
Posts: 79,490
Total Cats: 4,079
Default

Yeah I would love if there was a document that said PE1 = R1, PE0 = JS7, Etc. I'd even pay for that.

Ken, since you're here. Why does JS1, JS3, JS6, and JS8 never seem to be an option for an input/output in MS2-3? no love for v3.0 board users?
Braineack is offline  
Old 09-27-2010, 01:47 PM
  #29  
Supporting Vendor
 
Matt Cramer's Avatar
 
Join Date: Sep 2006
Posts: 2,332
Total Cats: 67
Default

Originally Posted by Joe Perez
Thanks for spoon-feeding me. It would be tragic if I were able to answer these questions for myself.
Yeah, I don't have much of any say in the decision to release schematics either. We may see a partial release of details on some individual circuits.


...which was the same as the one on the V3.0 board. So, in other words, it's a non-differential circuit with a non-adaptive zero threshold, no common-mode noise rejection, and fiddly potentiometers.

Same story on the crank input, I presume?
You got it. It appears the MAX9926 had only been out a little while when they drew up the MS3X design, and Bowling & Grippo weren't fully convinced of its awesomeness at the time.

They'd had a lot of people asking them to make the LM1815 the official conditioner, claiming that one "just plain worked", and I've seen a lot of sensors that one won't work with. So they were kind of cautious about changing circuits. Now that this one's been out about two years and has a good track record, it's likely to show up in future hardware.

Crank input is on the mainboard, so that schematic's already out.

It'd be nice to know which components I have to remove and which pins I can jump onto in order to install a proper MAX9926-based dual VR decoder circuit. Shame they didn't do this in the original design. Would have had a much lower parts count and been more robust and foolproof.
Just wire it to JS10.

There is a pinout for the expansion cable as well.

http://www.msextra.com/doc/ms3/hardware.html#headers


What's the grounding scheme look like? IOW, which pins are injector/IAC/EBC/relay ground, which pins are analog ground, and which pins are logic ground?
The only grounds brought out on the DB37 are power grounds, not logic grounds. There is a polyfuse coupling that ground plane to the logic ground plane.
__________________
Matt Cramer
www.diyautotune.com
Matt Cramer is offline  
Old 09-27-2010, 01:49 PM
  #30  
Supporting Vendor
 
Matt Cramer's Avatar
 
Join Date: Sep 2006
Posts: 2,332
Total Cats: 67
Default

Originally Posted by Braineack
Ken, since you're here. Why does JS1, JS3, JS6, and JS8 never seem to be an option for an input/output in MS2-3? no love for v3.0 board users?
Because they have hardwired functions. The stepper H-bridge's outputs are brought out on JS0 through JS3. So JS1 is the opposite side of the H-bridge from JS0, and JS3 is the opposite side of JS2. JS6 is CAN high and JS8 is CAN low.
__________________
Matt Cramer
www.diyautotune.com
Matt Cramer is offline  
Old 09-27-2010, 01:51 PM
  #31  
Junior Member
 
muythaibxr's Avatar
 
Join Date: May 2007
Location: Columbia, MD
Posts: 248
Total Cats: 0
Default

Originally Posted by Braineack
Yeah I would love if there was a document that said PE1 = R1, PE0 = JS7, Etc. I'd even pay for that.

Ken, since you're here. Why does JS1, JS3, JS6, and JS8 never seem to be an option for an input/output in MS2-3? no love for v3.0 board users?
I'll have to check, I didn't write that code :-P

EDIT: looks like Matt already checked!

EDIT2: We're going to go through and get rid of all the "PEx" naming. I hate that too. We'll rename it based on either what jumper via it comes out to or what external pin it comes out to.

One of the disadvantages of having my fingers in all of the code is that it gets hard to keep it all in my head at the same time!

Ken

Last edited by muythaibxr; 09-27-2010 at 02:01 PM.
muythaibxr is offline  
Old 09-27-2010, 01:56 PM
  #32  
Junior Member
 
muythaibxr's Avatar
 
Join Date: May 2007
Location: Columbia, MD
Posts: 248
Total Cats: 0
Default

Originally Posted by Joe Perez
So, not only will it have the same fundamental flaw as the traditional output circuit for the MS1 / MS2 (the outputs will float high when the CPU is inactive, such as during a reflash) but in addition, there's no way to achieve a +12 output on the ignition pins, as would be required by Subarus, some VWs, etc.

That's just stellar.
No they won't because the new bootloader holds the pins at whatever their state was when the flash began, then sets that state after the MS reboots after the flash.

So regardless of what the driver does, that should not happen.

As far as driving Low-Z injectors and ignition systems that need +12v instead of +5v, both can be done with an external box. Apparently this is what a lot of other EMSs do.

Many of your questions are answered here though:

http://www.msextra.com/doc/index.html#ms3

Ken
muythaibxr is offline  
Old 09-27-2010, 01:58 PM
  #33  
Supporting Vendor
 
Matt Cramer's Avatar
 
Join Date: Sep 2006
Posts: 2,332
Total Cats: 67
Default

A further note: The header pinout for the ribbon cable from the MS3 to the MS3X is available here:

http://www.msextra.com/doc/ms3/hardware.html#headers

If you want to design your own expansion board in place of an MS3X, that should give you all you need to get started. The grounds are all logic grounds.
__________________
Matt Cramer
www.diyautotune.com
Matt Cramer is offline  
Old 09-27-2010, 02:37 PM
  #34  
Junior Member
 
muythaibxr's Avatar
 
Join Date: May 2007
Location: Columbia, MD
Posts: 248
Total Cats: 0
Default

Actually, the spark output chip won't float high regardless of what we did in the monitor to preserve pin state.

I'm not sure why you thought it would.

Ken
muythaibxr is offline  
Old 09-27-2010, 03:05 PM
  #35  
Elite Member
iTrader: (1)
 
richyvrlimited's Avatar
 
Join Date: Jun 2006
Location: Warrington/Birmingham
Posts: 2,642
Total Cats: 42
Default

Because with this circuit:



In the MSExtra manual, which everyone with an MX5 uses/used on MS1 & MSII on the V3/3.57 main-board, it does and burns out the coils

Joe improved it by adding a transistor on each circuit to invert the characteristics.
richyvrlimited is offline  
Old 09-27-2010, 03:27 PM
  #36  
Boost Pope
iTrader: (8)
 
Joe Perez's Avatar
 
Join Date: Sep 2005
Location: Chicago. (The less-murder part.)
Posts: 33,019
Total Cats: 6,587
Default

Originally Posted by muythaibxr
Actually, the spark output chip won't float high regardless of what we did in the monitor to preserve pin state.

I'm not sure why you thought it would.
Because everyone has said "It's like the sequencer" or "it's like the MS2."

On the sequencer, the two ~OE pins of the 74ACT541 are tied to ground, so the chip is always active. All eight of its inputs are pulled up to VCC through 4.7k, requiring the CPU to actively assert a low condition on its output pins in order to pull down the inputs to the 74ACT541. So anytime the CPU is not managing its output pins but rather allowing them to tri-state, the ignition coils will be on. If it takes the CPU more than a millisecond or so to initialize and assert its outputs at power-on, the some MS3 users (those with leaky injectors) can also expect to get the traditional backfire at key-on.

Conceptually, it's the same way it's been done since SnS-E first allowed the use of the LED drivers as ignition outputs. The natural tendency of the outputs is to be high, requiring the CPU to actively turn them off.

In process-engineering parlance, this is the exact opposite of a fail-safe configuration. They don't design nuclear reactors such that the control rods have to be forcibly and continuously pressed down in order to keep the reactor in a cold shutdown condition- they design them so that the rods have to be forcibly and continuously held up in order to allow the reactor to operate.




Originally Posted by muythaibxr
As far as driving Low-Z injectors and ignition systems that need +12v instead of +5v, both can be done with an external box. Apparently this is what a lot of other EMSs do.
Yeah, no sense in being better than the competition... Whoever they are, anyway. The Nemesis and the Adaptronic both claim to be able to run lo-z, provided that only one injector is driver per channel.



Many of your questions are answered here though:

http://www.msextra.com/doc/index.html#ms3
Yes, I'm familiar with the location of the documentation, thanks. It has a lot to say about which signals come out on which pins. Very little is said about what's going on inside.




Originally Posted by Matt Cramer
You got it. It appears the MAX9926 had only been out a little while when they drew up the MS3X design, and Bowling & Grippo weren't fully convinced of its awesomeness at the time.
Understood. I tried using the LM1815 when I first installed the 36-1 crankwheel. It didn't deal well with the fact that the teeth on the wheel weren't exactly even, resulting in teeth of varying amplitude. Seemed to mess with the zero-crossing detector, causing teeth to be missed.

On the other hand, it only took me about 10 minutes to be convinced that the 9924 was the right chip for the job. Details and scope traces here: https://www.miataturbo.net/showthrea...hlight=max9924




Originally Posted by muythaibxr
EDIT2: We're going to go through and get rid of all the "PEx" naming. I hate that too. We'll rename it based on either what jumper via it comes out to or what external pin it comes out to.
So long as the setup software and documentation don't make any references to pad designators that existed only on the R2.2 board, I'll be happy with that.
Joe Perez is offline  
Old 09-27-2010, 03:28 PM
  #37  
Boost Pope
iTrader: (8)
 
Joe Perez's Avatar
 
Join Date: Sep 2005
Location: Chicago. (The less-murder part.)
Posts: 33,019
Total Cats: 6,587
Default

Honestly, the fact that we're even having to have this conversation at all is a large part of what I dislike about this new scheme. People who know a thing or two about basic electronics and take the time to read the documentation should be able to figure this stuff out on their own, rather than having to post stupid messages pleading to be spoon-fed information like an ignorant newb.
Joe Perez is offline  
Old 09-27-2010, 03:56 PM
  #38  
Junior Member
 
muythaibxr's Avatar
 
Join Date: May 2007
Location: Columbia, MD
Posts: 248
Total Cats: 0
Default

Originally Posted by Joe Perez
Because everyone has said "It's like the sequencer" or "it's like the MS2."

On the sequencer, the two ~OE pins of the 74ACT541 are tied to ground, so the chip is always active. All eight of its inputs are pulled up to VCC through 4.7k, requiring the CPU to actively assert a low condition on its output pins in order to pull down the inputs to the 74ACT541. So anytime the CPU is not managing its output pins but rather allowing them to tri-state, the ignition coils will be on. If it takes the CPU more than a millisecond or so to initialize and assert its outputs at power-on, the some MS3 users (those with leaky injectors) can also expect to get the traditional backfire at key-on.
We didn't do things that way, so it's not exactly like the seq. It won't hang high on things like firmware reload, and we've also made the software try to "work around" that issue for users who are using the LEDs in upgrade mode.

Yeah, no sense in being better than the competition... Whoever they are, anyway. The Nemesis and the Adaptronic both claim to be able to run lo-z, provided that only one injector is driver per channel.
On paper, we can too. When James did his testing though, we felt that the temperatures of the VND and the injector were too high, and decided against making that claim. As far as I know, the VND driver is pretty standard across the commercial offerings. Several of them require you to buy an external peak and hold box to drive low-z injectors.

Yes, I'm familiar with the location of the documentation, thanks. It has a lot to say about which signals come out on which pins. Very little is said about what's going on inside.
Just wanted to make sure, some of the things you were talking about (like grounds) are documented there so I wasn't sure you'd seen it. I was partially blaming that on us too since we haven't been that great about documenting stuff (we're also working on that).

On the other hand, it only took me about 10 minutes to be convinced that the 9924 was the right chip for the job. Details and scope traces here: https://www.miataturbo.net/showthrea...hlight=max9924
Nobody is disagreeing with that, and I think it *will* be used for any future designs.

So long as the setup software and documentation don't make any references to pad designators that existed only on the R2.2 board, I'll be happy with that.
We're going to work on making the docs and software consistent before 1.0.

Ken
muythaibxr is offline  
Old 09-27-2010, 04:22 PM
  #39  
Boost Pope
iTrader: (8)
 
Joe Perez's Avatar
 
Join Date: Sep 2005
Location: Chicago. (The less-murder part.)
Posts: 33,019
Total Cats: 6,587
Default

External boxes? I thought that one of the driving philosophies behind the whole MS3 project was to make a one-size-fits-most box that didn't require a lot of kludging to make work on the majority of modern engines?


Originally Posted by muythaibxr
Just wanted to make sure, some of the things you were talking about (like grounds) are documented there so I wasn't sure you'd seen it.
I must not be looking in the right place, then.

I have read the entire "Hardware Page", and apart from the pictures, the word "ground" appears in it only once, in the context of a ground-switched input.

The pretty pictures say things like "Good engine ground", however I can't find any discussion anywhere of which pins on which connector are which ground. Nothing tells me "The injector drivers go to ground through pins x, y and z of connector A, while the medium-current relay drivers go to ground through pins x and y of connector B. All analog grounds are isolated to pin x on connector C. A polyfuse conjoins ground planes X and Y at such-and-such point, and may be removed if you experience noise-coupling into the analog sensors."

I also see absolutely no mention of injector grounding on the "Fuel System" page, and no discussion of the underlying hardware in the "Ignition System" page. The one thing I do see here is that "for 99% of installs you should set Spark Output to "Going high (inverted)" with absolutely no discussion of what this actually means, or the fact that, in reality, the "Inverted" setting is NON INVERTED.


In fact, I only just now realized something (Depending on how much "not like" the sequencer the MS3X isn't.) They could have avoided the need for any software foolishness in the bootloader (and achieved a properly Fail Safe configuration" by pulling those lines (between the CPU and the 74ACT541) weakly to ground rather than weakly to +5. The MC9S12 can source just as much IO current as it can sink, so that would have left the circuit "inverted" but prevented the outputs from going high when the CPU was not in control of them.

Simple, simple stuff that every girl scout learns on the second day of DC Circuits 1.

Subaru owners (and everyone else with 12v-triggered coils) would still be SOL, but at least everyone else would have an ignition system that makes sense.
Joe Perez is offline  
Old 09-27-2010, 04:39 PM
  #40  
Junior Member
 
muythaibxr's Avatar
 
Join Date: May 2007
Location: Columbia, MD
Posts: 248
Total Cats: 0
Default

Originally Posted by Joe Perez
Honestly, the fact that we're even having to have this conversation at all is a large part of what I dislike about this new scheme. People who know a thing or two about basic electronics and take the time to read the documentation should be able to figure this stuff out on their own, rather than having to post stupid messages pleading to be spoon-fed information like an ignorant newb.
I see where you're coming from, but James and I have had some input into this hardware too, and we've tried to make sure that the bulk of the old problems aren't there.

Ken
muythaibxr is offline  



All times are GMT -4. The time now is 11:11 PM.