@@ -251,6 +251,15 @@ def _set_io_multiplexing(self, address, mode):
251251 msg .params .extend (bytearray (struct .pack ('B' , mode )))
252252 return self ._send_command (msg )
253253
254+ def _set_io_pwm (self , address , f , d ):
255+ msg = Message ()
256+ msg .id = 132
257+ msg .ctrl = 0x03
258+ msg .params = bytearray (struct .pack ('B' , address ))
259+ msg .params .extend (bytearray (struct .pack ('f' , f )))
260+ msg .params .extend (bytearray (struct .pack ('f' , d )))
261+ return self ._send_command (msg )
262+
254263 def _set_queued_cmd_start_exec (self ):
255264 msg = Message ()
256265 msg .id = 240
@@ -512,8 +521,11 @@ def engrave(self, image, pixel_size, low=0.0, high=40.0, velocity=5, acceleratio
512521 def wait (self , ms ):
513522 self ._set_wait_cmd (ms )
514523
515- def set_io_mode (self , address , mode , wait = False ):
516- self ._set_io_multiplexing (address , IO_MODES [mode ], wait )
524+ def set_io_mode (self , address , mode ):
525+ self ._set_io_multiplexing (address , IO_MODES [mode ])
526+
527+ def set_pwm_output (self , address , frequency , duty_cycle ):
528+ self ._set_io_pwm (address , frequency , duty_cycle )
517529
518530
519531if __name__ == '__main__' :
0 commit comments