Introduction
The CMDR™ Android App
The CMDR™ app has 6 screens:
- Program Screen – Name a sub-routine and assign it a numbered address.
- Sub-program Screen – Edit command lines to perform a function.
- Data Screen – Access Data Memory and assign values to the program.
- A Control Screen – Remote control the CMDO™ micro-controller board.
- A Button Screen -Define the buttons used on the Control Screen.
- A Download Screen – Access resources from the NorseBrdige.com website.
The CMDO™ Micro-Controller Board

The micro-controller has 14 I/O ports that can be used to interface to many devices, such as: LEDs, Piezo Beepers, Servo Motors, Remote Switches and Motor Drivers. It can also receive input from sensors such as: Temperature, Pressure, Moisture, and Light. In addition to these I/O ports the controller also has built-in functions such as: Timers, Oscillators, Serial Communications, Analog-to-Digital Converters, and Digital-to_Analog Converters which can be routed to the I/O ports for use. The micro-controller is remarkably versatile.
CMDO™ Loops
The CMDO™ board is bluetooth enabled and is paired with an Android Phone or Tablet. The hardware is pre-programmed and has 3 modes of operation: Listen Mode, Demo Mode, and Command Mode. When the board is in “Listen Mode” it continuously listens to the bluetooth interface for commands. In “Listen Mode” the CMDO™ can be placed in Demo Mode, Command Mode or be given new Demo and Command programs to run. The CMDO™ automatically returns to Listen Mode after performing a Demo or a Command.
Another way to describe it is to think of it as continuously looping through its Listen Program. When in Demo Mode, it includes branching to the Demo Code as part of that loop. When in Command Mode, it includes branching to the Command Code as part of the loop. For this reason, I frequently use the term “Loop” in place of the term “Mode” in describing the board’s function.
The “Demo Loop” begins at line 0x380 of the main program. A demo allows you to quickly program a function and see how it works or, in the case of a beginner, if it works. The board can only be placed in the “Demo Loop” from the “Launch” menu on the “Sub-Routine” screen. To exit “Demo Loop” choose “CMDO™ Reset” from the Launch Menu. The “Demo Loop” is for beginners and allows a person to write simple programs in assembly language.
The “Command Loop” is for interactive commands and remote control. It begins at line 0x0400 of the main program. Anytime you press a button on the control screen the board automatically enters the command loop and executes all the subroutines stored there. Using the command interface is easy and requires no programming skill. However, programming the “Command Loop” is for intermediate and advanced users.
Micro-Controller Peripherals
Micro-controllers do more than store and run programs. They also come pre-configured with small electronic gadgets called peripherals. It has timers, pulse-width modulators, audio oscillators, voltage references, analog-to-digital converters, temperature sensors, serial communications, and more. Generally when an engineer selects a micro-controller, the need for certain peripherals is driving the choice. The inclusion of a wide variety of peripherals is the primary distinction between a micro-processor and a micro-controller.