DFH - Defacto FreeEMS Hardware in KICAD

Jared's unmaintained and never-used TA based "Defacto FreeEMS Hardware" design.
User avatar
jbelanger
LQFP144 - On Top Of The Game
Posts: 387
Joined: Sat Feb 23, 2008 8:58 pm
Contact:

Re: freeEMS_1.0 rev A KICAD

Post by jbelanger »

One small comment on your schematics: you have reversed Vi and Vo on the voltage regulator.

Jean
User avatar
jharvey
1N4001 - Signed up
Posts: 1607
Joined: Tue Jun 10, 2008 5:17 pm

Re: freeEMS_1.0 rev A KICAD

Post by jharvey »

Ah it will work, you just need a bigger hammer ;)

Good catch, I just mirrored that component to fix it, and thanks.
User avatar
jharvey
1N4001 - Signed up
Posts: 1607
Joined: Tue Jun 10, 2008 5:17 pm

Re: freeEMS_1.0 rev A KICAD

Post by jharvey »

I've added the LM1815 to the RPM schematic, and got it to save this time, flipped the Vreg, and added the no connect pins to the map.
Attachments
freeEMS_1.0_A.04.zip
FreeEMS A.04 KICAD
(161.31 KiB) Downloaded 739 times
freeEMS_1_combined_A.04.pdf
FreeEMS A.04 PDF
(347.46 KiB) Downloaded 742 times
User avatar
BenFenner
LQFP144 - On Top Of The Game
Posts: 360
Joined: Wed Jul 09, 2008 3:15 pm

Re: freeEMS_1.0 rev A KICAD

Post by BenFenner »

Are you essentially trying to print to PDF? Can the program you're using print to installed printers, and are you using Windows? If so, give CutePDFWriter a try.

http://www.acrosoftware.com/Products/CutePDF/writer.asp

Edit: If you're on Linux, then you need more help than I have to give. ;)
User avatar
jharvey
1N4001 - Signed up
Posts: 1607
Joined: Tue Jun 10, 2008 5:17 pm

Re: freeEMS_1.0 rev A KICAD

Post by jharvey »

Have you seen PDFCreator? Not full of crap like some other software, it's GNU open-source. Works well and is easy to install.

http://www.pdfforge.org/products/pdfcreator

I am using Linux, but controlling from a windows box. Kind of interesting approach. The Graphical User Interface runs on the windows machine, but the program runs on the Linux box.
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: freeEMS_1.0 rev A KICAD

Post by Fred »

jharvey wrote:The Graphical User Interface runs on the windows machine, but the program runs on the Linux box.
If you are referring to X windows, the only thing running on the windows machine is the X client/server. I know I'm being fussy with words, but all the "gui code" as part of the main app runs remotely too. All of the stuff you see is just being rendered on the windows machine in X. I used Linux like this exclusively for about 4 years as a thin client approach on cheap crap hardware.

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
jharvey
1N4001 - Signed up
Posts: 1607
Joined: Tue Jun 10, 2008 5:17 pm

Re: freeEMS_1.0 rev A KICAD

Post by jharvey »

Here's freeEMS 1.0 A.05

I've added interconnects to the top schematic, these are only planned for now, they will likely change as I get into the PCB.

I've added the tech art's symbol to the CPU page.

I've added fets and pull up resistors to function as the first stage of the ignition driver, with the power fets in the engine bay.

I've done some misc clean up, adding text blocks and text to identify different groups of schematics.

Next steps include setting foot prints, and using my current draft schematics to create the real schematics. Right now, I have one injector schematic, but that won't allow resolution to all the resistors and components, so I have to take the current one and copy it 6 times. Then it will generate a proper netlist.
Attachments
freeEMS_1.0_A.05.zip
freeEMS 1.0 KICAD schematic A.05
(164.91 KiB) Downloaded 723 times
freeEMS_1_combined_A.05.pdf
freeEMS 1.0 PDF schematic A.05
(379.11 KiB) Downloaded 731 times
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: freeEMS_1.0 rev A KICAD

Post by Fred »

Wow, nice work! You've got a lot done, thank you very much!

Having had a good look at the first page now, I really like the modular building block approach to it. Very nice, very "structured software" :-)

I'm going through it now and making a list of comments as I see them :
  1. Injector drivers are PT2 - PT7 not PB0 - PB5
  2. RPM inputs are PT0 and PT1 not PH0 and PH1
  3. Ignition drives are PB0 - PB5 not PT0 - PT5
  4. You have your current sensing pins connected to the number one CAN chips lines PM0 - PM3, use PM4 - PM7 and PE3 and PE4 instead.
  5. You have your thermistor PWM attachments on PA5 and PA6, firstly, why two? turn both on, read both, turn both off? Secondly, I assigned PA6 to the tacho output so if you still want to use two pins for that, perhaps connect them to PA4 and PA5 instead.
  6. I would like to see PA6 hooked to a to92 autoFET for tacho driving use.
  7. No wbo2 ADC input circuit shown (I realise we only just discussed this in the other thread, but I thought I'd make the list completish)
  8. Fuel pump current feedback, why do we need/want that at all? It's only powering a relay, not the actual pump (at least not at the moment, and we would need a seriously grunty setup to do PWM on a fuel pump or pair of) so it doesn't even need a full on FET really. A small to92 FET or BJT would do the trick for that easily. I'm not sure why I kept saying that one FET was for that. It seems frivolous now. I would still like to see it unable to be killed though. So using an autoprotected to92 FET is a good move IMO.
  9. If you want the sensor isolation useful for all users, you will want to cut power to the sensor as some sensors have the ground at the head/block.
  10. I don't understand why the RPM input schem is labeled as analog in, the CPU will see a digital signal there. It could be beneficial to use normal diodes to protect digital inputs as well as analog ones though, perhaps that is what you mean? (as in, not use a zener?)
  11. I've assumed the LM1815 is wired/configured/setup correctly, someone else may want to check that, or I can at a later date.
  12. Should the digital input setup have negative protection the same as the analog input? Is there harm in using the analog style protection for all inputs, it is simple clean and can be cheaply beefed up and doesn't interfere with the signal at all (zener (despite the fact I bought a stack of them) could cause a rise/fall time issue by drawing current in the upper voltage region where they are partially on.
  13. I'd still like to see a 1k resistor on the digital inputs too. I think all the cpu pins In and Out should be current limited and all the inputs should be voltage capped too (+ and -).
  14. On the FET input the resistor to ground must be a much larger value than the input one or the voltage will never saturate to 5V in. As you have it with 1k in and 1k to ground fully on will produce 2.5V. I bought lots of 1k, 10k and 100k resistors and a few lower than that so I suggest we use 100k for that value.
  15. For the pull up resistor on the low power FET setup, I think that there should be both a 5v and 12v pad for that resistor to be soldered to. I personally will use 5v on my setup, but others may need 12v.
  16. I didn't check that the footprint of the TA card is correct, but it looks to be correct.
  17. Battery V divider network values should be 10k and 39k to yield a 24.5V maximum reading which I think is appropriate.
  18. The battery input needs to either share the power input to the CPU 5v feed (before reg) OR (preferably) have it's very own conditioning input. Just putting a capacitor inside the two divider resistors will form a first order low pass filter that is quite suitable. It needs to be able to change fast enough during startup conditions, and provide an average voltage the rest of the time. Experimentation will be required to get a good working compromise for that. Some software averaging should be employed too.
A separate list for the power supply circuit :
  1. 1 Ohm is a good value for the current limiting resistor. Combined with a drop of 0.7V on the reverse protection diode and assuming 500mA current draw the device should still operate at 7.2V with that value.
  2. The snubbing cap on the reverse diode is just silly. The diode will always be on except when you mis-connect the entire device so it won't be switching or making noise.
  3. 20V for the over voltage protection zener is a good number IMO.
  4. I'd like to raise the value of the outer electro cap to 2200uF and add an inner one of the same but only rated to 10V compared to the outer ones 25V
  5. Ditch the 1uF cap next to the zener too as it's also frivolous.
Summary, remove two caps, increase one caps size, add a different cap and we are good to go.

Potentially duplicate this circuit for the MAP, TPS, Thermistors or perhaps not. Am I crazy to want a second power supply for these? It does seem a bit extreme...

I'm thinking about the thermistor switching again. If you want a clean signal you will want a capacitor inside on the ADC pin (same for all ADC inputs) however if you switch it off and switch it on again just before taking the reading then you will have a very hard time recharging that cap through the resistors that feed it fast enough to take a reading. In short, I'm not certain it's practical, but it could be I guess with some development in both hard and software.

I'm very impressed by the document. It's pretty cool that we have got that far, thank you so much for digging in and doing it and thanks for saying "I think we should do it NOW" too!

Cheers!!

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
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: freeEMS_1.0 rev A KICAD

Post by Fred »

A couple more little things.

The current feedback and ADC switching mechanisms should either be open circuit when not populated or have a pair of pads inline that can be used to disconnect it or both. Reason being, many people probably won't want to use that aspect and it shouldn't stop them from using those pins with another board sandwiched on top or underneath on the same 100 pins.

The four IGBT locations should have jumperable pins such that for those running external ignitors (AKA me) the to220 locations can be used without jumper wires to run FETs there for other stuff.

I would suggest the FETs that go there should be 4 injector FET setups and traces from pins PK0 - PK3 (the staged fuel outlets) leading there in parallel with the ignition PB0 - PB3 pins (thinking 4 outs rather than 6 that doesn't seem to fit very well.

If you use both sides of the board then we could possibly put 2 more to220 on each side and make it a 6 cylinder controller. That would be really nice, but just a bonus at the end of the day.

That's about all for now :-)

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
jbelanger
LQFP144 - On Top Of The Game
Posts: 387
Joined: Sat Feb 23, 2008 8:58 pm
Contact:

Re: freeEMS_1.0 rev A KICAD

Post by jbelanger »

There are a few things wrong with the LM1815 circuit:
  1. Pin 9 is not the output, pin 12 is. Ground pin 9 and 11 and use pin 12 as your RPM input. The 5.6k is a pull up for the LM1815 output.
  2. Use a decoupling cap (0.1uf) between pin 8 and ground.
  3. Provide a connection to pin 5 for mode selection. Pin 5 can either be left unconnected, connected to 5V, or connected to ground to select the different modes which can be useful with certain VR sensors.
  4. This won't change the board layout but pin 14 can be grounded and the cap and resistor left out. This will generate a square wave output instead of the timed pulse (with a pulse width determined by the RC components).
  5. You should add a cap after the input 18K resistor for noise reduction. I use 330pF on my board.
Jean
Post Reply