Overview: A 1-axis and 2-axis controllable SADM was designed and assembled for $625. The SADM variants are composed of hinges, and torsion spring and motor actuators. Tests evaluated the safety of the torsion spring and effectiveness, maximum deflection of the solar panels, and effectiveness of the blocking elements to prevent unintended hinge rotation. Component, integration, and system-level testing were conducted to identify faulty sensors, calibrate components, and verify the simultaneous operation of the components. The voltage generated by the body-mounted, partially deployed, and fully deployed solar array configurations was obtained.
CubeSats have primarily used nichrome burn-wires and shape memory alloys for solar array deployment. The limitation of these mechanisms is that the solar arrays cannot be controlled once deployed. By integrating sun-tracking and attitude control into a solar array deployment mechanism (SADM), the power generation capability of the CubeSat could increase. Subsequently, the objective of this project is to develop a low-cost and reliable SADM that incorporates these features. The power generated by this design will be compared to body-mounted and single-hinge deployable solar arrays configurations.
SADM Structural Architecture
A CubeSat chassis is required to house and structurally support all necessary components. Although commercial off-the-shelf (COTS) components are available from various vendors, the cost of these components would have exceeded the project's budget [1-4]. To avoid unnecessary expenditures, CubeSat chassis ranging from 1U to 6U were designed using SolidWorks and then 3D-printed.
Solar panels could either be body-mounted on the CubeSat or attached to a deployment mechanism. Although the CubeSat marketplace, Pumpkin Inc., and EnduroSat offer space-qualified COTS solar panels for CubeSats, space-qualified components were too expensive for the project's budget [5-7]. Instead, a list of available solar panels were compiled from Amazon.com, Voltaicsystems.com, and Digikey.com. The initial primary drivers during solar panel selection were affordability and cell area. Solar panel efficiency was not prioritized because an objective of this project was to determine the power difference between the solar array configurations. Solar panels with a length below 65 mm and above 100 mm were excluded from the list. Next, solar panels that could operate outdoors were kept. The GP80*80-10A100 solar panel was initially selected because it was cheaper than the 313070005 panel. However, since the SUNYIMA A3D053 later became available, this model was selected because it was the cheapest. Figure 2 shows the specifications of each solar panel.
The CubeSat chassis was designed in a way where each component was interchangeable and that installation was accessible. The two designs that were considered involved a component slide-based and screw-based installation approach. In the former, grooves would be present on each of the launch rails. During installation, the chassis walls would be slid into place via these grooves. In the latter design, the chassis walls would be screwed onto a baseplate; the ends of these walls are part of the launch rails. The latter design was selected since it appeared to be the most straightforward approach. The following paragraphs discuss the part-level assembly of the chassis.
The baseplate (Figure 2) was designed to support the attachment of screwable chassis walls via the use of M2 screws. 8.55 mm rails were initially included for the CubeSat launcher. However, these rails were excluded to save 3D printer filament and to expedite the printing process. 6.35 mm diameter avionics rods could be installed to support the attachment of components. For the 4U and 6U CubeSats, the baseplate was extended (Figure 3).
To support the vertical attachment of additional CubeSat units, the baseplate was modified to have mounting pads on both sides (Figure 4). The extended baseplate for 4U and 6U CubeSats shares a similar design except that the extended variation has a set of shifted mounted pads (Figure 5).
The mounting plate allows the attachment of internal components (Figure 6). Plates are secured in place via 1/4'' x 5/8'' x 3/8'' spaces and 1/4'' hex nuts; 6.35 mm x 15.875 mm, and 0.25 mm, respectively.
The chassis walls are secured to the baseplate via M2 x 10 mm screws (Figure 7). Since the ends of the chassis walls are part of the launch rails, a 100 x 92 mm chassis wall variation was created. The internal structure of both chassis wall designs share the same dimensions.
Arrangement of the motors, rotary disk, and solar panel for the stowed (top) and deployed state.
A project objective was to create a deployable solar array with 2-axis controllability, that uses a system of motors, yokes, and rotary disks. For initial deployment, the motor on the rotary disk would use a yoke to deploy the solar array. To control rotation about the axis perpendicular to the CubeSat face, a motor rotates the rotary disk. A critical assembly issue is that motors that could fulfill this design process were either out of stock or outside of the project's budget. Although smaller NEMA 8 motors are available, these motors are too large as they would obstruct the CubeSat's deployment along the launch rail. For these reasons, it was not possible to create a 2-axis SADM.
A 1-axis SADM was created by using a burn-wire retention and release (R&R) system, hinges, motors, and rotary disks. Available COTS 90° and 180° torsion springs from Amazon.com were aggregated in a list. From this list, torsion springs were selected based on a minimal outer diameter and with a spring index of eight to minimize points of failure.
A burn wire R&R system was used due to its simplicity and space heritage [8 - 10]. The melting point and tensile strength of various filaments were examined (Figure 1). Nylon 6 was considered to be optimal option for the retention mechanism because it offers good tensile strength at a low melting point. Post assembly, the solar array with all installed components had a mass of 0.02268 kg. Considering a launch load of 15 g, the force exerted on the solar array is 3.34 N. A COTS nylon monofilament of 0.18 mm and break strength of 17.79 N was selected because it fulfilled tensile strength requirements and was the cheapest option.
Characteristics of the burn-wire were obtained by applying the equations shown in Figure 2. Since the mass of the filament is unknown and that experimental measurements would not be precise, Q_heat and Q_melt were expressed in terms of volume and density. The values of ρm Hf, Cp were assumed to be 1.15 g cm^-3 [8], 230 J / g [9], and 1.6 J / (g * K) [10]. Assuming that the CubeSat is deployed a few minutes after LEO, the internal temperature was assumed to be 25°C. A 12 V power supply and 1 Ω burn resistor were used in the burn-wire system. By applying these parameters into the relevant equations, the energy required to cut the filament s 0.1187 J, and the time to burn through the filament is 0.825 ms.
Once the R&R mechanism has released the solar array, a hinge and torsion spring set was used to deploy the solar array. For single and dual deployment, 90° and 180° springs were used, respectively. A hinge composed of three parts was designed in SolidWorks and then 3D printed.
A hinge and torsion spring set was used to deploy the solar arrays. 90° and 180° torsion springs were used for single and dual solar array deployment. The hinge itself was designed in SolidWorks and then 3D printed. To prevent the hinge from potentially overshooting, blocking elements were integrated to prevent unintended rotations.
Failure analysis of the torsion spring was conducted. By substituting the torsion spring specifications into the equations shown in Figure 1, the torsion spring bending stress and shear stress were obtained based on three corrective factors. Knowing the yield strength and ultimate shear strength of stainless steel, the safety factor for bending stress and shear stress were obtained. Of all the correction factors applied, the lowest safety factor was calculated to be 7.543. This indicates that the torsion spring could successfully deploy the solar array without failure.
Deployment time of the solar array was examined. By modeling the behavior of the system as simple harmonic motion, the time to deploy the solar panel to 90° was obtained (Figure 2). The time to deploy the solar panel to any angular position was obtained by applying the energy conservation principle. Applying either equation yielded a deployment time of 0.0630 seconds. This short deployment time could be problematic to an onboard ACDS because of the high angular velocity of the deploying solar panels.
SADM Electrical Architecture
The driving factors of the stepper motor selection process involved its cost, size, and whether the motor had an encoder. Selecting a motor with an encoder was an important consideration to create a closed-loop control system. Based on these factors, the cheapest motor with an integrated encoder was $102. Since these motors were expensive, cheaper NEMA 17, 14, and 11 motors were considered. The NEMA 11 motor was selected since it was the smallest and cheapest option. Furthermore, an integrated encoder was later deemed unnecessary since an external magnetic encoder could later be attached.
A motor driver is necessary for the motor to operate. The motor driver adjusts the voltage, current, and speed, and allows microstepping of the stepper motor. Although microstepping allows the motor's resolution to increase, this feature was not used as it would increase heat generation of the motor and decrease its torque potential.
The motor drivers that were considered involved the A4988, DRV8825, and TMC2208 drivers. The primary factors during selection involved operating Amps and cost. Originally, the NEMA 17 motor was selected because the NEMA 11 motor was unavailable. To meet the 2 A current supply requirement while leaving extra headroom, the DRV8825 motor was selected.
Although the possibility of the stepper motor skipping steps is unlikely at low loads, available motor encoders were examined. The types of examined encoders involved magnetic, optical, and mechanical encoders. Optical encoders were not considered due to the low-light environment within the CubeSat, high costs, and the risk of outgassing effects. The AS5600 magnetic encoder was selected over the rotary encoder due to its greater step precision.
The MCU is responsible for supplying the voltage and managing the data lines for each relevant component. The MCU that was selected to fulfill this purpose is the Arduino Nano 33 IoT. This component was selected due to its low-cost, small form factor, and that it has been historically used on previous CubeSat missions without suffering form radiation failure.
Sun sensors are instruments that are used to determine the direction and position of the sun. This is achieved when photosensitive cells determine the angle of incidence of incoming light. The TEMT6000 ambient light sensor was selected to serve as the sun sensor due to its low cost, 60° angle of half sensitivity, and compatibility with the Arduino MCU.
Voltage and current sensors are required to measure the respective quantities. To simplify the wiring process, a sensor that measures both was selected. The two considered candidates were the INA219 and INA226 current sensors. The Sole driving factor when selecting the current sensor was cost. The prices of the INA219 and INA226 were $7 and $38 for ten units, respectively; the INA219 was selected based on cost.
By examining the datasheets of the INA219 and INA226 sensors, and applying the following equations, resolution data was obtained. Since the INA219 current sensor has a I_LSB of 0.78 A and the max current of the A3D053 solar panel is 30 mA, the INA219 has sufficient resolution to measure current changes.
Due to the pin limitations of the Arduino MCU, an analog multiplexer is required for the MCU to read the measurements of the five light sensors. To fulfill this purpose, the CD74HC4067 was selected; this multiplexer supports the attachment of up to 16 analog devices. For continuous operation, the EN pin was connected to GND for continuous operation. A particular channel is accessed by setting the S0-S3 digital pins to low or high. Unused digital pins were not left floating as there were no internal pull resistors.
The EPS is responsible for supplying power to the MCU, stepper motors, motor drivers, and the light sensors within the SADM. A breadboard was used for prototyping purposes. A PCB EPS is advantageous over a breadboard EPS since the risk of a wire disconnecting is eliminated. Secondly, all electrical components could be reduced to a compact form factor.
The "Electrical Power System Schematics" shows the wiring and discusses the connections and voltage required for each component.
Structural Subsystem Assembly and Tests
Thermal screw assembly composed of the chassis walls and baseplates.
All structural components were 3D printed using PETG HF and assembled to form a 2U CubeSat. PETG HF was chosen over PLA due to its greater strength, flexibility, and temperature capacity. M2 threaded inserts were thermally installed into the holes of each relevant component. Press-fit inserts were not used due to the restrictive locations of the holes and the thin material around them; hammering the inserts could crack the 3D-printed components.
Assembling the CubeSat was a quick and simple process. M2 x 8 mm screws were used to attach each component.
The CubeSat walls were attached to the baseplate.
The connector baseplate was attached to the CubeSat walls.
The second set of CubeSat walls were attached to the connector baseplate.
The second baseplate was attached to the second set of CubeSat walls.
The modularity of the screw-based design allows the CubeSat to be assembled in any order. Furthermore, any component could be removed for quick internal access. An issue with the screw-based assembly originates from the over-extruded or thermally deformed holes of the 3D printed material. An issue with the screw-based assembly arose from over-extruded or thermally deformed holes in the 3D-printed material. This caused some inserts to be misaligned and prevented screws from being installed in two cases.
Hinge assembly involving the primary bracket, secondary bracket, pin, and torsion springs.
The original hinge design was modified to accommodate available COTs components. The washers and hex nut were excluded because there was no washer size that matched the M3.5 definition without its outer diameter being too large. Secondly, there were no available M3.5 hex nuts. Lastly, the M3 holes were downsized to M2 to allow streamline integration with other components. Initially, the pin and hinge components were designed that they could be connected via an transition fit. However, this was insufficient because due to the tolerances of the 3D printed material; the pin could not be forced into place. Although sanding the pin was a solution, this was a time consuming process. Subsequently, the 3.5 mm pin was downsized to 3.15 mm.
Assembling the hinge was a straightforward three-step process.
Insert the pin through one of the holes of the secondary bracket, and slide the first torsion spring into place.
Install the primary bracket, ensuring one torsion spring leg rests on top of the bracket and the other leg is oriented downward.
Position the torsion spring within the gap between the primary and secondary brackets, and slide the pin fully through.
The solar panel backplate was attached to the holes of the primary hinge via M2 x 8 mm screws (Figure 1). In the stowed configuration, the torsion spring legs are compressed by the solar panel backplate. Once the monofilament is cut, the hinge deploys the solar panels.
Testing showed that the torsion spring assembly successfully deflected the solar panel when the retention mechanism was released. However, the deflection achieved by the single-set torsion spring hinge seemed to be low. Thus, a double-set torsion spring hinge was designed and assembled to improve performance (Figure 2). Once assembled, the new variant achieved maximum deflection; the blockers prevented the backplate from overshooting. Figure 3 shows the maximum a deflection and deflection at rest for both designs. Although the double-set variant was the only design to reach full deflection, it is probable that the single-set design will still achieve full deflection in space; friction is the only dominating force.
With the torsion spring deployment tests being successful, the hinge was modified to allow attachment to a rotary disk via a M2 x 8 mm screw. Testing with the rotary disk showed that the torsion spring legs would lose contact to the disk as it spun. Subsequently, a fixed baseplate was added to the secondary hinge bracket to ensure that the torsion springs do not get stuck and that maximum torque would be generated (Figure 2). For prototyping purposes, the legs of the torsion spring were secured to the backplate with tape.
NEMA 11 brackets and stepper motor assembly.
Brackets were designed in SolidWorks and 3D printed to attach the NEMA 11 stepper motors to the baseplate. These brackets were secured to the baseplate by installing a M2 x 4 mm screw through the thermally installed inserts. A spacer was installed onto the motor shaft to ensure that the rotary disk does not scrape against the chassis walls.
The solar arrays could be attached to the CubeSat chassis in a fixed or rotatable configuration; 1-axis and 2-axis rotation, respectively. In the former, the primary hinge bracket is directly screwed onto the CubeSat chassis (Figure 1). Whereas, rotary disks are used in the latter (Figure 2). The fixed configuration was used during torsion spring deflection tests.
Nylon 6 monofilament was used to retain the solar panels in the stowed state. Figure 3 shows the process taken to form the knot, which retains the solar panel:
Each end of the monofilament was inserted into the M2 hole of the solar panel backplate.
On the backplate's backside, each monofilament was wrapped the X-cross section of the chassis wall and back outside.
After crossing the monofilament, the monofilament is under the other line goes top bottom into the hole.
By pulling both lines in the opposite directions, the knot is formed and the burn resistor is attached.
Electrical Subsystem Assembly and Tests
The purpose of component-level testing is to identify any sensors that are faulty due to improper soldering or software issues. Component-level testing was applied to every light sensor (TEMT6000), motor encoder (AS5600), and the voltage and current sensor (INA219). This process is crucial to prevent any single-point failures and to minimize performance loss in the stepper motor PID control system. Component-level testing was performed in the Arduino IDE and then rewritten in MATLAB for data logging purposes.
Light Sensor (TEMT6000) Test
Each TEMT6000 light sensor was verified to be functional by applying all the wire connections shown in the Figure and observing the light value outputted by the Arduino serial monitor. Under ambient light conditions, the light sensor outputted an average analog-to-digital converter (ADC) value of 50. When covered the light sensor outputted an average ADC value of 10. Once uncovered, the original ADC values were obtained. By shining a flashlight, an average ADC value of 1,000 was obtained. This test shows that each light sensor was functional under all light conditions.
The TEMT6000 test was recreated in MATLAB for further data analysis. Figure 2 shows the ADC readings--1920 data points were taken--of the TEMT6000 under ambient, covered, and light-exposed states. By examining the long-term behavior, it is evident that the TEMT6000 experiences substantial noise and spikes in its readings; Figure 3 shows these characteristics more prominently.
TEMT6000 performance was improved by averaging 50 raw sampling values over a 1.9 second interval to reduce noise. Prior to averaging, the minimum and maximum values were omitted to mitigate the influence of outliers. Figure 4 shows that this methodology reduced and eliminated the TEMT6000 ADC value noise and spikes, respectively. All averaged ADC values are within ± 5 of each other (Figure 5) . Figure 6 shows the long term TEMT6000 response of the raw and averaged data sets. At the transition phases, such as ambient to covered and covered to ambient, it takes the sensor a maximum of 1.9 seconds to update the appropriate light environment. Considering that the sun's position will not drastically change, the time it takes to reach steady-state conditions is not of great importance. Therefore, the sampling time interval could be increased to further reduce noise.
Motor Encoder (AS5600) Test
The motor encoder was verified by using an example Arduino library and rotating the magnet above the chip. Figure 2 shows the stepper motor position and angular position (°) of the AS5600 motor encoder. By rotating the magnet clockwise, the angular position increased. The converse occured when the magnet was rotated counterclockwise. Component testing successfully showed that the encoder could detect the presence of the magnet and its current angular position.
Voltage and Current Sensor (INA219) Test
The INA219 sensor was verified by using an example Arduino library and changing the ambient light delivered to the solar panel. The relevant wiring connections are shown in, "Electrical Power System Schematics." In essence, the solar panel's output is connected to VIN+ of the INA219 sensor with the load being a 220 ohm resistor. The data lines (SCL and SDA) are connected to a digital multiplexer, which is read by the arduino. All components are connected to a common ground.
The sensor initially outputted 0V when a flashlight was shown on the solar panel. This should not be the case because the multimeter's voltage measurement was 1.321 V. Decreasing the load had no influence on the sensors output. Increasing the load, however, outputted a bus voltage of 40 mV. At 10,000 ohms, the bus voltage increased to 70 mV. In an open circuit--the load resistor was disconnected--the sensor outputted a voltage of 1.321 V. With the flashlight shone on the solar panel, the voltage reading matched the 2.942 V of the multimeter. In complete darkness, however, the bus voltage reading was 600 mV. This was greatly above the threshold for electrical noise or imprecise measurements; the cause of this is unknown. Consequently, open circuit voltage was used to analyze the performance of the solar array configurations.
Integration-level testing was used to verify the combined operation of components and to identify any uncalibrated or skewed sensors.
Light Sensor Array
Five light sensors were connected to the analog multiplexer (Figure 1). By setting the bits of each channel of the multiplexer to high or low, the multiplexer could select a particular light sensor and read its value via a sequential process. By running initial tests, there were no major measurement discrepancies between each light sensor (Figure 2). The minor variations could be explained by the jumper wires partially obscuring some of the light sensors. By resolving this issue, an anomaly has appeared: one of the light sensors has experienced an intensity drop under ambient light conditions. By rewiring the light sensors and applying prior noise reduction techniques, nominal results were obtained.
NEMA 11 stepper motor and DRV8825 motor driver integration test.
Motor and Motor Driver
The DRV8825 motor driver was tuned to ensure that the motor does not draw more than 0.8 A to prevent motor damage. This was done by setting the reference voltage of the DRV8825 to 0.4 V by varying the onboard potentiometer. Motor functionality was verified by using Arduino commands to rotate the motors clockwise and counterclockwise.
Solar panel array, INA 219 , and PCA9548A digital multiplexer integration test.
Voltage Sensor Array
Similar to that of analog multiplexers, the digital multiplexers uses I2C to obtain the voltage readings of each sensor. Since there are two multiplexers, the first multiplexer was set to an I2C address of 0x70 and the second to 0x71 by varying the states of the A0 - A2 pins of each multiplexer. A program was created to ensure that the Arduino could successfully select both of the multiplexers and that the multiplexers could read each of its channels. This process allowed the multiplexers to read the measurements of each voltage sensor.
System level testing validated the simultaneous operation of the light sensor array, NEMA 11 motors, and voltage sensor array. Ensuring that each component received the appropriate level of voltage, none of the components experienced thermal failure.
A burn-wire prototype system was designed and assembled to cut the monofilament string and deploy solar panels. An external 10 V power supply delivered 1 A to a 10 Ω resistor, which was used to sever the retention mechanism. This setup was considered ideal ,as it allowed the resistor to cut the wire before thermally failing.
Figure 1 shows the pre-burn-wire process and the post-burn-wire process. Figures 2-6 show the burn-wire process and the eventual resistor failure. One second after power-supply activation, the resistor begins heating (Figure 2). At 1.074 A, the first retention wire is severed (Figure 3). Shortly later, the support wire--which maintains tension on the retention lines to aid in solar-panel stowage--is burned (Figure 4). The remaining retention wires are then cut (Figure 5), followed by the burn resistor blowing out a few seconds later (Figure 6).
Solar Panel Data
Test Environment
Three solar panel configurations were tested: body-mounted, partially deployed, and fully deployed. Testing was conducted within an indoor test environment with fixed ambient lighting to maintain consistent results. In each test, the CubeSat was placed in the same position: 10 ft below and 2 ft away from a ceiling light source.
Data Logging and Processing
Coolterm was used to capture and store the Arduino serial monitor data within a text file. Via this process, 8,731, 9,315, and 9,423 data points were collected for the stowed, partially deployed, and fully deployed solar arrays. For consistency, only the first 8,731 data points were compared across each configuration. These data files were read and parsed in MATLAB.
In MATLAB, data was categorized into the stowed, partially deployed, and fully deployed sets. These sets were further subcategorized into individual channels, each representing the data of each individual solar panel (Figure 1). A moving average was applied every three data points to smooth out voltage noise and spikes (Figure 2).
Results
Generally, the fully deployed solar array configuration generated the most voltage, followed by the partially and stowed configurations (Figures 4 - 7). An exception to this conclusion is shown in Figure 4. Instead, the voltage generated in the stowed and deployed arrays was similar in magnitude. A reason why this is the case is that because Solar Array 1 is behind the CubeSat, the ceiling light cannot shine on the solar panels due to the small solar array deflection angle of 20°. This is proven in the fully deployed configuration because an additional 0.4 V was generated compared to the stowed configuration.
[1] “1U Cubesat Skeleton Chassis,” satsearch.co, Sep 08 2021. Retrieved 23 September 2024. https://satsearch.co/products/aphelion-1u-cubesat-skeleton-chassis
[2] “VERSE-02 2U Structure,” satsearch.co, Sep 09 2024. Retrieved 23 September 2024. https://satsearch.co/products/2ndspace-verse-02-2u-structure
[3] “VERSE-03 3U Cubesat Structure,” satsearch.co, Sep 09 2024. Retrieved 23 September 2024. https://satsearch.co/products/2ndspace-verse-03-3u-structure
[4 ]“VERSE-06 6U Structure,” satsearch.co, Sep 09 2024. Retrieved 23 September 2024. https://satsearch.co/products/2ndspace-verse-06-6u-structure
[5] “Solar Panels,” cubesatshop.com. Retrieved 24 September 2024.
https://www.cubesatshop.com/product-category/nanosatellite-solar-panels/
[6] “Standard Solar Panels,” pumpkinspace.com. Retrieved 24 September 2024.
https://www.pumpkinspace.com/store/c25/Standard_Solar_Panels.html
[7] “Solar Panels,” endurosat.com. Retrieved 24 September 2024.
https://www.endurosat.com/products-category/solar-panels/.
[8] “MX Polyamide MXD6 Nylon,” Chiyoda. Retrieved 20 March 2025.
https://www.fostercomp.com/wp-content/uploads/2018/11/MX-Nylon_properties.pdf
[9] “(PTFE) Polytetrafluoroethylene.” Retrieved 20 March 2025.
https://www.bearingworks.com/uploaded-assets/pdfs/retainers/ptfe-datasheet.pdf
[10] Maradini, G. da S., Oliveira, M. P., Carreira, L. G., Guimarães, D., Profeti, D., Dias
Júnior, A. F., Boschetti, W. T. N., Oliveira, B. F. de, Pereira, A. C., and Monteiro, S. N.,
“Impact and Tensile Properties of Polyester Nanocomposites with Conifer Fiber Cellulose
Nanocrystal: A Previous Study Extension,” Polymers, Vol. 13, No. 11, 2021.
https://doi.org/10.3390/polym13111878
[11] “Iverntech Nema 11 Stepper Motor 28mm Body 1.8 Stepper Angle 0.8A 2 Phase 4-Lead
with 50CM Cable for 3D Printer, CNC Machine and Robotics,” Mar 16 2019. Retrieved 3
February 2025. https://www.amazon.com/Iverntech-Stepper-Printer-Machine-Robotics/dp/B07PNV7RBW/ref=sr_1_1_pp?dib=eyJ2IjoiMSJ9.3hRNEjd32MJppZsE32y&th=1
[12] “NEMA 17 Stepper Motor Datasheet,” Oct 30 2020. Retrieved 17 November 2024.
https://www.omc-stepperonline.com/download/17HS19-2004S1.pdf
[13] “DRV8825 Datasheet,” Jul2014. Retrieved 17 November 2024.
https://www.ti.com/lit/ds/symlink/drv8825.pdf
[14] “A4988 Datasheet,” May 07 2014. Retrieved 17 November 2024.
https://www.pololu.com/file/0j450/a4988_dmos_microstepping_driver_with_translator.pdf
[15] “TEMT6000X01.” Retrieved 16 November 2024. www.vishay.com/doc?91000
[16] “INA219 Zero-Drift, Bidirectional Current/Power Monitor with I2C Interface Datasheet,”
Dec2015. Retrieved 8 April 2025.
https://www.ti.com/lit/ds/symlink/ina219.pdf?ts=1746722971494
[17] “INA226 36V, 16-Bit, Ultra-Precise I2C Output Current, Voltage, and Power Monitor
With Alert Datasheet,” Sep2024. Retrieved 8 April 2025.
https://www.ti.com/lit/ds/symlink/ina2
[18] "CD74HCx4067 High-Speed CMOS Logic 16-Channel Analog Multiplexer and Demultiplexer," 2024. Retrieved 8 April 2025. https://www.ti.com/lit/ds/symlink/cd74hc4067.pdf.