Note that certain Communication / Control programs and G-Code interpreters have explicit support for pendant functionality.
At its simplest, a numeric keypad may be used: http://www.cambam.co.uk/forum/index.php?topic=1279.0
One particularly well-done solution is: LCD on GRBL
- A real jog dial for shapeoko --- Tormach rebadges this, the Contour Design Shuttlexpress, and Little Machine Shop (see below) does as well.
- Contour ShuttleXpress Input Device,Black
- https://github.com/lordmundi/shuttleCP  --- this now supports Chilipeppr and bCNC (at least on Linux).
- GRBL CNC Pendant (Instructables) --- implementation on the Forums by KevinB:GRBL Pendant
- Wii controller as a wireless pendant for gcode sender --- quite simple and works very well w/ https://touchmote.codeplex.com/
- wireless jogging solution (using an iPhone)
- Xbox 360 controller
- Jog It! CNC pendant (Mach3 or Linux CNC)
- My GRBL pendant
- Enclosure and Pendant Project
- Arduino Esplora works great as a pendant
- http://motioninjoy.en.uptodown.com/ Use your Playstation 3 controller on your computer 
- rebadged Contour Design ShuttleXpress
- Jog Dial for CNC Machines --- USB controller w/ driver support for Mach3
- https://www.tormach.com/store/index.php?app=ecom&ns=prodshow&ref=30616  --- requires Mach3 or Linuxcnc?
- http://www.vistacnc.com/b07_pendant_P1/pendant_p1A-S.htm --- requires Mach3 or Linuxcnc?
- http://www.ultimarc.com/ipac1.html --- USB arcade controller suited to making custom pendants and control panels.
- Shapeoko 3 X-Keys controller
Supporting Shield Designs
- i/o shield for limit switches, user buttons and controls (also included on the Limit Switches page)
Bluetooth module for Arduino to allow cable-free operation: http://www.shapeoko.com/forum/viewtopic.php?f=3&t=7951
https://github.com/cheton/cnc/wiki/User-Guide --- widget to allow use of the Contour ShuttleXpress
- Feed hold and Cycle Start/Resume --- discussion of this and link to the above.
Potential Buttons / keys and their meanings and usages
- Grbl Pins
- Grbl Keys
- ~ (cycle start)
- ! (feed hold)
- ? (current status)
- ctrl-x (reset Grbl)
- Commands which are needed
- Connect machine
- Reset connection (how does this compare to the physical reset button on the board?) --- same as ctrl-X above?
- select COM port
- begin homing (H)
- left (<- left arrow)
- right (-> right arrow)
- forward (away from front) (^ up arrow)
- back (toward operator) (v down arrow)
- up (page up)
- down (page down)
- jogging increment
- Increase (+)
- Decrease (-)
- File Operations
- load file
- begin sending file
- Workspace Coordinate Systems --- select currently used system
- Logging --- access the machine logs / status
- Manual interaction --- text box to type and send commands
- Connect machine
If a machine has a web pendant option, then there should be an easy way to display the current IP address, or get a link to the tablet or other machine being used as a pendant --- generate a QR code? Have a hyperlink which will work on the current machine (if it would be desirable to use the web pendant rather than the current interface)
- Digital Read Out (DRO) --- live up-dating position of machine
Inputs to control box - Spindle enable - PWM - Common Ground
Outputs from the control box to Carbide 3D Board - E-stop - Feed Hold - Reset - Z-Probe
Use of a numeric keypad: Simple wireless remote control for Carbide Motion and Wireless remote jog control for $18 - 1 minute install
Pendants of various sorts may be made more useful by reprogramming the keyboard:
Touch OSC 
- Android DRO Project
- Poor Man's Mach3 Pendant
- http://hipporemote.com/ --- iOS app to make an iPad or iPod Touch function as a keyboard --- can be used w/ VNC to control a LinuxCNC machine.
- i/o shield for limit switches, user buttons and controls