Category Archives: Uncategorized

Web-To-LCD 2

This new-and improved version of my earlier project that leaves the Arduino out of the picture. Everything runs on the ESP8266. Same results, just simpler to build and much simpler code.

You can join the ESP’s wifi network and tell it which access point to join.  The code is also updatable from a web browser.

Initially, you’ll have to upload the sketch to the ESP using a breadboard and a serial to USB converter, or some other configuration of the following schematic:
** Be careful to use only 3.3v on the RX pin and VCC Pins of the ESP8266 **
If your FTDI programmer is 5v you’ll need to add a level shifter, or voltage divider on it’s TX pin.

From here on out you can modify the code and flash wirelessly using a browser.

To get the ESP connected to your home network:

  • First join the WiFi network: ESP LCD.
  • Use the password you set for ESPpassword
  • Launch your browser and navigate to
  • Here you’ll find a page that lets you set the SSID and PASSWORD for your wifi network
  • Now you can connect your computer back to your home network

To update and upload a modified sketch:

  • Back in your browser, navigate to http://esp.local
  • Select the binary to upload, then click “upload”.
  • Done!

Output examples are shown on my earlier project.

Here’s the schematic with LCD:


OPP: ChameleonPi

You are now basically obligated to pick up a Raspi.  Chameleon is a Raspian “Wheezy” remix which includes almost every video game console emulator you’d ever want.  Easily drop a few roms in your pi via your desktop’s network browser and you’re quickly reliving every priceless moment in The Legend of Zelda or Super Mario, or just get a gentle game of pong going on.

From Carles Oriol:

Comprehensive instructions on how to flash an SD with ChameleonPi (8GB minimum):

CameleonPi Homepage:

I experienced quite a bit of lag using the NES emulator until I over-clocked the CPU.

To check your current clock speed:

vcgencmd get_config arm_freq

or for more detailed information:

vcgencmd get_config int

You can edit the config file directly:

sudo nano /boot/config.txt

or use the raspi-config tool to set basic over-clocking:

sudo raspi-config

Scroll down to option 7 – overclock.
I chose “High” 950MHz ARM, 450MHz core, 450MHz SDRAM, 6 overvolt.
So far it’s running smooth with these settings.

My next step will be to figure out how to only display the emulators that I choose in the UI in hopes of simplifying the interface for less experienced, and younger users.  I think machines.conf file has something to do with it so I’ll make a backup copy and start messing around with it:

sudo cp /opt/selector/machines.conf /opt/selector/machines_orig.conf
sudo nano /opt/selector/machines.conf

Audio Spectrum Analyzer

There is a great tutorial on how to setup and use a 2×16 LCD on the Arduino website:

Here’s a good explanation of FFT theory:

My pinout is a little different because I wanted to save as many PWM pins to add servo control for the next stage of this project.  I’ve been tinkering with the idea of moving physical objects around based on audio input, instead of just showing levels on a display.

To visualize the frequency levels of the incoming audio signal I use the 8-bit Fast Fourier transform code which is discussed here:,38153.0.html

Honestly, I’m not convinced that what I’m seeing on the display is an accurate representation of the audio spectrum that I’m listening to, but it looks pretty cool and that’s all I really care about at this point.  There is hardware available that would produce much more accurate results than this software.  There is a “Color Organ” project on the Make website that I’d like to build someday:

Additional Reading:

Code and libraries on GitHub