Skip navigation
> RoadTest Reviews

DLP® Pico™ Display Projector EVM-BeagleBone Black - Review

Scoring

Product Performed to Expectations: 8
Specifications were sufficient to design with: 9
Demo Software was of good quality: 9
Product was easy to use: 7
Support materials were available: 9
The price to performance ratio was good: 8
TotalScore: 50 / 60
  • RoadTest: DLP® Pico™ Display Projector EVM-BeagleBone Black
  • Buy Now
  • Evaluation Type: Development Boards & Tools
  • Was everything in the box required?: Yes
  • Comparable Products/Other parts you considered: Not entirely satisfied by the BeagleBone Black's performance, I tried swapping it out in favour of the Raspberry Pi 3B+.
  • What were the biggest problems encountered?: No I2S audio when the EVM is connected was the biggest problem for my project. The loose focus pin should be improved as well.

  • Detailed Review:

    This post represents my review for the DLP® Pico™ Display Projector EVM-BeagleBone Black RoadTest.

     

    Rather than performing a classic review, I proposed to build a project around the BeagleBone Black and the projector module and share my thoughts and observations on both devices as the project progresses. At the same time, the post should give insights on how I break down and tackle such a project. The resulting post could then act as a getting started guide or how-to for certain topics. The idea for the project I pitched, is to create a self-contained video projector using this module in combination with the BeagleBone Black provided for this review, but also to add sound, battery power and a 3D printed enclosure to keep it all together.

     

    Let's get started!

     

     

    Unboxing

     

    The kit arrived in a big box (banana for scale), with everything well protected. One thing that immediately caught my eye, was the warning on the box stating the following:

    For evaluation only

    Not FCC approved for resale

     

    This warning was repeated again with a more detailed document inside the package.

     

    The kit contained four items:

    • BeagleBone Black (Rev. C)
    • DLP Pico Display Project evaluation module
    • 5V/3A DC barrel jack power supply (with US cord)
    • mini USB cable

     

    The module was pre-mounted on the BeagleBone Black, contained in an anti-static bag. There was no packaging or documentation for the module, except for a little card.

     

     

    As I removed the BeagleBone Black and module from the anti-static bag, I noticed something about the module looked different from the pictures I had seen so far:

     

     

    A simple heatsink was pre-installed, which is nowhere to be seen in the documentation or pictures of the module. The documentation does mention the module can get rather hot when operating at full brightness:

    The DLPDLCR2000EVM optical engine can be driven to 30 lumens at maximum current settings, but will also run at high

    temperatures. It is recommended that the user add a heatsink to the system when running beyond typical operating conditions to

    maintain the same unit temperature.

     

    BeagleBone Black

     

    Operating System

     

    In order to use the module with the BeagleBone Black, a recent software image needs to be used. That software image can be downloaded from the BeagleBoard website and then flashed to a microSD card.

     

    I've used the Debian Stretch with desktop image, which I found on the latest images page.

    Stretch LXQT (with graphical desktop) for BeagleBone via microSD card (775MB)

    http://debian.beagleboard.org/images/bone-debian-9.3-lxqt-armhf-2018-01-28-4gb.img.xz

    The microSD card needs to be at least 4GB, but I'll be using an 8GB one and increase the size of the filesystem.

     

    To burn the image to the microSD card, I've used Etcher. There's no need to unzip the downloaded image first, Etcher takes care of it.

     

    After flashing the microSD card, it can be inserted in the BeagleBone Black.

     

    Operating system: check!

     

    Connection

     

    To power on and connect to the BeagleBone Black, connect the miniUSB cable to the BeagleBone Black and your PC. A new network interface will show up, creating a network connection between your PC and the BeagleBone Black over USB.

    My computer received IP address 192.168.6.1, with 255.255.255.252 as subnet mask.
    This means there are only two usable IP addresses in the subnet: 192.168.6.1 and 192.168.6.2 (.0 is the network address, .3 broadcast). The BeagleBone Black should be accessible on 192.168.6.2 then.

     

    After confirming the BeagleBone Black can be pinged, it's possible to connect via SSH. The username is debian, password is temppwd.

     

    Fredericks-Mac-mini:Desktop frederickvandenbosch$ ssh debian@192.168.6.2
    debian@192.168.6.2's password: temppwd
    Linux beaglebone 4.9.78-ti-r94 #1 SMP PREEMPT Fri Jan 26 21:26:24 UTC 2018 armv7l
    
    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.
    
    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.
    debian@beaglebone:~$

     

    Connectivity: check!

     

    Filesystem Expansion

     

    By default, after flashing the OS image to the microSD card, the system is partitioned to use 4GB of space. Because I used a 8GB card, I'd like to expand the filesystem to make use of all available capacity.

     

    The original partitioning and sizing is the following:

     

    debian@beaglebone:~$ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    udev            215M     0  215M   0% /dev
    tmpfs            49M  5.4M   44M  12% /run
    /dev/mmcblk0p1  3.3G  2.7G  402M  88% /
    tmpfs           243M     0  243M   0% /dev/shm
    tmpfs           5.0M     0  5.0M   0% /run/lock
    tmpfs           243M     0  243M   0% /sys/fs/cgroup
    tmpfs            49M  4.0K   49M   1% /run/user/1000

     

    The size of /dev/mmcblk0p1 is limited to 3.3GB.

     

    First, launch fdisk:

     

    debian@beaglebone:~$ sudo fdisk /dev/mmcblk0

     

    Show the current partitioning.

     

    Command (m for help): p
    
    Disk /dev/mmcblk0: 7.4 GiB, 7985954816 bytes, 15597568 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x531bb24f
    
    Device         Boot Start     End Sectors  Size Id Type
    /dev/mmcblk0p1 *     8192 6963199 6955008  3.3G 83 Linux

     

    Delete the partition and recreate it. Be sure to use the same start sector as the original partition! Use the default for the last sector, which means using maximum capacity.

     

    Command (m for help): d
    Selected partition 1
    Partition 1 has been deleted.
    
    Command (m for help): n
    
    Partition type
       p   primary (0 primary, 0 extended, 4 free)
       e   extended (container for logical partitions)
    Select (default p):
    
    Using default response p.
    Partition number (1-4, default 1):
    First sector (2048-15597567, default 2048): 8192
    Last sector, +sectors or +size{K,M,G,T,P} (8192-15597567, default 15597567):
    
    Created a new partition 1 of type 'Linux' and of size 7.4 GiB.
    Partition #1 contains a ext4 signature.
    
    Do you want to remove the signature? [Y]es/[N]o: y
    
    The signature will be removed by a write command.

     

    Show the new partition to confirm the new size and write the partition table.

     

    Command (m for help): p
    
    Disk /dev/mmcblk0: 7.4 GiB, 7985954816 bytes, 15597568 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x531bb24f
    
    Device         Boot Start      End  Sectors  Size Id Type
    /dev/mmcblk0p1       8192 15597567 15589376  7.4G 83 Linux

     

    Command (m for help): w
    
    The partition table has been altered.
    Calling ioctl() to re-read partition table.
    Re-reading the partition table failed.: Device or resource busy
    
    The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

     

    Reboot the system to use the new partition table.

     

    debian@beaglebone:~$ sudo reboot

     

    The partition has been resized, but the filesystem isn't. This can be done with the following command:

     

    debian@beaglebone:~$ sudo resize2fs /dev/mmcblk0p1
    
    resize2fs 1.43.4 (31-Jan-2017)
    Filesystem at /dev/mmcblk0p1 is mounted on /; on-line resizing required
    old_desc_blocks = 1, new_desc_blocks = 1
    The filesystem on /dev/mmcblk0p1 is now 1948672 (4k) blocks long.

     

    The size of /dev/mmcblk0p1 has been increased to 7.3GB:

     

    debian@beaglebone:~$ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    udev            215M     0  215M   0% /dev
    tmpfs            49M  5.4M   44M  12% /run
    /dev/mmcblk0p1  7.3G  2.7G  4.3G  39% /
    tmpfs           243M     0  243M   0% /dev/shm
    tmpfs           5.0M     0  5.0M   0% /run/lock
    tmpfs           243M     0  243M   0% /sys/fs/cgroup
    tmpfs            49M  4.0K   49M   1% /run/user/1000

     

    Expanded filesystem: check!

     

    Wi-Fi

     

    The BeagleBone Black has a single USB port, ideal for a Wi-Fi dongle (unless you are using the BeagleBone Black Wireless variant).

     

    Setting up the Wi-Fi can be done through a set of command line options of the connmanctl application:

     

    debian@beaglebone:~$ sudo connmanctl
    
    connmanctl> tether wifi off
    Error disabling wifi tethering: Already disabled
    
    connmanctl> enable wifi
    Error wifi: Already enabled
    
    connmanctl> scan wifi
    Scan completed for wifi
    
    connmanctl> services
        TelenetWiFree        wifi_801f02af042c_54656c656e6574576946726565_managed_ieee8021x
        telenet-7DE6DBC      wifi_801f02af042c_74656c656e65742d37444536444243_managed_psk
    
    connmanctl> agent on
    Agent registered
    
    connmanctl> connect wifi_801f02af042c_74656c656e65742d37444536444243_managed_psk
    Agent RequestInput wifi_801f02af042c_74656c656e65742d37444536444243_managed_psk
      Passphrase = [ Type=psk, Requirement=mandatory, Alternates=[ WPS ] ]
      WPS = [ Type=wpspin, Requirement=alternate ]
    Passphrase? enter_your_passphrase_here
    Connected wifi_801f02af042c_74656c656e65742d37444536444243_managed_psk
    
    connmanctl> quit

     

    Confirm correct setup by verifying an IP address was assigned on the wireless interface:

     

    debian@beaglebone:~$ ifconfig wlan0
    wlan0: flags=-28605<up,broadcast,running,multicast,dynamic>  mtu 1500
            inet 192.168.0.232  netmask 255.255.255.0  broadcast 192.168.0.255
            inet6 2a02:1812:2469:200:821f:2ff:feaf:42c  prefixlen 64  scopeid 0x0
            inet6 fe80::821f:2ff:feaf:42c  prefixlen 64  scopeid 0x20
            ether 80:1f:02:af:04:2c  txqueuelen 1000  (Ethernet)
            RX packets 550  bytes 119565 (116.7 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 135  bytes 20104 (19.6 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

     

    Wireless connectivity: check!

     

    I2S Audio

     

    Inspired by shabaz's BBB - Building a DAC and BBB - Audio notes , I wanted to get audio output via a 3W I2S Mono Amp from Adafruit.

     

    Unfortunately, I was encountering problem from the very beginning, as no soundcard was detected:

     

    debian@beaglebone:~$ aplay -l
    aplay: device_list:270: no soundcards found...

     

    Then I remembered my struggle with HDMI audio during the BeagleBone Black Radio Challenge, as described in Beaglebone Black Radio Challenge - Part 2: Getting the different components to work

     

    HDMI Audio only works at certain resolutions. But because of the DLP2000 cape, the resolution is forced to 640x360 as demonstrated below.

     

    debian@beaglebone:~$ xrandr -d :0 -q
    
    xrandr: Failed to get size of gamma for output default
    Screen 0: minimum 640 x 360, current 640 x 360, maximum 640 x 360
    default connected 640x360+0+0 0mm x 0mm
       640x360        0.00*

     

    To try and get to the bottom of this, I removed the DLP2000 cape and rebooted the BeagleBone Black.

     

    The resolution changed:

     

    debian@beaglebone:~$ xrandr -d :0 -q
    
    xrandr: Failed to get size of gamma for output default
    Screen 0: minimum 1024 x 768, current 1024 x 768, maximum 1024 x 768
    default connected 1024x768+0+0 0mm x 0mm
       1024x768       0.00*

     

    And the HDMI soundcard was back ...

     

    debian@beaglebone:~$ aplay -l
    
    **** List of PLAYBACK Hardware Devices ****
    card 0: Black [TI BeagleBone Black], device 0: davinci-mcasp.0-hdmi-hifi.0 hdmi-hifi.0-0 []
      Subdevices: 1/1
      Subdevice #0: subdevice #0

     

    I wired the DAC to the BeagleBone Black as follows:

    • DIN <> P9_28
    • LRC <> P9_29
    • BCLK <> P9_31
    • GND <> P9_1
    • VIN <> P9_3

     

    debian@beaglebone:~$ mplayer test.mp3
    
    Creating config file: /home/debian/.mplayer/config
    MPlayer 1.3.0 (Debian), built with gcc-6.2.1 (C) 2000-2016 MPlayer Team
    do_connect: could not connect to socket
    connect: No such file or directory
    Failed to open LIRC support. You will not be able to use your remote control.
    
    
    Playing test.mp3.
    libavformat version 57.56.101 (external)
    Mismatching header version 57.56.100
    Audio only file format detected.
    Load subtitles in ./
    ==========================================================================
    Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III
    AUDIO: 44100 Hz, 2 ch, s16le, 256.0 kbit/18.14% (ratio: 32000->176400)
    Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III)
    ==========================================================================
    AO: [pulse] Init failed: Connection refused
    Failed to initialize audio driver 'pulse'
    [AO_ALSA] alsa-lib: pcm_plug.c:909:(snd_pcm_plug_hw_refine_cchange) Unable to find an usable client format
    [AO_ALSA] alsa-lib: pcm_plug.c:913:(snd_pcm_plug_hw_refine_cchange) Format: S16_LE
    AO: [alsa] 32000Hz 2ch s16le (2 bytes per sample)
    Video: no video
    Starting playback...
    A: 308.6 (05:08.5) of 309.0 (05:09.0) 11.1%
    
    Exiting... (End of file)

     

     

    In conclusion, I2S is possible with the selected DAC, only not out of the box in combination with the cape. More research is required to get it working in combination with the cape ...

     

    An alternative would be to use Bluetooth audio instead, with a portable speaker.

     

    Bluetooth Audio

     

    Plan B for audio. Using a Bluetooth USB dongle and a portable Bluetooth speaker (JBL Go), I should be able to get the desired output. An added bonus is that the speaker has its own volume controls ...

     

    To pair and connect the speaker to the BeagleBone Black, I used the "bluetoothctl" application.

     

    Start the program, register the agent and start scanning for BT devices:

     

    debian@beaglebone:~$ sudo bluetoothctl
    
    [bluetooth]# agent on
    Agent registered
    
    [bluetooth]# scan on
    Discovery started
    [CHG] Controller 00:1A:7D:DA:71:0F Discovering: yes
    ...
    [NEW] Device 40:EF:4C:4F:7E:DF JBL GO
    ...

     

    Once the desired device is discovered, pair and trust it:

     

    [bluetooth]# pair 40:EF:4C:4F:7E:DF
    Attempting to pair with 40:EF:4C:4F:7E:DF
    [CHG] Device 40:EF:4C:4F:7E:DF Connected: yes
    [CHG] Device 40:EF:4C:4F:7E:DF UUIDs: 00001108-0000-1000-8000-00805f9b34fb
    [CHG] Device 40:EF:4C:4F:7E:DF UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
    [CHG] Device 40:EF:4C:4F:7E:DF UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
    [CHG] Device 40:EF:4C:4F:7E:DF UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
    [CHG] Device 40:EF:4C:4F:7E:DF UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
    [CHG] Device 40:EF:4C:4F:7E:DF ServicesResolved: yes
    [CHG] Device 40:EF:4C:4F:7E:DF Paired: yes
    Pairing successful
    
    [bluetooth]# trust 40:EF:4C:4F:7E:DF
    [CHG] Device 40:EF:4C:4F:7E:DF Trusted: yes
    Changing 40:EF:4C:4F:7E:DF trust succeeded

     

    Finally, connect to the device:

     

    [bluetooth]# connect 40:EF:4C:4F:7E:DF
    Attempting to connect to 40:EF:4C:4F:7E:DF
    Failed to connect: org.bluez.Error.Failed

     

    Unfortunately that failed. Using the power of Google, I discovered this is related to a missing audio package. I installed it, and connecting succeeded!

     

    debian@beaglebone:~$ sudo apt-get install pulseaudio-module-bluetooth

     

    [bluetooth]# connect 40:EF:4C:4F:7E:DF
    Attempting to connect to 40:EF:4C:4F:7E:DF
    [CHG] Device 40:EF:4C:4F:7E:DF Connected: yes
    Connection successful

     

    Play some music:

     

    debian@beaglebone:~$ mplayer test.mp3

     

    Yay! Bluetooth audio!

     

     

    DLP LightCrafter Display 2000

     

    With the BeagleBone Black set up, it's time to focus on the evaluation module.

     

    Initial Power On

     

    The module comes with a 5V/3A power supply, which can be connected directly to the cape. While connected to the BeagleBone Black though, applying power to the cape is not sufficient to get it to power on (it is when disconnected from the BeagleBone black). That's a pity, as a beefy power supply as the one provided could easily power both.

     

    Powering the BeagleBone Black via the miniUSB interface causes the projector to power on and display a default image.

     

    While the projected image is visible in a normally lit room, the colours really pop when used in the dark. Putting the projector 1 meter away from the wall, the image is approximately 60*35 cm.

    At 2.5 meters from the wall, the image is approximately 155*90 cm. The pixels can be distinguished from up close.

     

    A tiny handle on the side of the projector is used to focus the image. Unfortunately, it is very sensitive: the slightest touch is enough to get it out of focus. That also means it is quite hard to get it to focus reliably.

     

    According to this thread, other users have reported this as a problem. The answer was the following:

    Typically, the focus pin that is being moved is augmented with a mechanical system in the end product that results in an external knob or slider. The issue you may be experiencing could be the normal softness on the pin itself. The DLP2000 evaluation module is designed to be an evaluation module for developers to experiment with new display solutions.

     

    We are working on an off-the-shelf solution for our early adopters over the next few weeks and will keep you posted.

    Later, a solution/workaround involving the replacement of the screw by another one was suggested, and even mentioned to be included in future kits:

    As a note to other E2E users, we are planning to pack-in these additional components to our DLPDLCR2000EVM kits down the road to make this focus lever modification more accessible out of the box.

    As this wasn't included in this kit, I reached out to see if I could get my hands on the replacement screw to fix this issue (24 Jan).

     

    A bit more than a month later (9 Mar), a big box showed up via DHL, containing a small screw and washer, as described in the thread. I love the fact that Texas Instruments is committed to helping its users, but the packaging is ridiculous and needs to be addressed!

                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    With the new screw in place, there is still no fine control, but as the assembly no longer moves with the slightest touch, it is indeed more stable. A small, but useful improvement.

     

    I let the projector run for 30 minutes to check the temperature. Even with the heatsink, the module is hot to the touch. Using an IR thermometer, I measured temperatures up to 49.8 °C.

     

    Running the Demo

     

    An example application is provided in the "/opt/scripts/device/bone/capes/DLPDLCR2000" folder on the BeagleBone Black. The README file contains the instructions to install it:

     

    Use of the provided Python scripts requires the accompanying library:
    
    dlp_lightcrafter-1.0.19.tar
    
    To install on BeagleBone Black, do:
    
    $ tar -xvf dlp_lightcrafter-1.0.19.tar.gz
    $ cd dlp_lightcrafter-1.0.19
    $ sudo python setup.py install
    
    From there, execute individual python scripts to initiate tests for the EVM.

     

    I followed the instructions, which took less than 30 seconds to execute, and then ran the example:

     

    debian@beaglebone:/opt/scripts/device/bone/capes/DLPDLCR2000$ export DISPLAY=:0
    debian@beaglebone:/opt/scripts/device/bone/capes/DLPDLCR2000$ python MplayerTest.py

     

    A short demo video, showing some aquarium fish, started playing.

     

    Video Playback

     

    Time to test with my own video.

     

    First, ensure the DLP2000 is projecting the desktop, and export the display for mplayer to use:

     

    debian@beaglebone:~$ i2cset -y 2 0x1b 0x0b 0x00 0x00 0x00 0x00 i
    debian@beaglebone:~$ i2cset -y 2 0x1b 0x0c 0x00 0x00 0x00 0x1b i
    debian@beaglebone:~$ export DISPLAY=:0

     

    I downloaded the nHD version of Big Buck Bunny to test with, and uploaded it to the BeagleBone Black. Using mplayer, I attempted to play the video:

     

    debian@beaglebone:~$ mplayer -fs BigBuckBunny_640x360.m4v

     

    It starts playing but the audio is completely out of sync, and following warning pops up in the console:

     

               ************************************************
               **** Your system is too SLOW to play this!  ****
               ************************************************
    
    Possible reasons, problems, workarounds:
    - Most common: broken/buggy _audio_ driver
      - Try -ao sdl or use the OSS emulation of ALSA.
      - Experiment with different values for -autosync, 30 is a good start.
    - Slow video output
      - Try a different -vo driver (-vo help for a list) or try -framedrop!
    - Slow CPU
      - Don't try to play a big DVD/DivX on a slow CPU! Try some of the lavdopts,
        e.g. -vfm ffmpeg -lavdopts lowres=1:fast:skiploopfilter=all.
    - Broken file
      - Try various combinations of -nobps -ni -forceidx -mc 0.
    - Slow media (NFS/SMB mounts, DVD, VCD etc)
      - Try -cache 8192.
    - Are you using -cache to play a non-interleaved AVI file?
      - Try -nocache.
    Read DOCS/HTML/en/video.html for tuning/speedup tips.
    If none of this helps you, read DOCS/HTML/en/bugreports.html.

     

    Testing the suggested workarounds, a working command turned out to be:

     

    debian@beaglebone:~$ mplayer -fs -vo x11 -vfm ffmpeg -lavdopts lowres=1:fast:skiploopfilter=all BigBuckBunny_640x360.m4v

     

    The video playout is not entirely smooth, but perfectly watchable and audio is in sync.

     

     

    I created a simple script to combine all commands in one:

     

    #!/usr/bin/env python
    
    from os import system
    from sys import argv
    
    system("i2cset -y 2 0x1b 0x0b 0x00 0x00 0x00 0x00 i")
    system("i2cset -y 2 0x1b 0x0c 0x00 0x00 0x00 0x1b i")
    system("export DISPLAY=:0")
    
    system("mplayer -fs -vo x11 -vfm ffmpeg -lavdopts lowres=1:fast:skiploopfilter=all " + argv[1])

     

    Which can be run as follows:

    debian@beaglebone:~$ ./mplayer.py BigBuckBunny_640x360.m4v

     

     

    Battery Power

     

    With video and audio playback confirmed to be working, time to work on the portable aspect of the project by focusing on the power source first.

     

    First step is to have the cape power the BeagleBone Black, so only a single power source needs to be connected.

     

    Measuring pins on the BeagleBone Black (left, source), I concluded that pins P9_5 and P9_6 are directly connected to the barrel jack's 5V input. On the cape (right, source), matching pins P2_5 and P2_6 are not connected. Hence, the cape does not power the BeagleBone Black, or vice versa.

    However, there is header J3 which is directly connected to the cape's barrel jack 5V input. As the GND pins are connected between the BeagleBone Black and the cape, all that remains is to bridge the 5V pins between the two.

     

    From header J3, I made a connection to P2_6/P9_6 using a jumper wire.

     

     

    Applying power to either the BeagleBone Black or the cape, now ensures both are powered from the same source.

     

    Second step is to measure the current draw by the display and BeagleBone Black.

     

    The measurement on the left, 290mA, is the display cape only (without 5V jumper wire). The measurement on the right, 590mA, is both the BeagleBone Black and display cape (with 5V jumper wire).

     

    The values are promising, as they are well under 1A, meaning I could probably make use of an Adafruit Powerboost 1000C to power the devices from battery. Of course, this is in idle state, I'd have to measure in a loaded state as well.

     

    These measurements raised the following question though: why would the evaluation module come with a beefy 5V/3A power supply?

     

    Third step is to test the Powerboost.

     

    I'm using a 6600mAh 3.7V Lithium Ion battery pack as power source. This should keep the whole thing powered at least a few hours.

     

    The battery pack connects to the Powerboost's JST connector, and the Powerboost connects to the BeagleBone Black and EVM via J3's GND pin and P2_5/P9_5. A switch can be added to the Powerboost's EN pin to enable/disable it, and the battery pack can be recharged via the microUSB port.

     

     

    First thing I tried with my portable BBB and EVM? Messing with the cat of course ...

     

     

    Putting Things Together

     

    First step is to attach and connect the battery pack to the Beaglebone Black.

     

    I designed a cape-sized plate in Fusion 360 to print on my CEL Robox 3D printer, based on the dimensions I found online (source). I added two slots in order to be able to tie the battery pack to the plate.

     

    Using two sets of four 11mm standoffs, enough clearance is created for the battery pack. Some zip ties are used to fasten the pack to the printed plate.

     

    Second step is design (parts of) an enclosure that can protect the device, while at the same time keep all the necessary ports accessible.

     

    I designed two parts, one to protect the top, the other to protect the bottom. It screws into the available mounting holes, securing everything in place.

    Slots are foreseen to allow the heat to escape from the top part, a slot in the bottom part provides access to the charging port of the PowerBoost.

     

    Files on Thingiverse.

     

     

    Third step is the final assembly for this project using nylon screws.

     

    Fourth step: enjoy the movie!

     

    Conclusion

     

    The DLP LightCrafter Display 2000 is a fun and useful addition to the BeagleBone ecosystem.

    plug and play video projector

    good quality image (when focused) with bright colours

    relatively low power, can be battery powered

     

    But it is still an evaluation module, with some disadvantages (when combined with BeagleBone Black).

    the focus pin is really impractical and too sensitive to use reliably. The workaround is an improvement, but not a real solution.

    the BBB is missing that extra "oomph" for smooth video playback applications
    the side effect of losing I2S audio, which is more a BBB problem, is annoying but not without workarounds

     

    Some questions/remarks:

    why the need for such a beefy power supply?

    the documentation will get you started and projecting video, but I found myself having to browse the support forums to find answers to other questions such as the focus pin, audio support or running it on other platforms

    packaging of the replacement screw was ridiculous and should be addressed

     

    By replacing the BeagleBone Black by the BeagleBone Black Wireless, the USB splitter and dongles would no longer be required and would make the final solution look cleaner.

     

    Bonus: Combined with Raspberry Pi 3B+!

     

    I couldn't help but be slightly annoyed by the BeagleBone Black underperforming, so I decided to try and run the DLP LightCrafter Display 2000 on my Raspberry Pi 3B+.

     

    Credits go to Philip Hodgers, whose post I found on TI’s E2E forum, for figuring out the wiring and config parameters to get the projector to work via the Pi’s DPI interface.

     

    Configuration

     

    The following block needs to be appended to /boot/config.txt. This can be done straight from the Raspberry Pi, or while the SD card is mounted on the PC.

     

    # Add support for software i2c on gpio pins
    dtoverlay=i2c-gpio,i2c_gpio_sda=23,i2c_gpio_scl=24,i2c_gpio_delay_us=2
     
    # DPI Video Setup
    dtoverlay=dpi18
    overscan_left=0
    overscan_right=0
    overscan_top=0
    overscan_bottom=0
    framebuffer_width=854
    framebuffer_height=480
    enable_dpi_lcd=1
    display_default_lcd=1
    dpi_group=2
    dpi_mode=87
     
    dpi_output_format=458773
    hdmi_timings=854 0 14 4 12 480 0 2 3 9 0 0 0 60 0 32000000 3

     

    What this does is:

    • move the I2C interface to pins not used by the DPI interface
    • define the video output format and timing information

     

    Wiring

     

    The wiring is not difficult, but there are quite a lot of connections to make (27 to be exact). It is important to take your time and double check every connection before powering on the Raspberry Pi.

     

    Here’s how the EVM's pins map to the Raspberry Pi’s GPIO:

    I’ve added P2_6 (5V) via GPIO pin 2 to power the EVM from the Pi or vice versa. A bridge is then required on the EVM from P2_6 to J3 using the M-F jumper wire. The EVM’s 5V/3A power supply is plenty to power both devices.

     

    The resulting wiring should resemble the pictures below. I’ve used three stacked standoffs to create enough clearance while keeping everything in place.

    Video & Audio

     

    After applying power, the EVM will display a default splash screen. Some commands need to be passed via its I2C interface to display the Pi’s desktop.

     

    This can be automated to be executed at every boot, by adding these commands to /etc/rc.local before the “exit 0” command:

     

    pi@raspberrypi:~ $ sudo nano /etc/rc.local
     
    ...
    sudo i2cset -y 3 0x1b 0x0c 0x00 0x00 0x00 0x13 i
    sudo i2cset -y 3 0x1b 0x0b 0x00 0x00 0x00 0x00 i
     
    exit 0

     

    These commands configure the EVM to match the configuration specified earlier in /boot/config.txt, and change the input source.

     

    Finally, the easiest way to get audio running, is probably to use a Bluetooth speaker. It’s easily set up too.

    • click on the Bluetooth icon, and select “Add Device …”
    • put your speaker in discovery mode, it should appear in the list
    • click “Pair”
    • once pairing is successful, right-click on the audio icon and select the speaker

     

     

    That’s it! You should now have audio and video running!

     

    You can connect to the Pi via VNC to start YouTube for example, and start enjoying your favourite content on the biggest screen in the house …

     


Comments

Also Enrolling
Enrollment Closes: Jun 29 
Enroll
Enrollment Closes: Jul 20 
Enroll
Enrollment Closes: Jul 9 
Enroll
Enrollment Closes: Jun 30 
Enroll