Pseudonymous maker and sim racing enthusiast "LogLeg" has been working on a low-cost two-degrees-of-freedom (2DoF) motion simulator, and found an interesting way to reduce component noise during movement: changing the microcontroller.
"In my original [design] I used an Arduino UNO," LogLeg explains of the build, which offers programmatic movement of a racing chair fitted to a raised platform in order to increase the immersion in racing sim games, "to send a pulse width modulation, or PWM, signal to the motor drivers, and then to the motor. By default, the Arduino sends this signal at around 490Hz — so that's really audible."
Real cars, unless there's something wrong, don't usually make an audible beeping noise as you climb a hill or whip around a racetrack corner — so neither should LogLeg's sim setup. The chosen fix for the problem: switching away from the Arduino UNO altogether, to something more powerful in the form of an STMicroelectronics STM32 F4.
"An SMT32 is actually a more professional microcontroller," LogLeg argues, "and allows me to do some more complex stuff that I want to do in the future, so that's why I wanted to use an STM32 anyway — but at the same time it allows me to change the frequency of the PWM signal easier [than the Arduino.] Right now I have it set up to do 30kHz […] and there is no noise apart from the actual sound of gears and the motor itself."
While making the move, LogLeg also rewrote the entire software stack ahead of "some cool upgrades" in the works — one of which has already been added: replacing potentiometers, which broke on the original design, with a sensor capable of detecting the rotation of a magnetic field as the servo motor turns. "It doesn't require any moving parts," LogLeg notes, "so it should be impossible to break."
More information is available on LogLeg's YouTube channel, along with the video showcasing the original design.