The BlackBOX is much more than just a simple controller. It’s an intelligent beast.

The BlackBOX project


Created for ENG306

The BlackBox project intended to create a ready to use ‘bolt-on’ solution for implementing a dynamic speed and direction controller/driver for a DC load. This controller is designed to be integrated into a variety of control systems using analog and digital interface methods.

The BlackBOX is designed to create a powerful DC Motor controller using a 20M2 PIXAXE micro-controller (uC). This motor controller is intended to handle at least a 12V DC motor that has similar current and voltage characteristics of a 12V/2Amps car radiator fan and should be immune to a poorly rectified/noisy motor power supply.

Since PICAXE micro-controllers are relatively easy to program, this project used this micro controller and included several useful features such as using first order transfer function to create a soft ramping and reverse direction protection when going between set-points. These features resulted in practically all of the available memory of the uC to be consumed.


Some of the features included are:

  • Forward and Reverse modes using MOSFET (Metal Oxide Semiconductor Field Effect Transistor) H-bridge circuitry with appropriate BJT (Bipolar Junction Transistor) gate drivers;
  • A first-order dynamic ramp-up/ramp-down control using low side PWM (Pulse Width Modulation) hardware controls;
  • Provides a 16 LED (Light Emitting Diode) visual light display for the motor’s desired speed and direction set-point;
  • Visual indication of the current PWM duty cycle being applied to the load through a servo motor aligned with the set-point LEDs;
  • Physical switches for start/stop (enable control/zero set-point), analog/digital set-point control and emergency stop button;
  • Safety features such as grounding the load on controller power loss, ramp down to stop and emergency stop (E-stop);
  • Visual indicators for the different operational modes of the motor controller (digital/analog control, start/stop/E-stop);
  • Serial interface to retrieve error messages, poll current control values and to set the new set-point digitally;

Please note that this motor controller is designed to be flexible enough for implementation within most control systems.