OpenEFI (Sistema de inyeccion OpenSource)

Hola!, luego de desaparecer un año casi, les voy mostrando algunos avances, el programa para editar la ecu quedo inviable por una dependencia que use para el contador de rpm que me rompió todo el programa básicamente, así que ahora estoy haciendo todo desde 0 con React, asi que en un futuro, seria abrir chrome, entrar a una página web, y está todo listo para programarla, no va a hacer falta instalar nada, ni renegar con instaladores rotos como pasa con algunos scanners
1580407437640.png1580407637937.png
 
Hola a todos! luego de pertenecer un rato largo a este foro, doy mi primer aporte, bueno, mejor dejo de palabrerio y les muestro de que trata.

ADVERTENCIA: este proyecto todavia esta en fase de desarrolo, si intenta usarla en su vehiculo, lo hace bajo su propio riesgo

OpenEFI es basicamente una ecu programable como las megasquirt, Besse, fueltech, etc, solo que esta esta orientada de otra manera, en las demas los sensores y actuadores ya estan definidos (pin 8 es el acelerador por ejemplo).

en cambio, en esta ecu, solo hay X cantidad de entradas analogicas + sensor lambda + sensor ckp, estos dos no entran en el conjunto anterior por necesitar un tratado de señal diferente, pasa lo mismo con los actuadores, hay X cantidad de canales de salida, estos son manejados por mosfet de canal N, por lo que permiten conectar cuantas bobinas o inyectores se necesite.
todo esto se desarrollo para que la ecu sea lo mas "universal" que se pueda, asi ademas de podes adaptar motores de carburador a inyeccion facilmente, se puede adaptar la ecu a una instalacion de inyeccion ya existente

de toda la parte logica se encarga un STM32F, con bootloader de arduino, aunque, tambien se puede usar un arduino nano sin problemas o incluso otro , OpenEFI se centra en presentar un software opensource para crear una ecu, usted puede o no usar el hardware recomendado, yo solo las hice para que no quede "vació" el proyecto

la programación de las tablas y/o algoritmos de la misma, se realiza a través de un programa de pc que estoy diseñando, se llama "OpenEFI || Tunner" que voy a ir mejorando conforme avance el tiempo, no es la interfaz mas linda del mundo, pero anda

este es el diagrama de una entrada analógica cualquiera, es un simple filtro pasa bajos para evitar la interferencia que pueda llegar a tener la señal:

Ver el archivo adjunto 175215
y este es un driver:
Ver el archivo adjunto 175216
se usa un zener de 24v y 1W (1n4004) para protejer el mosfet, aunque también se puede remplazar por dos diodos en flyback, respecto al mosfet en si, se puede usar cualquiera de canal N con una corriente superior a los 10A y con baja resistencia (menos de 1 ohm en lo posible), yo use este porque quería usar mosfet SMD, un mosfet fácil de conseguir y que ya probé como driver es el IRFZ44N
PD: aparece un MJD122 en el plano porque me gustaba mas el footprint de este que el del mosfet que iba a usar, asi que quedo ese componente

dado que los driver sirven indistintivamene para bobinas o inyectores, se pueden armar varias configuraciones como por ejemplo:
  • 6 inyectores independientes, encendido convencional
  • 6 inyectores agrupados ( 3 en un canal, 3 en otro) y encendido electrónico
  • 4 inyectores independientes y encendido electrónico
  • 4 bobinas de encendido electrónico (para un V8 /L8 )
  • 3 bobinas de encendido electrónico (para un V6/L6)
  • 2 bobinas de encendido elelectronico (para un 4L)

si se utiliza un Arduino Mega o DUE se pueden incluso tener un motor V8 / L8 con encendido electrónico e inyección
también se disponen de 5 relay con múltiples funciones (también se pueden reprogramar para hacer otra cosa)
  • Relay de bomba de combustible
  • Relay de ventilador
  • Relay de rampa de inyección y bobina
  • Relay de A/A
  • Relay de GNC/GLP

desde esta ecu tambien se pueden manejar equipos de gnc/glp sin tener que poner emuladores de inyectores ni nada raro

además estoy empezando a implementar DTC's para verificar la integridad de los sensores, para leerlos o borrarlos no hace falta un scanner, solo conectar la ecu por el puerto usb como se usaría para programar.
estos son los PCB para STM32:
Ver el archivo adjunto 175217
Ver el archivo adjunto 175219
todo el código se encuentra en GitHub, publicarlo acá haría muy engorroso el actualizarlo, este es el link FDSoftware/OpenEFI

si tienen alguna idea constructiva /destructiva siempre sera bienvenida, en un futuro pienso implementar el bus can en la ecu para poder controlar un odómetro, dejo en adjuntos los planos de eagle
PD: mañana empiezo a explicar el funcionamiento de la ecu, y como administra cada algoritmo de inyeccion, ademas de que voy a responder algunas dudas que tengan. Gracias!

Amigo, buenas, estoy en el proceso de desarrollar una efi para una honda shadow 85 1100cc, es posible adaptar tu sistema o basar el tuyo y hacer una ecu desde 0? usando arduino uno o mega? el motor es de encendido electronico (CDI) y tiene 2 pistones con 2 bujias por cilindro, osea 4, y tiene 2 bobinas, una para cada cilindro. espero tu pronta respuesta
 
Hola buenas tardes. Me interesa el tema y justo venía buscando info pero para armar una ecu para moto monocilindrica. Se podrá adaptar está ecu? Hace mucho q estoy alejado de la electrónica pero algo recuerdo aun
 
Busqué algunos pero ninguno es muy open-source que se diga, mi duda es si puedo adaptar el tuyo o tocaría modificar demasiadas cosas?
Buenas!,
si se puede perfectamente, solo tenés que adaptar un poco el circuito del CKP, normalmente lo hacen con las ecu's de speeduino, pero personalmente aun no lo probe,
el único problema es costo/beneficio, de andar va a andar, pero armar la ecu completa, son aprox 300~ usd en componentes por como esta toda la situación internacional,

además de que terminas con:
4 canales de inyección (hasta 8 inyectores baja impedancia)
4 canales de encendido (bobinas comunes, bobinas "lapiz" y las bobinas DIS)
que a menos que tu moto sea de 2 o mas cilindros, es medio un:

matar moscas a cañonazos

podés armar una mas específica como pase en el link un par de mensajes mas arriba;
y si quedas atascado/a con algo, solo hace un tema aca y apenas pueda lo reviso!

-----------------------------------------------------------------------------------------------------------------------------
Si algun mod puede editar este post para que sean dos mensajes separados se lo agradecería mucho así no se hace todo una ensalada
-----------------------------------------------------------------------------------------------------------------------------

Luego 50 años [sic], revivo un poco esto para contar mi progreso;
decidí ir por un formato más compacto intentando no reducir muchas características respecto al modelo anterior,

Lo que se fue:

CAN doble (solo 1 bus ahora)
LIN
Sensores (8 vs 16 anteriores)
Driver motor ralenti por PWM
Doble sonda Lambda (solo deje una)
Doble rampa nafta/gnc

Lo que sigue:
4 canales de inyección;
4 canales encendido
Driver motor PAP para ralenti;
8 sensores genéricos
4 salidas para relays
2 salidas de PWM genéricas, hasta 1.5A (dependiendo el caso, se puede manejar el ralenti por pwm, no lo probé aún)
Captura de pantalla de 2021-10-30 23-13-53.png
Captura de pantalla de 2021-10-30 23-31-47.png

en los adjuntos de este mensaje dejo el plano tanto de las placas de sensores, como de la ecu en sí, también pueden conseguir los planos para ver/editar en KiCAD 5.99 desde el GitHub: OpenEFI-PCB

Sobre el firmware, cambie completamente el stack dejando Arduino a favor de las librerías HAL/LL de ST, que me deja más posibilidades para editar registros/clocks del mcu mientras esta en marcha,
mas que nada para la generación de pulsos y la sincronización con el CKP
dentroo de todo intento poner unit-tests para tener mejor rastreo de cambios en el código que puedan romper o no las partes más criticas del sistema:
1635648748390.png
Como siempre, todo el código se puede revisar desde el github, no lo posteo aca porque sería un quilombo de explicar y no viene mucho al caso de este foro,
repositorio
la documentación de desarrollo esta acá:
devdocs
y próximamente el manual para el que quiera armar una por su cuenta acá:
documentación

-----------------------------
esto también se podría separar de ser posible, gracias!
-----------------------------
para no dejar esto con tanto "dibujito", acá hay un par de fotos del montaje de las últimas placas y unos tests con inyectores/bobinas


FBDf5iaUcAIooru.jpeg
FBDWkouUYAAuK5d.jpeg
IMG_20211018_204423.jpgIMG_20211022_001833.jpg


 

Adjuntos

  • µEFI_rev2.pdf
    392.3 KB · Visitas: 2
  • Sensors_V2.pdf
    21.4 KB · Visitas: 1
Última edición:
Hola saludos,
me llamo Neomar A, y estoy tratando de hacer una inyección con arduino uno para mi carro, es una Caribe modelo viejo.
Y pregunto como hiciste programar la parte de inyección???
es decir partiendo de una señal de 90º no se como darle el tiempo de apertura de acuerdo al vacío del motor datos arrojados por medio del sensor map.
Ya realice la parte de encendido secuencial!!
te agradecería mucho me ayudaras saludos.
 
Hola saludos,
me llamo Neomar A, y estoy tratando de hacer una inyección con arduino uno para mi carro, es una Caribe modelo viejo.
Y pregunto como hiciste programar la parte de inyección???
es decir partiendo de una señal de 90º no se como darle el tiempo de apertura de acuerdo al vacío del motor datos arrojados por medio del sensor map.
Ya realice la parte de encendido secuencial!!
te agradecería mucho me ayudaras saludos.
si dispones solo del sensor map (y las rpm); podés usar speed-density, tengo que tener un paper dando vueltas sobre eso, pero con leer esto te vas a dar una idea de como implementarlo:
CI Engine Speed-Density Air Mass Flow Model - MATLAB & Simulink - MathWorks América Latina
 
Arriba