Futaba

From MythTV Official Wiki
Jump to: navigation, search

Introduction

Futaba Corporation is recognized as a world leader in the manufacturing of flat panel Vacuum Fluorescent Displays (VFD), VFD modules, field emission displays (FED) and industrial and hobby radio control systems. The world comes into contact with Futaba products every day in applications such as:

  • Electronic readouts on automotive instrumentation
  • Appliance Controls
  • Audio/video equipment
  • Home Entertainment
  • Business machines
  • Point-of-sale terminals
  • Industrial process controllers
  • Test/measurement equipment
  • Remote controls for industrial, commercial and hobby industry

Futaba dm-140gink Demo

The Futaba DM-140GINK Demo is an OEM device from Futaba.

The following machines have the DM-140GINK built in:


The DM-140GINK includes is a combined device with the following functions:

  • a VFD
  • a Wireless Network Interface (801.11 B/G usb device Ralink chipset RT2571WF )
  • Front Panel Keys

The module is a controlled by a Weltrend WT65F5 USB Micro controller.

Wireless NIC

The DM-140GINK includes a 801.11 B/G usb device Ralink chipset RT2571WF

The rt2x00 driver is included in the kernel >= 2.6.24 and support the built in WLAN but some users reported that the throughput is better using ndiswrapper.

NDISwrapper

Download.png - 32-bit Windows driver that can be used with ndiswrapper on 32-bit platforms


Native driver (if not supported by your kernel)

Download.png - Native Linux driver 32 and 64 bit(rt73-cvs-2007100304)

Quick installation notes for Native driver make and make install
USB subsystem must be up and running

Add "alias wlan* rt73" to modprobe.conf

Edit /etc/network/interfaces

# The wireless network interface
allow-hotplug wlan0
iface wlan0 inet dhcp
pre-up ifconfig wlan0 up
pre-up iwconfig wlan0 essid qwerty
pre-up iwconfig wlan0 channel 11
pre-up iwconfig wlan0 key xxxxxxxxxxxxxxxxxxxxxxxx
pre-up ifconfig wlan0 up

Run ifup wlan0 and you should be up and running!

Note, you can only use channel 1 - 11!

VFD

Solution 1

Please see: [1]

Solution 2

The current LCDproc 0.5.3 does not have support for the dm140 in the package. There is a bug open to get this added, but we need your help in getting the code up to snuff! http://sourceforge.net/tracker/?func=detail&aid=2941314&group_id=119&atid=350119

Henrik Larsson created this rpm with a driver for the dm140.

Henlar: Here is a LCDproc working with dm140 v0.2 have the dm140_char() fixed. It is not bug free but it works.


Download.png LCDProc 0.5.2 version with Henlar dm140 driver v0.2


Some images of the device:

LCDproc is used by mythTV
Device front
VFD
Device back
DEMO










Quick howto:
tar xvf lcdproc-0.5.2-henlar-v0.2.tar.gz
cd lcdprov-0.5.2/
./configure --enable-drivers=dm140
make
sudo make install
edit /usr/local/etc/LCDd.conf

If you use Mythubuntu 8.04 AMD64 version please type this before make "Quick howto":

 sudo apt-get install libc6-dev g++
  • Change the driver to dm140
  • Change the driver path from server/drivers to /usr/local/lib/lcdproc
  • Check so the dm140.so file is copied to the directory /usr/local/lib/lcdproc/ also. If not, copy! You will find it in ./server/drivers. Make sure you spelled --enable-drivers with a 's' at the end!

Fire it up with:

 LCDd

or troubleshoot

sudo /usr/local/sbin/LCDd -c /usr/local/etc/LCDd.conf -d dm140 -r 5

If you want it running in foreground add -f and if you want lots of scrolling text add -r 4. This will show all calls to dm140_functions.

Note

On some Linux distributions the following error message may occure when fire-up lcdproc.

Driver [dm140] init failed, return code < 0
Module /usr/local/lib/lcdproc/dm140.so could not be loaded
Could not load driver dm140
There is no output driver


There can be 3 problems. Any of them or all togather.

 1. Your distribution do not provide hiddev device creation rules.
 2. There is the hard coded vendorid/productid dm140.so
 3. bug in led.c, comparing int with short without casting.


Solution

1. Create own udev rule

  • create new file
/etc/udev/rules.d/51-hiddev.rules
  • put this line in just created file
KERNEL=="hiddev*", NAME="usb/%k"
  • restart your machine.
  • now you should habe all available /dev/usb/hiddev* devices

Or if you do not have udev enabled, then you need to create the devices manually:

mkdir /dev/usb
mknod /dev/usb/hiddev0 c 180 96
mknod /dev/usb/hiddev1 c 180 97
mknod /dev/usb/hiddev2 c 180 98
mknod /dev/usb/hiddev3 c 180 99
mknod /dev/usb/hiddev4 c 180 100
mknod /dev/usb/hiddev5 c 180 101
mknod /dev/usb/hiddev6 c 180 102
mknod /dev/usb/hiddev7 c 180 103
mknod /dev/usb/hiddev8 c 180 104
mknod /dev/usb/hiddev9 c 180 105
mknod /dev/usb/hiddev10 c 180 106
mknod /dev/usb/hiddev11 c 180 107
mknod /dev/usb/hiddev12 c 180 108
mknod /dev/usb/hiddev13 c 180 109
mknod /dev/usb/hiddev14 c 180 110
mknod /dev/usb/hiddev15 c 180 111

I added these lines to /etc/init.d/boot.local

Note

MythDora 4 also errors as openSUSE 10.3 and the same solution works. Instead of adding the lines to /etc/init.d/boot.local you need to add them to /etc/init.d/rc.local - I also add /usr/local/sbin/LCDd to the bottom of rc.local to ensure it is running at startup.

Note

Ubuntu.jpgDebian and Ubuntu. I create patch from this package and repackage it for Ubuntu. Tested on Ubuntu Hardy 8.04

Ubuntu.jpg Ubuntu. I've forward ported this patch to 0.5.3 and packaged it up for Ubuntu Karmic(9.10) and Lucid(10.04).

2. Solving vendorid/productid bug.

in dm140.c we find following piece of code

p->pszVendor = "040b";
p->pszProduct = "7001";

But this device has on my machine(FS Scaleo E)

p->pszVendor = "1509";
p->pszProduct = "925d";

Hier ist the patch to fix this: http://home.arcor.de/herrlado/dm140.vendor.patch

3. in led.c we can see:

int Compare(const char *pszValue, short sValue)
{
 int iValue;
 // convert the pszValue to a number
 sscanf( pszValue, "%4x", &iValue);
 return( iValue == sValue );
}

hier must be

int Compare(const char *pszValue, short sValue)
{
 int iValue;
 // convert the pszValue to a number
 sscanf( pszValue, "%4x", &iValue);
 return( (short) iValue == sValue );
}

now the method works fine.

Hier the patch http://home.arcor.de/herrlado/dm140.compare.patch

Configure mythfrontend to use the VFD

The mythlcdserver is started automatically when configured in mythfrontend.

You can find the setup options in Utilities/Setup->Setup->Appearance->LCD device display Check the Enable LCD device.

Additional technical info

Links to info on the VFD:

http://www.mythtv.org/wiki/index.php/Hiper_HMC-2K53A

http://article.gmane.org/gmane.comp.sysutils.lcdproc/11769/match=pluto

http://article.gmane.org/gmane.comp.sysutils.lcdproc/11742/match=msi+media+live

http://www.gossamer-threads.com/lists/mythtv/users/284040?page=last


lcdproc mailinglist

mythTV user mailinglist

Japanese PDF documentation

ePG3231 is an 8-bit RISC MCU that is Mentioned in Japanese PDF documentation

specification of the DM140GINK (GP112x16 = 18x2) VFD

ZIP file of Source Code, Tools, Schematics, Docs, and Pictures.


Pluto module source code

The Pluto guys seems to have this device working and deb file is available: http://plutohome.com/support/index.php?section=packageDownload&pkid=619

Since the site above seems unwilling to send the source code I downloaded it off their development-build;

-Media_Live_LCDButtons.src.tar.bz2

The Pluto dev-site will allow you to download additional source-code since there most likely are dependencies to other modules; deb.plutohome.com

Front panel keys

Incomplete.png Incomplete, needs to be expanded. Please help to fill the gaps or discuss the issue on the talk page


Using the keys in mythTV


Information.png Tip: Moosylog : Nov 2007: I don't have the device, but have put some new info on the Talk:Futaba page that needs to be tested. It seems possible but you need to remap the keys to other values. Can you please test this and update this section of the wiki.


Here is a list of the front panel buttons

The 'xev' command gives us the following information about the keys:


AudioStop KeyRelease event, serial 31, synthetic NO, window 0x3a00001,

   root 0x155, subw 0x0, time 3605380776, (618,-283), root:(622,278),
   state 0x10, keycode 164 (keysym 0x1008ff15, XF86AudioStop), same_screen YES,
   XLookupString gives 0 bytes:
   XFilterEvent returns: False

AudioPlay KeyRelease event, serial 31, synthetic NO, window 0x3a00001,

   root 0x155, subw 0x0, time 3605429259, (475,-185), root:(479,376),
   state 0x10, keycode 162 (keysym 0x1008ff14, XF86AudioPlay), same_screen YES,
   XLookupString gives 0 bytes:
   XFilterEvent returns: False

AudioPrev KeyRelease event, serial 31, synthetic NO, window 0x3a00001,

   root 0x155, subw 0x0, time 3605485494, (385,-356), root:(389,205),
   state 0x10, keycode 144 (keysym 0x1008ff16, XF86AudioPrev), same_screen YES,
   XLookupString gives 0 bytes:
   XFilterEvent returns: False


REWIND - NoSymbol KeyRelease event, serial 31, synthetic NO, window 0x3a00001,

   root 0x155, subw 0x0, time 3605520543, (323,-517), root:(327,44),
   state 0x10, keycode 152 (keysym 0x0, NoSymbol), same_screen YES,
   XLookupString gives 0 bytes:
   XFilterEvent returns: False

FORWARD - NoSymbol KeyRelease event, serial 31, synthetic NO, window 0x3a00001,

   root 0x155, subw 0x0, time 3605540560, (550,-95), root:(554,466),
   state 0x10, keycode 180 (keysym 0x0, NoSymbol), same_screen YES,
   XLookupString gives 0 bytes:
   XFilterEvent returns: False

XF86AudioNext KeyRelease event, serial 31, synthetic NO, window 0x3a00001,

   root 0x155, subw 0x0, time 3605557994, (353,-462), root:(357,99),
   state 0x10, keycode 153 (keysym 0x1008ff17, XF86AudioNext), same_screen YES,
   XLookupString gives 0 bytes:
   XFilterEvent returns: False


Create ~/.Xmodmap

keycode 164 = XF86AudioStop
keycode 162 = XF86AudioPlay
keycode 144 = XF86AudioPrev
keycode 180 = XF86AudioRewind
keycode 158 = XF86AudioForward
keycode 153 = XF86AudioNext

(not sure how the other 2 are called - NoSymbol?)

An onather ~/.Xmodmap

keycode 164 = Escape
keycode 162 = P
keycode 144 = Q
keycode 153 = Z
keycode 180 = greater
keycode 158 = less

available symbols: cat /usr/share/X11/XKeysymDB

More information on .Xmodmap in Multimediakeys HOWTO.


Use the keys in Gnome/KDE

In Gnome, there's one place where you can define keyboard shortcuts for various predefined actions (opening the home folder, launching your default web browser) by just pressing the key combination.

If you want to add keyboard shortcuts for other commands, you press Alt-F2 and type gconf-editor to open the Configuration Editor, then navigate to Apps > Metacity. Within Metacity, you define the command in Keybinding Commands and define the keyboard shortcut in Global Keybindings.

The advantage to the Configuration Editor approach is that you can define a keyboard shortcut for just about any command you can think of. The disadvantage is that you have to type out the keyboard shortcut. You can't just press Control-Shift-A. You have to type <Control><Shift>a Free Image Hosting at www.ImageShack.us

KDE also has two places to define keyboard shortcuts, but they're both traditional point-and-click environments.

Keyboard shortcuts for custom commands are defined within the menu editor—so the disadvantage to KDE's approach is that you have to have a menu item (yes—it appears in the menu) for every command you create a shortcut for.

You don't have to type out the shortcut, though—you can just press it—this goes for both the predefined commands and the menu items.

Bluetooth

The Bluetooth module appears to be a standard HCI over USB interface. No special driver is required to operate the device. Tested with Mythbuntu 7.10 and MSI Media Live.

User experience

Moosylog : Oct 2007: Had a MSI_Media_Live for a few weeks in my house. Installed openSUSE 10.3(32) and started this page. Got the wireless and VFD working, no time to complete the keys section of the wiki. (please finish).

Hans_B :July 2008: Installed openSUSE 11 (64), VFD, WiFI & Bluetooth work.

Ritola : Apr 2008: Installed Fedora 8 on Hiper HMC-2K53A. Works: WFD, Keys with ~/.Xmodmap. Not using: Bluetooth, WiFi.