Google

using a mimo um-710 on linux (displaylink) with udlfb driver

We’ve had this dream for some time of having a display that we can control from our desktops but mounted in the hallway. The idea would be to use the sign in place of post-it notes or some other sort of messageboard arrangement. We’ve tried the Kodak EX811 in the past with limited success, we used mediatomb to control the kodak, but wheneverthe wireless network had problems or the kodak got confused, it would just go to a blank screen, hardly useful.

In walks the mimo, it’s a usb connected display, we found drivers for it here. You can extend your X desktop onto the screen using the supplied drivers, but we only wanted to display one image at a time on the screen. We opted to use a combination of tools to just cat data directly to the framebuffer device, and yes this incredibly silly arrangement actually works. Here is the script we are using, we hope to replace this with something compiled later. #!/bin/sh
 
SIZE='800x480!'
RESIZED=`mktemp -u /tmp/XXXXXXXX`.png
CONVERTED=`mktemp /tmp/XXXXXXXX`
if [ xxx${FRAMEBUFFER}xxx == 'xxxxxx' ]; then
  FRAMEBUFFER=/dev/fb0
fi
 
CURRENT=/var/www/lighttpd/assets/current.jpg
 
while [ 1 ]
do
  convert -resize $SIZE $CURRENT $RESIZED
  mkdfiff -f RGB16 $RESIZED > $CONVERTED
  dd if=$CONVERTED of=$FRAMEBUFFER bs=1 skip=24
  sleep 30
done
Hopefully useful to someone else out there….

Here is our (Ben Rose and I) first attempt at a C version of the above… framebugger.tar.bz2

/* read color value from pixel (left->right, up-> down) then convert
         * from RGB32 to RGB16 using code from directfb */
for (j = 0; j < gdImageSY(gdPtr); j++) {
  for (i = 0; i < gdImageSX(gdPtr); i++) {
    c = RGB32_TO_RGB16(gdImageGetPixel(gdPtr, i, j));
    fwrite(&c,2,1,fbout);
  }
}

3 Responses to “using a mimo um-710 on linux (displaylink) with udlfb driver”

  1. Bertrand Says:

    Hi,

    Any info about the touchscreen? Does it require a special driver? Can you show the lsusb output with this display plugged in? Thanks

  2. uphill Says:

    Ours is a 710, the touchscreen is a 740. I think the 740 also has a webcam…so we don’t have any information on the touchscreen version :-( Sorry…

    [root@door ~]# lsusb |grep New
    Bus 006 Device 002: ID 17e9:401a Newnham Research
    Bus 003 Device 002: ID 17e9:401a Newnham Research
    [root@door ~]# lsusb -v -s 003:002

    Bus 003 Device 002: ID 17e9:401a Newnham Research
    Device Descriptor:
    bLength 18
    bDescriptorType 1
    bcdUSB 2.00
    bDeviceClass 0 (Defined at Interface level)
    bDeviceSubClass 0
    bDeviceProtocol 0
    bMaxPacketSize0 64
    idVendor 0×17e9 Newnham Research
    idProduct 0×401a
    bcdDevice 0.07
    iManufacturer 1 DisplayLink
    iProduct 2 nanovision MiMo
    iSerial 3 USM700-8c010008
    bNumConfigurations 1
    Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 57
    bNumInterfaces 2
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0xc0
    Self Powered
    MaxPower 500mA
    Interface Descriptor:
    bLength 9
    bDescriptorType 4
    bInterfaceNumber 0
    bAlternateSetting 0
    bNumEndpoints 2
    bInterfaceClass 255 Vendor Specific Class
    bInterfaceSubClass 0
    bInterfaceProtocol 0
    iInterface 0
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0×01 EP 1 OUT
    bmAttributes 2
    Transfer Type Bulk
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0×0040 1x 64 bytes
    bInterval 0
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0×82 EP 2 IN
    bmAttributes 3
    Transfer Type Interrupt
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0×0008 1x 8 bytes
    bInterval 4
    Interface Descriptor:
    bLength 9
    bDescriptorType 4
    bInterfaceNumber 1
    bAlternateSetting 0
    bNumEndpoints 1
    bInterfaceClass 3 Human Interface Device
    bInterfaceSubClass 0 No Subclass
    bInterfaceProtocol 0 None
    iInterface 0
    HID Device Descriptor:
    bLength 9
    bDescriptorType 33
    bcdHID 1.10
    bCountryCode 0 Not supported
    bNumDescriptors 1
    bDescriptorType 34 Report
    wDescriptorLength 29
    Report Descriptors:
    ** UNAVAILABLE **
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0×85 EP 5 IN
    bmAttributes 3
    Transfer Type Interrupt
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0×0010 1x 16 bytes
    bInterval 4
    Device Qualifier (for other device speed):
    bLength 10
    bDescriptorType 6
    bcdUSB 2.00
    bDeviceClass 0 (Defined at Interface level)
    bDeviceSubClass 0
    bDeviceProtocol 0
    bMaxPacketSize0 64
    bNumConfigurations 1
    Device Status: 0×0000
    (Bus Powered)

  3. msch Says:

    Thank you for putting this up. I found the script quite useful.

Leave a Reply