It has been a while for any BLOG updates, but during that time progress has been happening. Today I finished hardware verification of the revised PCB design, including the migration to the STM32F07 CPU. Software porting has been going smoothly, once I did the homework around the development environment (STM CubeMX + Keil uVision).
This coming week I am going to be revising the PCB layout ready for another round of FAB, and will post up the schematic at that time. Firmware is still under development, but largely ported. Mostly I need to finish the throttle control, augment thee ASCII status strings and commands to allow for configuration options around the engine, as well as work to place the controller into a low-power state when the DC generator is not operating.
One challenge will be how to have them assembled (I will NOT be hand-soldering them up for folks, though could make the PCB available for anyone who wishes to do so themselves!) At min, really need 10x to make a viable assembly run. There are a few folks ready interested in this, if you have an interest drop me a line and I can add you to a mailing thread we have going.
Remote: I do have a 1st articular of the remote assembled, but have not done any work with it. I am focusing on the controller 1st, will look at the remote later. (Will require use of local on/off switches for now).
Links to Files
- Links to Files:
- Schematics
- PCB Layout
- Parts Lists
- CAD Files
- Arduino Libs
- Source Code
- Simulator
- Licensing
Design Elements
- Design Elements:
- Goals
- Hardware Overview
- Software Overview
- Ordering & Costs
- Assembly
- Installation
Tools:
- Other Links:
- Arduino
- KiCad
- Front Panel Express
Showing posts with label Status. Show all posts
Showing posts with label Status. Show all posts
Saturday, March 31, 2018
Wednesday, March 4, 2015
Source Code v0.1.6 released
Today I posted source version 0.1.6 for the SERC (Controller) source code. The remote source is unchanged, and there has been no additions to the config.h include files. See the above Source resource tab to download the new code.
The reason for this release is to bring the DC Generators core regulation functions back in step with changes which have been made in the stand alone Arduino Alternator Regulator source. These mainly focus on the core mange_alt() function and include:
Over the coming months I hope more can be learned about the core regulation engine, and perhaps further refinements can be made to the PID tuning. Given the common code base between the DC Generator and the stand alone Alternator Regulator there is opportunity for all to help in any future adjustments.
There had been no changes to the configuration.h file, so if you have already edited a copy of that to match your system - just download the core .INO source file and team it up with your edited config.h file. That way you will get the new code, and retain your individual customization.
A final note: Over the past few days I have completed a changeover to the newest Arduino IDE release v1.6.0 This release of source was tested using the new IDE, and going forward will continue to keep largely in step with the RELEASED (non beta) versions of the Arduino IDE. I suspect the DC generator source will work OK with the prior IDE released (1.0.5, or 1.0.6), but have not been actively using those for about a week now.
The reason for this release is to bring the DC Generators core regulation functions back in step with changes which have been made in the stand alone Arduino Alternator Regulator source. These mainly focus on the core mange_alt() function and include:
- Expansion of P&D engine to include 'I' factor, now a full PID capable engine.
- Improved field PWM error summing to prevent one factor from overwhelming others when regulation is close to its goal (esp Voltage)
- Adjusted pull-back factors, to lessen the dramatic pull down associated with common load-dumps
Over the coming months I hope more can be learned about the core regulation engine, and perhaps further refinements can be made to the PID tuning. Given the common code base between the DC Generator and the stand alone Alternator Regulator there is opportunity for all to help in any future adjustments.
There had been no changes to the configuration.h file, so if you have already edited a copy of that to match your system - just download the core .INO source file and team it up with your edited config.h file. That way you will get the new code, and retain your individual customization.
A final note: Over the past few days I have completed a changeover to the newest Arduino IDE release v1.6.0 This release of source was tested using the new IDE, and going forward will continue to keep largely in step with the RELEASED (non beta) versions of the Arduino IDE. I suspect the DC generator source will work OK with the prior IDE released (1.0.5, or 1.0.6), but have not been actively using those for about a week now.
Sunday, July 6, 2014
v0.3.1 design posted
Though it has been up there for a few days, today I am announcing the availability of v0.3.1 design in the links above. This includes CAD files, parts lists, etc...
This release resolved the fatal issue in v0.3.0, and represents the group build status. One thing to point out: The design and PCB for the remote LCD is largely unchanged between v0.3.0 and v0.3.1, either board will work, though I did refine some component values (ala the I2C pull-ups), so just use the 0.3.1 BOM for the latest.
There is one oddity with v0.3.0 LCD remote, and this is in the the support for the optional low-cost China CR2032 battery holder. The pins are a little off, and one needs to shift the socket a little when installing it, like this:
This release resolved the fatal issue in v0.3.0, and represents the group build status. One thing to point out: The design and PCB for the remote LCD is largely unchanged between v0.3.0 and v0.3.1, either board will work, though I did refine some component values (ala the I2C pull-ups), so just use the 0.3.1 BOM for the latest.
There is one oddity with v0.3.0 LCD remote, and this is in the the support for the optional low-cost China CR2032 battery holder. The pins are a little off, and one needs to shift the socket a little when installing it, like this:
| Offsetting Chinese CR2032 battery holder |
Saturday, July 5, 2014
Its Alive!!!
Well, part of it at least. Today I soldered up one of the new remote LCD boards and powered it on:
When completed the LCD board flips over and mounts on the back under the LCD; it is exactly the same size. But here I have it bridged using a proto-board, with the Service and ICSP ports connected and supplying +5v.
When I get in the revised controller boards will proof out the CAT-5 cable buffers as well.
BTW, the message "We are Alive!!!" is what the Arduino sketch for this remote LCD / keyboard module displays upon power up. In use it would very quickly be overwritten by the start-up messages from the controller. But at least this gives a quick way to check things are working locally.
When completed the LCD board flips over and mounts on the back under the LCD; it is exactly the same size. But here I have it bridged using a proto-board, with the Service and ICSP ports connected and supplying +5v.
When I get in the revised controller boards will proof out the CAT-5 cable buffers as well.
BTW, the message "We are Alive!!!" is what the Arduino sketch for this remote LCD / keyboard module displays upon power up. In use it would very quickly be overwritten by the start-up messages from the controller. But at least this gives a quick way to check things are working locally.
Thursday, June 12, 2014
Release v0.3.0a has fatal flaw
Last night I realized there is a fatal flaw in release 0.3.0 of the controller design. The snubber / ESD protection BAT54's are designed in backwards (+5 vs. gnd), and instead of providing protection they provide a direct short between +5 and gnd.
I have pulled all the v0.3.0 files from the links above, once I have revised the design I will repost a new version.
I have pulled all the v0.3.0 files from the links above, once I have revised the design I will repost a new version.
Sunday, June 1, 2014
Released design v0.3.0 - Learnings from Stand-alone Alt Reg + SMT conversion
Today I posted v0.3.0 of the controller and LCD remote to the blog (See links above, Schematic, PCB, BOM, CAD files..) This has been a MAJOR update to the design, with highlights being:
This last change is perhaps the biggest, it will allow machine assembly of most all the low-power components on the board, plus a smaller PCB. Not only will one no longer need to hand-solder the small SMT parts (esp the INA226's), but by leveraging lower costs in China, we can get the partially assembled PCB w/SMT components for about the same cost as the blank PCBs alone from the prior source.
Note: Because the pre-regulator was modified (from 9v to 12v to support the FET driver) you MUST use a new LCD remote PCB with this new controller, or modify an existing one to use around a 12v pre-regulator. The voltages on the CAT-5 interconnect need to be about the same on both ends for the P82B96's to function correctly....
I will be sending this design off for manufacturing Monday. There is one set of boards not spoken for, if you want it drop me a line. Else I will start making a list, and perhaps do a next round if there are enough folks after this.
- Included leanings from Stand Alone Regulator, example:
- Universal Field FET driver, no more need for stuffing options to support 12-48v, P or N fields.
- Upgraded to INA226 and fixed divider resisters, no more need for stuffing options voltage sample
- System pre-regulator now 12v, largely to support universal Field FET driver
- Revised P-FET drivers to use a constant-current approach and thereby removing stuffing options (System voltage is still limited to 12v or 24v systems, even if Alternator / Field can go to 48v)
- Increased a bit the robustness of CPU protection, ala adding 100 ohm resisters between clapping diodes and CPU to help protect CPU internal clamping diodes.
- Moved most components to SMT.
This last change is perhaps the biggest, it will allow machine assembly of most all the low-power components on the board, plus a smaller PCB. Not only will one no longer need to hand-solder the small SMT parts (esp the INA226's), but by leveraging lower costs in China, we can get the partially assembled PCB w/SMT components for about the same cost as the blank PCBs alone from the prior source.
Note: Because the pre-regulator was modified (from 9v to 12v to support the FET driver) you MUST use a new LCD remote PCB with this new controller, or modify an existing one to use around a 12v pre-regulator. The voltages on the CAT-5 interconnect need to be about the same on both ends for the P82B96's to function correctly....
I will be sending this design off for manufacturing Monday. There is one set of boards not spoken for, if you want it drop me a line. Else I will start making a list, and perhaps do a next round if there are enough folks after this.
Sunday, May 25, 2014
1st cut - moving to SMT; getting ready for a short assembly run.
Last week I was busy revising the controller design and moving it to SMT parts. This is in preparation to having a small run of boards made up, and then machine assemble a large part of it. Major changes to the design include:
Overall, most everything has been touched and/or refreshed. The PCB is smaller now, 15x15cm to match a ‘price break’ size for may PCB fab housed. I looked into going to 15x10cm, but just ran out of edge space for all the connectors… Moving to SMT will allow China to not only manufacture the PCBs, but also do machine assemble of as much as possible. Will decide about hand-soldering through-hole components based on the outcome of the regulators, but it is not too promising IMHO.
Here are three CAD 3D renderings of the PCBs as they are now.
SO much blank space. PCB is 15 x 15cm. I looked into squeezing it more, to perhaps 15 x 10cm, but just ran out of edge space for all the connectors. SMT stuff is amazing; I even tried to select somewhat 'larger' parts in case repairs, or handwork is needed. Even so - - - -
For now I left the remote panel as through hole. There is only one part that likely will be SMT, as the DIP-8 versions are getting hard to find. This would mean you would need to solder up the remote yourselves, all the parts as opposed to just a few. My thinking is: There really are not many more components that can be put into SMT, the CPU, about a dozen resisters and diodes; it might not be worth the extra setup costs just for those.
I want to take a break over this weekend from this, and then do a review of the design as well as the PCB layout next week before releasing the revised schematic to the blog. One thing I need to double check is the heat disbursement; the SMTs are much smaller in that regard and I need to make sure I am not over-burdening anything.
There is now people interested in 8x of these controller boards, we are looking to do a small PCB run + machine assemble of the SMT parts. If you are at all interested in joining, drop me an Email. I figure things will get moving perhaps mid June.
- Utilized universal Field driver ckt to support 12v-48v, P or N type alternators. No more need for stuffing options.
- Also updated the FET drivers for things like starter, glow plug, etc to remove the need for stuffing options.
Power supply now stuffing free as well - Moved most of the components to SMT, and selected parts from the standard pool of parts at Smart-proto
Overall, most everything has been touched and/or refreshed. The PCB is smaller now, 15x15cm to match a ‘price break’ size for may PCB fab housed. I looked into going to 15x10cm, but just ran out of edge space for all the connectors… Moving to SMT will allow China to not only manufacture the PCBs, but also do machine assemble of as much as possible. Will decide about hand-soldering through-hole components based on the outcome of the regulators, but it is not too promising IMHO.
Here are three CAD 3D renderings of the PCBs as they are now.
![]() |
| Biggest change: controller board. Now mostly SMT, except the high power parts. |
SO much blank space. PCB is 15 x 15cm. I looked into squeezing it more, to perhaps 15 x 10cm, but just ran out of edge space for all the connectors. SMT stuff is amazing; I even tried to select somewhat 'larger' parts in case repairs, or handwork is needed. Even so - - - -
![]() |
| Only change for the remote is in the Power Supply side, to match the controller |
![]() |
| Notice how the PCB has been sized to match the LCD, no more overhang! |
For now I left the remote panel as through hole. There is only one part that likely will be SMT, as the DIP-8 versions are getting hard to find. This would mean you would need to solder up the remote yourselves, all the parts as opposed to just a few. My thinking is: There really are not many more components that can be put into SMT, the CPU, about a dozen resisters and diodes; it might not be worth the extra setup costs just for those.
I want to take a break over this weekend from this, and then do a review of the design as well as the PCB layout next week before releasing the revised schematic to the blog. One thing I need to double check is the heat disbursement; the SMTs are much smaller in that regard and I need to make sure I am not over-burdening anything.
There is now people interested in 8x of these controller boards, we are looking to do a small PCB run + machine assemble of the SMT parts. If you are at all interested in joining, drop me an Email. I figure things will get moving perhaps mid June.
Tuesday, May 20, 2014
MOVEMENT! Working to revive the PCB, and going to do a build / assembly run this summer.
Well,
The Stand Alone regulator is starting to see the end of the tunnel, and I am now going to put some focus on this integrated controller project. I have three persons interested in 6 or so PCB sets, so am going to be reviving the PCB. I am looking to do the following:
I have am just starting, so the details will be changing. But, the last item - moving to SMT - is to allow for the boards to be partially assembled via Machine. Not only the INA-226's, but also things like the Resisters, Diodes, etc...
If you are interested in one of these, drop me a line. Will not be ordering till later this summer, but if you want one, would be a good way to get one with the hard assembly work done, and for a reasonable cost.
The Stand Alone regulator is starting to see the end of the tunnel, and I am now going to put some focus on this integrated controller project. I have three persons interested in 6 or so PCB sets, so am going to be reviving the PCB. I am looking to do the following:
- Correct any known issues. (Very few).
- Transfer learns from the Alternator Regulator over (thinking about the FET driver, and Service Port)
- Moving more components to SMT.
I have am just starting, so the details will be changing. But, the last item - moving to SMT - is to allow for the boards to be partially assembled via Machine. Not only the INA-226's, but also things like the Resisters, Diodes, etc...
If you are interested in one of these, drop me a line. Will not be ordering till later this summer, but if you want one, would be a good way to get one with the hard assembly work done, and for a reasonable cost.
Thursday, February 20, 2014
v0.1.4 of source code posted
As promised, I have made a small change to the source to support either the INA-220 or the INA-226 chip. These are pin compatible chips, and either CAN be used, though the INA-226 is an improved chip.
If you are doing a 12v system, either will be fine. As with a 24v system (though to support 24v, the INA-220 will need some pre-scaling divider resisters, which the INA-226 can support a 24v system directly). For 26/48v, the higher native voltage of the INA-226 (36v vs. 28v), plus its higher input impedance makes for a slightly more stable and accurate measurement chip.
You can read a bit more about this here: SmartDCgenerator.blogspot.com/....improved-voltage-sensing-chip
Now, a WORD OF CAUTION: Because I am away from the boat these days, I have NOT BEEN ABLE TO TEST THIS CODE ON ACTUAL HARDWARE!!! As such, I left the prior version (v0.1.3) on the google drive as well as the new v0.1.4 version.
Also note that I revised the order of the parameters for the #define AMP_SHUNT definition, from mv/Amps to Amps/mV
If you are doing a 12v system, either will be fine. As with a 24v system (though to support 24v, the INA-220 will need some pre-scaling divider resisters, which the INA-226 can support a 24v system directly). For 26/48v, the higher native voltage of the INA-226 (36v vs. 28v), plus its higher input impedance makes for a slightly more stable and accurate measurement chip.
You can read a bit more about this here: SmartDCgenerator.blogspot.com/....improved-voltage-sensing-chip
Now, a WORD OF CAUTION: Because I am away from the boat these days, I have NOT BEEN ABLE TO TEST THIS CODE ON ACTUAL HARDWARE!!! As such, I left the prior version (v0.1.3) on the google drive as well as the new v0.1.4 version.
Also note that I revised the order of the parameters for the #define AMP_SHUNT definition, from mv/Amps to Amps/mV
Sunday, January 12, 2014
I am still here!
No, this Blog is not dead. I am still here, it is just that with the Winter there has not been too much to do on the DC generator. But I do have some additional changes to make in the Firmware. I am going to add in a switch for the improved INA-226 Voltage sampling chip, leveraging work off of the stand alone alternator regulator. And this winter I found myself needing to rebuild the Kubota EA-300 engine, its blow-by increased greatly over last summer. A tear down revealed a need for a complete overhaul (head and resleeving). Machinists figures the engine sat for several years w/o use, and w/o being prepared for such storage. Given it was an Army Surplus / EBay engine, who knows. But in any case, for well under $400 I have a new head / cylinder and almost a know engine!
What this means is I will be adding an engine profile called 'break in', need to research the appropriate loading regiment for engines and will add a switch to the source to all for this. While I am at it, I will be adding two pressure monitors to the water-maker: Prefilter - looking for vacuum, and HP side - looking for overpressure. These will be traps to stop things if a fault occurs, as opposed to active monitoring and control. (That might be down the road). But I want to add these safety features at least.
Still have a couple of PCBS left, if anyone is interested. Do ask you pay for shipping of one, and if you are willing also pick up the shared cost of their fab ($40).
Stay tune for a revision to the source, I figure I will be able to get the INA-226 out some time before April, with the break-in profiling after that. And will also spend some time running through the whole blog - cleaning it up some as well as filling in some of the stubs.
What this means is I will be adding an engine profile called 'break in', need to research the appropriate loading regiment for engines and will add a switch to the source to all for this. While I am at it, I will be adding two pressure monitors to the water-maker: Prefilter - looking for vacuum, and HP side - looking for overpressure. These will be traps to stop things if a fault occurs, as opposed to active monitoring and control. (That might be down the road). But I want to add these safety features at least.
Still have a couple of PCBS left, if anyone is interested. Do ask you pay for shipping of one, and if you are willing also pick up the shared cost of their fab ($40).
Stay tune for a revision to the source, I figure I will be able to get the INA-226 out some time before April, with the break-in profiling after that. And will also spend some time running through the whole blog - cleaning it up some as well as filling in some of the stubs.
Saturday, October 19, 2013
Improved Voltage sensing chip?
Over the summer I have been working not only on refinements to this integrated engine controller and alternator regulator firmware, but have also been working on the stand-along alternator regulator project (arduinoalternatorregulator.blogspot.com/). One of the goals of the standalone regulator was to self-adjust for 12v up to 48v batteries. After I finish the stand-alone regulator I will be taking all the learning’s and rolling them back into the integrated controller, but there is one learning that I think would be appropriate to share today…
The INA-220 is a great chip, and core to these designs. It also is limited to 28v max. As such, to use it for any system greater then 24v divider resisters are needed to pre-scale VBat (and even 24v batteries can exceed this limit during equalization). What I found out over the summer is the input impedance of the INA-220 is not that stable from part to part, and is also rather low. As such the resister divider network tends to introduce a wider range of error that I would like – errors that delta from part to part.
Fortunately, TI now offers an upgraded part called the INA-226. This is pin compatible to the INA-220 and has much better input impedance characteristics – both higher and better controlled. And more interesting, it is tolerant up to 36v natively! So, this means that NO pre-scaling will be needed for 12v or 24v systems, even during equalization on 24v batteries.
So if anyone is looking to do a 24v or 48v system you might want to look to upgrade the INA-220s to INA-226s. It will give you much more accurate results as well as reduce the need to ‘fine tune’ adjustment factors. (and 24v systems will need no resistor divider at all) There is a firmware change needed as the new parts have a slightly different register layout; I have some parts on order and will be updating the firmware over the next couple of months.
The INA-220 is a great chip, and core to these designs. It also is limited to 28v max. As such, to use it for any system greater then 24v divider resisters are needed to pre-scale VBat (and even 24v batteries can exceed this limit during equalization). What I found out over the summer is the input impedance of the INA-220 is not that stable from part to part, and is also rather low. As such the resister divider network tends to introduce a wider range of error that I would like – errors that delta from part to part.
Fortunately, TI now offers an upgraded part called the INA-226. This is pin compatible to the INA-220 and has much better input impedance characteristics – both higher and better controlled. And more interesting, it is tolerant up to 36v natively! So, this means that NO pre-scaling will be needed for 12v or 24v systems, even during equalization on 24v batteries.
So if anyone is looking to do a 24v or 48v system you might want to look to upgrade the INA-220s to INA-226s. It will give you much more accurate results as well as reduce the need to ‘fine tune’ adjustment factors. (and 24v systems will need no resistor divider at all) There is a firmware change needed as the new parts have a slightly different register layout; I have some parts on order and will be updating the firmware over the next couple of months.
Sunday, October 6, 2013
v0.1.3 of source code posted
Today I posted V0.1.3 of the source code. Over the summer I have been fine tuning the controller, looking at the PID for managing of watts and more specifically how it handles temperature limits, added a couple of new operating modes and a true load-dump trap. Changes include:
- Corrected bugs in LOCKOUT mode.
- PID tuning for Amps and Temperature PID engines.
- Two new modes: Quiet Generating, and Prime Oil Pressure
- Load Dump trap (based on rate of change of Voltage vs. time)
- Self-learning wattage caps when over temperature situations are detected
- new #define TESTING that allows for limited bench-testing w/o generator
You can see the new source code via the SOURCE link above. I also posted v0.0.2 of the integrated remote source code which is needed in order to select Quiet Generation mode from the remote. You can still use v0.0.1 of the remote code (or even the original non-Arduino based LCD remote design), you just will not be able to place the generator into Quiet Mode.
Perhaps the biggest change is on how over temperature limits are handled. In addition to doing some tuning of the PID engine (mostly around EGT limits), I also added in code that will learn from over temperature conditions and reduce the maximum load placed on the engine. This is to prevent the over temperature situations from happening again. It also removes an interaction between the Watts PID and the Temperature PID. (I 1st noticed this happening when EGT limits were exceeded. The EGT PID would pull things back till the engine cooled at which time the Watts PID would say - OK, lets Go Hard Again!!). Watts Pullback is enabled for all three of the temperature limits (EGT, Engine, and Alt), but the EGT is the temperate most likely to walk the the line,. This is to be expected as a key goal of this project was to minimize total run time by maximizing the load on the engine at all times. So, I added code to pull-back the target watts whenever a temperature limit is reached. And this pullback is self learning, resetting itself each time the generator is restarted.
Quiet Mode is a new mode that simply limits the engine RPMs to a defined maximum (with the appropriate reduction in watts to match the lower engine power output). Allowing 'quieter / gentler' running - suitable for those times when running Full Out is not appropriate. With the new remote LCD code, Quiet mode is selected by pressing AND HOLDING the Run-Gen switch for 3 or more seconds. And you can toggle in / out of Quiet Mode by simply pressing the Run-Gen switch to get back to Full Power; pressing and holding it to get back into Quiet mode.
Prime Oil Pressure will enable the starter but NOT the fuel. It will turn the starter while monitoring the Oil Pressure gauge waiting for the Oil pressure to come up. (Starter is spun in the same pattern as during regular starting - currently defined as a max of 5 seconds, the a 4 seconds rest period. repeated a up to 4 times - See source code to change these values). It can be used to 'prime up' the engine oil system after changing oil. Currently the only way to select this mode is via an attached debug terminal.
I added in code to specifically look for a load-dump condition. While debugging the stand-alone voltage regulator I found the PID engine alone was not sufficiently quick to rein in large alternators (ala the 270A monster I have on our mains vs. the 135A one of the generator) where there was a massive reduction in load on the overall system. For example, when the heating element on the dryer cycled off and the battery was almost fully charged (and hence the battery voltage was at its target) I could see a voltage overshoot approaching 450mV (almost 1/2 a volt). I added in code to not only more aggressively reduce the PWM if a voltage overshoot condition occurs, but more importantly try to prevent it in the 1st place by looking at the rate of change of voltage over time (dV/dT). Using both these approaches I am able to contain load-dump overvoltages to 35mV above target.
And finally I placed in a #define TESTING switch. Enabling this will dummy-up key sensing (ala battery voltage, alt amps, EGT, etc..) to allow for a level of bench-testing of the code on a stand-alone Arduino development board. It is some of the early mock-up code I had in there before I had real hardware, and I find it useful when doing things like adding new modes of operation (ala Quiet mode) to be able to 'test' things out before trying it out on real hardware. But DANGER: MAKE SURE #TESTING IS NEVER DOWNLOADED TO A REAL GENERATOR, as all the sensors are dummied up, and hence you run the massive risk of really doing bad things!!
OK, so, some small improvements. We now have 100's hours on the system now, in generate mode as well as watermaker/generate mode. And I am still very happy with how it is working!
Thursday, September 12, 2013
Transfer of Technology - Load Dump
This summer I have been working on a Stand Alone - Alternator Regulator only project. Built upon this DC Generator code, it removes all the engine control logic while retaining the monitoring of Volts AND amps - and is an open source / Arduino code base as well!
One of the benefits of this Regulator Only project is being able to back-port improvements to the DC Generator design. A prime example is Load Dump - though with my smallish Alternator the PID logic was able to handle Load Dump situations in the DC generator, PID was not fast enough for rein-in larger alternators. Ala, the 270A one on Viking Stars main engine.
So, today I improved the regulator code adding in Load Dump detection and associated Field PWM pullbacks.
And you can be sure this code will make its way into the DC Generator's code base - just as appropriate changes in the DC generator source are ported into the stand alone regulator code base.
To learn more about Load Dump and how I addressed it - click here: arduinoalternatorregulator.blogspot.com/2013/09/looking-at-load-dump.html
One of the benefits of this Regulator Only project is being able to back-port improvements to the DC Generator design. A prime example is Load Dump - though with my smallish Alternator the PID logic was able to handle Load Dump situations in the DC generator, PID was not fast enough for rein-in larger alternators. Ala, the 270A one on Viking Stars main engine.
So, today I improved the regulator code adding in Load Dump detection and associated Field PWM pullbacks.
And you can be sure this code will make its way into the DC Generator's code base - just as appropriate changes in the DC generator source are ported into the stand alone regulator code base.
To learn more about Load Dump and how I addressed it - click here: arduinoalternatorregulator.blogspot.com/2013/09/looking-at-load-dump.html
Monday, August 26, 2013
Nope, not the Final version…
| And I just add a little bit here, . . . . |
Just cannot stop playing…
Over the past few weeks I have been tuning the PID parameters around the
EGT, smoothing it out much more. I also
added some code to self-correct the regulator in cases where there was an
over-temperature situation (EGT, Engine, Alternator). I found while looking at the EGT limited conditions,
the EGT PID would work to take the engine load down, but then once the temp had
cooled off the Watts PID would turn around and apply the same level of loading
that created the over-temperate situation in the 1st place!
So I added in some code to apply a derating factor to the
target watts every time the engine showed temperate stress (coolant, and/or EGT). I did the same for the alternator, but
derated the target Amps instead. (I put
the same modification into the stand alone alternator code as well)
Also added in a new ‘function’ to allow for oil-pressure
priming, for example after changing the engine oil. All I do is spin the starter with the fuel
cut-off until the Oil pressure builds.
But I am going to have to figure out some way to select that from the
remote, right now it can only be accessed via the Debug port. And speaking of that, it is yet another
reason that I likely will be refining the code between the controller and the
remote, to allow for alternative starting patterns… But THAT will be a Winter project.
Not posting the revised source just yet, will wait in case (for when. . . ) I find
some other small things to futz with.
Sunday, August 4, 2013
Posted v0.1.2 of Source - Finial Version???
next key would not only restore backlighting on the LCD but also advance to the next screen, as opposed to only restoring backlighting), improved OneWire handling (Still think there is more to do there…), but mostly this version has been exercised using the Watermaker in conjunction with the ‘generator’.
The capability of producing some Amps while also driving the watermaker high pressure pump was the 2nd major goal for this project. As commercial regulators did not give me sufficient control, previously I would turn off the alternator when making water. Now I can get 800w (50+ amps) into the batteries WHILE also running the reverse osmosis watermaker.
At this point I consider this project largely completed. Over the next months I will continue to correct any small bugs I find, but for the core of the project it is completed. As next steps I see three potential opportunities:
- Add the ability to monitor critical Watermaker pressures (boost pump and High pressure pump), issuing warning when they are getting out of range, and faulting then they cross the line.
- Rollback hardware / software learning’s from the stand-alone alternator regulator projected (http://arduinoalternatorregulator.blogspot.com/). E.g., the improved FET driver ckt, etc.
- Enhanced the User interface on the LCD display. Now that it is based on its own Atmel CPU, I can add a binary communication protocol and do things like provide the ability to select ‘Quite Mode’ at startup for the generator (ala, starting it up, but limiting the RPMS, and of course Amps , to keep things at a nice quite noise level), or perhaps a gateway into NMEA-2000? Who knows?
Overall I think the 1st item is critical, as I currently need to watch the watermaker settings every 15-20 minutes or so to make sure they do not drift out of allowable settings when the pre-filters clog up and / or the system changes as temperatures change. I am debating to use a simple pre-existing China I2C A/D board with some jumper wires, or to do up a small 'expansion board' that will have a bit more functionality and also better physical mounting. But this is all a Fall project as I do not have access to mail-drops until we return to a port somewhere for the winter.
And I still have one board set left, if anyone is interested. Thanks again to all who have helped with this project, and to those building up aboard set – looking forward to hearing about your results!
Saturday, July 27, 2013
Just touching basis..
There has not been much activity on this Blog for a while / no new posts - and for a reason: We have just been using the controller and it is working well! As such, do not really have much to say...
We have, however, started using the Watermaker - and I have been finding a few small issues I need to adjust in the source around handoffs between generating and watermaker starting / stopping. After I get it more ironed out (really in the corners here, the core operations works great) will post a revision to the Source.
And speaking of Watermaker: I had an issue the other day where the pre-filters clogged up and caused the system to go out of operation range. We noticed it when the single drive belt to the high pressure water pump started squealing. Though I have played with the idea of 'automating' the watermaker (making it Push-the-button like the Generator), I have not - mostly due to complexity around physically controlling the valves. But the event yesterday did get me thinking I will at least add pressure senders to both the High pressure and Pre-filter Boost pump, and monitor those for going out of range. Am looking to do a warning (via the buzzer in the remote) if the values get into the 'yellow' range, and then FAULTING / cutting off the High pressure pump if the values go over a fault threshold. For now, I just make sure to check the Watermaker every 20-30 minutes to see how it is doing....
And this is a LONG way from full automation, to get to that would need to add Flow sensors, as well as actuators for the valves. That can wait, but I will feel much better once I have the controller at least monitoring the critical Watermaker pressures.
We have, however, started using the Watermaker - and I have been finding a few small issues I need to adjust in the source around handoffs between generating and watermaker starting / stopping. After I get it more ironed out (really in the corners here, the core operations works great) will post a revision to the Source.
And speaking of Watermaker: I had an issue the other day where the pre-filters clogged up and caused the system to go out of operation range. We noticed it when the single drive belt to the high pressure water pump started squealing. Though I have played with the idea of 'automating' the watermaker (making it Push-the-button like the Generator), I have not - mostly due to complexity around physically controlling the valves. But the event yesterday did get me thinking I will at least add pressure senders to both the High pressure and Pre-filter Boost pump, and monitor those for going out of range. Am looking to do a warning (via the buzzer in the remote) if the values get into the 'yellow' range, and then FAULTING / cutting off the High pressure pump if the values go over a fault threshold. For now, I just make sure to check the Watermaker every 20-30 minutes to see how it is doing....
And this is a LONG way from full automation, to get to that would need to add Flow sensors, as well as actuators for the valves. That can wait, but I will feel much better once I have the controller at least monitoring the critical Watermaker pressures.
Friday, June 14, 2013
Integrated Controller v0.2.3 PCB Errata - SCR Artwork is backwards:
Yesterday I discovered an error in release v0.2.3 of the PCB: U1 (SCR): Silk screen is backwards, install this part opposite of how the silk screen indicated. (Flat side of SCR should FACE the copyright notice wording, not the middle of the PCB).
If you are assembling PCBs v0.2.3, just solder in the SCR opposite of what the silk screen shows. The controller will work if the SCR is soldering as shown, but doing so will prevent the crowbar from functioning if it needs to!
If you are assembling PCBs v0.2.3, just solder in the SCR opposite of what the silk screen shows. The controller will work if the SCR is soldering as shown, but doing so will prevent the crowbar from functioning if it needs to!
Saturday, June 1, 2013
Posted code release v0.1.1 for integrated controller
This evening I posted a small revision to the Integrated controller source code. It has three changes:
- Improvements to the one-wire code when a sender fails. Now has more robust re-try and restart code.
- Changed internal variables used for Alternator AMP measurements from INT type to FLOAT type. This will retain the finer resolution from the INA-220's that had been discarded before.
- Fine tuned the engine load parameters table "RPM_Watts_array[]". Am getting this really zoned in for MY engine combination.
Wednesday, May 22, 2013
Major milestone! Posted v0.1.0 of the controller code!
Tonight I posted what I consider the 1st stable release of the Controller code, V0.1.0 (See "Source Code" link above). No longer a development release (v0.0.x), this is what I would say is a good starting point for actual operation.
After leaving our winter port in Friday Harbor we have put over 100hrs on the generator, and it has been working very very well. Over the past couple of months the area I have had to work the most was Throttle Control, specifically the ability to respond to changing loads while in the final stages of charging. Not only does the Alternator need to be held off until RPMs come up, but also the controller now tends to stick at Higher RPMs for a while just in case a load is quickly cycling.
For this Summer we will be using the Generator with this version of code. (or not, we are getting into the Sunny days, and the Solar Cells are bring in more and more power). I have not done anything with the Watermaker code. That will wait until we actually start using the Watermaker.
This has been a fun project, and I a will likely do some more in the future. Specifically - with the Arduino based LCD remote I might look into adding some ability to modify configuration parameters via the remote (as opposed to re-compiling the source).
One surprise I had from this is Auto-shut down. We have found we tend to start the Generator before leaving the boat for a while, and it is great to have the knowledge that the Generator will automatically shut itself down when the batteries are fully charged! Very very nice, and a feature I had not anticipated when starting this project. With the adaptive throttle control we also tend to let the generator run longer, doing final topping off of the battery. It is not that intrusive just idling away, and I am sure the batteries will be much much happier. But it does rack up the running hours!
This summer I will continue to work on bugs, and post updates as they are ready. And as I develop the stand-along Alternator regulator I might make some back edits into the this controller code. Until then, will be enjoying our new SMART DC Generator!
For this Summer we will be using the Generator with this version of code. (or not, we are getting into the Sunny days, and the Solar Cells are bring in more and more power). I have not done anything with the Watermaker code. That will wait until we actually start using the Watermaker.
This has been a fun project, and I a will likely do some more in the future. Specifically - with the Arduino based LCD remote I might look into adding some ability to modify configuration parameters via the remote (as opposed to re-compiling the source).
One surprise I had from this is Auto-shut down. We have found we tend to start the Generator before leaving the boat for a while, and it is great to have the knowledge that the Generator will automatically shut itself down when the batteries are fully charged! Very very nice, and a feature I had not anticipated when starting this project. With the adaptive throttle control we also tend to let the generator run longer, doing final topping off of the battery. It is not that intrusive just idling away, and I am sure the batteries will be much much happier. But it does rack up the running hours!
This summer I will continue to work on bugs, and post updates as they are ready. And as I develop the stand-along Alternator regulator I might make some back edits into the this controller code. Until then, will be enjoying our new SMART DC Generator!
Saturday, May 11, 2013
Connecting the Controller up
I have been working on documenting how to connect up the controller, see INSTALLATION section above.
http://smartdcgenerator.blogspot.com/2000/01/installing-and-connections.html
And here is a table I made as well:
http://smartdcgenerator.blogspot.com/2000/01/installing-and-connections.html
And here is a table I made as well:
|
Name
|
Grouping
|
Purpose
|
Connect to
|
Expected Voltage
|
Min Wire Size
|
Fuse
|
Note
|
|
BAT +
|
System
Battery
|
Provides
power to controller. Also powers FIELD
in V1 of controller PCB.
|
System
Battery +
|
Up to 24v
|
14g
|
15A
|
|
|
|
|||||||
|
VBat +
|
House
Battery
|
Measures
voltage in house battery
|
House
Battery +
|
With
appropriate configuration up to 48v.
|
18g, twisted pair
|
2A
|
Connect
these wires AT the house battery as close to the battery terminals as
allowed.
|
|
VBat -
|
|
House
Battery –
|
|
|
|||
|
BAT -
|
|
House
Battery –
|
|
14g
|
|
Connecting
BAT – to the House Battery Ground gives better stability in VBat measurements.
|
|
|
BATTERY Temp
|
Measure
House Battery temperature
|
Battery
Temperature probe
|
|
Cable
|
|
Typical
place probe on – terminal of battery in middle of battery bank.
|
|
|
|
|||||||
|
CSh +
|
Common
Battery
|
Measured
alternator current, as well as starter current to determine if engine has
started.
|
+ terminal
on Current Shunt (Terminal on BATTERIES side of shunt)
|
|
18g, twisted pair
|
|
System can
be modified to support separate shunt for Alternator and Starter, by
re-purposing EGT port. Will require
modification of controller code.
|
|
CSh -
|
- terminal
on current shunt
|
|
|
||||
|
|
|||||||
|
FLD
|
Alternator
|
Provides
field voltage to control alternators.
|
F terminal
on Alternator
|
PWM
controlled – between 0v and FLD-DRIVE
voltage (Configurable to 48x)
|
14g
|
|
Use larger
wire if Field currents in excess of 10A expected.
Note: FLD-DRIVE and FLY-Fly are not used on V1 of
controller board. Instead these are
internally connected to BAT + and BAT – (System battery)
|
|
FLD DRIVE
|
Allows
selection of P-type or N-type alternators (along with board stuffing options
– see Configuration)
|
System
Battery + for HIGH DRIVE alternators, System Battery - for LOW DRIVE alternators
|
|
14g
|
15A
(If connected to Battery +)
|
||
|
F-FLY
|
System
Battery - for HIGH DRIVE alternators, System Battery + for LOW DRIVE alternators
|
|
14g
|
||||
|
STATOR
|
Determine
RPMs of alternator (and hence engine).
Also used to lock-step voltage and current measurements with Stator.
|
Stator
terminal on Alternator
|
|
16g
|
2A
|
|
|
|
ALT Temp
|
Measure
Alternator temperature
|
Alternator
Temperature probe
|
|
Cable
|
|
Typically
place probe on + terminal of alternator.
|
|
|
|
|||||||
|
EGT -
EGT +
|
Engine
|
Determine
EGT of engine. Used to prevent
overloading engine
|
EGT probe
|
|
EGT probe wires
|
|
Do not
extend these wires, purchase probe w/ needed length.
|
|
START
|
Engage
starter. This will raise to System +
voltage when starter is be engaged.
|
Starter
solenoid
|
BAT + when
active
(See note re: V1 boards)
|
14g
|
|
Note that in
V1 of controller, this is an ACTIVE LOW signal
|
|
|
FUEL P
|
Engage Fuel
Pump
|
Fuel pump
|
BAT + when
active
|
14g
|
|
|
|
|
GLOW
|
Engage Glow
Plug
|
Glow Plug
|
BAT + when
active
|
14g
|
|
|
|
|
Oil Low
|
Indicated to
controller oil pressure is low.
|
Low Oil
Sender
|
Sender
should GROUND this line when oil pressure is low.
|
16g
|
|
|
|
|
RAW-W
|
Indicated to
controller cooling water flow is low.
|
Water Flow
Sender
|
Sender
should GROUND this line when water flow is low.
|
16g
|
|
|
|
|
Th-CL
|
Engages
Throttle Controller clutch
|
|
BAT + when
active
|
14g
|
|
|
|
|
Th-UP
|
Increases
Engine Speed
|
|
BAT + when
active
|
14g
|
|
|
|
|
Th-DN
|
Decreases
Engine Speed
|
|
BAT + when
active
|
14g
|
|
|
|
|
ENGINE Temp
|
Measure
engine coolant temperature
|
Engine
coolant Temperature probe
|
|
Cable
|
|
|
|
|
SEA WATER temp
|
Measures
temperate of sea water pump, used to detect run-dry conditions
|
Sea Water
Temperature probe
|
|
Cable
|
|
|
|
|
Exh-MIX
|
Measured
temperature of exhaust mixer. Use to
detect failure in coolant water flow.
|
Exhaust
mixer Temperature probe.
|
|
Cable
|
|
Typically
this probe is attached to the sea water injection point on the exhaust
system.
|
|
|
|
|||||||
|
W-Mkr
|
Water
maker
|
Engages
Watermaker high pressure pump
|
Clutch on
Water maker.
|
BAT + when
active
|
14g
|
|
This can be
reconfigured via #define statements in the source code to drive coolant
co-gen pump instead.
|
|
|
|||||||
|
R-GN
|
Local
Control Switches
|
Request starting of Generator mode
|
SPST-MOM
switch to Ground to request generator
|
|
16g
|
|
|
|
R-WM
|
Request
start of Watermaker mode
|
SPST-MOM
switch to Ground to request Watermaker
|
|
16g
|
|
|
|
|
S-ALL
|
STOP
ALL!
Also
provides safety interlock / override for remote control panel
|
SPST switch
to ground to stop all, leave connected to Ground for safety interlock.
|
|
16g
|
|
If left on
ground, ‘LOCKED OUT’ will appear on remote LCD display.
|
|
|
|
|||||||
|
Remote
|
Remote
|
Wiring and
Power to remote control panel
|
Remote Panel
|
|
CAT-5 cable
|
|
|
Subscribe to:
Posts (Atom)


