Réalisation d'un Préampli contrôlable à distance par une interface Ethernet, par l'intermédiaire d'un bouton rotatif avec encodeur et  de télécommandes IR



Let me present to you my PREAMPuino (for now version v1.4 )

Principales fonctions:

  • Arduino MEGA
  • Arduino Ethernet shield
  • PGA2311 kit on ebay
  • Encoder
  • IR remote
  • Network control

My modified PGA2311:

  •  get the mounted version on ebay with remote control




  • replaced the PGA2311P (0.0004% THD+N at 1kHz (U-Grade)) by a PGA2311PA (0.0002% THD+N at 1kHz (A-Grade))
  • realocate the transformer
  • put Arduino MEGA inside
  • put Arduino ethernet shield on MEGA
  • put a RTC module named HCRTC (RTC DS1307 + I2C EEPROM) on I2C
  • replaced the poor default encoder by a BOURNS encoder ref EM14
  • replaced the poor lcd screen by an OLED screen
  • adding a chassis ethernet plug
  • adding a softreset button to restore 'factory defaults'
  • adding a beeper to inform




  • trashed the control board and default lcd with default encoder
  • programmed the arduino MEGA to control all stuff
  • regroup infos on OLED lib (resume work of poeple who worked on this lib)




  • The Arduino MEGA and its shield Ethernet controls everything.
  • Power ON with soft volume on
  • Changing sources


In standby mode (or standby or sleep mode):


  • The OLED shows in order: Time-date / IP / PORT / DNS / GATEWAY / MASK then go back to Time-date (infos can be viewed/changed by encoder or IR remotes (and yes, remotes with an "S" because I programmed all the remote I have at home so I can command my PREAMPuino with them)
  • Time/date: The box shows TIME/DATE with automatic update on an NTP server.
  • Ethernet stuff: is also automatic in DHCP mode so you just need to adjust your box/router settings to get a valid IP on the PGA2311 box.
  • If the box doesn't detect dhcp, it will start with default parameters in EEPROM.


In power ON mode:


  • The screen shows on 1st line the source, on second line the volume in db. I choose db instead of percentage, but percentage is easily codable with the 'map()' function.
  • With the encoder turned right, volume increasing
  • With the encoder turned left, volume decreasing
  • If you push the switch encoder less than 3s, it will switch between the 3 inputs
  • If you push the switch encoder more than 3s, il will put the box in standby mode (then you returned to the Time/date screen)


General description:

When in operation the screen will be put in minimum contrast in about 1min and will completely shut down in about 15minutes.

IR Remotes can do the same functions except you have the ability to SAVE data to eeprom. It will record the volume and ethernet settings in EEPROM.

In case of power failure, these parameters will be restored.

The reset button located at the back of the chassis have the ability to reset the box to the factory defaults in case you have problems with it (EEPROM will be erased and set to factory defaults).

Code will be available here:

[rokdownload menuitem="122" downloaditem="987" direct_download="false"]TELECHARGER ARDUINO IDE CODE[/rokdownload]


PREAMPuino PGA2311


HTTP interface


Video (when in debug mode)