August 23, 2017 11:20 AM CEST
in the topic
Technical questions in the forum
Support
Tamás Fábián said:
First of all, there's no need to worry.
Both the SBrick and the IR receiver drives the motors with PWM or Pulse Width Modulated voltage.
Both devices work by turning the voltage on and off once in about every thousandth of a second, so in each cycle the motor is on for some time, and off for some. The more the motor is on, the more torque and power it can deliver.
Certain parts of a motor can vibrate, and give off a tweeting sound that is the loudest when the motor is driven with 50% duty cycle e.g. it is on for 50% of the time.
We did our best to support LEGO's M motor, and we did great, since we can drive more M motors per channel than the IR can, and the overall current carrying capacity of the SBrick is much higher than the same figure in case of the IR receiver.
This alsomeans that SBrick might turn on the motors more quickly than the IR recever, and therefore the noise might me louder.
Moreover, the IR receiver only applies PWM duty cycles other than 0 and 100% (where there's no noise, but this is the case with SBrick too) if you use it with a 8879 remote.
Additionally, SBrick can utilize 255 PWM levels. The first 20-30 levels are not really useful with PF motors, since they won't even start. At these levels, there is no motor noise to cover the beeping. Once the motors are running at a reasonable rate, their noise usually masks the tweeting.
If you're really annoyed by the noise, I can do a few experiments to either lower the PWM frequency (lower sounds are harder to radiate, and are masked better by the motors), or increase it (with a bit of luck, above the ~20 KHz limit of the human ear). Since this can affect power efficiency (higher the frequency, higher the switching loss, there's more heat), such parameter should be allow tweaking (let the user to override it).
(Hm, I've looked at the code, and the lowest frequency is about 490Hz, the highest is well above 100KHz. DRV8833's rise and fall time is 160 & 180ns, so it might be able to work at that frequency.)
I know this is an old topic but I think is possible to do something to improve the "sound problem": take a look to this.
If they did it, so maybe you can do it as well: sounds like a software (firmware) thing! :)
I really hope to see those functionalities implemented in SBrick!!! ^_^