About this project
Documentation can be downloaded at: http://www.servoshock.com/documentation.html
Quick Link to Datasheet: http://www.servoshock.com/uploads/7/7/2/1/7721313/servoshock_datasheet.pdf
What does this thing do?
The ServoShock module is a small circuit (about the size of a stick of gum) that can pair with a Sony Dualshock3 controller via USB or Bluetooth, and translate button presses and stick/trigger/accelerometer movement into digital signals. Its purpose is to make it very easy to integrate a game controller into electronics projects.
Here's a demo:
The circuit was designed to be highly adjustable but also user-friendly. Output adjustments can be made in the field by holding the Start+Select buttons for three seconds to enter a configuration mode. No computer or additional software is required to make adjustments, although having a serial port to read the console output from the ServoShock while making adjustments is helpful.
About the ServoShock Module
The ServoShock module is a small board with an embedded USB host that is pre-loaded with drivers for the Bluetooth dongle and the DualShock3 controller. The I/O pins are arranged in the DIP-40 footprint, allowing it to be easily inserted into a breadboard or a DIP socket. The Dualshock3 controller's Bluetooth radio has a maximum range of about 10-20 meters.
Features (see datasheet for detailed info):
- 10 R/C Servo or DC motor PWM outputs*, tied to 2 analog sticks (x/y axis), 2 triggers, x/y/z accelerometers, and z-gyroscope
- 17 digital outputs tied to button presses and trigger pulls
- Adjustable outputs
- Read raw packets from the controller via the SPI bus
- Control gamepad's rumble motors via analog input pins or SPI
- Control gamepad's LEDs via digital input pins or SPI
- Upload new firmware via UART bootloader
- Breadboard compatible DIP-40 footprint
- Controller battery level indication
- Bluetooth or USB connectivity to DualShock3 controller (the controller will charge when USB is used)
- Available demo board/Arduino shield
- Bluetooth USB dongle included *Motor PWM requires external circuitry to power the motor.
- ***New Features:***
- Differential drive signal mixing on joysticks
- Controller override via SPI bus
- Servo Hold/Recall, Mecanum wheel control mixer
- Each of the servo/motor channels of the ServoShock module can be individually adjusted in several ways:
- Switch between R/C servo and motor PWM
- Absolute/relative position modes
- Invert direction
- Stick sensitivity adjustment
- Center deadband adjustment
- Range of motion adjustment
- Output trim
- Analog input home position calibration
- Servo signal period adjustment
- PWM frequency adjustment
There are also different modes available for the digital outputs tied to the buttons:
- Single-shot (output is active for a set duration and will not reactivate until the button is released and pressed again)
- Toggle Autofire
- Outputs can be inverted
- Pulse width adjustment for single-shot/autofire
- Autofire frequency adjustment
About the ServoShock Shield
The ServoShock Shield is a demo board for the module that can also be used as Arduino shield. The board contains a 5V and 3.3V voltage regulator, header pins for R/C servos, screw terminals for external power, Arduino Uno headers, and a USB-to-UART bridge. When used as an Arduino shield, the SPI bus pins are connected to the corresponding pins on the Arduino, and the user also has the option of powering the ServoShock from the Arduino's 5V or Vin power.
Getting the demo board/Arduino shield is recommended if you don't already have a 0-3.3V/5V to serial converter, so that you can read the console readouts when making adjustments and update the firmware when new revisions are released.
The shield will come in kit form, with only the surface mount components soldered. This will allow you to customize the board more easily. For example, the 90-degree header pins for the servos can be switched to straight headers (not included in the kit) if you want the wires to stick out the top of the board instead of the side. Or, if you don't plan on using it as an Arduino shield, you can omit the Arduino headers and you won't have extra-long pins sticking out the bottom. A fully assembled version is also available.
Please check out the datasheet and schematics at www.servoshock.com for detailed information about the circuits.
About the Rewards
$5: Source code only: Get early access to the source code, circuit schematics, and compiled firmware hex file. The source code will only be available to backers until some time after all Kickstarter rewards have been delivered. Backers will need to provide their own hardware and programmer, so this reward tier is strictly for advanced users only. The AZiO BTD-V201 Bluetooth adapter is compatible and is available on Amazon.
$35: One ServoShock module: This includes the populated circuit board, a USB Bluetooth dongle, and a loose set of header pins that can be soldered to the circuit board.
$55: One ServoShock module and one Shield kit: This includes one ServoShock module and one ServoShock Shield kit. The shield kit will come with SMT parts pre-soldered. (Recommended)
$69: One fully assembled and soldered ServoShock module and Shield. Same as the $55 reward, but we'll personally solder the parts on for you.
Several iterations of prototypes have been made, firmware has been written, and a sample production run from the contract manufacturer is complete. The ServoShock's design has been tested with a variety of RC servos and motors, but has not been extensively field tested for lack of projects to test with--this will be the first time it is made available to the public.
The funds for this project will be used to buy the parts, build the boards, and ship them out.
The boards shown below are from the sample batch, and everything seems to be working. A limited quantity of these boards are available to early backers; these will be shipped out as soon as possible once the campaign ends.
Reading packet data with an Arduino: Please see the "Arduino SPI Bus Example" sketch in the datasheet (linked at the top of this page).
Powering RC Servos from the ServoShock Shield Board: See Update #1.
Using the ServoShock with a R/C electronic speed controller: See Update #2.
Super Soaker Rover: See Update #6.
Mecanum Wheel Control: See Update #8.
How it All Started
It started a few years ago when we were playing a video game called Mass Effect over Christmas. Certain sequences in the game involved driving around in a 6-wheeled tank called the M35 Mako, famous for being able to drive you up a wall (literally). We wanted to build a R/C model of the Mako to drive around the house for our amusement.
We thought it would be cool if the vehicle were controlled with a game controller, so we built a circuit to decode the inputs from a USB XBOX360 controller. Unfortunately, we got busy with "real" work so the project was off-and-on for years and it has been mothballed again...for now. The game controller interface looked useful though, so the work was spun off and became ServoShock. Since then, the ServoShock module has evolved to using a PS3 controller (for the Bluetooth, accelerometers, and gyro) and has become a stand-alone robotics controller. In testing, the range of the Bluetooth radio in the Dualshock controller tops out somewhere between 10 and 20 meters, so Bluetooth isn't going to be a good solution for an outdoors R/C vehicle.
We did get as far as building a 6x6 chassis though. Maybe we'll finish this up someday.
Risks and challenges
- Hardware or software bugs: The hardware and code have not been extensively field tested, since they haven't been released into the "real world" yet. Without rigorous testing, software of this complexity is all but guaranteed to have bugs. Repeated, in all caps for emphasis: *THERE WILL BE BUGS.* Currently known issues can be found in the "Troubleshooting/Known Issues" section of the datasheet. So far it seems to be quite usable, and new firmware can be uploaded via the UART or ICSP header. Hardware problems may be more difficult to fix.
- Supplier Issues: Lead times, delays, and quality control problems are all issues we face. The Bluetooth dongles are the highest risk; the firmware driver is tailored to a specific Bluetooth chipset, and finding and vetting a source, requesting samples, and testing them takes time, so it's not trivial to switch suppliers. The circuit board contract manufacturer is also a risk; if they screw it up and don't own up to it, it may be difficult to resolve.
- Human error: When Kickstarter projects get derailed, it is often due to mistakes by the project managers. We didn't come here until we had built a sample batch, so we've had a little practice.
- Schedule: Schedule estimates are based on a nominal situation where everything goes fairly smoothly. When something goes wrong on an electronics production line (for example, if the assembly house solders a part on backwards), it generally affects the whole batch, which could take some time to rework. If we end up having to build a large number of these boards, delivery will end up being in multiple batches, which will also take longer. As much as we would like to devote all of our time to this project, we both work full-time and must attend to our jobs during the regular workday.
- Force majeure: The type of catastrophe scenarios described in the fine print of your insurance policy.Learn about accountability on Kickstarter
Support this project
- (47 days)