<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.satnogs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jenniferhe2529</id>
	<title>SatNOGS Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.satnogs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jenniferhe2529"/>
	<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/Special:Contributions/Jenniferhe2529"/>
	<updated>2026-04-06T23:05:18Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=SatNOGS_Rotator_Controller&amp;diff=2785</id>
		<title>SatNOGS Rotator Controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=SatNOGS_Rotator_Controller&amp;diff=2785"/>
		<updated>2019-11-28T07:49:33Z</updated>

		<summary type="html">&lt;p&gt;Jenniferhe2529: /* Build sequence */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Development&lt;br /&gt;
|Name= SatNOGS Rotator Controller&lt;br /&gt;
|image= Rotator controller v2.jpg&lt;br /&gt;
|type= Rotator Controller for SatNOGS rotator.&lt;br /&gt;
|cost= 60-80€&lt;br /&gt;
|status= Working&lt;br /&gt;
|latest-release-name= -&lt;br /&gt;
|latest-release= v2.2&lt;br /&gt;
|source-repo= [https://gitlab.com/librespacefoundation/satnogs/satnogs-rotator-controller satnogs-rotator-controller - GitLab]&lt;br /&gt;
[https://gitlab.com/librespacefoundation/satnogs/satnogs-rotator-controller-encoder satnogs-rotator-controller-encoder - GitLab]&lt;br /&gt;
|documentation= https://wiki.satnogs.org/index.php?title=SatNOGS_Rotator_Controller SatNOGS wiki&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Intro==&lt;br /&gt;
SatNOGS Rotator Controller refers to the set of electronics designed to operate a SatNOGS Rotator. There have been multiple iterations of the rotator controller design, but the modularity of the approach enables operations between different versions of the controller and the rotator.&lt;br /&gt;
Since the start of 2016, the rotator controller design is able to facilitate a DC-motors or stepper-motors rotator design. We intend to keep this modularity for the electronics and firmware design to facilitate the variety of build by our community.&lt;br /&gt;
&lt;br /&gt;
==Rotator Controller v2==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Pcb_schema_v2_revC.png&lt;br /&gt;
Pcb_board_v2_revC.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The PCB are tested in this [https://network.satnogs.org/stations/9/ ground station]. &lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
&lt;br /&gt;
*It is designed to fit the entire electronics needed to control rotator in Euroboard 80x50 mm.&lt;br /&gt;
*Main micro-controller is [https://store.arduino.cc/arduino-pro-mini Arduino pro-mini], [https://github.com/sparkfun/Arduino_Pro_Mini_328 SparkFun's Arduino Pro Mini 328] dev-board with ATmega328p.&lt;br /&gt;
*The modular design includes plug-in either [https://www.pololu.com/product/2133 DRV8825]/[https://www.pololu.com/product/1182 A4988] or [https://www.pololu.com/product/1213/resources DC motor drivers] (MC33926).&lt;br /&gt;
*The power supply in embed in the same board in contrast with previous version.&lt;br /&gt;
*Filtered power supply of micro controller.&lt;br /&gt;
*An I2C multiplexer is used to connect I2C encoders AS5601 (same ID) to get position feedback for each axis.&lt;br /&gt;
*A temperature sensor TC-74 monitoring the temperature inside the controller box in order to protect them from over-heating.&lt;br /&gt;
*There are some spare dev-pins in order to connect other peripherals like IMU or an LCD display.&lt;br /&gt;
*Pins with integrated RC-Low Pass filter for end-stops connection.&lt;br /&gt;
*Default communication interface is RS-485 but it can also be used as a UART.&lt;br /&gt;
*Using different paths for digital and power (motors) GND.&lt;br /&gt;
*Electrolytic capacitor and TVS-diode in PSU input&lt;br /&gt;
*Flashed either by using UART or ISP header&lt;br /&gt;
&lt;br /&gt;
===Build sequence===&lt;br /&gt;
&lt;br /&gt;
*Make sure you have a [[SatNOGS Rotator v3|mechanical assembly]] of the rotator constructed and ready&lt;br /&gt;
*Buy the PCB.  [https://oshpark.com OshPark],[https://www.seeedstudio.com/fusion_pcb.html Seeed Fusion][https://www.pcbway.com PCBWay.com], [http://dirtypcbs.com DirtyPCBs.com], [https://www.elecrow.com/ Elecrow], [https://www.makerfabs.com Makerfabs] have been used in the past with good results.&lt;br /&gt;
**You can order the v2.2 of the board directly using [https://oshpark.com/shared_projects/w0s8d4OJ this OSHPark link] or [https://dirtypcbs.com/store/designer/details/6933/5904/satnogs-v3-motor-controller-zip this DirtyPCBs link].&lt;br /&gt;
**You can order the v1.0 of the rotary encoder board using [https://oshpark.com/shared_projects/I3b8SCci this OSHPark link]&lt;br /&gt;
**You can order PCB as well as [https://www.seeedstudio.com/prototype-pcb-assembly.html PCB Assembly service] from Seeed Studio&lt;br /&gt;
*Get all the necessary components according to BOM from latest tag (or the version that you want to build), [https://gitlab.com/librespacefoundation/satnogs/satnogs-rotator-controller/tags Gitlab Tags]&lt;br /&gt;
*Assemble the PCB, by soldering the components&lt;br /&gt;
*Burn the firmware&lt;br /&gt;
*Using the wiring diagram, connect the controller to the Rotator&lt;br /&gt;
*You are ready! Proceed with testing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Assembly Guide====&lt;br /&gt;
&lt;br /&gt;
[[File:H1000_aluminium_enclosure.png|thumb|center|800x420px|alt=|Rotator Controller - Drill holes]]&lt;br /&gt;
[[File:Rotator_controller_sheet1.png|thumb|center|800x420px|alt=|Rotator Controller sheet 1/2]]&lt;br /&gt;
[[File:Rotator_controller_sheet2.png|thumb|center|800x420px|alt=|Rotator Controller sheet 2/2]]&lt;br /&gt;
&lt;br /&gt;
====Microcontroller====&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;250px&amp;quot;&amp;gt;&lt;br /&gt;
Uc.png|Microcontroller&lt;br /&gt;
Uc_orientation.png|Microcontroller Orientation&lt;br /&gt;
I2c_pullup.png|I2C pull-up resistors&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;!-- changed at feb.25th 2018&lt;br /&gt;
{|&lt;br /&gt;
[[File:Uc.png|thumb|320x240px|Microcontroller]]&lt;br /&gt;
|&lt;br /&gt;
[[File:Uc_orientation.png|thumb|320x240px|Microcontroller Orientation]]&lt;br /&gt;
|&lt;br /&gt;
[[File:I2c_pullup.png|thumb|320x240px|I2C pull-up resistors|left]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;/&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main micro-controller of the board is arduino pro-mini 5V@16MHz, ATmega328P.&lt;br /&gt;
The +5V of the controller are produced from arduino pro-mini.&lt;br /&gt;
Some clones do not use correct parts in LDO, like the original one, with&lt;br /&gt;
result, when it powers up with +12V, burned.&lt;br /&gt;
&lt;br /&gt;
Some examples, &lt;br /&gt;
&lt;br /&gt;
*[https://community.libre.space/t/v2-controller-board-magic-smoke/1878 SatNOGS Community]&lt;br /&gt;
*[http://westsideelectronics.com/blew-up-a-cheap-arduino-pro-mini-clone/ West Side Electronics]&lt;br /&gt;
&lt;br /&gt;
One Solution is not use clones, use [https://www.sparkfun.com/products/11113# Sparkfun's arduiuno pro-mini 5V@16MHz, ATmega328P]. &lt;br /&gt;
The second solution is to add a LDO, like [https://gr.mouser.com/datasheet/2/268/mic5205-778789.pdf MIC5205] (maybe in a new revision of v2).&lt;br /&gt;
&lt;br /&gt;
The power consumption in +5V is:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!-&lt;br /&gt;
!QTY.&lt;br /&gt;
!VCC(V)&lt;br /&gt;
!IDD(mA)&lt;br /&gt;
!Total(mA)&lt;br /&gt;
|-&lt;br /&gt;
|AS5601&lt;br /&gt;
|2&lt;br /&gt;
|5&lt;br /&gt;
|6.5&lt;br /&gt;
|13&lt;br /&gt;
|-&lt;br /&gt;
|PCA9540B&lt;br /&gt;
|1&lt;br /&gt;
|5&lt;br /&gt;
|0.1&lt;br /&gt;
|0.1&lt;br /&gt;
|-&lt;br /&gt;
|SN65HVD485E&lt;br /&gt;
|1&lt;br /&gt;
|5&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|TC74&lt;br /&gt;
|1&lt;br /&gt;
|5&lt;br /&gt;
|0.35&lt;br /&gt;
|0.35&lt;br /&gt;
|-&lt;br /&gt;
|arduino pro mini&lt;br /&gt;
|1&lt;br /&gt;
|5&lt;br /&gt;
|20&lt;br /&gt;
|20&lt;br /&gt;
|-&lt;br /&gt;
|MC33926&lt;br /&gt;
|2&lt;br /&gt;
|5&lt;br /&gt;
|0.2&lt;br /&gt;
|0.4&lt;br /&gt;
|-&lt;br /&gt;
|DRV8825&lt;br /&gt;
|2&lt;br /&gt;
|5&lt;br /&gt;
|0.1&lt;br /&gt;
|0.2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The LDO MIC5205 guaranteed 150mA output, for Stepper motors ~35-40mA, for DC motors ~35-40mA.&lt;br /&gt;
&lt;br /&gt;
====Motor Drivers====&lt;br /&gt;
=====Stepper motor driver=====&lt;br /&gt;
[[File:Stepper_2.png|thumb|320x240px|Stepper motor driver]]&lt;br /&gt;
[[File:Stepper_1.png|thumb|320x240px|Jumpers]]&lt;br /&gt;
[[File:Stepper_orientation.jpg|thumb|320x240px|Orientation]]&lt;br /&gt;
&lt;br /&gt;
For the stepper motor driver 2 options have been tested, [https://www.pololu.com/product/2133 DRV8825] and [https://www.pololu.com/product/1182 A4988].&lt;br /&gt;
For both options it is necessary to solder:&lt;br /&gt;
&lt;br /&gt;
*2 electrolytic capacitors C3, C4 100uF&lt;br /&gt;
*4 single 0.1&amp;quot; male connectors for U3, U4&lt;br /&gt;
*2 fixed terminal blocks P7, P8, Amphenol-VI0421550000G&lt;br /&gt;
*6 jumpers to adjust the micro-step, '''default option is Full Step'''&lt;br /&gt;
&lt;br /&gt;
Note: [https://hackaday.com/2016/08/29/how-accurate-is-microstepping-really/ Guide for microstepping selection]&lt;br /&gt;
{| {{table}}&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot; |'''JP3/JP6'''&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot; |'''JP2/JP5'''&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot; |'''JP1/JP4'''&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot; |'''Microstep Resolution'''&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f000;&amp;quot; |'''Low'''|| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f000;&amp;quot; |'''Low'''|| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f000;&amp;quot; |'''Low'''|| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f000;&amp;quot; |'''Full step'''&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |'''High'''|| align=&amp;quot;center&amp;quot; |'''Low'''|| align=&amp;quot;center&amp;quot; |'''Low'''|| align=&amp;quot;center&amp;quot; |'''Half step'''&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |'''Low'''|| align=&amp;quot;center&amp;quot; |'''High'''|| align=&amp;quot;center&amp;quot; |'''Low'''|| align=&amp;quot;center&amp;quot; |'''1/4 step'''&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |'''High'''|| align=&amp;quot;center&amp;quot; |'''High'''|| align=&amp;quot;center&amp;quot; |'''Low'''|| align=&amp;quot;center&amp;quot; |'''1/8 step'''&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |'''Low'''|| align=&amp;quot;center&amp;quot; |'''Low'''|| align=&amp;quot;center&amp;quot; |'''High'''|| align=&amp;quot;center&amp;quot; |'''1/16 step'''&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |'''High'''|| align=&amp;quot;center&amp;quot; |'''Low'''|| align=&amp;quot;center&amp;quot; |'''High'''|| align=&amp;quot;center&amp;quot; |'''1/32 step'''&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |'''Low'''|| align=&amp;quot;center&amp;quot; |'''High'''|| align=&amp;quot;center&amp;quot; |'''High'''|| align=&amp;quot;center&amp;quot; |'''1/32 step'''&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |'''High'''|| align=&amp;quot;center&amp;quot; |'''High'''|| align=&amp;quot;center&amp;quot; |'''High'''|| align=&amp;quot;center&amp;quot; |'''1/32 step'''&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Do'''NOT''' solder 2 resistors 100k, R4, R7 in default configuration (full step)&lt;br /&gt;
*If you have A4988 for stepper motor drive and you want to use micro stepping, when the MS1 is HIGH&lt;br /&gt;
&lt;br /&gt;
it is necessary to solder R4, R7 according to [https://www.pololu.com/product/1201 A4983 Stepper Motor Driver Carrier, Step (and microstep) size].&lt;br /&gt;
&lt;br /&gt;
In case of DRV8825, all pins MS1, MS2, MS3 have internal pull-up resistor.&lt;br /&gt;
&lt;br /&gt;
Also it is necessary to update the definitions in [https://gitlab.com/librespacefoundation/satnogs/satnogs-rotator-firmware/blob/master/stepper_motor_controller/stepper_motor_controller.ino firmware], according to microstepping selection.&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
*Step Angle: 1.8 deg&lt;br /&gt;
*Microstep: 1/8 step&lt;br /&gt;
*Steps per Revolution: (360/1.8)*8 = 1600&lt;br /&gt;
&lt;br /&gt;
That means:&lt;br /&gt;
&lt;br /&gt;
 #define MICROSTEP          8     ///&amp;lt; Set Microstep&lt;br /&gt;
 #define MAX_SPEED          6400  ///&amp;lt; In steps/s, consider the microstep&lt;br /&gt;
 #define MAX_ACCELERATION   1600  ///&amp;lt; In steps/s^2, consider the microstep&lt;br /&gt;
 #define SPR                1600L  ///&amp;lt; Step Per Revolution, consider the microstep&lt;br /&gt;
&lt;br /&gt;
It is necessary to change the maximum speed and acceleration according to new SPR.&lt;br /&gt;
&lt;br /&gt;
An example:&lt;br /&gt;
&lt;br /&gt;
The speed = 300steps/s and acceleration = 100steps/s^2 with&lt;br /&gt;
&lt;br /&gt;
*1.8 deg/step stepper motor&lt;br /&gt;
*full step&lt;br /&gt;
*gear ratio 54&lt;br /&gt;
&lt;br /&gt;
means speed = 10deg/s and acceleration = 3.3deg/s^2 according to this [https://gitlab.com/librespacefoundation/satnogs/satnogs-rotator-firmware/blob/master/stepper_motor_controller/stepper_motor_controller.ino#L224 function]. &lt;br /&gt;
&lt;br /&gt;
Be careful:&lt;br /&gt;
&lt;br /&gt;
*[http://reprap.org/wiki/Pololu_stepper_driver_board adjust the current (current limiting) for stepper motors]&lt;br /&gt;
*add a heat-sink.&lt;br /&gt;
*plug the stepper motor drivers&lt;br /&gt;
&lt;br /&gt;
The stepper motor that is used, is [https://www.omc-stepperonline.com/hybrid-stepper-motor/nema-17-bipolar-59ncm-84ozin-2a-42x48mm-4wires-w-1m-cable-and-connector-17hs19-2004s1.html Nema 17 Bipolar 59Ncm], &lt;br /&gt;
&lt;br /&gt;
*Size: &amp;amp;#9649;42 x 48 mm&lt;br /&gt;
*Weight: 390 g&lt;br /&gt;
*Shaft diameter: 5 mm&lt;br /&gt;
*Step Angle: 1.8 deg&lt;br /&gt;
*Nominal speed @ 12V: 720deg/s&lt;br /&gt;
*Rated Current/phase: 2.0A&lt;br /&gt;
*Stall torque @ 12V: 0.59Nm&lt;br /&gt;
&lt;br /&gt;
=====DC motor driver=====&lt;br /&gt;
[[File:Dc_motor_driver.png|thumb|320x240px|DC motor driver]]&lt;br /&gt;
&lt;br /&gt;
It is necessary to solder: &lt;br /&gt;
&lt;br /&gt;
*Solder U6 with 0.1&amp;quot; female connectors as shown in picture&lt;br /&gt;
*Solder 2 pads in yellow circle by using ~1mm diameter wire&lt;br /&gt;
*Solder 2 2-pin 3.5mm terminal blocks for 2 DC motors&lt;br /&gt;
&lt;br /&gt;
The DC motor controller is [https://www.pololu.com/product/1213 Dual MC33926 Motor Driver Carrier]&lt;br /&gt;
&lt;br /&gt;
*Motor driver: MC33926&lt;br /&gt;
*Motor channels: 2&lt;br /&gt;
*Minimum operating voltage: 5V&lt;br /&gt;
*Maximum operating voltage: 28V&lt;br /&gt;
*Operating voltage: 12V&lt;br /&gt;
*Continuous output current per channel: 2.5A&lt;br /&gt;
*Current sense: 	0.525 V/A&lt;br /&gt;
*Maximum PWM frequency: 	20 kHz&lt;br /&gt;
*Operating PWM frequency: 3921.5Hz (~4kHz)&lt;br /&gt;
*Minimum logic voltage: 	2.5V&lt;br /&gt;
*Operating logic voltage: 5V&lt;br /&gt;
*Maximum logic voltage: 	5.5V&lt;br /&gt;
&lt;br /&gt;
The DC motor that we use is [https://www.pololu.com/product/1104 50:1 Metal Gearmotor 37Dx54L mm], &lt;br /&gt;
&lt;br /&gt;
*Size: 37D x 54L mm&lt;br /&gt;
*Weight: 195 g&lt;br /&gt;
*Shaft diameter: 6 mm&lt;br /&gt;
*Free-run speed @ 12V: 200 rpm&lt;br /&gt;
*Free-run current @ 12V:	300 mA&lt;br /&gt;
*Stall current @ 12V: 5000 mA&lt;br /&gt;
*Stall torque @ 12V: 1.2Nm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Communication====&lt;br /&gt;
Note: For both options the firmware is the same.&lt;br /&gt;
=====''UART''=====&lt;br /&gt;
[[File:Jumper.png|thumb|320x240px|UART Jumpers]]&lt;br /&gt;
[[File:Rs 485.png|thumb|320x240px|Pin Header]]&lt;br /&gt;
&lt;br /&gt;
To use UART:&lt;br /&gt;
&lt;br /&gt;
*solder JP7 and JP8&lt;br /&gt;
*solder pin header 0.1&amp;quot; female connector&lt;br /&gt;
*not solder C1, U2, R18, R19 R9, R8, R1, D3&lt;br /&gt;
*A is TX and B is RX&lt;br /&gt;
&lt;br /&gt;
=====''RS-485''=====&lt;br /&gt;
[[File:RS485_solder.png|thumb|320x240px|RS485]]&lt;br /&gt;
[[File:Missing_rs485_r19.png|thumb|320x240px|RS485]]&lt;br /&gt;
&lt;br /&gt;
To use RS485:&lt;br /&gt;
&lt;br /&gt;
*solder pin header 0.1&amp;quot; female connector&lt;br /&gt;
*solder C1, U2, R18, R19 R9, R8, R1, D3&lt;br /&gt;
*not solder JP7 and JP8&lt;br /&gt;
&lt;br /&gt;
If you use PCB without R19 footprint, you can add it in arduino pro-mini UART header.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Power Supply====&lt;br /&gt;
[[File:Psu.png|thumb|320x240px|Power Supply]]&lt;br /&gt;
&lt;br /&gt;
Recommended power supply for rotator controller is: 48V @ 1A DC.&lt;br /&gt;
A good choice is the [https://gr.mouser.com/ProductDetail/709-LRS50-48 MEAN WELL  LRS-50-48]&lt;br /&gt;
&lt;br /&gt;
The switching power supply could get as input voltage, 19-60V DC.&amp;lt;br&amp;gt;&lt;br /&gt;
In different input voltages, must be change the components like D4 and F1.&amp;lt;br&amp;gt;&lt;br /&gt;
Default PCB components works at 48VDC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Endstops====&lt;br /&gt;
[[File:Endstop_part.png|thumb|320x240px|Endstop Specification]]&lt;br /&gt;
[[File:Endstop.jpg|thumb|320x240px|Endstop]]&lt;br /&gt;
&lt;br /&gt;
In reference design, mechanical endstops (the [https://www.aliexpress.com/item/10PCS-MICROSWITCH-LIMIT-SWITCH-3pin-N-O-N-C-MICRO-SWITCH-free-shipping/32692144896.html?spm=2114.search0104.8.13.2f3c2457pmCyFH&amp;amp;transAbTest=ae803_5&amp;amp;priceBeautifyAB=0 P/N SS0505] of endstop is specified in [https://gitlab.com/librespacefoundation/satnogs/satnogs-rotator satnogs rotator BOM]) , are used.&lt;br /&gt;
&lt;br /&gt;
The controller has the capability to accommodate optical or magnetic endstop which connected to&lt;br /&gt;
P2 header with silkscreen, SW1, SW2, +5V and GND.&lt;br /&gt;
&lt;br /&gt;
Mechanical endstops are connected to&lt;br /&gt;
&lt;br /&gt;
*SW1 and GND for azimuth axis&lt;br /&gt;
*SW2 and GND for elevation axis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Encoders====&lt;br /&gt;
Source files: [https://gitlab.com/librespacefoundation/satnogs/satnogs-rotator-controller-encoder satnogs-rotator-controller-encoder - GitLab]&lt;br /&gt;
Firmware: [https://gitlab.com/librespacefoundation/satnogs/satnogs-rotator-firmware/blob/master/libraries/as5601.h satnogs-rotator-firmware - GitLab]&lt;br /&gt;
&lt;br /&gt;
For stepper motor setup is optional (AS5601 encoder).&lt;br /&gt;
&lt;br /&gt;
For DC motor setup is necessary.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Encoder_sheet1.png|thumb|center|800x420px|alt=|Rotary Encoder sheet 1/2]]&lt;br /&gt;
[[File:Encoder_sheet2.png|thumb|center|800x420px|alt=|Rotary Encoder sheet 2/2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Firmware and Pin Assignments===&lt;br /&gt;
&lt;br /&gt;
=====Firmware=====&lt;br /&gt;
&lt;br /&gt;
[https://gitlab.com/librespacefoundation/satnogs/satnogs-rotator-firmware For stepper motors] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://gitlab.com/librespacefoundation/satnogs/satnogs-rotator-firmware For DC motors, thanks to] [https://github.com/ph4as ph4as]&lt;br /&gt;
&lt;br /&gt;
=====Pins Configuration=====&lt;br /&gt;
This configuration is from the latest release in [https://gitlab.com/librespacefoundation/satnogs/satnogs-rotator-controller/tags Rotator Controller repository] &lt;br /&gt;
&lt;br /&gt;
*M1IN1 10, Step or PWM1&lt;br /&gt;
*M1IN2 9, Direction or PWM2&lt;br /&gt;
*M1SF  7, Status flag&lt;br /&gt;
*M1FB  A1, Load measurment&lt;br /&gt;
&lt;br /&gt;
*M2IN1 11, Step or PWM1&lt;br /&gt;
*M2IN2 3, Direction or PWM2&lt;br /&gt;
*M2SF  6, Status flag&lt;br /&gt;
*M2FB  A0, Load measurment&lt;br /&gt;
&lt;br /&gt;
*MOTOR_EN 8, Enable/Disable motors&lt;br /&gt;
&lt;br /&gt;
*SW1 5, Endstop for axis 1&lt;br /&gt;
*SW2 4, Endstop for axis 2&lt;br /&gt;
&lt;br /&gt;
*RS485_DIR 2, RS485 Half Duplex direction pin&lt;br /&gt;
&lt;br /&gt;
*SDA_PIN 3, Data I2C pin&lt;br /&gt;
*SCL_PIN 4, Clock I2C pin&lt;br /&gt;
&lt;br /&gt;
*PIN12 12, Digital output pin&lt;br /&gt;
*PIN13 13, Digital output pin&lt;br /&gt;
*A2    A2, Analog input pin&lt;br /&gt;
*A3    A3, Analog input pin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Pre-Flight Check===&lt;br /&gt;
&lt;br /&gt;
[[File:Pcb_testing_points.png|thumb|center|800x420px|alt=|Testing Points]]&lt;br /&gt;
&lt;br /&gt;
*Power your PCB with 48VDC, without plug-in arduino pro-mini and motor drivers, measure with multimeter the voltage in point 1. Expected voltage +12V (reference to GND).&lt;br /&gt;
*Plug arduino pro-mini and measure with multimeter the voltage in point 2. Expected voltage +5V (reference to GND).&lt;br /&gt;
*Plug motor drivers (for steppermotors ensure the current is adjusted properly)&lt;br /&gt;
*Connect all peripheral devices like motors, sensors, endstops&lt;br /&gt;
&lt;br /&gt;
If the two first steps fail, something is wrong (maybe there is a short circuit) in PCB. Check the connections with a multimeter.&lt;br /&gt;
&lt;br /&gt;
Then the board is ready to run the firmware, [https://gitlab.com/librespacefoundation/satnogs/satnogs-rotator-firmware/blob/master/README.md satnogs-rotator-firmware].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting hints===&lt;br /&gt;
&lt;br /&gt;
As soon as the board is powered up or reset, it will auto-home, on first build you can trigger a reset multiple time or move the homing ring to get it &amp;quot;home&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[https://gitlab.com/librespacefoundation/satnogs/satnogs-rotator-firmware/blob/master/README.md Connecting directly to the Arduino pro-mini] you will need to use 19200 bauds and &amp;quot;newline&amp;quot; line ending.&lt;br /&gt;
&lt;br /&gt;
Here is some commands (took from [https://gitlab.com/librespacefoundation/satnogs/satnogs-rotator-firmware#easycomm-implemantation]) you can issue in the terminal emulator of your choice to test things:&lt;br /&gt;
&lt;br /&gt;
*'''VE''', it will returns something like &amp;quot;SatNOGS-v2.0&amp;quot;&lt;br /&gt;
*'''RESET''', move to home position&lt;br /&gt;
*'''AZxx''', '''ELxx''', move to specified position (number)&lt;br /&gt;
&lt;br /&gt;
Nothing moves ? Look at the status and error register :&lt;br /&gt;
&lt;br /&gt;
*'''GS''', status register : 1 idle, 2 moving, 4 pointing, 8 error&lt;br /&gt;
*'''GE''', error register : 1 no error, 2 sensor, 4 homing, 8 motor, 12 over temperature, 16 watch dog timer interrupt&lt;br /&gt;
&lt;br /&gt;
By example, at first start, you might be in '''GS8''' and '''GE4''' until you get a good homing position for the rotator to start working.&lt;br /&gt;
&lt;br /&gt;
If you using an unreleased version of the board (the board that has fuse holder), in [https://community.libre.space/t/stepper-motor-issue/2438/2 community post] you can find pin configuration file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rotator Controller v1==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jenniferhe2529</name></author>
		
	</entry>
</feed>