Hi!
I've already designed my own hardware based on the Proteus schematics, and done some bench-testing before installation in my vehicle:
Original project thread:
https://rusefi.com/forum/viewtopic.php?f=2&t=1820
Hardware demo:
During the planning stage, I decided to implement my own standalone LSU WBO2 controller that I've been running for years on a range of prior ECU designs. The circuit was implemented such that I initially could attach one of my stand-alone units as a stand-off board, containing the small Microchip MCU that takes care of the closed-loop heater control and the linear 0-5V output connected to one of the analog inputs on the ECU PCB
(See attached "tmbryhn_WBO2" schematic).
I simultaneously futureproofed the design based on the idea of directly implementing the heater control and Pump_I reading functions into the RusEFi source code, thus eliminating the need for a separate MCU, resulting in a more integrated solution.
(See "WBO2_RusEFi-ECU" schematic).
Relevant doc:
Goals:
I'd like to give something back to the community by sharing some of my prior tried and tested solutions. The CJ125 seem like a somewhat tricky part to obtain, so an alternative route might be beneficial to those who'd like to implement an on-board WBO2 controller on future designs.
I'm strictly self taught on C programming, and my prior coding experience is more or less limited to the development of the WBO2 controller and a dual channel DBW module - both currently serving as functional units in my car.
I've got ChibiOS + Eclipse up and running, and have just started to look into the RusEFi source code. Seems a bit daunting at the moment, but hopefully it'll start to make sense as I continue with the familiarization.
I'd like to make this particular implementation a learning experience, while other fresh coders still on the fence also might benefit from observing form a fellow novices point of view in order to get a nudge in the right direction. I'd therefore also like for this thread to be open for more generic coding related questions. If such a thread already exist, please leave a link.
All tips on where to get started on the code or relevant info is of course welcomed, and if some of the more experienced contributors would like to get started on this particular firmware implementation, please go ahead
A n00bs endeavour: Integrating a non-CJ125 WBO2 controller
- AndreyB
- Site Admin
- Posts: 14334
- Joined: Wed Aug 28, 2013 1:28 am
- Location: Jersey City
- Github Username: rusefillc
- Slack: Andrey B
Re: A n00bs endeavour: Integrating a non-CJ125 WBO2 controller
Matt has just shipped 0.2 revision of non-CJ125 WBO to fabrication see https://github.com/mck1117/wideband
https://app.slack.com/client/T4NJHQ8QZ/CF71CQPBQ will have some relevant messages for the next ~20 days until those are purged by Slack
https://app.slack.com/client/T4NJHQ8QZ/CF71CQPBQ will have some relevant messages for the next ~20 days until those are purged by Slack
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
- AndreyB
- Site Admin
- Posts: 14334
- Joined: Wed Aug 28, 2013 1:28 am
- Location: Jersey City
- Github Username: rusefillc
- Slack: Andrey B
Re: A n00bs endeavour: Integrating a non-CJ125 WBO2 controller
That's unexpected connector orientation, does case back cover close like that? or is this connector symmetrical and you can solder from any side?
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Re: A n00bs endeavour: Integrating a non-CJ125 WBO2 controller
That's funny! This thread seem rather redundant then. I guess Matts code could be tweaked to work with my controller and somehow be implemented in a build for the ECUs main MCU.AndreyB wrote: ↑Thu Dec 03, 2020 4:34 pmMatt has just shipped 0.2 revision of non-CJ125 WBO to fabrication see https://github.com/mck1117/wideband
https://app.slack.com/client/T4NJHQ8QZ/CF71CQPBQ will have some relevant messages for the next ~20 days until those are purged by Slack
I'll get on that slack
The connector could be soldered either way, but the board is laid out that way in order to take advantage of the cases heatsink capabilities through the thermal pads on the opposite side of the output driver FETs & IGBTs.
-
- running engine in first post
- Posts: 1494
- Joined: Mon Jan 30, 2017 2:05 am
- Location: Seattle-ish
Re: A n00bs endeavour: Integrating a non-CJ125 WBO2 controller
Interesting - I did essentially the same thing, except the Nernst ESR sense and pump control loop are in software, not hardware. Also seems silly to read the pump current with an ADC, perform a transform in the MCU (linearize), then convert back to analog. Why not digital all the way thru?tmbryhn wrote: ↑Thu Dec 03, 2020 4:22 pmThe circuit was implemented such that I initially could attach one of my stand-alone units as a stand-off board, containing the small Microchip MCU that takes care of the closed-loop heater control and the linear 0-5V output connected to one of the analog inputs on the ECU PCB
Re: A n00bs endeavour: Integrating a non-CJ125 WBO2 controller
What does ESR stand for?mck1117 wrote: ↑Thu Dec 03, 2020 5:19 pmInteresting - I did essentially the same thing, except the Nernst ESR sense and pump control loop are in software, not hardware. Also seems silly to read the pump current with an ADC, perform a transform in the MCU (linearize), then convert back to analog. Why not digital all the way thru?tmbryhn wrote: ↑Thu Dec 03, 2020 4:22 pmThe circuit was implemented such that I initially could attach one of my stand-alone units as a stand-off board, containing the small Microchip MCU that takes care of the closed-loop heater control and the linear 0-5V output connected to one of the analog inputs on the ECU PCB
This has been my way of doing it for years with other ECUs. I had to do it that way because I don't have the competence to write code for the STM32 yet, and I wanted a way to get up and running with WB feedback from the start. I was therefore compelled to implement the controller as an "integrated stand-alone" so to speak, but making the more or less equal on-board WBO2 circuit ready to send the pump_I analog voltage and nernst temp voltage directly to two of the STM32s ADCs for direct reading and heater control once I got that far with the firmware (which you have already done in the meantime )
-
- running engine in first post
- Posts: 1494
- Joined: Mon Jan 30, 2017 2:05 am
- Location: Seattle-ish
Re: A n00bs endeavour: Integrating a non-CJ125 WBO2 controller
Equivalent series resistance - the temperature feedback from the sensor.
This is a very very valid approach - you've essentially copied the cj125's functionality with discrete parts. Integration in to rusefi wouldn't be very hard as this is funadmentally the same as what the existing cj125 driver does. Two analog inputs, one for pump current and one for temperature feedback.tmbryhn wrote: ↑Thu Dec 03, 2020 5:29 pmbut making the more or less equal on-board WBO2 circuit ready to send the pump_I analog voltage and nernst temp voltage directly to two of the STM32s ADCs for direct reading and heater control once I got that far with the firmware (which you have already done in the meantime )
Re: A n00bs endeavour: Integrating a non-CJ125 WBO2 controller
that's yet another rusefi ecu, this time based on proteus board! nice! was it a batch?
- AndreyB
- Site Admin
- Posts: 14334
- Joined: Wed Aug 28, 2013 1:28 am
- Location: Jersey City
- Github Username: rusefillc
- Slack: Andrey B
Re: A n00bs endeavour: Integrating a non-CJ125 WBO2 controller
that's kind of a bad thing
PS: maybe not bad, but definitely not white or black.
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Re: A n00bs endeavour: Integrating a non-CJ125 WBO2 controller
Ahhh, ESR! *Brainfart* Yeah, Nernst ESR (I usually refer to it as impedance) is indeed key for temperature control of the sensor element.
Mhm. That was my plan and basically what I've been doing with my Microchip implementation up until now. I'll be checking out your standalone WBO2 source code, and also the CJ125 code already part of the official firmware build.mck1117 wrote: ↑Thu Dec 03, 2020 5:39 pmThis is a very very valid approach - you've essentially copied the cj125's functionality with discrete parts. Integration in to rusefi wouldn't be very hard as this is funadmentally the same as what the existing cj125 driver does. Two analog inputs, one for pump current and one for temperature feedback.tmbryhn wrote: ↑Thu Dec 03, 2020 5:29 pmbut making the more or less equal on-board WBO2 circuit ready to send the pump_I analog voltage and nernst temp voltage directly to two of the STM32s ADCs for direct reading and heater control once I got that far with the firmware (which you have already done in the meantime )