Skip to content

Commit c02f3e6

Browse files
committed
lowered USB package size default values
1 parent de30512 commit c02f3e6

File tree

3 files changed

+27
-20
lines changed

3 files changed

+27
-20
lines changed

README.md

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,9 @@ Download and install the [ZeDMD_Updater](https://github.com/zesinger/ZeDMD_Updat
7373
7474
## ZeDMD pinout diagram
7575
ZeDMD utilizes HUB75 to display full-color content on your panels. To achieve this, the panels must be connected to specific GPIOs on your ESP32.
76-
| ESP32 Dev Board | ESP32-S3-N16R8 | HUB75 pins |
77-
| ------------- | ------------- | ---------- |
78-
| GPIO 25 | GPIO 4 | R1 |
76+
| ESP32 Dev Board | ESP32-S3-N16R8 | HUB75 pins |
77+
| ------------- | ------------- | ---------- |
78+
| GPIO 25 | GPIO 4 | R1 |
7979
| GPIO 27 | GPIO 6 | B1 |
8080
| GPIO 14 | GPIO 7 | R2 |
8181
| GPIO 13 | GPIO 16 | B2 |
@@ -91,9 +91,9 @@ ZeDMD utilizes HUB75 to display full-color content on your panels. To achieve th
9191
| GPIO 4 | GPIO 40 | LAT |
9292
9393
To navigate the menu and adjust settings, you'll need to configure a few buttons. However, only two buttons are essential to modify values and exit the menu. These two buttons are `Menu Left` and `Value +`.
94-
| ESP32 Dev Board | ESP32-S3-N16R8 | Menu Button |
95-
| ------------- | ------------- | ------------|
96-
| GPIO 33 | GPIO 48 | Menu Left |
94+
| ESP32 Dev Board | ESP32-S3-N16R8 | Menu Button |
95+
| ------------- | ------------- | ------------|
96+
| GPIO 33 | GPIO 48 | Menu Left |
9797
| NOT USED | GPIO 47 | Menu Right |
9898
| GPIO 21 | GPIO 0 | Value + |
9999
| NOT USED | GPIO 45 | Value - |
@@ -110,7 +110,7 @@ Then, adjust the RGB order by rotating the colors until the following alignment
110110
> Unique to `128x64` builds:
111111
> There is an option to adjust the `Y offset` of the displayed content.
112112
113-
Versions prior to V5.0.0 let you adjust the brightness using the brightness button.
113+
Versions prior to V5.0.0 let you adjust the brightness using the brightness button.
114114
From v5.0.0 onwards, this is done by navigating to the `Brightness:` option in the settings menu.
115115
116116
Starting from version 5.1.0, a configurable `USB packet size:` option has been introduced. While the default value works for most setups, reducing the packet size may help resolve any issues you encounter.
@@ -120,7 +120,7 @@ The option above `USB packet size:` allows switching between `USB`, `SPI`, `WiFi
120120
![S3USB](docs/images/S3USB.png)
121121
>`SPI` is currently non-functional and serves only as a placeholder for future real pinball integration.
122122
123-
To increase the compatibility with some USB ports or hubs, the USB package size became configurable. The default value of 64 bytes is very low. If you notice stuttering of the DMD frames, try to increase this value.
123+
To increase the compatibility with some USB ports or hubs, 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.
124124
Good values are 512 bytes for the original EPS32 and 1024 for the ESP32 S3. If ZeDMD doesn't work with these values, try a different USB port of your computer. In most cases not all of them and their driver chips are of the same quality.
125125
126126
When wanting to use WiFi it is recommended to start with `WiFi UDP` for seamless frame streaming, provided your WiFi connection is fast. If you encounter crashes or unusual behavior, try adjusting the `UDP Delay:` option. For fast connections, a value below `UDP Delay: 5` may work well. Values like `UDP Delay: 4` have been reported to perform effectively. While lowering the UDP delay may work well for some, values above `UDP Delay: 5` should be given a try before making the final decision to switch to `WiFi TCP` for slower streaming but improved reliability.
@@ -157,6 +157,12 @@ ZeDMD uses
157157
158158
### "Where can I buy a ZeDMD?"
159159
160+
161+
> [!WARNING]
162+
> Neither @Zedrummer - David Lfg, nor myself are earning any money from ZeDMD and we don't get money from the sellers listed on https://ppuc.org/ZeDMD
163+
I just listed these shops to make it easier for you to get started with ZeDMD.
164+
ZeDMD is and will remain a free open source DIY project!
165+
160166
The intention of ZeDMD is to provide a cheap DIY DMD solution. The maintainers of this project don't run any shop to sell ready-to-use hardware!
161167
162168
Nevertheless, there are are some shops we are aware of who designed their own shields to build a ZeDMD.
@@ -176,7 +182,10 @@ There are also ready-to-use devices:
176182
177183
The ZeDMD firmware supports a wide range of LED panels with different driver chips ... in theory.
178184
In general, some driver chips require adjustments in the configuration, timings and the clock phase.
179-
That can't be done with ZeDMD updater, but within the source code of the firmware. Here os some background information:
185+
That can be done with ZeDMD updater for Windows, or the `zedmd-client` which is abailable for every operating system as part of the libzedmd download:
186+
https://github.com/PPUC/libzedmd/releases
187+
188+
Here is some background information:
180189
* https://github.com/mrcodetastic/ESP32-HUB75-MatrixPanel-DMA?tab=readme-ov-file#supported-panel-can-types
181190
* https://github.com/mrcodetastic/ESP32-HUB75-MatrixPanel-DMA?tab=readme-ov-file#latch-blanking
182191
@@ -186,26 +195,24 @@ https://github.com/mrcodetastic/ESP32-HUB75-MatrixPanel-DMA/blob/54ef6071663325e
186195
The pre-built firmware uses the default config which is suitable for the most common LED panels.
187196
Obviously we can't provide a menu on the device to adjust these settings as you won't see them ;-)
188197
189-
But we consider to add support for these driver settings to libzedmd and the ini file of dmdserver so that these values could be adjusted and sent to ZeDMD before the panels get initialized.
190-
191-
We could also offer firmware builds for specific panels. But that would require someone to send over their panels to us so we can find out the correct config.
198+
We would love to list the required settings for specific panels here. But that would require someone to send over their panels to us so we can find out the correct config.
192199
193-
If you find out what config adjustment gets a specific panel to work, you should open an issue here and provide that information so that we could include it in the README and probably add a specific automated build for the next releases.
200+
If you find out what config adjustment gets a specific panel to work, you should open an issue here and provide that information so that we could include it in the README.
194201
195202
### I have installed all of the latest files, but I still get crashes on a Windows machine
196203
A few users have reported that VPX and ZeDMD consistently crash if the latest Visual C++ Redistributable Runtime packages are not installed. To resolve this issue, ensure you have the most up-to-date runtime packages installed. If the latest version doesn’t resolve the issue, it may be necessary to install all available versions of the Visual C++ Redistributable Runtime packages.
197204
198205
Another potential issue could be outdated USB drivers. For the original ESP32 Development Board:
199206
* https://www.silabs.com/developer-tools/usb-to-uart-bridge-vcp-drivers?tab=downloads
200207
201-
For the ESP32-S3-N16R8, we use the USB CDC port, which doesn't require a driver. But if if you use the alterantive UART version of the firmware, refer to the following link for more details:
202-
* https://www.wch-ic.com/downloads/CH343SER_EXE.html
208+
For the ESP32-S3-N16R8, we use the USB CDC port, which doesn't require a driver.
203209
204210
### ZeDMD crashed, how can I help to fix the issue
205211
206212
If you discover a crash, there's a good chance that a coredump has been written to the internal flash memory.
213+
Especially if ZeDMD actively tells you to do so!
207214
If you install the entire esp-idf, you can extract and interpret the coredump. `firmware.elf` is included in the release downloads since v5.1.2.
208-
To get the coredump, has to be something like this:
215+
To get the coredump, the command has to be something like this on Linux or macOS:
209216
```shell
210217
python PATH_TO_ESP_IDF/esp-idf/components/espcoredump/espcoredump.py info_corefile PATH_TO_FIRMWARE_ELF/firmware.elf
211218
```

src/main.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,15 +53,15 @@
5353
#if (defined(ARDUINO_USB_MODE) && ARDUINO_USB_MODE == 1)
5454
// USB CDC
5555
#define SERIAL_BAUD 115200
56-
#define USB_PACKAGE_SIZE 1024
56+
#define USB_PACKAGE_SIZE 512
5757
#else
5858
// UART
5959
#define SERIAL_BAUD 2000000
60-
#define USB_PACKAGE_SIZE 64
60+
#define USB_PACKAGE_SIZE 32
6161
#endif
6262
#else
6363
#define SERIAL_BAUD 921600
64-
#define USB_PACKAGE_SIZE 64
64+
#define USB_PACKAGE_SIZE 32
6565
#endif
6666
#define SERIAL_TIMEOUT \
6767
8 // Time in milliseconds to wait for the next data chunk.

src/version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
// Version constants
55
#define ZEDMD_VERSION_MAJOR 5
66
#define ZEDMD_VERSION_MINOR 1
7-
#define ZEDMD_VERSION_PATCH 4
7+
#define ZEDMD_VERSION_PATCH 5
88

99
#endif // VERSION_H

0 commit comments

Comments
 (0)