Loading Custom Firmware into the BM011 Dual Motor Controller


The BM011 is a dual DC motor controller with 4 inputs capable of reading RC signals and 4 outputs capable of generating pulses of 500uS to 2550uS in length.  The outputs are used to control RC hobby servos.  This design has open-source hardware, software, and firmware.

This module is shipped with a PIC microcontroller. The firmware is open-source and may be located at www.solutions-cubed.com. The main.c file header typically contains information associated with the development environment and complier used for the design. You will need to install necessary 3rd party software as defined in the main.c header (typically a Microchip integrated development environment such as MPLAB X and a C compiler like Microchip’s free XC8).

NOTE: screen captures and images used in this document may not match software screens you see, as software interfaces change over time.

Things you’ll need:

CS005 Program/Debug Adapter from Solutions Cubed, LLC
PICKit3 from Microchip

Assemble the CS005 and install a connector on the module you are attempting to program/debug.

Install MPLABX development environment and C compiler:
The development environment may be downloaded from www.microchip.com.


Open the firmware project (File/Open Project) downloaded from xDesignFile.zip associated with the module. Open the project view, right-click the project folder and select properties. Select the PICKit3 as the hardware tool and the appropriate C compiler under the compiler toolchain.

In the Projects window (open it from the Window menu if it’s not visible) select source files and double-click the main.c file.

Plug the PICKit into your USB port, the PICKit3 into the CS005, the CS005 into the module, and power the module. Once the drivers install you should be able to modify the main.c file and program or debug the design to incorporate your changes to the firmware.

For information on the specific PIC microcontroller or their development software see www.microchip.com.

Speak Your Mind


This site uses Akismet to reduce spam. Learn how your comment data is processed.