I'm starting a new thread for this so as not to hijack any other thread - this really is a separate discussion.
If you search for Raspberry Pi Power Control in your favorite search engine, you will see that many people are using Raspberry Pis to control power to various devices. If you have an older C-band dish as I do, you may be a bit frustrated by the fact that none of the existing positioner controllers out there have any network connectivity, making it impossible to control them from another computer elsewhere on the network. And yet, it seems to me that someone with a bit of hardware and software experience ought to be able to control a positioner motor using a Raspbery Pi and some interface equipment.
Let's first consider what would be needed. We would need the Raspberry Pi with its power supply, and we'd need a separate DC power supply to drive the dish motor, something that puts out 36 volts DC at around 5 amps. Since we're only using it to drive a motor, I don't even think the DC supply needs to be filtered - you could probably take an AC step-down transformer that puts out the correct voltage and sufficient current, and run it through a bridge rectifier that can handle that kind of current. Then you would need a couple relays, one to actually apply power to the circuit (this could even be done on the AC side of the transformer) and one to switch the polarity to reverse the direction. The only other thing that would be needed is some kind of transient voltage suppression, so that kickback voltage doesn't fry the rectifier bridge, unless you somehow manage to pick up a bridge rectifier with a very high voltage rating. I am not an electronics engineer, so I won't comment on specific ratings for those parts, but that would be the gist of the circuitry that drives the motor.
Then we'd need a way to drive the relay coils from the Raspberry Pi GPIO pins. Typically this involves using some sort of interface circuit that requires (at a minimum) a transistor, resistor, and a rectifier to absorb the kickback voltage from the relay coil. Such circuits are shown on numerous pages on the web. For switching the AC side of the transformer you could even use a triac-based circuit driven from an optoisolator, to protect the Raspberry Pi somewhat. An inexpensive commercial circuit board that might be useful for that purpose is this one.
And then we'd need a way to read the pulses from the sensor in the positioner. As I understand it, these are simple contact closures, so all you would need is to connect those wires to the +3.3 volts and one of the GPIO pins on the Raspberry Pi, perhaps with a current limiting resistor and something to absorb any transient voltages that come down the line (such as induced current from the motor wires) so those can't fry your Raspberry Pi. To be really safe, you could use some kind of opto-isolator and drive it from a separate power supply.
If all you want is to have the computer control the movement of the dish, for example on a particular schedule, then everything else could be done in software. On the other hand, if you want a receiver to also be able to control the dish, then you would need some way to decode the DiSEqC signals output by the receiver. I have no idea how that it accomplished, but perhaps someone else does.
I only bring this up because none of the current crop of controllers seem to be network aware. Even the new Titanium Satellite ASC1, discussed in another thread, does not offer any kind of network interface at all (if it did, it would be the perfect controller!). But with a Raspberry Pi and the proper hardware and software driving the dish, you could change the dish position any way you can envision, from a simple cron job to move the dish at a particular scheduled time, to a fancy web-based interface. Unfortunately, actually building hardware is not my forte; I am real good at liberating the trapped smoke from electronic components, but not so great with the intricacies of circuit design. Still, this seems like it should be a pretty simple circuit for anyone that has even moderate experience with this sort of thing.
So, has anyone ever attempted to build anything like this? And also, does anyone happen to know how to read and/or generate the DiSEqC signals used to control a positioner using a Raspberry Pi, or similar single board computer?
If you search for Raspberry Pi Power Control in your favorite search engine, you will see that many people are using Raspberry Pis to control power to various devices. If you have an older C-band dish as I do, you may be a bit frustrated by the fact that none of the existing positioner controllers out there have any network connectivity, making it impossible to control them from another computer elsewhere on the network. And yet, it seems to me that someone with a bit of hardware and software experience ought to be able to control a positioner motor using a Raspbery Pi and some interface equipment.
Let's first consider what would be needed. We would need the Raspberry Pi with its power supply, and we'd need a separate DC power supply to drive the dish motor, something that puts out 36 volts DC at around 5 amps. Since we're only using it to drive a motor, I don't even think the DC supply needs to be filtered - you could probably take an AC step-down transformer that puts out the correct voltage and sufficient current, and run it through a bridge rectifier that can handle that kind of current. Then you would need a couple relays, one to actually apply power to the circuit (this could even be done on the AC side of the transformer) and one to switch the polarity to reverse the direction. The only other thing that would be needed is some kind of transient voltage suppression, so that kickback voltage doesn't fry the rectifier bridge, unless you somehow manage to pick up a bridge rectifier with a very high voltage rating. I am not an electronics engineer, so I won't comment on specific ratings for those parts, but that would be the gist of the circuitry that drives the motor.
Then we'd need a way to drive the relay coils from the Raspberry Pi GPIO pins. Typically this involves using some sort of interface circuit that requires (at a minimum) a transistor, resistor, and a rectifier to absorb the kickback voltage from the relay coil. Such circuits are shown on numerous pages on the web. For switching the AC side of the transformer you could even use a triac-based circuit driven from an optoisolator, to protect the Raspberry Pi somewhat. An inexpensive commercial circuit board that might be useful for that purpose is this one.
And then we'd need a way to read the pulses from the sensor in the positioner. As I understand it, these are simple contact closures, so all you would need is to connect those wires to the +3.3 volts and one of the GPIO pins on the Raspberry Pi, perhaps with a current limiting resistor and something to absorb any transient voltages that come down the line (such as induced current from the motor wires) so those can't fry your Raspberry Pi. To be really safe, you could use some kind of opto-isolator and drive it from a separate power supply.
If all you want is to have the computer control the movement of the dish, for example on a particular schedule, then everything else could be done in software. On the other hand, if you want a receiver to also be able to control the dish, then you would need some way to decode the DiSEqC signals output by the receiver. I have no idea how that it accomplished, but perhaps someone else does.
I only bring this up because none of the current crop of controllers seem to be network aware. Even the new Titanium Satellite ASC1, discussed in another thread, does not offer any kind of network interface at all (if it did, it would be the perfect controller!). But with a Raspberry Pi and the proper hardware and software driving the dish, you could change the dish position any way you can envision, from a simple cron job to move the dish at a particular scheduled time, to a fancy web-based interface. Unfortunately, actually building hardware is not my forte; I am real good at liberating the trapped smoke from electronic components, but not so great with the intricacies of circuit design. Still, this seems like it should be a pretty simple circuit for anyone that has even moderate experience with this sort of thing.
So, has anyone ever attempted to build anything like this? And also, does anyone happen to know how to read and/or generate the DiSEqC signals used to control a positioner using a Raspberry Pi, or similar single board computer?