RoadTest: DLP® Pico™ Display Projector EVM-BeagleBone Black
Author: fvan
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?: 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!
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:
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.
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!
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!
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!
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!
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:
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.
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!
With the BeagleBone Black set up, it's time to focus on the evaluation module.
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.
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.
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
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 ...
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!
The DLP LightCrafter Display 2000 is a fun and useful addition to the BeagleBone ecosystem.
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.
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.
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:
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.
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.
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 …
Top Comments
Excellent review with a great deal of detailed content, well done.
Kind regards
Great road test report.
I had a thought after reading about the focus issue.
I wonder how easy it would be to add a IR range finder to the circuit and use it to adjust the focus dynamically. (anyone from…
Very well done! One of the best review I ever saw. And this add-on is really exciting.
Enrico