Skip to content
pavhofman edited this page Jan 14, 2017 · 22 revisions

Overview

The PLabs Player is a DIY all-in-one audio appliance based on an inexpensive thin-client PC running Voyage Linux . The device is controlled by touch buttons, volume knob and LCD. No monitor/other PC needed.

The device is turned off/on by the PC power button configured to suspend to RAM/resume. The root filesystem on the CF card is mounted read-only to avoid file corruption at abrupt poweroff and to maintain the CF card lifetime.

For now the device has no remote control.

The PC is fitted with:

  • Class-T amp (powered by another PSU) <- internal soundcard line-out -> Speaker delay circuit -> speaker terminals
  • slimline CD/DVD drive with SATA(IDE)/USB adapter -> internal USB header
  • 1.8" TFT LCD -> Arduino SPI
  • 4 touch buttons for control -> TTP224 board -> Arduino digital pins
  • Volume pot -> Arduino analog input
  • Arduino board -> Serial port -> MAX3232 adapters -> RS232 port internal header

Main Components

##Thin-Client PC FS Futro S450/S550/S550-2, available in large quantities on Ebay for about 15 EUR incl. shipping.

The great power-consumption comparison for various thin clients https://gothian.wordpress.com/leistungsvergleich/leistungsvergleich-linux/ reveals this particular model does not have the lowest power consumption among the generally available thin clients. But there are other criteria:

My Reasons for FS Futro S450/S550

  • The internal space of the case allows adding both an amp and a slimline CD/DVD drive
  • The front panel just fits a 1.8" TFT LCD and a volume button.
  • Coming with 1GB RAM/1GB flash drive
  • The machines I have purchased from various german sellers on Ebay.de have always looked brand-new, no scratches

Class-T Amplifier TK2050

I have had several Tripath amps and always liked their sound for the price. The TK2050 from ebay for about 15 USD incl. shipping just fits the case perfectly:

Hi-res picture

Ebay offers several variants of the amp, I prefer the one with 8 caps by side.

Slimline CD/DVD drive

The drive just fits into the upper half of the metal cover.

Hi-res picture

Either IDE or SATA will do, with corresponding USB adapter. The IDE drive with USB adapter costs approx. 12USD incl. shipping.

1.8" 160x128 TFT LCD with ST7735 controller

There are several different boards produced, we need the one with no extra space above and below the LCD, e.g. http://www.ebay.com/itm/1-8-Serial-SPI-TFT-LCD-Display-Module-ST7735B-IC-PCB-Adapter-For-Mega2560-R3-/152287159888 (approx. 5USD)

Touch Buttons

I find touch buttons the easiest decently-looking controlling element for DIY. The TTP224 4-Channel board costs 0.60USD on aliexpress. The board is connected to 4 digital inputs of arduino, powered by 3.3V.

The four touch pads are made of standard Allen (hex) key black M3 bolts for a few cents.

Volume Pot

Any 1-5kOhm linear potentiometer with an appropriate knob. The pot acts as voltage divider, with analog input of arduino measuring the current value.

Arduino

Common chinese clone Arduino Mini Pro 5V (!) running at 3.3V (1.5 USD incl. shipping). The 5V Arduino Mini Pro is clocked at 16 MHz (while the 3.3V version at 8MHz). We need maximum performance for fast TFT refresh - the 5V arduino runs just fine at 3.3V.

3.3V <-> RS232 Converter

I ordered cheap tiny chinese MAX3232 boards (1USD for 5pcs incl. shipping). After a long struggle my scope showed the RS232 output voltage pump gets influenced by incoming RS232 signal, basically "looping" the signal back to the RS232 RX pin. The board tested did not work properly in duplex mode. Adding another board for the other direction solved the problem for almost no cost - i.e. two boards, each in simplex mode for one direction. Since then the communication was rock solid.

I could not make the RS232 port work with DTR properly (it kept resetting arduino). As a result only TX + RX lines are used/converted. Arduino is programmed from a development machine by using proper USB-serial adapter with the DTR pin.

Speaker Delay Circuit

Eventhough the amp offers multiturn trimpots for zeroing output DC shift, it produces amn ugly bump at power-on. Simple 555-based delay circuit with relay powered by 5V from the PC solved the issue completely.

External Relay-Activated Power Supply for the Amp

I tried really hard to solve ground loops within the PC to be able to supply the amp from the same PSU as the PC itself. Unfortunately no measure worked satisfactorily (thick grounding wires, multi-stage filters, regulators).

The amp must be mounted isolated from the PC case and powered by another power supply. The only ground connection of the amp and the PC are the shields of the input coax wires.

Since the PC itself is galvanically isolated from the earth (the original PSU uses no ground wire), the amp PSU can be grounded. A standard decent switched-mode 20V/4A brick works just fine. I estimate max. output power at 2 x 20W at 20V.

In order to avoid power consumption when the machine is off (suspended to RAM), the amp power supply is disconnected from mains by a relay powered by 5V taken from the PC. The relay is placed outside of the PC. The amp PSU and the 5V relay control are connected via 4-pin power socket available for free on any old PC motherboard/PSU.