The firmata lib only takes a speed with the units of .01 rads/sec, the construct of rpm is one I added for convenience that converts rpm to its effective speed. If the user passes in speed and rpm on the object, speed will override rpm, hence the call of rpm function before iterating through the other opts that will be passed to firmata.