Digital and precise servo tester

Overview

The servo tester presented here is equipped with a PIC controller to provide for very accurate pulse generation (pulse width: 1 ms – 2 ms) especially in comparison with a simpler construction with RC links. For this purpose, the internal oscillator is used, which is specified in the selected range of the supply voltage with an accuracy of 1 %.

Furthermore, the servo tester is characterized by the fact that, in contrast to other simpler digital devices, the supply voltage range is specified form 4.8 V – 6 V. With this, the servo tester can also be connected to the BEC connection of a speed controller. The polarity of the pulse for servo control can be adjusted by hardware (jumper setting).

In addition, the Servo Tester enables the use of servos for other applications, such as for rotating and panning surveillance cameras.

Circuit

The circuit is based on the PIC12F675, which controls the servo tester. The supply voltage of the controller is lowered to 3.3 V by a corresponding controller; this ensures the highest accuracy of the internal oscillator on the one hand and the large supply voltage range of the tester on the other hand.

However, this approach requires a driver transistor Q1, which performs the level adjustment to control the servo. The supply voltage of the servo is directly looped through, so that servos or motor controllers can be tested either with the already existing battery / BEC supply by the speed controller or by means of an additional power supply (in this configuration it must be ensured that no power is provided via the servo plug).

The jumper JP3 determines the polarity of the control pulse for the servo. Please note that the LED is a bi-color LED.

Operation

The operation is simple and intuitive. The servo tester has two different operating modes: the manual mode, in which the servo is controlled by a rotary knob P1 and the neutral position can be adjusted and the exercise mode, in which the servo is continuosly moving between the end points. The change between the two operating modes is carried out by pressing the button S1. The LED will indicate the active mode of the servo tester.

After switching on, the device is in manual mode and the servo position is adjusted by rotation of the potentiometer P1. In the pulse area outside the window of 1.45 ms and 1.55 ms, the LED lights up in green. To move the servo to the neutral position, the color of the LED within the window of 1.45 – 1.55 ms changes to yellow or both colors of the LED light up and when the neutral position of 1.5 ms is reached, red is finally displayed; no button has to be pressed and both hands are free to perform adjustment work if necessary.

The Exercise Mode offers two speeds to choose from. The LED flashes red in this mode and shows which speed was selected via its flashing frequency (0.25 s corresponding to 2 x flashing/second or 15 s (correspondingly once 2 s on, then 2 s off) from final rash to final rash). The speed is switched by turning the potentiometer: if a pulse length greater than 1.5 ms is set, then the Exercise Mode is selected at high speed, otherwise the servo is controlled slowly.

Software Download

The firmware for the servo tester (Release 1.0) is freeware, which can be used without restrictions for private, non-commercial purposes according to the underlying End User License Agreement (EULA).

Servotester kit and components

In the store you will find a complete kit, the unstocked printed circuit board and already programmed controllers.

Joystick controls eight servos

Overview

In the field of robotics, there is more often the need to control several servos, e.g. when realizing a robot arm. A joystick is a suitable control element, because the variety of axes / degrees of freedom allows efficient control over many channels.

This article introduces a PC-based solution for controlling up to eight servos with a joystick. The mapping of the joystick channels and switches on the servo channels is done flexibly in the configuration interface of the software. The actual pulse generation for the servos is carried out by a PiKoder Serial Servo Controller connected to the PC via a USB interface. With a PiKoder/SSC a control accuracy of 1 microsecond can be achieved; for a higher accuracy (up to 0.2 microseconds), a PiKoder/SSC-HP can be used.

Setup

The setup is ideally done with the help of a PiKoder/SSC evaluation board or – as shown in the picture – with the PiKoder/SSC-HP evaluation board and with a standard USB adapter.

The PiKoder is supplied with power via the USB cable. Since the USB interface cannot provide enough power for the servos, those must be feed with an independent voltage source via the respective header. In order to prevent balancing currents that could damage the PC, the jumper must not be plugged into the PiKoder circuit board under any circumstances. Further information can be found in the User Manual of the PiKoder/SSC and PiKoder/SSC-HP.

Connection of the USB cable to the PiKoder/SSC-HP Evaluation Board – please note that the jumper must not be plugged in

Software

The Joystick2SSC program is open source (Java) and can be found on github, the directly executable program with all required modules can be downloaded here as a .zip file.

All files are extracted and copied to the destination directory; an installation of the program is not required. The program starts by double-clicking start.x86.bat (in a 32-bit system) or start.x64.bat in a 64-bit system.

After the software is started, the main screen appears.

Main screen Joystick2SSC

To configure the servo channels, select the tab labeling your connected joystick.

Assignment of joystick channels / switches to servo channels

Here you can now make the necessary settings. Then return to the start screen and connect to the PiKoder/SSC via Connect. The bars on the right side of the screen allow you to track the positioning and output values of each channel.

Control RC models with a joystick

Overview

Already in the previous blog the possibility to control up to eight servos via a USB interface with a joystick, a PC and a PiKoder/SSC was described. Here we describe how to realize a wireless model remote control with a PiKoder receiver, the PiKoder/SSC RX. Bluetooth for command transmission.

Building

First, the PiKoder/SSC RX must be connected to the PC at the operating system level. For this purpose, you first search for new Bluetooth devices in the device control.

After a short time, the Bluetooth module of the receiver should be offered. The PIN is “1234”.

With the “Connect” selection, pairing is done at the system level.

As the following view from the device manager shows, the coupling of the system also establishes two virtual serial interfaces, which we access later in the program for establishing a connection.

This completes the setup and the Joystick2SSC program can now be started as described in the previous post. Please note that you need a program version 1.1.0; in the original version, the Bluetooth virtual interfaces were not supported.

Arduino based XBee radio control

Combine the Arduino based open source digital radio control arduinodtx with an intelligent serial servo controller such as the PiKoder/SSC, an Arduino XBee shield and an XBee module to easily build a feature rich radio control.

A transparent transmission is used, so that no adjustments to the Arduino software or the PiKoder/SSC firmware are required; the full range of functions of the remote control is available.

The setup of the transmitter including the jumper configuration is shown below – for details regarding the wiring please refer to the arduinodtx webpage.

xbee-digital-rc_404p

The configuration of the receiver comprised of an XBee breakout adapter, the PiKoder/SSC board and a dc-dc converter to generate the 3,3 Volt required by the receiver is shown below. For more details – including the programming of the XBee modules – please refer to the PiKoder/SSC Application Note #3: XBee Communication.

complete-receiver-unit

Prototyp receiver setup