K8055M (modified PIC18F) can now control standard servos

Up to 8 standard hobby servos can now be fully controlled with the open source firmware and matching API library.

As and example the following C code would set output port O2 to emit 40 pulses per second, each 1700 µS long. The pulses will be low (logical 0) while the pauses between the pulses are high (logical 1). The opposite mode is also available and is controlled with the 4th parameter to k8055m_set_servo().

#include "k8055m.h"


// Initialize library and open first K8055M board

// Set servo configuration for output O2
k8055m_set_servo(0, 1, 1700.0, 0);
k8055m_set_digital_out_mode(0, 1, K8055M_DIGITAL_OUT_MODE_SERVO);


For more details about the individual call arguments and return codes for error checking see jannicash.info/k8055/download/Wi … mentation/

Note that on the K8055 the digital output ports run through a darlington transistor array, which turns them into open collector outputs. A standard servo expects +5V pulses on the control input. This is easiest achieved by using a pull-up resistor (like 1K) and have the PIC pull the output LOW for the desired pulse width.