Puma board for FreeEMS

Marcos' unmaintained, but still in-use, Puma for FreeEMS circuit board/hardware design!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Puma board for FreeEMS

Post by Fred »

nitrousnrg wrote:See you on tuesday, on a super reloaded mega post!
And another two months go by! :-p

Re power and ground connections, you only need two power connections if you use enable pins on the regulators and feed them from the cpu ACC enable output.

IE:
  1. Constant high quality direct from battery power FOR both regulator supplies
  2. Key-controlled-relay switched high quality direct from battery power FOR BRV reference and key-on signal
If you have anything that dumps switching current into the 12v (noise suppression for PWM idle, PWM injectors, etc) then you ALSO need a dirty 12v feed to dump that back into.

If you don't have the CPU control the accessory power (IE, no sd card reader/writer) then you ALSO need another clean key switched battery sourced 12v feed to control the second regulator.

With respect to grounds, same old stuff still applies:

At least:
  1. Clean CPU/ADC ground as reference
  2. Ground for all switching low side drivers
And optionally:

Separate the different groups of low side drivers from each other:
  1. Injector grounds
  2. Accessory grounds (fuel pump, idle valves, boost valves etc)
  3. Ignition driver grounds (if being done on board)
I'd recommend splitting the switching ground into injector/acc as a minimum, but, it's not essential.

I suspect the injector ground being shared with the low current/voltage ignitor drives on my Puma was responsible for not running the Volvo that I tried to run, but I could be wrong. Certainly there was significant potential swing from somewhere, and I suspect injector loading was the cause, though I could be wrong.

If this project has been discontinued, let me know, if not, see if you can find the time to get out "Tuesday's" post for us :-)

http://www.youtube.com/watch?v=sTFDG0tEYtQ

Desde Nueva Zelanda! Buena mierda! I'm certain that that doesn't translate well, but it's what I'd say en Ingles :-)

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
nitrousnrg
LQFP144 - On Top Of The Game
Posts: 468
Joined: Tue Jun 24, 2008 5:31 pm

Re: Puma board for FreeEMS

Post by nitrousnrg »

Hi, and yes, this post has been bugging me for a while. Its partially written in a text file in my box, but I hate to post things without enough work as a background.

I want to solve the last issue I'm having. ripple is ok, temperature is fine too. But, in this older car (I blew the Palio's head gasket again (rusty water in the circuit)) there are huge voltage spikes at the battery terminals, coming from the ignition coil.

This huge spikes keep resetting the ARM MCU. I find hard to believe that the spikes can made it to the mcu across:

10uF->1uHy->100uF->smps->big inductor->330uF->0.1uF->0.1 ohm->4.7uF->0.1uF->5v reg->0.1uF->10uF->3.3v reg (not sure about how many passives has the mbed in it).

So, if shortening and twisting all the wires, and implementing some shielding doesn't work, I'll scratch my head for a while. Even if Puma doesn't reset, its a interesting warning to be aware of. I believe this arm is more delicate than the freecale mcu, but I want to be gentle with puma's mcu anyway.

There are no suppresion diodes in this board, neither in the design. It would suck to have a board that has a reset once in a while.

Here is a video of an average argentinian fan watching an important football match (and imagine this is me looking at the scope whith a mcu that keeps resetting).
http://www.youtube.com/watch?v=8OU1mW0T ... 1310348608
:p
Marcos
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Puma board for FreeEMS

Post by Fred »

Firstly:
ROFL, LOL, lol, hahahahaha, hehehehehe, jajajajajajaja, jejejejejejeje, funniest 5 minutes so far today! Epic. I wonder if he eventually died of heart failure. At least he's passionate! I broke Lindsay's couch watching a rugby game once :-) I flew up into the air and when I landed it broke! It was cheaply made.... but it was also brand new.... I was not popular.
nitrousnrg wrote:Its partially written in a text file in my box, but I hate to post things without enough work as a background.
I totally understand.
This huge spikes keep resetting the ARM MCU. I find hard to believe that the spikes can made it to the mcu across:

10uF->1uHy->100uF->smps->big inductor->330uF->0.1uF->0.1 ohm->4.7uF->0.1uF->5v reg->0.1uF->10uF->3.3v reg (not sure about how many passives has the mbed in it).
What does your wiring look like? If you've got your usual mess of wires and its all sitting on wooden boxes (as I've seen you do in the past lol) then you could find its simply being induced in intermediate wires or traces in the board directly. Is the reset pin on the mbed capacitored? Heaps of megasquirt people have trouble with ms2 resetting due to no cap there on the daughter board. In any case, behaviour like this is not new, and you've got to be super careful with power supply design and layout. This was my biggest fear with Puma spin 1 first tests, but I've not had it happen yet. Then again, I've not subjected it to any serious shit either. Por cierto, are you running pwm p&h at the same time? That could be the culprit too.
There are no suppresion diodes in this board, neither in the design. It would suck to have a board that has a reset once in a while.
Yes, it would. I'm happy that you're feeling and sharing my concerns about noise now, even if it's for a different reason :-)

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
nitrousnrg
LQFP144 - On Top Of The Game
Posts: 468
Joined: Tue Jun 24, 2008 5:31 pm

Re: Puma board for FreeEMS

Post by nitrousnrg »

Well, there is a chance that the resetting was happening because of a cable that got open by the engine vibrations.

What I did:

*see the resets
*twist and cut the mbed supply cables
*after plugging it to the car, noticed that 12v is shorted to the ground plane in the board. Yes, it has solder mask, but its so lame that it doesn't cover the edge of the plane. Thats exacly why I didn't ask for mask in the bottom side.
*fixed the short, see the cable is cut inside.
*repair cable, and see everything working fine.

So, the cable could get damaged by the shortcircuit, and the mcu doesn't reset because of the shorter wiring
or
the cable was already damaged and with the engine vibrations the supply was getting cut. The short finished to destroy the cable.

Anyhow, this night I pretty much finished the smps and p&h testing, or at least I'm satisfied with them.

SMPS:
I've put a pi filter in the input (1uHy+10uF), these kind of smps are far noisier in the input than in the output.
With low current consumption, it has 5mv of noise in the input. As usual, it doesn't get better with bigger loads. Before I used the pi filter, it had several mV of ripple in the input, the filter improved that, less amplitude, and a more smooth signal.

Pics where it belongs: Anything in this topic is impossible to find in 60+ pages.
viewtopic.php?f=9&t=1120&p=15661#p15661

Measuring in the battery, the input noise was impossible to find with the engine running. With the engine stopped, you can see those mV at the battery when everything is quiet. It could be the probe though.

The PWM P&H:
viewtopic.php?f=53&t=1212&p=15662#p15662
And thanks a lot for the input.

I've one clean 12v source for both regulators, another clean for the BRV and a dirty one that only supplies the leds of the transistors.

About separating the dirty grounds... 4/5 ground cables going to the battery seems good to me. IMO separating them won't improve the overall performance, since I don't know how is going to be the balance of current between different circuits. I mean, I prefer a super ground rather than a 2 or 3 cool grounds that could not be enough for a 4 or 6A load.

If the ign drivers are sensitive and drives low current... maybe they should't be in the dirty side.
Marcos
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Puma board for FreeEMS

Post by Fred »

nitrousnrg wrote:I've one clean 12v source for both regulators, another clean for the BRV and a dirty one that only supplies the leds of the transistors.
OK, so the first one for the regs is always on, and the second and third for BRV and LEDs are switched by external relays or, in the case of the LEDs (only) the key, right?
About separating the dirty grounds... 4/5 ground cables going to the battery seems good to me. IMO separating them won't improve the overall performance, since I don't know how is going to be the balance of current between different circuits. I mean, I prefer a super ground rather than a 2 or 3 cool grounds that could not be enough for a 4 or 6A load.
Absolutely not acceptable on a device with a "FreeEMS Compliant" stamp. You're free to do as you please though. CPU ground must stay at or very close to zero potential. It can not do that (no matter how much copper you throw at the problem) unless the drivers are separated from the analogue and reference stuff.
If the ign drivers are sensitive and drives low current... maybe they should't be in the dirty side.
Absolutely, they definitely should be either on the CPU/ADC ground or on their own ground, not shared with high current dirty stuff.

You're probably going to want to watch Cheetah and Ravage development as there are developments being made all the time on required hardware features, and by features I mean design details. If you allow Puma to fall out of date with current requirements and firmware, you could end up on a dead branch with no maintenance. It looks as though pin assignments will finally stabilise soon, though, which is positive news! I need a BDM in hand to confirm that, first, though.

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
nitrousnrg
LQFP144 - On Top Of The Game
Posts: 468
Joined: Tue Jun 24, 2008 5:31 pm

Re: Puma board for FreeEMS

Post by nitrousnrg »

Absolutely not acceptable on a device with a "FreeEMS Compliant" stamp. You're free to do as you please though. CPU ground must stay at or very close to zero potential. It can not do that (no matter how much copper you throw at the problem) unless the drivers are separated from the analogue and reference stuff.
No, no. I meant to separate injector ground from stepper ground and from GP high power ground. CPU/ADC ground must be separate and meet the other grounds at the battery, no doubts. Sorry, my bad.
OK, so the first one for the regs is always on, and the second and third for BRV and LEDs are switched by external relays or, in the case of the LEDs (only) the key, right?
Umm, I don't care how the 2nd and 3rd are switched. I provide the pins, the user could drive the leds from lemons connected in series and connect the BRV to the battery directly :-) That seems part of the installation and installation manual.
You're probably going to want to watch Cheetah and Ravage development
Yep, I'm interested, especially about the pinout decision.
Marcos
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Puma board for FreeEMS

Post by Fred »

No, no. I meant to separate injector ground from stepper ground and from GP high power ground. CPU/ADC ground must be separate and meet the other grounds at the battery, no doubts. Sorry, my bad.
Good man! You had me worried for a second there!
Umm, I don't care how the 2nd and 3rd are switched. I provide the pins, the user could drive the leds from lemons connected in series and connect the BRV to the battery directly :-) That seems part of the installation and installation manual.
I guess it matters from an "intent" and "understanding" perspective. You're right about where it belongs, though, and it will be there.
Yep, I'm interested, especially about the pinout decision.
If you're done with smps and pwm/p&h testing, you could always do some ign driver experimentation or opto isolation experimentation or something :-)

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
nitrousnrg
LQFP144 - On Top Of The Game
Posts: 468
Joined: Tue Jun 24, 2008 5:31 pm

Re: Puma board for FreeEMS

Post by nitrousnrg »

If you're done with smps and pwm/p&h testing, you could always do some ign driver experimentation or opto isolation experimentation or something :-)
awww :P

Well, opto is expensive, big in size (at least the ones I saw) and there aren't many multi-channel ICs out there. There is a 6 channel RF isolator, though, that could be interesting. It was in the dirst drafts of the puma design and got removed.
Its https://www.silabs.com/Support%20Docume ... Si846x.pdf

Ign driver... its interesting. When I get the car back I could give it a try.

Now I'm continuing the layout. There are many passives to be added, and the connection layout is yet to be decided. Spin1 had a layout that doesn't match an universal board like these:
Image
And it would be cool to be able to just put a regular header on those boards and test quickly custom circuits with puma.
Marcos
User avatar
jharvey
1N4001 - Signed up
Posts: 1607
Joined: Tue Jun 10, 2008 5:17 pm

Re: Puma board for FreeEMS

Post by jharvey »

Hmmm, I should catch you some time about how the Cinch might interface with PUMA. I've been making some slow progress on that front. I found a DXF to KICAD tool that will likely help me convert my DXF (that's based on the PCB 3D Solidworks model I made), to KICAD. [edit]My intern figured it out. Read the directions and run TTConv.py which then launches kicadtodxf.py. Works the breeze now.[/edit] More about that here.

http://tech.groups.yahoo.com/group/kica ... ssage/6459

I haven't checked much into git about that lately because it's just been Solidworks stuff, and most people can't do much with that. Shortly I hope to have that updated with the 112 pin Molex on it. So $25 connector with way more pins than we should ever need.

Wooo, whoooo, NEFR this weekend.

http://www.newenglandforestrally.com/
Jammi
DIP8 - Involved
Posts: 24
Joined: Mon May 02, 2011 5:07 am

Re: Puma board for FreeEMS

Post by Jammi »

nitrousnrg wrote:Well, opto is expensive, big in size (at least the ones I saw) and there aren't many multi-channel ICs out there. There is a 6 channel RF isolator, though, that could be interesting. It was in the dirst drafts of the puma design and got removed.
How about 4N35 series optocouplers? They seem to be generic, availability is good and are not very expensive.
Post Reply