BT version

EAA Camera (Bluetooth version)

I built a second camera enclosure with additional electronics to allow Bluetooth wireless communication with the PC as regards to the OSD menu functionality. I wrote a simple Arduino sketch that establish a connection and can operate the Camera's OSD menu via Bluetooth.

The Arduino's acting as the manual five buttons' OSD keyboard, placing the Camera's OSD pins to Ground as requested by the user operating on the PC. A simple TclTK application is used to interface with the Arduino, via GUI buttons or PC keyboard's keys.

The electronics is mainly an Arduino Pro Mini (3.3V version), an HC-06 module and a small Step-down module for powering both the Arduino and HC-06 boards. Five Arduino's digital pins are programmed and used to place the five corresponding OSD Camera's pins (Left, Right, Up, Down and GND) to ground. Once programmed the Pro Mini, I placed these three components in a small plastic enclosure (like these ones). The BT electronics section takes 12V power from the Camera box and the OSD pins are connected to the Camera box by means of the white RJ cable and plug. With this solution I can plug my small OSD remote (see previous page) or, alternatively, connect the BT box.

With respect to my previous EAA Camera enclosure's version, I've also added a couple of LEDs (Main Power and Bluetooth active) one more switch. Now the switches are: Main Power, Fan and BT box.

Please, take a look at the Gallery for more construction details.

Image gallery

Arduino code

It's based on two simple functions which operate as virtual push buttons. The OSD camera pins are logically set HIGH internally with pull-up resistors to 3.3V. Placing them to Ground activates the menu functions. The key press action function (key***Press) set the Arduino pin as LOW, the way the physical button does, while the key release function (key****Release) set the corresponding Arduino pin as INPUT. The pinMode INPUT command in fact sets the Arduino pin in a 'floating' state, that is equivalent to non connected, so the internal pull up resistor will take effect and will set the pins state as HIGH.

Arduino code

void keyMenuPress() {
  digitalWrite(PIN_MENU, LOW);
  delay(50);
  pinMode(PIN_MENU, OUTPUT);
}
void keyMenuRelease() {
  pinMode(PIN_MENU, INPUT);
  delay(50);
}
...

TclTk PC interface

I wrote a small PC application (available here below as a wrapped stand-alone executable) to interface with the Bluetooth box and finally interact with the Camera OSD's menu, using the GUI application buttons or via PC's keyboard keys to navigate the menu.