Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| hardware:diy_zedmd [2024/06/12 20:47] – precision on the wire color / pin for USB power lbrpdx | hardware:diy_zedmd [2026/01/30 08:13] (current) – nadenislamarre | ||
|---|---|---|---|
| Line 7: | Line 7: | ||
| {{: | {{: | ||
| {{: | {{: | ||
| + | |||
| ===== Step 1 : purchase the hardware ===== | ===== Step 1 : purchase the hardware ===== | ||
| The shopping list: | The shopping list: | ||
| - | * 2 dmd panels (don't forget to choose | + | * 2 DMD panels (don't forget to choose |
| - | * 1 ESP32 and its shield [[https:// | + | * 1 ESP32 and its shield [[https:// |
| - | * 16 male/male 10cm jumpers [[https:// | + | * 16 male/male 10cm jumpers [[https:// |
| - | * 1 power supply [[https:// | + | * 1 power supply [[https:// |
| - | * 1 plug [[https:// | + | * 1 plug [[https:// |
| You probably already have a plug at home. | You probably already have a plug at home. | ||
| Line 33: | Line 34: | ||
| The hardware part is the same for Batocera. However, the course of action for software configuration at the end is a little bit different. | The hardware part is the same for Batocera. However, the course of action for software configuration at the end is a little bit different. | ||
| - | === Step 2.1 - Cut and prepare | + | === Step 2.1 - Getting a power supply (for HD matrix) === |
| + | |||
| + | Based on the display being used, some pixels may be too bright (causing glare and artifacts) or too dark (not visible), so it is useful to have a power supply with adjustable voltage. A power supply with universal terminals and an adjustable voltage is preferred, with the ability to use voltages near 5 volts at 2 amps. The more finely you can tune the voltage the better for adjustment. | ||
| + | |||
| + | {{: | ||
| + | {{: | ||
| + | |||
| + | It's also possible to get a static power supply voltage and then reduce its voltage by use of diodes (be careful of heat if only using a small amount of diodes): https:// | ||
| + | |||
| + | == Cut your own power wire === | ||
| + | |||
| + | As an alternative to using a wall-wart power supply as pictured above, it is possible to splice a regular high-voltage power cable and connect that to a switch-mode power supply. | ||
| + | |||
| + | <WRAP center round alert> | ||
| + | Incorrect wiring with power lines up to 240V can result in death by electrocution, | ||
| + | </ | ||
| {{: | {{: | ||
| {{: | {{: | ||
| + | {{: | ||
| + | {{: | ||
| === Step 2.2 - Plug LED matrices together with data and power wires === | === Step 2.2 - Plug LED matrices together with data and power wires === | ||
| + | |||
| The data and power wires for the matrices are usually bundled with the matrices. | The data and power wires for the matrices are usually bundled with the matrices. | ||
| Just plug them. Note that white arrows must go from left to right. | Just plug them. Note that white arrows must go from left to right. | ||
| Line 43: | Line 63: | ||
| {{: | {{: | ||
| {{: | {{: | ||
| - | |||
| {{: | {{: | ||
| === Step 2.2 - Plug the AC/DC power converter === | === Step 2.2 - Plug the AC/DC power converter === | ||
| - | Plug the 220V power on the AC (if you live in a 110V country, make sure you have the right AC/DC converter, and obviously the right plug). **Be careful** with the color code of the wires: Phase (brown) | + | Plug the 220V power on the AC (if you live in a 110V country, make sure you have the right AC/DC converter, and obviously the right plug). **Be careful** with the polarity of the wires, not all regions will use the same color-coding to indicate their polarity. Generally, |
| - | Plug the 5V connector, and make sure you connect the right colored wires. | + | Plug the 5V connector, and make sure you connect the correct polarity. |
| The orange screw on right of the AC/DC converter can be used to adjust the 5V voltage. It is necessary in case the image is not perfect, and the LEDs are " | The orange screw on right of the AC/DC converter can be used to adjust the 5V voltage. It is necessary in case the image is not perfect, and the LEDs are " | ||
| {{: | {{: | ||
| - | |||
| {{: | {{: | ||
| - | {{: | + | {{: |
| **Note**: If you build a 32x128 DMD (**not** a "DMD HD" with a higher resolution), | **Note**: If you build a 32x128 DMD (**not** a "DMD HD" with a higher resolution), | ||
| Line 88: | Line 106: | ||
| Execute the following command, and don't forget to replace '' | Execute the following command, and don't forget to replace '' | ||
| + | **For Batocera 42 and later** (ZeDMD version 5.x.x required) | ||
| + | < | ||
| + | wget https:// | ||
| + | unzip ZeDMD-128x32.zip | ||
| + | wget https:// | ||
| + | unzip esptool-v4.8.1-linux-amd64.zip | ||
| + | chmod a+x ./ | ||
| + | ./ | ||
| + | </ | ||
| + | |||
| + | **For Batocera 41 and earlier** (ZeDMD version 3.x.x required) | ||
| < | < | ||
| wget https:// | wget https:// | ||
| Line 98: | Line 127: | ||
| The first line downloads the ZeDMD firmware for a 128x32 matrix. | The first line downloads the ZeDMD firmware for a 128x32 matrix. | ||
| + | Note that batocera 42 requires ZeDMD 5.1.5 or over. And previous versions of batocera requires versions before 5.x. | ||
| The second line unzips it. | The second line unzips it. | ||
| Line 119: | Line 149: | ||
| {{: | {{: | ||
| {{: | {{: | ||
| + | |||
| + | {{: | ||
| There are 15 pins to plug in total. | There are 15 pins to plug in total. | ||
| Line 164: | Line 196: | ||
| {{: | {{: | ||
| + | |||
| + | ===== ZeDMD configuration ===== | ||
| + | If you've ZeDMD 5.x or higher (on batocera 42 or higher), by default, the rendering is not smooth. | ||
| + | You need to configure the minimal refresh rate and the USB package size via the command line tool zedmd-client. | ||
| + | You may need to configure the RGB order and the brightness. | ||
| + | |||
| + | First, shutdown the dmd_real service, then use zedmd-client -i to list your current dmd settings. | ||
| + | After configuration, | ||
| + | |||
| + | A usb package size of 1024 and a refresh rate of 60 is good on my device. Depending on the esp32 hardware, you may adjust values to get smoother animations. | ||
| + | |||
| + | < | ||
| + | # batocera-services stop dmd_real | ||
| + | # zedmd-client -i | ||
| + | |||
| + | ZeDMD Info | ||
| + | ============================================================= | ||
| + | ID: 3904 | ||
| + | firmware version: | ||
| + | CPU: ESP32 | ||
| + | libzedmd version: | ||
| + | transport: | ||
| + | device: | ||
| + | USB package size: 32 | ||
| + | WiFi SSID: could only be retrieved via WiFi | ||
| + | WiFi port: could only be retrieved via WiFi | ||
| + | WiFi power: | ||
| + | WiFi UDP delay: | ||
| + | panel width: | ||
| + | panel height: | ||
| + | panel RGB order: | ||
| + | panel brightness: | ||
| + | panel clock phase: | ||
| + | panel i2s speed: | ||
| + | panel latch blanking: | ||
| + | panel minimal refresh rate: 30 | ||
| + | panel driver: | ||
| + | Y-offset: | ||
| + | |||
| + | # zedmd-client --set-brightness=7 | ||
| + | # zedmd-client --set-panel-min-refresh-rate=60 | ||
| + | # zedmd-client --set-usb-package-size=1024 | ||
| + | |||
| + | # batocera-services start dmd_real | ||
| + | </ | ||
| + | |||
| + | Only the most common USB-to-serial chips used in various ESP32 boards supported by the auto-detection. Others are ignored to not break the communication to other devices, for example bluetooth headsets or game controllers. | ||
| + | But if your specific ESP32 is not recognized, you can explicitly specify the serial device in the settings. | ||
| + | |||
| + | The best performance could be achieved by using an ESP32 S3 N16R8. Beside the fact that this one has more RAM which is actively used for rendering, it provides a native USB port. This native USB port supports much higher data transfer speeds. | ||
| + | |||
| + | To increase the compatibility with some USB ports or hubs or low quality cables, the USB package size became configurable. The default value of 32 bytes for the original ESP32 is very low. If you notice stuttering of the DMD frames, try to increase this value. | ||
| + | If your hardware supports it, good values are 512 bytes for the original EPS32 and 1024 for the ESP32 S3. If ZeDMD doesn' | ||
| ===== Issues ===== | ===== Issues ===== | ||
| Line 169: | Line 254: | ||
| === Lines issues === | === Lines issues === | ||
| - | Check the pins. Some bad quality pins may create | + | Check the pins. Some bad quality pins may create |
| {{: | {{: | ||
| {{: | {{: | ||
| + | |||
| + | === Pannel driver issue === | ||
| + | Depending on the hardware you bought, some settings on the dmd need to be changed. | ||
| + | One user having nothing displayed on the dmd (just the red squares) reported he had to change the panel driver to make it work. | ||
| + | (see https:// | ||
| + | |||
| + | < | ||
| + | zedmd-client --set-panel-driver=4 | ||
| + | </ | ||
| + | |||
- hardware/diy_zedmd.1718225227.txt.gz
- Last modified: 2 years ago
- by lbrpdx