So I recently followed this thread to get my md1220 updated and gain the ability to control the fans, Many Thanks to everyone who has posted. since this thread has helped me so much here is a couple things I've learned hopefully this helps someone.
Goal: to make my home lab quiet and house friendly.
problem: I had impulsively bought a md1220 for Freenas and now had a Noise problem in my office. (note) the md1200 and md1220 aren't impossible to be near while they are powered on and working however were the largest contributors to sound in my office and i do like peace and quiet if i need to be in a video conference or want to relax
Solution: So after stumbling across this post i learned how to update my enclosures to the latest firmware through the sas connectors following fohdeesha's instructions on finding the enclosure and writing their firmware next i tried the fan control commands through sas unfortunately like those who tried before me it didn't work so then i decided to purchase a password reset cable plugged it into my r710's serial port i could get an output but no input for whatever reason so i purchased a serial rs232 to usb adapter from bestbuy so i didn't have to wait for shipping plugged it into my main computer for easy debugging followed the serial instructions of baud 38400 8 data bits 1 stop bit and XON/XOFF flow control and boom i could now not only see the enclosures taunting prompt but type into it fiddled around with the commands for a bit primarily the set_temp and set_speed commands and noticed that i could set the speed lower then 20% and after anywhere from 10 seconds to 1 minute the fans would ramp back up. Noticing this i did a test what if i just keep setting the fans less the 20% what would happen? Then i noticed that if i sent commands every 2-10 seconds i would consistently be able to keep the fans under 20% now the only problem I had was automating it and not just using ahk script to automatically send the commands since my computer isn't always on. So I need a Linux script initially I tried using minicoms scripting language and it "worked" but i couldn't get a cronjob to lower the fans and could only get the command working manually after about a day of research i found something that fit all my criteria this is what i came up with its a simple script that I run every minute in crontab and what it does is set the Serial port parameters and then spoof the temp and speed if you need it to run less or more often just adjust the for statement and sleep time also to run this as a user i just gave my user the groups tty,input, and brltty. anyway i hope this helps someone out with automating the fans to run at a lower speed the normally possible
Code:
#!/bin/bash
for i in {1..10}
do
stty -F /dev/ttyUSB0 speed 38400 cs8 -ixon raw
echo -ne "set_temp 0 0\n\r" > /dev/ttyUSB0
echo -ne "set_temp 1 0\n\r" > /dev/ttyUSB0
echo -ne "set_speed 10\n\r" > /dev/ttyUSB0
echo -ne "set_speed 10\n\r" > /dev/ttyUSB0
sleep 5
done
exit
TL;DR: the code above i used in order to automatically set my fan speed lower then the usual allowed amount with a cronjob running this script every minute also the builtin r710 serial port might work but i was unable to get anything passed a simple output no input from any serial console I tried short list (putty, minicom, tip, cu, and screen) but with the serial adapter to usb worked fine so idk.