Introduction: Rotating LED Display

About: I built the first computer myself and grew up in the age of Apple II. Since then, I have been an electronics enthusiast and hobbyist.

The Rotating Display is a compact disc-sized device that rotates quietly using a CD motor. It features 40 LEDs that display time and weather data sourced from the internet. The device is wirelessly powered and controlled via a user-friendly web interface. It uses Arduino nano and ESP-01s microcontrollers and is easy to assemble.


Step 1: The Story

The Rotating Display is a compact disc-sized device that rotates quietly using a CD motor. It features 40 LEDs that display time and weather data sourced from the internet. The device is wirelessly powered and controlled via a user-friendly web interface. It uses Arduino nano and ESP-01s microcontrollers and is easy to assemble.

The highlights of the display include:

  • a simple design with few mechanical components
  • easily replicable wireless power supply with printed coils
  • alternating arrangement of the LEDs to achieve higher resolution
  • complete balancing of the display board to ensure vibration-free operation
  • timer controlled clocking of the LEDs and regulation of their brightness
  • user-friendly user interface via a standard web browser
  • retrieval of time and weather data from the internet
  • implementation of a file browser for the ESP-01’s flash disk for uploading image data
  • transparent, object-oriented structure of the ESP-01s software

Step 2: How to Use the Display

When switched on, the device tries to connect to a known wifi. If no valid wifi credentials are found, the unit will be configured as wifi access point. In this mode, a computer or mobile device can be connected, directly (SSID: RD40, no password). 

Once the wifi connection has been established, the unit will display its IP address on the home page of the device. Enter this address in your web browser. This will load the web user interface and will allow you to configure your local wifi.

There are several operating modes that display time and weather information. The logo clock mode integrates a customizable image into the clock face. The image can be easily uploaded from the user interface. The same is true for the analog clock, which uses a customizable clock face in the background.

Device operation is managed through a web interface, accessible from any web browser. The interface allows users to manage login credentials, upload image files to the display, and control image and configuration files through a file manager.

Step 3: The Structure of the Device

The device consists of two sub-assemblies: power supply and display. The power supply board is also the base plate, which can either be placed on a flat surface or hung on a wall. A standard CD motor is inserted through a recess in this board so that the CD tray above the board can accommodate the display assembly. The display board is fixed with two M2 screws. Furthermore, the base plate carries a potentiometer to control the motor speed as well as an on/off switch for the motor. 

The core of the power supply board is a circuit for wireless power transmission to the display. It uses very few components, but a quite complex transformer coil. In order to make the device easy to re-build, the coil isimplemented as a printed circuit.

A CD motor in the middle of the power supply board rotates the display. Next to the motor, there is a variable voltage regulator, which controls the rotation speed of the motor.

The main components of the display board are two LED rows with 20 LEDs each, five serial shift register chips, and two microcontrollers (Arduino nano and ESP-01s). On the backside of the board the secondary coil of the wireless power supply is attached.

A Hall sensor synchronizes the rotation of the disk with the control of the LEDs. The LED output is done via the SPI interface of the Arduino nano and the shift registers.

The ESP-01s generates the image data shown on the display and sends it to the Arduino via an I2C interface. It obtains time and weather data from the Internet, to which it is connected via a Wifi interface. Using the same connection, the user can access a web server that runs on the microcontroller and hosts the display's user interface.

Step 4: How to Assemble the Rotating LED Display

4.1. component supply

The parts list and all necessary documentation is available on github. The Bill of Material also contains sources and corresponding links for purchasing the parts.

4.1. electronic components of the power supply

Start with assembling the power supply board. Insert and solder all electronic components. The PCB documentation is available on Github. Afterwards, insert the CD motor from the soldering side  and bond it with a fast curing two component epoxy resin on the component side of the PCB.

4.2. CD tray PCB

Glue two M2 nuts into the CD tray PCB. Attach it with double-sided adhesive tape to the back side of the CD motor tray. Two M2 screws may help to bring the PCB into the right position.

4.3. Rubber bumpers and magnet

Rubber bumpers are glued with the epoxy resin to the ends of four 20 mm long bolts. The bolts serve as feet of the power supply. The magnet is glued into the hole provided at the edge of the power supply disc. Attention: the correct orientation of the magnet (with the right side up) is very important! Make sure that the device works properly before you glue the magnet!

4.4. assembly of the display PCB. The LEDs.

Continue with the display board assembly. First prepare the LEDs by shortening the wires. Insert them one row at a time. Hold the LEDs in place with tape before soldering. Note: The LEDs must be inserted in the correct orientation. Use the picture as a reference to identify the cathode and anode of the components. Note the marking on the PCB (A = Anode, K = Cathode).

4.5. install the Hall sensor

Prepare the Hall sensor as shown in the picture. Note: The Hall sensor is the only component, that is inserted through the holes from the soldering side! It needs to be installed before you insert the Arduino nano, as the Hall sensor is soldered on the component side of the PCB.

4.6. insert and solder the rest of the components

Insert and solder the remaining components according to the PCB documentation on Github. Finally, the secondary coil PCB can be attached using 4 pins.

Step 5: Uploading the Software and Necessary Data to the Microcontrollers

Install Microsoft Visual Studio Code on your computer. Load the platformIO extension. Familiarize yourself with the system. There are numerous tutorials on Visual Studio Code and platformIO on youTube.

Download a copy of the github repository and store it on your computer, locally. Open the folder “RD40_Arduino_nano” in Visual Studio Code. Connect the Arduino nano to your computer using a mini-USB cable. Make sure, the cable provides not only the power lines, but also data (not all mini-USB cables do so!). Start the compilation and the data transfer with the button of the platformIO extension. The program will notify, when the process is completed.

Next, close the “RD40_Arduino_nano” folder in Visual Studio Code and open the folder “RD40_ESP8266”. Connect a FT232 level converter to your mini-USB cable. The little adapter is available from many sources – search for “FT232”. Plug the FT232 into the female 6-pin connector on the display board. Make sure, the orientation is right. For reference, there is a little picture next to the connector, which shows the correct orientation. Set the jumper on the display board to position “P”. Power on the display by connecting a 12V/2A power supply to the power jack of the power supply board. Push the reset button on the display board next to the female connector of the FT232 in order to start the programming mode of the ESP8266. Now, you can start the compiler and data transfer by clicking on the button of the platformIO extension.

Once done,  leave the FT232 adapter and USB cable in place. As a last step, we need to transfer the data to the flash drive of the microcontroller. Before you can transfer data to the microcontroller, you need to push the reset button again (jumper in position “P”). Now, the microcontroller is in programming mode. Go back to your computer. The data of the disk is also in the “RD40_ESP8266” folder (you can find it in the data sub-folder). So, leave “RD40_ESP8266” open, click on the platformIO icon (see picture, click #1). Then, click on “Build Filesystem Image” (click #2) to generate the image for the flash disk. Finally, upload the image to the microcontroller with the “Upload Filesystem Image” button (click #3).

Step 6: Setup the Rotating LED Display

Once the software and data is uploaded to the microcontrollers, set the jumper back to the running position (without label). Restart the display by pulling the power plug and reconnecting again. Switch on the motor. Now, the system should run properly and display the home screen with the wifi information. Use your computer to connect to the wifi (SSID RD40, no password) and start a web browser. Enter the displayed IP address in the address line of the browser. The user interface page will be loaded. You can edit the wifi credentials by clicking on the “config wifi” button if the user interface. Enter the data for your local wifi, click on “done”. Re-start the display. Now, the device will connect with your local wifi and will display it’s new IP address.

If you would like to use the weather clock mode, you need to configure the access information to In order to do so, you need to register and subscribe to the “Current Weather Data” Service, which is free of charge. The platform will provide an API-key, which you need to copy to the UI of the Rotating Display.

Uploading images, converting them to black & white, and downscaling the resolution to 110x110 pixels can be done with the “image manager” page of the user interface. Make sure your image has a square shape. The software can deal with a wide range of image formats and resolution. As a last step, select an .RD40 image in the selection box by long clicking on the entry. Assign the image to the analog clock, the logo clock, or the image mode by clicking on the respective button.

Step 7: Have Fun With the Rotating LED Display