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

Table of contents

RoadTest: DLP® Pico™ Display Projector EVM-BeagleBone Black

Author: cghaba

Creation date:

Evaluation Type: Development Boards & Tools

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: I didn't use parts in the same category. Comparable parts using other technologies can be AAXA P1 Mini Projector (Liquid Crystal on Silicon technology) and Syndiant SEE100 free focus laser optical engine. A comparison between such parts in a Road Test would be very interesting.

What were the biggest problems encountered?: Finding documentation on the DLP LightCrafter Display 2000 EVM. For example, a table with the signals on the expansion headers will be very useful.

Detailed Review:

Receiving the package


     Almost every time I have to receive a mail package from another region than the UE there are problems with the delivery, a long delay being the most common situation. This is what also happened with the DLP Pico kit that I was to receive as being selected for the RoadTest. After more than a week of receiving notifications that I will be contacted, I finally decided to call the postal service to see what the problem was. It seemed to be that they had to figure out how to custom tax the kit before sending it further to me. I have explained to them that it is for an element14 RoadTest and that I get it for free, so they let it go without any tax. If it were more expensive, I would definitely have had to pay a customs tax as it happened with a previous RoadTest kit that valued more.


Unpacking the kit


     Included in the pack were the following:

1x DLP DLCR2000 EVM Board nHD EVM Rev. 2

1 x BeagleBone Black board Rev. C

1 x I.T.E. Power supply +5V/3A with AC cord

1x USB Type A to USB Mini-B Adapter Cable

1x TI DLP LightCrafter Display 2000 EVM User's Guide

1x Important Notice for TI Design Information and Resources



Fig.1 Mail package and package content

     The AC cord plug doesn't fit into my mains so I had to use an adapter I already had and used with power adapters which were part of other kits.


Fig.2 AC cord with the adapter.

     To my surprise in the box of the BBB  board I found the DLP board already mounted on the BeagleBone Black (BBB) board. So, I skipped the part 2 of the guide presenting the steps for assembling the DLP board.



Fig.3 BBB board box and the BBB and DLP boards mounted together.


Connecting and powering up the kit (part I)


     I wanted to have the first projected image as soon as possible so I thought that I can do the first test for the DLP board as indicated in section 2 – Quick-Start Guide of the User's Guide. I inserted the power jack in the DLP board power connection and waited for the projector to display the EVM splash screen. Nothing happened. No LED light up to indicate that the board was working or is at least powered.

     I have moved the power jack to the BBB board power connection. Power LED turned on and then the other LEDs indicating that the board is performing a boot started to flash. I hoped that at a certain moment the DLP will also start and display the splash image. I have waited in vain.

     Do I need to power both boards, the DLP and the BBB?  If the two are mounted, don't they provide the power from one to the other over some of the pins?

I went back to the User's guide and looked for some indication that the two must be powered separately. Because I found nothing I was worried that the DLP might get broken during the transport and thus my RoadTest will be very short.

     I went to TI E2E Community searched for an answer but didn't get anything clear.

     I decided to see if the BBB is working ok and if I can access it via the Ethernet port. Based on my experience with RPi boards, I connected a network cable to the Ethernet port and I opened the DHCP Client List in the administrative webpage for my wireless router to find the address allocated to the BBB through the DHCP service.


Fig.4 Identifying IP allocated to the BBB board

     Using the IP found in the previous step I launched putty and I connected to the BBB. I managed to log in using the default login and password for installed Debian image. This was a proof that the BBB was working.

Following the Quick Start Guide, I used the i2cdetect command in order to see if DLP is seen by the system. What I got was that it could see only the EEPROM located at address 0x54-0x57.


Fig.5 Detecting devices on I2C bus

     I had to found out if the DLP board is OK or it was damaged, therefore I decided to unmount the DLP board from the BBB board.


Fig.6 BBB and DLP boards unmounted

     DLP unmounted, I connected the power jack and happily, I got the splash screen. I was happy to see that the DLP is also OK. The conclusion was that the problem was somewhere else.

     In the Quick Start Guide it says that TI recommends using Debian Jessie version 8.9. I verified the version installed on BBB board and found to be version 8. I started to search for the 8.9 version but the links I found on Google Search (https://debian.beagleboard.org/images/rcn-ee.net/rootfs/bb.org/testing/2017-08-01/lxqt-4gb/bone-debian-8.9-lxqt-4gb-armhf-2017-08-01-4gb.img.xz) was not working, the page was not available (Trying to recreate the unavailable answer for this link I have the surprise that now, as the time of writing the review, the page is working and I can download this 8.9 version).

     Looking on beaglebord.org page for available images for BBB (https://beagleboard.org/latest-images), I could see that the latest image is version 9.3 and that, in the list of older images, the version 8.9 is not listed. I decided to try the newest release and write it in the onboard eMMC memory. To this purpose, I followed the instructions given at http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Flashing_eMMC. It took some time, starting with finding an SD card to do the work, downloading the image, writing on the SD card, booting from the SD card and finally writing the image on the eMMC memory, but in the end, everything went well. Finally, I verified the Debian version installed to be sure that indeed the image now in the eMMC memory is the new one.


Fig.7 Verifying the version of installed Debian image

     Changing the image version brought no solution to my problem.


Working with BBB

     When working on the PC, running Linux, I usually try to work in graphical mode. I know it needs more resources but, even if I work for a long time with Unix/Linux, I can't say I am expert in this area. I am not working with Linux on a daily basis so I don't remember all the commands I need when trying to do a certain task. Therefore, if I can, I try to do most of the tasks using the graphical version of the applications. Because I do my main work on a Windows machine, I use a VNC client (TightVNC) to connect to a VNC server running on the Linux machine. If not already installed, the VNC server must first be installed on the Linux machines. In the case of BBB board, the VNC server was already installed on the Debian image so I only had to start the server and set a password for connecting securely to the server from other machines.

     I connected to the BBB using VNC client, entered the password and the display 1 was opened.


Fig.8 Connecting to BBB using VNC

     I looked to see what applications are installed and saw that there are not too many (compared to what you can find in a normal installation of Linux on a desktop PC. For the moment I was needing a terminal and a file browser to easily browse the files structure.

     From System tools menu I launched QTerminal as terminal emulator, but I had the surprise to find that what I type is not what is displayed on the screen.

As you can see in the image below, I typed the keys "qwertyuiop[]" and get something totally different, as if all the keys were messed up. I looked into the settings of the GUI (LXQt Center), in Mouse and Keyboard settings. The keyboard layout was Generic 101-key PC, so normally it should have worked. I tried different layouts from the list but nothing changed. I looked for a solution on different forums but finally didn't find the solution on how to fix this. I only could learn that the problem might be from Qt platform on which the LXQt GUI is built on.


Fig.9 Keyboard keys messed on QTerminal

     In order to be able to work in a terminal using the graphical interface I installed xterm (sudo apt-get install xterm). This time the keys were displayed correctly and I could start to type different commands in order to continue the roadtest.


Fig.10 Xterm installed and working ok.


Visit to Embedded World 2018


I had to interrupt my test of the kit as I was traveling to Embedded World 2018 in Nuremberg, Germany where I was supervising a team of students participating in the MCU Car Rally organized by Renesas. Of course, I have made the plan to visit TI booth in order to find news about TI products and I was hoping to find also information about DLP. And surprise, there it was, the DLP 2000 EVM kit demonstrated within the TI booth. The mystery was also solved as I could see that both DLP and BBB boards were powered by separate power cords inserted into each board's power jack.

     A discussion with a TI representative confirmed that both boards must be powered as the mounting pins are only for signals between the two boards.


Fig.11 DLP 2000 EVM kit demonstrated within the TI booth at Embedded World 2018 in Nuremberg.


Connecting and powering up the kit (part II)


     Back home I restart my Road Test. First was to find a second power adapter in order to have the needed two power sources. I had one which I used to power an older development board. It came unhandy to use two power adapters, therefore, I decided to create a power cord that can power the two boards from the same power adapter. Luckily I could buy some male and female jacks where wires can be connected to the jack without needing to solder them.

Bellow is the picture of the cord. The power adapter which came as part of the kit can provide enough power to supply both the DLP and the BBB boards.


Fig.12 Power supply cord to supply BBB and DLP from a single power adapter.


Changing configuration using I2C commands


    According to DLPC2607 Software Programming Guide, there are available several sets of commands that allow the initialization, default settings and control of the DLPC2607 chipset of the pico projector. The commands can be sent using the I2C interface or the SPI serial flash interface. Using the I2C interface we can read and write into the registers of the DLPC2607 and can read and write the serial flash.

    As specified in the Quick Start Guide, once logged into BBB OS, we can issue read and writes commands on the I2C bus using the i2cset and i2cget commands.

Here are the commands I have tested:

Input Source Selection: (I2C: 0x0B, Flash :0x0000000B)

     We can set the input source. In actual configuration, it is set the parallel I/F, which means from BBB on which DLP is mounted.  We can change to display the splash screen by issuing the command:

i2cset -y 2 0x1b 0x0b 0x00 0x00 0x00 0x02 i

     In order to get back to parallel source, the command is

i2cset -y 2 0x1b 0x0b 0x00 0x00 0x00 0x00 i

     We can get display a set of internal test pattern with the command

i2cset -y 2 0x1b 0x0b 0x00 0x00 0x00 0x01 i

     In order to change the internal test pattern, we must use the command Internal Test Patterns Select: (I2C: 0x11, Flash: 0x00000011). Bellow is a set of the internal test patterns.


Fig.13 DLP internal test patterns


Input Resolution Select: (I2C: 0x0C, Flash :0x0000000C)

    We can set the resolution that will be used to display the image. If we select a smaller resolution the image will be smaller but in the rest of the screen will remain the rest of the image from the higher resolution. In the image below, we can see the effect of changing the resolution once and twice, respectively,  in descending order (0x1b, 0x07 and 0x05) for the same orientation (landscape).


Fig.14 Displaying an image with different resolutions


    I thought that using Display Curtain Control (I2C: 0xA6, Flash: 0x000000A6), I could erase the old image, set the new resolution and display the image in the new resolution. The curtain control does just what it says. It "puts a curtain in front of DLP", and when you take it off, you can see that nothing changed and the image displayed is the one that was there before.

    In order to obtain the clean display, without the remains of previous resolution display, one can use the following sequence: 1) select as source the display of pattern with pattern solid black (0x01), 2) change resolution and 3) select to restore the parallel input as the source.


Image Rotation Control: (I2C: 0x0E, Flash :0x0000000E)

     This command can be used to rotate the image by 90º and can be used only if the image is portrait. I thought I can use it for a clip which was taken with the smartphone in a horizontal position. Bellow is the result I have obtained for rotating the display.



Fig.15 Normal and 90º rotated display.


    It is not what I wanted and is working neither for video clips. The solution than for the video clip is to use the options of mplayer to rotate the frames of the movie with 90º:

mplayer –vf rotate=1 file.mp4.


RGB LED Driver Enable (I2C: 0x16, Flash: 0x00000016)

    Using this command we can enable or disable individually the LED drivers for red, green and blue LEDs resulting using or elimination of that color for displaying a picture. Value 0x00 means all LED drivers off resulting in a black screen. Value 0x07 means all three drivers on, thus a normal display. Bellow is the result of turning on only one driver or a combination of two (picture displayed in red, green, blue, yellow, magenta and cyan).


Fig.16 Enabling and disabling LED drivers

    Using the commands Red LED Driver Current (I2C: 0x12, Flash: 0x00000012), Green LED Driver Current (I2C: 0x13, Flash: 0x00000012), Blue LED Driver Current (I2C: 0x14, Flash: 0x00000012) we can modify the current driving the corresponding LED and thus the brightness of the displayed colors.

    Part of these commands can be executed using the python scripts dlp_lightcrafter package installed according to the Quick start guide. The python scripts are available in /opt/scripts/device/bone/capes/LDPLDCR2000.


Measuring the temperature of DLP

    Lamp based video projectors get very hot and therefore they need a cooling system normally consisting of a powerful fan that exits the heat dissipated by the lamp. DLP has no fan, therefore I was curious to see how hot it can get in normal conditions.

    In order to measure the temperature, I have tried first to use a Raspberry Pi with a PmodTMP3. The Raspberry Pi is connected to Cayenne so I can see the temperature change on a dashboard on my smartphone or in a browser on my PC. The way the temperature sensor is mounted on the Pmod module makes difficult to get near the elements that get hot in the DLP.

  image image

Fig.17 Measuring temperature of DLP using RPi and a PmodTMP3 sensor with visualization on a smartphone using the Cayenne app.

    Then I remembered that at Embedded World I got a temperature and humidity measurement board from Sensirion based on temperature and humidity sensor SHT31 that displays temperature and humidity on an LCD display but which includes a Bluetooth device for communication with applications that can be installed on the smartphone. On this board, the sensor is mounted in a more convenient way than the one on the Pmod module. In order to obtain best possible results, I tried to place the sensor as close as possible to the desired measuring points, taking care not to make any short circuit on the measuring board. When the set-up was ready I connected the phone to the Sensirion board and I powered the DLP watching and recording the variation of temperature on the DLP.


Fig.18 Measuring temperature of DLP using Sensirion board


Finally, I used an IR probe which can measure the temperature right on the surface of the DLP elements. I found there is a difference of about 3 degrees between the measurements of Sensirion board and of the IR probe. It is normal as the Sensirion sensor was not put in contact with the DLP element but very close to it. The maximum temperature measured on the DLP was around 41 degrees, which is very good if we compare to what we have in the lamp projectors.


Fig.19 Measuring temperature of DLP using IR probe.


Using the DLP in the waiting environments

  The idea for the road test came from the desire to make a waiting environment media enhanced by the presence of a device based on DLP LightCrafter Display EVM. By waiting environments I understand a place where some people have to wait before doing something specific that cannot be done as they get to that place because of an appointment schedule, presence of other people with the same scope, unavailability of a person or a resource. These can include but are not limited to the medical office waiting rooms, public relation offices, buses, trains, waiting rooms in railway stations or airports etc.

   The device could be used for projecting on an available surface different media content that can include useful information, commercials or that can become temporary displays for people in the waiting environment (for sharing content with other people, playing games or even doing personal advertising). The small size factor and low cost will make these devices easy to deploy and with an appropriate app it can become popular for this kind of environment.


Displaying commercials and useful information

   In this use case, the administrator of the projector will load the video clips in the memory of BBB which using mplayer will be played on DLP Display. In the simplest case, the video clips will be played in a loop until the administrator will exit the loop and change the video clips in the list. In a more advanced use case, the list of video clips will be played based on a list of attributes: order of play, the number of times each video clip should be played, the moment of the day the video clip should be played.   

In order to demonstrate the simple use case, I created 3 video clips that display the number of the video clip. Then I created a script in bash that displays the video clips in a loop. This can be done in any scripting language or in python.



while :


                for  i in *.MPG; do

                        /usr/bin/mplayer $i;





Sharing content with others

    In this use case, people in the waiting environment should be able to take a photo, film a video clip, upload it to the system to be played along with the other video clips. In order to demonstrate this use case, I have created a guest account on the BBB machine where users could connect and upload their content.

    In the simplest case, people could connect with an ftp client to the ftp server on the BBB and transfer their file into a folder where all content that should be displayed is stored.

   The test of this simple case consisted of the following steps:

  • installed an FTP client on my smartphone (I used ES File Explorer and I configured to connect to the guest account using guest password)
  • Created a script that reads the list of files (mpeg) in folder guestvideos and plays the video clips in the list in an infinite loop using mplayer
  • Started the script
  • Connected to BBB machine with the FPT client and transferred the new video clip in the guestvideo folder
  • The new video clip will be played in the next loop following the transfer.

   The following video shows the test of inserting a new video clip in the list of already existing list. The list to be played consists of Clip1, Clip2, Clip3 and a clip displaying instructions to use the system. A clip named NewClip is transferred in the guestvideos folder and is played too, in the next loop following its insertion.


   A more complex app for allowing this sharing of content will have to take in consideration the following:

  • a guide on how to use the system to share the display should be displayed periodically;
  • users will be allowed only to load video clips;
  • regular content (commercials and info clips) will be played continuously while user content will be played only once or twice. Therefore, a mechanism to erase the users' video clips after they are played should be put in place;
  • a paid service that could allow playing the video clip several times could be created (micro advertising). Larger campaigns would impose taking more care on content and quality of video clips to be displayed;
  • a limit for the duration of (free) user video clip should be imposed. Therefore, bigger size video clips will not be allowed to be uploaded or they will be erased without being displayed;
  • the app will need to take care of different characteristics of the video clips that will be loaded (size, resolution etc).

   The short time available for the road test allowed testing only the simplest cases.



    I was not familiar with video projector devices so there was a lot to learn and there is still a lot to learn in order to use the device at its best performances. Even if the roadtest ended because the need of respecting the deadline, the work with the DLP and BBB will continue.



  • the quality of the image is good
  • the projector has many input resolution and orientation options
  • has a good power control, therefore, doesn't need a shutdown sequence like lamp based video projectors do



  • display distance is limited but probably can be extended with an optical lens system
  • focus changes if the board is balanced. I found in a doc a DLP system where the focus is controlled by a stepper motor that drives the focus lever. The motor is controlled by the DLPC2607 chipset.
  • it is difficult to use the DLP as a display for the BBB.

    In the end, I would like to thank Texas Instruments and element14 for choosing me for road testing this part. It was a pleasure to discover a new technology (DLP), to work with the BBB board and the DLP LightCrafter Display 2000 EVM and test them in order to prove a concept (media enhanced waiting environment) that can further be developed into a useful product.

  Testing DLP with the Raspberry Pi will be postponed until I will find a solution for connecting the two together.