Which MS do I want?
#21
Boost Pope
iTrader: (8)
Join Date: Sep 2005
Location: Chicago. (The less-murder part.)
Posts: 33,019
Total Cats: 6,587
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.
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.
#23
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.
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.
#24
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
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
#25
Boost Pope
iTrader: (8)
Join Date: Sep 2005
Location: Chicago. (The less-murder part.)
Posts: 33,019
Total Cats: 6,587
1. The cam input VR circuit is the same filter / Schmidt trigger circuit as used on the V3.57.
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.
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
That's just stellar.
Last I heard, the plan was to release the source code for MS3 once they had a stable release version.
Now, if Bruce & Al could only see the light.
#26
Boost Czar
iTrader: (62)
Join Date: May 2005
Location: Chantilly, VA
Posts: 79,490
Total Cats: 4,079
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.
#28
Boost Czar
iTrader: (62)
Join Date: May 2005
Location: Chantilly, VA
Posts: 79,490
Total Cats: 4,079
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?
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?
#29
...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?
Same story on the crank input, I presume?
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.
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?
#31
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.
#32
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.
That's just stellar.
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
#33
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.
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.
#35
Elite Member
iTrader: (1)
Join Date: Jun 2006
Location: Warrington/Birmingham
Posts: 2,642
Total Cats: 42
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.
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.
#36
Boost Pope
iTrader: (8)
Join Date: Sep 2005
Location: Chicago. (The less-murder part.)
Posts: 33,019
Total Cats: 6,587
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.
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
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.
#37
Boost Pope
iTrader: (8)
Join Date: Sep 2005
Location: Chicago. (The less-murder part.)
Posts: 33,019
Total Cats: 6,587
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.
#38
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.
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.
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.
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.
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
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.
Ken
#39
Boost Pope
iTrader: (8)
Join Date: Sep 2005
Location: Chicago. (The less-murder part.)
Posts: 33,019
Total Cats: 6,587
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?
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.
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.
#40
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.
Ken