Bluetooth Dials
The left one is the USB model shown here and the right one is the former
RS232C model.
Bluetooth Dials is a wireless input device for operating multiple parameters with dials and buttons. We use this device to rotate 3D structures, move them along the x/y/z axes, adjust the contrast and brightness, zoom in/out, move movie frames forward/backward, and so on. It has dials and buttons and sends your operation through its Bluetooth interface or USB port to your PC. In 1990’s, dial/button boxes were commercially available from graphics workstation manufacturers, but today we can’t find such multiple-dial devices. The most similar one is Microsoft Surface Dial, but it has only one knob, so it does not meet our needs. Bluetooth Dials is a wireless version of the historic dial/button box. It’s compatible with our RecView and MCTrace softwares. We usually use a mouse with the right hand and this device with the left hand to operate our softwares.
Six knobs are used for changing parameters. Two buttons are used for toggling some functions. The lower button is also used for turning on and off the device. The green LED blinks when the Bluetooth interface is ready, or turns on when the link is established.
The Bluetooth interface of this device is RN42 (Roving Networks / Microchip). A host-side interface previously we used is MM-BTUD43 (Sanwa Supply) dongle that seems to have a CSR chip. Built-in Bluetooth interfaces of our laptop PCs also work well with the device.
Firmware
The firmware sends dial/button operations to USB COM port or to virtual COM port associated with the Bluetooth interface. You can find the COM port in the Dialbox dialog of RecView and MCTrace. The virtual COM port number of the Bluetooth interface can also be found from: Bluetooth icon in the lower right -> show devices -> other options -> COM port tab.
In the default boot, Bluetooth sniffing with a 500 ms interval is enabled (RN42 command: SW,0320) to reduce the battery consumption, but a certain laptop seems not compatible with sniffing. The sniffing is disabled by pressing the lower button while setting batteries. If it’s connected with a USB cable, the Bluetooth interface gets turned off.
Schematic
There’s nothing special. The MCU (PIC16F1828) receives signals from rotary encoders (PEC11R, Bourns) and push buttons (B3F, Omron), and sends those information through the UART TX line to the Bluetooth module (RN42) and to the USB interface (FT230XS). The device operates with four AAA batteries, or with DC current draw from USB. You can omit either RN42 or FT230XS if it’s not needed.
PCB gerbers
Gerber files are available from the gerber folder. Copper should not be placed close to the antenna of RN42, but it was difficult to that in this model.
A few blank circuit boards are available (only for researchers of academic institutions).
BOM
Item | Description | Brand | QTY |
---|---|---|---|
MCU | PIC16F1828 | Microchip | 1 |
Bluetooth interface | RN42 | Microchip | 1 |
USB interface | FT230XS | FTDI | 1 |
3V3 regulator | S-812C33AY-B-G | ABLIC | 1 |
PMOS FET | DMG3415U | Diodes Inc. | 1 |
LED | 3 mm green LED | - | 1 |
Shottkey D | SD103A | PANJIT | 1 |
D | 1N4148 | Fairchild | 1 |
C | 10u ceramic | - | 1 |
C | 0.1u ceramic | - | 2 |
C | 47p ceramic | - | 2 |
R | 10k | - | 3 |
R | 560R | - | 3 |
R | 27R | - | 2 |
EMI filter | DSS1NB32A103 | Murata | 1 |
Rotary encorder | PEC11R-4215K-N0024 | Bourns | 6 |
Knob | RS PRO 777-7296 | RS | 6 |
or | 11K5013-KMNB | Grayhill | 6 |
Tactile SW | B3F + B32-3000 | Omron | 2 each |
USB connector | ZX62R-B-5P | Hirose | 1 |
PCB connector header | B3B-XH-A(LF)(SN) | JST | 6 |
PCB connector header | B2B-XH-A(LF)(SN) | JST | 1 |
PCB connector housing | XHP-3 | JST | 12 |
PCB connector housing | XHP-2 | JST | 1 |
PCB connector contact | SXH-001T-P0.6 | JST | 38 |
Pin header | 6 pin | - | 1 |
Enclosure | LC135-F4-W | Takachi | 1 |
or | LC165H-M4-W | Takachi | 1 |
Nuts & bolts | M3 x 12 mm, flat head | - | 2~5 each |
Spacer | 3 mm x 5 mm height, resin | - | 2~5 |
Rubber bumpon | SJ-5312 | 3M | 2 |
You may also need tools, such as a crimping tool for XH connectors, a PIC programmer, and so on.
Host side coding
The device encodes dial/button operations into ASCII characters Z/X (CCW/CW of the lower left dial), A/S (middle left), Q/W (upper left), C/V (lower right), D/F (middle right), E/R (upper right), G (lower button), and T (upper button) and transmits them through the Bluetooth interface and to the USB interface. These character codes can be monitored with a terminal software or can be processed with any host-side applications. Please find a code example in files DlgDialbox.cpp and MainFrm.cpp of RecView.
Tips
Rubber bumpons on the device back are essential. Without these bumpons, the device itself rotates when you rotate knobs.
We use connector cables to wire rotary encoders. This is because the encoders often go wrong when we use the device on a daily basis. Wiring with connector cables makes it easy to replace rotary encoders. There would be other workarounds but this seems easiest and cheapest.
Variations
A portable model with a battery charging circuit. It’s about 95 x 65 x 35 mm, and equipped with wood knobs for better usability. We purchased them as guitar knobs.
A prototype. It’s made from almost the same parts but using a universal board.