The Squid! Bluetooth motor control module.

Blue Tooth interfaced motor control module configurable to control 16 small dc motors or 8 stepper motors with 16 configurable pins.

Similar projects worth following
It is easy to control two motors from a Raspberry Pi with a dual h-bridge module if you want to control two gearhead motors with two wheels. If you want to control multiple motors on a robot arm or leg, then things get a lot more complicated. Squid is a module designed to interface with any controller with either Bluetooth or a serial port to control up to 16 small dc motors or up to 8 stepper motors. 16 pins can also be configured as analog inputs, digital inputs or digital outputs for feedback potentiometers, bump switches or LEDS.

Building a simple two motor robot is easy.  A dual H-bridge and you’re on your way.  Building a robot arm or a robot with legs with multiple motors is much more complicated. There are different approaches such as RC servos.  With an RC servo, all you need to do is send a pulse width modulation signal to the servo, but without a feed back to the controller, you never really know if the servo moved to the correct position.  Then, throw in several servos and the process gets more complicated again. Motors with feedback potentiometers will give a feedback of the position of the motor, but for each joint on an arm or a leg, both a motor driver and an analog input is required to read the position.  And again, throw in several motors and the process gets even more complicated. If the robot has a single controller, a lot of the processing time will go into just controlling the legs or arm.  Adding a micro-controller with h-bridges to each leg is another possibility.  But with this approach, the main controller will need to communicate with each individual leg and again eat up a lot of the controller’s time.

 I started designing the squid motor control board for my other Hackaday project “Wheeled/Walker hybrid Bot” because it will need to control 16 motors, including the wheels and 16 analog feedback channels to read feedback from 4 legs.  The more thought that went into the squid board, the more I realized how flexible the Squid could become.  To start with, the Squid needs a lot of outputs to control 16 H-brides, 2 outputs for each H-bridge.  I enjoy using MicroChip’s PICs so the Squid will be based on 2 PIC16F874As to handle the large number of H-bridges.  As an extra benefit, the 2 chips together can provide the 16 pins for analog inputs which can also be configured as digital inputs or outputs.

To allow other users to experiment with the Squid board, each PIC will have an in-circuit serial programming port.  The sub routines to handle all the features like usart for the Bluetooth and serial interface, I2C to communicate between the PICs and other peripherals, A to D converter will be provided as an include file.  This will allow other makers to program the Squid to control whatever project the user wants to experiment with while easing the work load by already having callable sub routines to use the on board features.

For users who want to use the Squid with other controllers such as a Raspberry Pi, The Squid will be preprogramed with 2 user interface pages to be accessed through the Bluetooth or a serial port.  One page will be used to configure all of the features which will be stored in the PICs FLASH so the Squid will remember the configuration after power down.  The other will be used to control the motors and input pins and set/clear any pin configured as an output.

The default configuration for the 16 H-bridges will be as individual drivers to control 16 individual small dc motors.  A configuration option will be provided to allow two H-bridges to be “bonded” as a 4 channel driver to control either a 4 phase unipolar step motor or a 4 phase bipolar step motor.  In case the 16 H-bridges is not enough, an I2C interface will allow the Squid to interface with other Squid boards or other peripheral devices.

The image below shows typical connection.  Configurable inputs--the LED shows a digital output, the potentiometer shows an analog to digital input and the switch shows a digital input.  The configurable motor drivers show a connection for a step motor and connections for small DC motors.  The idea is to make an easy to use robotics motor control board to Bluetooth to higher level controllers, such as a Raspberry Pi.  There is also a serial port for controllers without a Bluetooth module, plus plenty of available onboard FLASH memory can be programmed...

Read more »


Squid schematics

sch - 75.47 kB - 04/20/2018 at 02:14


  • Preliminary board layout

    Dennis4 days ago 0 comments

    I finished the preliminary circuit board layout. I still need to check and double check everything before exporting it to Gerber files and ordering boards. 

  • Preliminary Schematics

    Dennis6 days ago 0 comments

    I finished the preliminary schematics.  I’ve decided to base the first Squid prototype around two PIC16F874A controllers.  The two PICs will communicate to each other and also other off board peripheral devices via an I2C interface.  PIC one will be able to communicate with higher level controllers with a Bluetooth module through the PICs onboard USART.  The second PIC will be able to communicate to higher level controllers through a direct serial interface via again the PICs onboard USART.  Using two PICs will supply the resources to handle the 16 individual H-bridges and 16 I/O ports.

    The Squid board will be fairly small even though the schematics are in two sheets.

View all 2 project logs

Enjoy this project?



malvasio.christophe wrote 3 days ago point


i didn't ask :

how many amps per phase it will support ?


  Are you sure? yes | no

Dennis wrote 3 days ago point

800 mA on this one but a higher amp version will not be too difficult.

  Are you sure? yes | no

malvasio.christophe wrote 3 days ago point


so you target 800 ma on the wheeled walker

i have some nema 23 400 step/r ~360 ma at 12.1v

how much your unit price of squid ?

  Are you sure? yes | no

Dennis wrote 2 days ago point

There is still a lot of work to be done but probably around $50

  Are you sure? yes | no

malvasio.christophe wrote 04/16/2018 at 06:11 point

will the eeprom store be avoided ?(if wanted)

will it come usable without soldering to do ?

  Are you sure? yes | no

Dennis wrote 04/17/2018 at 02:24 point


 The board will have a default setting for 16 dc motors and 16 analog inputs. The EEPROM will only be used if the configuration is changed from the default setting. If the configuration is changed it will automatically be stored in the PICs on board EEPROM. Hopefully there will be fully assembled versions available eventually.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates