This project is mostly completed.
To do:
- Add code to support incerasing the volume for commentary tracks if they're playing.
- Automatically restart Pi if user switches between LCD or external screen
Things I hate:
- Looks ugly
- Sound quality is pretty bad even after adjusting a lot of settings. Thankfully earphones still work. I would look for better speakers and amplifier than the one the original author proposed
- It needs a really good power supply. I currently use 2 USB-C inputs to micro-usb (1 for pi and the display) and I get the lightning bolt a lot if sound is on. 2.8 doesn't experience this issue since pi zero's not as finicky and USB devices work better as it is directly connected to the PSU.
- Can't put blanking on before omxplayer appears because it breaks the HDMI on the 7 inch for some reason
- Power-off of the lcd was supposed to be done through a relay but my design didn't work with the relay I used or the relay was defective. Thankfully the lcd turns off automatically and quickly if there is no signal albeit a blue screen briefly appears
Comments:
- The 2.8 inch version looks cute but the viewing angle is really bad. The 7 inch is much worse despite it being allegedly IPS.
- The 2.8 inch design can be modified to support external hdmi and external USB but it has problems. There's no way to detect HDMI connection/disconnect during boot. You'd have to use TVservice's -M and monitor if user plugs/unplugs hdmi, overwrite the config file to match the state and reboot
- External USB is not very stable either as the pi restarts if a USB device is connected
- The original author didn't bother discussing making the OS read only
- If I were to make this again, probably combine what I learned from the 2.8 and 7 inch. Probably make the 2.8 inch longer as adding external USB and HDMI makes it harder to stay closed and it's very brittle, so maybe additional support for the hdmi and usb are needed. I will also add an hdmi switch to make things easier.
- 2.8 inch 3d print should have wider holes for the knob and power button. I ended up not putting the knob on the volume and power switch since the normal potentiometer doesn't fit and the print was too tight and iffy after filing sanding.
A modified version of the Simpsons TV with the following modifications:
- Will not need 3d printing at all
- Uses Pi 3B
- Uses 7 inch 16:9 screen
- 2 switches to toggle between follow 4:3 ratio, stretch horizontally, zoom in
- Supports sub folders in playback
- Seamless playing of videos between files
- Loading from multiple USB drives
- Support for USB drives
- Support for using LCD or a different screen
- Supports mode to play Simpsons only content
- Supports playing of Simpsons commentary while in Simpsons mode (Issue is if commentary is weaker in volume and omxplayer can't adjust gain on the fly). Can be used to swap between audio tracks
- Can skip to the next video via button press
- Can skip by 15 seconds at a time by long button press
- Can skip based on time through command line
- Can skip to next track through command line
Requirements: A. Encoding Videos
- Some kind of PC
- FFMpeg installed
- ffmpeg-normalizer installed
B. Minimum Hardware
- A Raspberry Pi of sorts (preferably a Pi 3B)
- Some kind of screen, preferably the 2.8 in screen that has a way to short PWM and GPIO 18. For ease, I recommend the 2.8 inch monitor with breakout pins for easy access to ground and 3.3V and GPIO25 and it has a jumper pin for shorting the pwm and gpio18.
- An SD card
- A USB-C/Micro USB female to breakout board
- A Micro USB male connector
- 22 AWG wires (red and black)
C. Optional Hardware
- 1k resistor (For the directory enable feature)
- 3 3 pin sliding switch (For the directory enable feature)
- A micro usb to usb female connector (External USB port)
- A push button (For turning on/off screen, will probably work only for the 2.8 in screen with PWM shorted to GPIO 18)
- A 5W mono speaker (For sound if your screen has no speakers)
- A 1K ohm potentiometer (For adjust sound outputted on the speaker
- A PAM8302 board (For amplifying the mono sound that will be output by the speaker)
- A USB mosfet relay (Allow pi to power on/off an external screen)
- 2 USB C female breakout board
- 2 USB A female breakouts board
Absolute minimum would probably be like: A portable monitor (with speakers, power and volume control) connected to the Pi via HDMI. Both are powered separately or portable monitor powers Pi itself.
D. Minimum Software installed
- omxplayer
- omxplayer-wrapper
- ffmpeg (For ffprobe)
Steps:
- Buy parts
- Prepare pi
- Copy player.py and install the required modules listed
- copy boot folder to boot folder
- Create tvservice
- Do not perform the blanking preboot modification
- Edit code to match the GPIO for the switches (You'll probably have to reduce the GPIO if you're using a 2.8 as there's only 5 available GPIOs while I used 7
- Make OS read only.