As part of element14’s RoadTest program, I recently got to review Texas Instruments’ DLP LightCrafter Display 2000 pico projector for BeagleBone Black. After finishing the review, I wasn’t satisfied with the performance of the BeagleBone Black, and decided to swap it out in favour of a 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.
Preparation
You’ll need:
- Texas Instruments DLP LightCrafter Display 2000 EVM for BeagleBone Black
- Raspberry Pi with up-to-date software
- 26x F-F and 1x M-F jumper wires
- 6x standoffs and 2 screws
The Raspberry Pi can be prepared using my headless setup procedure: Headless Raspberry Pi Setup with Raspbian Stretch (Pi 3B+ compatible). Make sure I2C is enabled using the raspi-config utility.
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# 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.
Below, are the pins and their numbering on the EVM (source):
Here’s how they 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:
1 2 3 4 5 6 7 |
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 …