Help with dual axis solar tracker
Good day everyone, I'm new here. My name is Kevin, I am from just outside Guelph Ontario.
We bought a house that has a triple array of solar panels controlled by hardware and programing designed by Cannibal Robotics. The company that installed it (Solar Direct Canada) has stopped supporting it as Cannibal Robotics seems to have disappeared.
We are have issues with hardware, as components on the control boards keep failing. I have a friend that is good with electronics, so we can do some diagnoses and replace parts, but I am hoping to come up with a more robust system or at least one more reliable.. I can upload the schematics as Solar Direct was able to supply them, including the programing.
As we do not have experience with controlling or programing this system, I am hoping for some suggestions from the group. I can upload the programing or send via email or pm. We are hoping to understand the initial set up and zeroing the system to allow us to calibrate it properly.
The read me text document with the programing has this as a note in the text document.
───────────────────────────────────────
Parallax Propeller Chip Project Archive
───────────────────────────────────────
Project : "SDC_Main_r2-57"
Archived : Friday, April 11, 2014 at 10:16:56 AM
Tool : Propeller Tool version 1.2.7 (R2)
Comments
Uploading the code (archive, as that will hold libraries used) and an relevant docs would be helpful.
Hi Jon
Here are the schematics and the main program and the read me text. I do not know what information is required..
@JonnyMac said:
You also need the other Obj. In the program
I don't know enough about the programing to know what this means. Here are the remaining programs I have.
Perhaps I'm not looking at it right, but in the first schematic it looks like you have a ULN2803 driving I2C lines (SCL, SDA). That configuration may not work very well.
Well done, that’s it. Look in the beginning section of your code, you will see a section labeled Obj. Short for object, these are other routines called in the main program. Like when you see GPS.. I have not had the opportunity to load your code yet. I’ve been commenting off of my IPad.
Hi Beau, I understand that it may not be the best configuration, but it is what was installed and ran for many years (10+). As I understand it, the one side is input and the second is an output. This is the signal coming from the program board. This allows the signal to pass through from one control board to another. I have three (3) arrays total.. Right now I have the second (2) array's power turned off, as this control board has some hardware issues that we are trying to diagnose, but the signal still passes through to the third (3) array.
Here is the archived project with all the files from the PropTool.
"We are have issues with hardware, as components on the control boards keep failing."
You might want prevent forum members from doing wild guessing?
Which components failt with which symptoms under which circumstances?
Thank you for posting the archived ZIP program. Yes, that looks like the files I have.
You can do the same by using FILE>ARCHIVE from the Propeller Tool with the project open.
We have had relays (RLY 1 through 4), as well as chips U1 (MCP23017) or U2 (ULN2803A) on schematic RelayV16_Page1 fail. Not usually not more then one item at a time. If the relay board has a chip failure we can still move the motors using SW1 through SW4
Unfortinatually I do not know exactly what conditions cause them to fail. As I only notice after a few days when the panel has stopped in one position and not moving or zeroing out overnight.
I have not had any issues with any of the CPU components.
Should never be any IC fails. The fact you get any is indication of severe noise injection, presumably from the motor switching.
There may be a ground loop problem but, because the relays are on the circuit board, probably it's just the proximity of RF from the contacts arcing is the problem.
I have a request: A photograph of the circuit board would help with ascertaining the build and hopefully ID the unnamed ICs and relays used.
Also, photo of the motor and its terminals. There should be suppression components used to lessen the arcing.
I will have to see about clear photos of everything.
Hopefully these are clear enough photos.
Resized and attached
The PCB photo is too low res. The forum software rescales its displayed photos. Try reposting the PCB photo as just an attached file instead.
EDIT: Good idea to make all three photos into file attachments. Lowers the forum network loading then. Edit your posting and change it.
I guess the motors will be getting wet regularly. Probably not good adding components in that environment. The 5 Amp Venture motor likely has bare terminals with just the wires only attached. No varistor or other spike suppression. The 2.8 A Huafang motor looks to be a plug with little room for anything other than the wires.
The motor plug on the PCB will be easiest place to add some suppression to reduce the contact arcing of the relays.
Which relays have been replaced so far? Got it, all four.
To be honest, I feel all the chosen relays need turfed. General purpose relays simply aren't built for motor switching. If they aren't auto-grade, something like window wiper or headlight relays, they won't be up to the job. Such won't fit that PCB though. But having the right relays still doesn't stop the arcing. Suppressors are still needed.
One common solution is to go solid state switching. Transistors naturally soak up the flyback currents so preventing the high voltages that would otherwise produce an arc. It's even possible to retrofit a solid-state-relay (SSR) in these situations ...
Files resized and attached.. Thanks Evanh.
Ha, just found something really intriguing - Ixys CPC1918. It's using a technique I've not seen for decades, but was only used for milliamp rated parts back then. It trades response time for hard switching of the MOSFET. Not a problem when it's replacing a mechanical relay. Big plus is doesn't need a hulking heatsink attached that other SSRs need.
Thanks. Hmm, the op-amp from ST ain't well labelled. 73C doesn't mean anything to me. Usually the bottom line is just production batch info. Never mind, it's not a target at the moment.
See if you can source the CPC1918 component. I feel it'd make an excellent SSR. Certainly a lot cheaper than using the bigger parts I was going to recommend.
The CPC1918 is out of stock at Digi-key. Do you think the CPC1909J work as well? It has a higher load current at 6.5 A.
Would you still suggest suppression on the outputs?
Yes, CPC1909 is better option. Only just found the webpage for them now - https://www.ixysic.com/Products/SSRPower.htm
Nope, no need for extra suppression components. SSRs naturally prevent the voltages that arc. The blocking voltage listed is as high as it'll allow. On that note, the lower 60 V blocking voltage of the CPC1909 is also desirable over.the 100 V of the CPC1918.
Huh, the CPC1709 is even better. Although it does require wiring polarity correctly.
I would remake the relay board, Rly1 and Rly3 are the On/Off relays and Rly2 and Rly4 are the motor reversing relays. All power routing is on the board. Start new and opto the relays. Any picture of the prop1 board
Hmm, the labelling of the buttons (Up/Down/Left/Right) doesn't match relay functions. Each button operates only one relay but, like you say, the schematics indicate the relays are instead Direction+On pairs. The schematic must be out of date.
PS: Amusingly, the NC contact as drawn would leave the motor powered by default.
EDIT: Oh, I missed D1 and D2. Yeah, that's going to be a pain for SSRs.
I know! Keep the mechanical direction relays as is. Just update the On/Off relays with SSR. The software sequencing should already have the right delays for clean switching of the direction relays. Using the manual buttons will still suck though.
Hi Bob. We are also considering this option. Sorry, I do not currently have any pictures of the Prop1 board, as we haven't had any issues with it yet. As its -20C here today, plus wind chill, pictures will have to wait until a warmer day.