Close
0%
0%

Command Modules

Build a modular user interface for your prototype

Similar projects worth following
Command Modules make it easy to add a user interface to your project. Each block contains a component such as a switch, potentiometer, or display. They attach to each other using tabs and can be arranged in rows, columns, and grids.

Each Command Module block has a pin header for quick connection to breadboards or development boards.

Intro

Command Modules allow you to quickly add a user interface to your prototype.  They're made up of individual blocks, each with a switch, potentiometer, display, or other user interface part.  This particular one has a display and driver with a serial interface.

You can use the blocks individually or attach several together.  Below, I have a few hooked up to an Arduino on a breadboard.  The blocks each have a pin header at the top for connecting jumper wires.

For more complex interfaces, you can attach Command Modules in grids.

How it started

Many prototypes around these parts have a hardware user interface of some sort. One recent example is the Op Art project that I built for HaD's op amp competition.  It's a circuit for plotting Spirograph-like patterns on an oscilloscope.  Before getting into a PCB and all that, I built a prototype on a solderless breadboard.  

The breadboard prototype needed a switch and two dual gang potentiometers to adjust the patterns.  Neither part fit well into the solderless breadboard.  I resorted to tacking leads onto the potentiometers and left them dangling off to the side.  I left the switch out altogether, and just selectively re-arranged wires on the breadboard. Needless to say this was quite a mess.

I’ve run into this issue before and never found a great solution.  The closest might be those big breadboards with built-in switches, LEDs, pots, and so on, which are popular in classrooms.  However, they take up lots of space, and also lack more useful parts such as rotary encoders, and also more esoteric parts like the dual gang potentiometers that I needed for Op Art.

There's got to be a better way.  So that's how this project got started.  It's my attempt to build a system for prototyping hardware interfaces.   Ideally you should be able to position switches, pots, displays, and so on how you want, then quickly connect them to your prototype.

Design Objectives

  1. Expandable -  Able to scale from one element (e.g. switch) to any number of elements
  2. Reconfigurable - Ability to change the order or position of the elements
  3. Easy to connect into a circuit
  4. Ability to add labels - e.g. label describing the function of a switch
  5. Visually appealing

System Design

This system is made up of individual blocks called Command Modules Blocks (CMBs).  Each CMB is a square block containing a user interface component such as a switch or potentiometer.  You build up an interface by connecting CMBs together to form rows, columns, or grids of arbitrary size.  

Once the interface is assembled, you can connect it to a circuit in one of two ways.  The simplest is using the pin header that's accessible through the top cover of each CMB.  For a neater look, the CMBs also have an internal connector and wiring slots.  This allows you to keep wiring behind the CMB front panels.

Mechanical Design

At the core of a CMB is a part that I call the frame.  It's what holds everything together and allows the blocks to attach to each other.  The frame is sized to fit a variety of elements, such as switches and potentiometers, but is no larger than it needs to be.  It also provides mounting features for a circuit board on the bottom and a cover on the top side.

PCB-7-Segment.kicad_pcb

PCB for 7-Segment display Command Module

x-kicad-pcb - 267.31 kB - 09/12/2023 at 01:57

Download

Command-Mod-Frame-3D-Model.step

3D model of Command Module's frame

step - 224.62 kB - 09/12/2023 at 01:47

Download

Schematic-7Seg-Display-Command-Module.pdf

Schematic for the 7-segment display command module

Adobe Portable Document Format - 118.34 kB - 09/12/2023 at 01:38

Preview

Schematic-Pushbutton-PCB.pdf

Schematic for the DPDT pushbutton command module

Adobe Portable Document Format - 66.25 kB - 09/12/2023 at 01:37

Preview

  • 1 × IUB-M2.5-1 Threaded insert, M2.5
  • 1 × LTS-4801JR Displays and Inverters / LED Displays
  • 1 × STP08CP05XT Interface and IO ICs / Display Interface
  • 1 × TL2201EEYA Pushbutton switch, DPDT, latching

  • From Renderings to Reality

    Craig D09/10/2023 at 21:30 0 comments

    The prior logs relied heavily on renderings and your imagination.  That's because a few key parts were still out for assembly.  Well, they've finally arrived.  So to the lab I go to built the first prototypes!

    First things first.  I still have to finish up the 3D printed frames from the last log.  They have been waiting for heat set inserts to be installed.  I held off on it because I was waiting on a press and special soldering iron tips.  They've arrived as well, so here goes.

     Next up are the PCBs.  I've designed four types so far and had them fabricated through OSHPARK. The PCBs are for the following parts: DPDT pushbutton switch, DPDT toggle switch, dual gang potentiometer, and a 7-segment display with a driver.

    I assembled the pushbutton and display PCBs for now, since I have front covers to go with those ones.

    The final component is the top cover.  They're fabricated with laser cut and engraved acrylic.  So far I only ordered ones for the pushbutton and 7-segment display blocks. This is the one for the pushbutton Command Module block.  The button cap will extend through the square hole at the center.

    The cuts came out well, though the engraved text is difficult to read.  It's too small for one thing, but also looks to be double-printed.  I'll have to look into it further, but for now I'll forge forward with building the first prototypes.

    Okay, it's assembly time!  This is of course the 7-segment display block.  The PCB fit very tightly into the frame, but otherwise the assembly went smoothly.

    Next up are the pushbutton blocks.  I built a pair of them as well.  They have snap on caps that come in a few different colors.  I attached all four together to check for fit.  All seemed good.

    Finally, I connected a few blocks to a breadboard for testing.  I wanted to test the display in particular because it uses a chip I have not used before.  To do so, I connected it up to an Arduino's SPI interface and wrote some simple code to talk to the driver chip.  

    It worked! I was able to display 0-9 and the decimal point.  The display brightness looked good - it was bright enough to read well in indoor lighting, but still comfortable to look at.  

    There are a few other features I'll have to test in the future.  One interesting feature is that it is compatible with both 3.3V and 5V systems, and the brightness should remain the same across both (constant current drive).  Additionally, the displays can be cascaded to add additional digits using a single SPI interface.

    Alright, that's it for now!  The first set of prototypes are built and under test.  They'll need some refinement for sure, but its a good start.

  • PCB Design

    Craig D09/05/2023 at 14:40 0 comments

    In the last post we talked about the command module block (CMB) frame design.  Next up are the PCBs.  Each CMB has a single PCB mounted on the bottom of the frame.  It holds a user interface element such as a switch or potentiometer, along with a pin header and a small connector for interfacing to the outside world.  You can see the PCB at the bottom of the exploded view.

    CMB exploded view, with pushbutton PCB

    This particular PCB holds a pushbutton switch.  When assembled, the switch's button cap protrudes through the square opening in the top cover.  The pin header will line up with the slot in the cover to provide access for installing jumper cables.


    CMB 3D view with pushbutton

    I've also designed a few others to have a nice assortment of UI elements:

    1. Pushbutton PCB - Holds a DPDT pushbutton switch with removable button caps (red, white, or black).  The switch is available in momentary and latching versions.
    2. Toggle PCB - Holds a mini DPDP toggle switch.  Great for retro stuff and general prototyping.
    3.  Dual Gang Potentiometer PCB - Holds a dual-gang potentiometer.  Great for analog circuit prototyping and for general knob based control.
    4. Seven Segment Display PCB - Holds a 7-segment LED display with a shift register based driver.  These can be cascaded to form larger displays. General purpose retro-ish display.


    All of the PCBs being fabricated.  For now, here are some nice renders from KiCad.

    7-segment display PCB
    Toggle switch PCB
    Dual gang potentiometer PCB
    Pushbutton PCB

  • Frames hot of the press!

    Craig D09/02/2023 at 18:09 0 comments

    At the core of a command module block (CMB) is a part that I call the frame.  It holds everything together and allows the CMBs to attach to each other.  The frame is sized to fit a variety of elements, such as switches and potentiometers, but is no larger than it needs to be.  It also provides mounting features for a circuit board on the bottom and a cover on the top side.

    I thought the frame would be an easy design . . . then many iterations later, realized that it's quite tricky to get right.   In fact I've accumulated a whole bin full of past designs that didn't quite work for one reason or another!

    But behold, the latest version!  I think it's pretty promising, but has lots of testing ahead of it.  I've been churning some out over the past couple days.

    The frames connect together in rows or grids.  After printing several, I was able to test their fit. 

    So far so good!  They fit together just fine.

    The next step will be installing heat set inserts.  The inserts provide mounting points for the circuit board and top cover.  They also allow you to more permanently fasten two CMBs together using a single screw.

    If all continues as planned in the coming couple weeks, I'll install the circuit boards and front covers.  They're being fabricated as you're reading this.

View all 3 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

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