Nelfe80/RetroBat-Marquee-Manager

ZeDMD finding but not loading images

Opened this issue · 29 comments

I installed Marquee Manager through RetroBat menus and have confirmed that it is installed. Renamed config-dmd.ini to config.ini and set the proper location to dmd.exe. However, I am just getting the ZeDMD logo flashing in my marquee when the script calls to change the image.

I have checked the ESEvents.log and see that it is finding the marquee.png files in the mame\images folder, but they do not display.

I noticed the loadfile command has double slashes in the path. Not sure if that is the issue:
INFO:root:Executing the command : echo loadfile "C:\RetroBat\roms\fbneo\images\jpark-marquee.png" replace>\.\pipe\dmd-pipe

ESEvents.log

Hi,
I'd need the valid url of an image and the line in the log that it found it, with an example.
Thanks for your help.

It's line 117817 of the original attached log file.
Valid URL to that image from screenscraper.fr = https://screenscraper.fr/image.php?plateformid=157&gameid=40060&media=wheel&hd=0&region=wor&num=&version=&maxwidth=338&maxheight=190

Sorry, but for reasons of time, I'd just like you to give me a local link (path) to a working image (in your local system) and the corresponding line in the log file provided.

Ah. Got it. Here you go:

INFO:root:###FF File found : C:\RetroBat\roms\mame\images\arkanoid-marquee.png >> Convert to marquee size PNG
INFO:root:Executing the command : echo loadfile "C:\RetroBat\roms\mame\images\arkanoid-marquee-topper.png" replace>\.\pipe\dmd-pipe

Local file path: "C:\RetroBat\roms\mame\images\arkanoid-marquee-topper.png"

(edit: attaching the generated png for reference)
arkanoid-marquee-topper

Thanks.
So the file C:\RetroBat\roms\mame\images\arkanoid-marquee-topper.png exists on your hard disk?
Please send me your config.ini
Test if process dmd is working :
in a cmd :
tasklist /FI "IMAGENAME eq dmd.exe"
in powershell :
Get-Process dmd

I ran both. Here are the outputs:

C:\Users\arcadeadmin>tasklist /FI "IMAGENAME eq dmd.exe"

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
dmd.exe                       9680 Console                    1      6,360 K
dmd.exe                       5368 Console                    1     42,420 K
PS C:\Users\arcadeadmin> Get-Process dmd

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
    349      38   320352      42420       0.00   5368   1 dmd
     95       9     1412       6360       0.47   9680   1 dmd

Had to copy/rename config.ini to txt for Github to accept it. Here it is:
config.ini.txt

Forgot to answer your question.

So the file C:\RetroBat\roms\mame\images\arkanoid-marquee-topper.png exists on your hard disk?

Yes, the file exists on my hard disk. That's the arkanoid logo I attached.

I also initially tried with auto generate turned off, and it found the previously scraped arkanoid-marquee.png file, but didn't display that either.

How do you flash your Zedmd ? What is the firmware version ?

I used the ZeDMD updater for windows to flash it last. The updater tool currently finds it as COM11: ZeDMD v3.6.0.

The device shows up as USB-SERIAL CH340 (COM11) in windows device manager. I tried changing the bitrate from 9600 to 128000 bits per second, but it didn't change anything. Let me know if there is a specific setting that is required for the device to communicate.

Also, the DMD currently just displays 3.6.0 in the bottom right corner after showing the ZeDMD logo and then the PPUC notice/logo after booting.

Please kill dmd.exe and launch dmd.exe in a terminal cmd or a powershell. Read and check if dmd.exe find your com port and baudrate.

Interesting. If I run it from the Command Prompt or PowerShell, I get this:

Failed to load DLL: Failed to load dynlib/dll 'dmd\\zedmd.dll'. Most likely this dynlib/dll was not found when the application was frozen. Traceback (most recent call last): File "dmd.py", line 568, in <module> AttributeError: 'ZeDMD' object has no attribute 'enable_debug' [12636] Failed to execute script 'dmd' due to unhandled exception!

dedmd.dll is located in the same folder as dmd.exe where I'm running it from.

sorry, you need to run dmd.exe from the parent directory. So you need to go to the /Marquee-Manager/ folder and launch dmd.exe with /dmd/dmd.exe
cmd : dmd\dmd.exe
powershell : ./dmd/dmd.exe

Got it! Thank you! Here's the output:

C:\RetroBat\plugins\MarqueeManager> .\dmd\dmd.exe
Loaded DLL: dmd\zedmd.dll
Functions exported by the DLL:
ZeDMD_ClearScreen
ZeDMD_Close
ZeDMD_DisableDebug
ZeDMD_DisablePreDownscaling
ZeDMD_DisablePreUpscaling
ZeDMD_DisableUpscaling
ZeDMD_EnableDebug
ZeDMD_EnablePreDownscaling
ZeDMD_EnablePreUpscaling
ZeDMD_EnableUpscaling
ZeDMD_EnforceStreaming
ZeDMD_GetDefaultPalette
ZeDMD_GetInstance
ZeDMD_IgnoreDevice
ZeDMD_LedTest
ZeDMD_Open
ZeDMD_OpenWiFi
ZeDMD_RenderColoredGray6
ZeDMD_RenderGray2
ZeDMD_RenderGray4
ZeDMD_RenderRgb24
ZeDMD_RenderRgb24EncodedAs565
ZeDMD_SaveSettings
ZeDMD_SetBrightness
ZeDMD_SetDefaultPalette
ZeDMD_SetDevice
ZeDMD_SetFrameSize
ZeDMD_SetPalette
ZeDMD_SetRGBOrder
ZeDMD_SetWiFiPassword
ZeDMD_SetWiFiPort
ZeDMD_SetWiFiSSID
Failed to enable debug mode.
Starting server...
Testing COM2 at 9600 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 921600 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 460800 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 230400 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 115200 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 57600 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 38400 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 19200 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 9600 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 921600 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 460800 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 230400 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 115200 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 57600 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 38400 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 19200 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM11 at 9600 baud...
Connected to COM11 at 9600 baud.
Response: b'\x0c\xa9T&\xceB\xe2\xe1N\xa7!\x01\xe9\xd5\x08\xca\xc21\xf1' Handshake failed. Response: b'\x0c\xa9T&\xceB\xe2\xe1N\xa7!\x01\xe9\xd5\x08\xca\xc21\xf1'
Testing COM11 at 921600 baud...
Connected to COM11 at 921600 baud.
Response: b'Zedr\x80\x00 \x00R'
Handshake successful. Resolution: 128x32
Opening ZeDMD...
Traceback (most recent call last):
File "dmd.py", line 569, in
File "dmd.py", line 309, in start
File "dmd.py", line 235, in clear_screen
OSError: exception: access violation reading 0x00000000
[13064] Failed to execute script 'dmd' due to unhandled exception!

No problem. I've updated dmd.exe on the git, try it please.
Which system are you on? 64 or 32? Which version of Windows?

64-bit Windows 11 Pro

Just like me. Have you tested the new dmd.exe?

I did. I'm getting the same exception, just new line numbers. Here's the end of it:

Testing COM11 at 9600 baud...
Connected to COM11 at 9600 baud.
Response: b'\x0c\xd4\n\x86)\xd8\xa8\xe1g\xdd!\xf9f(\xa1\xe2)\xaa\xa9\x9a'
Handshake failed. Response: b'\x0c\xd4\n\x86)\xd8\xa8\xe1g\xdd!\xf9f(\xa1\xe2)\xaa\xa9\x9a'
Testing COM11 at 921600 baud...
Connected to COM11 at 921600 baud.
Response: b'Zedr\x80\x00 \x00R'
Handshake successful. Resolution: 128x32
Opening ZeDMD...
Traceback (most recent call last):
File "dmd.py", line 577, in
File "dmd.py", line 317, in start
File "dmd.py", line 243, in clear_screen
OSError: exception: access violation reading 0x00000000
[13008] Failed to execute script 'dmd' due to unhandled exception!

What about the ZeDMD instance in your log?
In mine, it says “ZeDMD instance created: <main.LP_ZeDMD object at 0x07F687C0>”

What log file is that? I only have ESEvents.log. No mention of the word "instance" in it. No logs in the dmd folder.

edit: Figured it out. Here's my line:
ZeDMD instance created: <main.LP_ZeDMD object at 0x07BA96E8>

Also, is there any way to specify the port? It’s getting hung up connected to something on COM2 (I think a Sinden Lightgun) but I need it to use COM11.

update: I unplugged the 2 Sinden guns to avoid the false connection to one of their COM ports, and it gets through to the exception again. As you can see in the full log below, it is creating the instance:
ZeDMD instance created: <__main__.LP_ZeDMD object at 0x083C96E8>

C:\RetroBat\plugins\MarqueeManager>.\dmd\dmd
Loaded DLL: dmd\zedmd.dll
Functions exported by the DLL:
ZeDMD_ClearScreen
ZeDMD_Close
ZeDMD_DisableDebug
ZeDMD_DisablePreDownscaling
ZeDMD_DisablePreUpscaling
ZeDMD_DisableUpscaling
ZeDMD_EnableDebug
ZeDMD_EnablePreDownscaling
ZeDMD_EnablePreUpscaling
ZeDMD_EnableUpscaling
ZeDMD_EnforceStreaming
ZeDMD_GetDefaultPalette
ZeDMD_GetInstance
ZeDMD_IgnoreDevice
ZeDMD_LedTest
ZeDMD_Open
ZeDMD_OpenWiFi
ZeDMD_RenderColoredGray6
ZeDMD_RenderGray2
ZeDMD_RenderGray4
ZeDMD_RenderRgb24
ZeDMD_RenderRgb24EncodedAs565
ZeDMD_SaveSettings
ZeDMD_SetBrightness
ZeDMD_SetDefaultPalette
ZeDMD_SetDevice
ZeDMD_SetFrameSize
ZeDMD_SetPalette
ZeDMD_SetRGBOrder
ZeDMD_SetWiFiPassword
ZeDMD_SetWiFiPort
ZeDMD_SetWiFiSSID
ZeDMD instance created: <main.LP_ZeDMD object at 0x083C96E8>
Failed to enable debug mode.
Starting server...
Testing COM11 at 9600 baud...
Connected to COM11 at 9600 baud.
Response: b'8\xadG\x04\x01\x80v%J)\xa7\xaa!\xa7l\x86\xab\x9a\xd1\xa4'
Handshake failed. Response: b'8\xadG\x04\x01\x80v%J)\xa7\xaa!\xa7l\x86\xab\x9a\xd1\xa4'
Testing COM11 at 921600 baud...
Connected to COM11 at 921600 baud.
Response: b'Zedr\x80\x00 \x00R'
Handshake successful. Resolution: 128x32
Opening ZeDMD...
Traceback (most recent call last):
File "dmd.py", line 577, in
File "dmd.py", line 317, in start
File "dmd.py", line 243, in clear_screen
OSError: exception: access violation reading 0x00000000
[14236] Failed to execute script 'dmd' due to unhandled exception!

I don't think it's a port problem. You can try changing the com port in windows settings.
You can also try putting an older firmware in zedmd updater to test.
Then it's a memory access problem, as if the program can't access part of the ESP32 module's memory...
You can also try renaming zedmd64.dll to zedmd.dll to check whether it detects your system. You may also need to rename the other 64 files without the 64.

We're getting somewhere! I downgraded to 3.4.0 and got this:

C:\RetroBat\plugins\MarqueeManager>.\dmd\dmd
Loaded DLL: dmd\zedmd.dll
Functions exported by the DLL:
ZeDMD_ClearScreen
ZeDMD_Close
ZeDMD_DisableDebug
ZeDMD_DisablePreDownscaling
ZeDMD_DisablePreUpscaling
ZeDMD_DisableUpscaling
ZeDMD_EnableDebug
ZeDMD_EnablePreDownscaling
ZeDMD_EnablePreUpscaling
ZeDMD_EnableUpscaling
ZeDMD_EnforceStreaming
ZeDMD_GetDefaultPalette
ZeDMD_GetInstance
ZeDMD_IgnoreDevice
ZeDMD_LedTest
ZeDMD_Open
ZeDMD_OpenWiFi
ZeDMD_RenderColoredGray6
ZeDMD_RenderGray2
ZeDMD_RenderGray4
ZeDMD_RenderRgb24
ZeDMD_RenderRgb24EncodedAs565
ZeDMD_SaveSettings
ZeDMD_SetBrightness
ZeDMD_SetDefaultPalette
ZeDMD_SetDevice
ZeDMD_SetFrameSize
ZeDMD_SetPalette
ZeDMD_SetRGBOrder
ZeDMD_SetWiFiPassword
ZeDMD_SetWiFiPort
ZeDMD_SetWiFiSSID
ZeDMD instance created: <main.LP_ZeDMD object at 0x07AC8730>
Failed to enable debug mode.
Starting server...
Testing COM2 at 9600 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 921600 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 460800 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 230400 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 115200 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 57600 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 38400 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 19200 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 9600 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 921600 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 460800 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 230400 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 115200 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 57600 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 38400 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 19200 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM11 at 9600 baud...
Failed to connect to COM11: could not open port 'COM11': PermissionError(13, 'Access is denied.', None, 5)
Testing COM11 at 921600 baud...
Failed to connect to COM11: could not open port 'COM11': PermissionError(13, 'Access is denied.', None, 5)
Testing COM11 at 460800 baud...
Failed to connect to COM11: could not open port 'COM11': PermissionError(13, 'Access is denied.', None, 5)
Testing COM11 at 230400 baud...
Failed to connect to COM11: could not open port 'COM11': PermissionError(13, 'Access is denied.', None, 5)
Testing COM11 at 115200 baud...
Failed to connect to COM11: could not open port 'COM11': PermissionError(13, 'Access is denied.', None, 5)
Testing COM11 at 57600 baud...
Failed to connect to COM11: could not open port 'COM11': PermissionError(13, 'Access is denied.', None, 5)
Testing COM11 at 38400 baud...
Failed to connect to COM11: could not open port 'COM11': PermissionError(13, 'Access is denied.', None, 5)
Testing COM11 at 19200 baud...
Failed to connect to COM11: could not open port 'COM11': PermissionError(13, 'Access is denied.', None, 5)

Keep_dmd_alive - Elapsed time since last client activity: 0.00 seconds

Waiting for client connection on \.\pipe\dmd-pipe...
CreateNamedPipe error: (231, 'CreateNamedPipe', 'All pipe instances are busy.')
Waiting for client connection on \.\pipe\dmd-pipe...
CreateNamedPipe error: (231, 'CreateNamedPipe', 'All pipe instances are busy.')
Waiting for client connection on \.\pipe\dmd-pipe...
CreateNamedPipe error: (231, 'CreateNamedPipe', 'All pipe instances are busy.')
Waiting for client connection on \.\pipe\dmd-pipe...
CreateNamedPipe error: (231, 'CreateNamedPipe', 'All pipe instances are busy.')
Waiting for client connection on \.\pipe\dmd-pipe...
CreateNamedPipe error: (231, 'CreateNamedPipe', 'All pipe instances are busy.')
Waiting for client connection on \.\pipe\dmd-pipe...
CreateNamedPipe error: (231, 'CreateNamedPipe', 'All pipe instances are busy.')
Waiting for client connection on \.\pipe\dmd-pipe...
CreateNamedPipe error: (231, 'CreateNamedPipe', 'All pipe instances are busy.')
Waiting for client connection on \.\pipe\dmd-pipe...
CreateNamedPipe error: (231, 'CreateNamedPipe', 'All pipe instances are busy.')
Shutting down server...
Close server starting...
Failed to disable debug mode.

C:\RetroBat\plugins\MarqueeManager>.\dmd\dmd
Loaded DLL: dmd\zedmd.dll
Functions exported by the DLL:
ZeDMD_ClearScreen
ZeDMD_Close
ZeDMD_DisableDebug
ZeDMD_DisablePreDownscaling
ZeDMD_DisablePreUpscaling
ZeDMD_DisableUpscaling
ZeDMD_EnableDebug
ZeDMD_EnablePreDownscaling
ZeDMD_EnablePreUpscaling
ZeDMD_EnableUpscaling
ZeDMD_EnforceStreaming
ZeDMD_GetDefaultPalette
ZeDMD_GetInstance
ZeDMD_IgnoreDevice
ZeDMD_LedTest
ZeDMD_Open
ZeDMD_OpenWiFi
ZeDMD_RenderColoredGray6
ZeDMD_RenderGray2
ZeDMD_RenderGray4
ZeDMD_RenderRgb24
ZeDMD_RenderRgb24EncodedAs565
ZeDMD_SaveSettings
ZeDMD_SetBrightness
ZeDMD_SetDefaultPalette
ZeDMD_SetDevice
ZeDMD_SetFrameSize
ZeDMD_SetPalette
ZeDMD_SetRGBOrder
ZeDMD_SetWiFiPassword
ZeDMD_SetWiFiPort
ZeDMD_SetWiFiSSID
ZeDMD instance created: <main.LP_ZeDMD object at 0x08298730>
Failed to enable debug mode.
Starting server...
Testing COM2 at 9600 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 921600 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 460800 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 230400 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 115200 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 57600 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 38400 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 19200 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 9600 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 921600 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 460800 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 230400 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 115200 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 57600 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 38400 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 19200 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM11 at 9600 baud...
Connected to COM11 at 9600 baud.
Response: b''
Handshake failed. Response: b''
Testing COM11 at 921600 baud...
Connected to COM11 at 921600 baud.
Response: b'Zedr\x80\x00 \x00R'
Handshake successful. Resolution: 128x32
Opening ZeDMD...
Failed to open ZeDMD

Keep_dmd_alive - Elapsed time since last client activity: 9.92 seconds

Waiting for client connection on \.\pipe\dmd-pipe...

Ok.
Before launch /dmd/dmd.exe, kill all dmd.exe process with "taskkill /IM dmd.exe /F" in cmd
Then launch /dmd/dmd.exe
else "CreateNamedPipe error: (231, 'CreateNamedPipe', 'All pipe instances are busy.')" or "Acces is denied" or "Busy" state.

It says ERROR: The process "dmd.exe" not found.

It does run, but still says "failed to open ZeDMD" but starts the server, etc. anyways. Then after a while it ends up restarting the DMD Server with this:
Restarting DMDServer due to inactivity...
Close server starting...
Server closed. Restarting...
Starting server...
Testing COM2 at 9600 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 921600 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 460800 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 230400 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 115200 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 57600 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 38400 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM2 at 19200 baud...
Failed to connect to COM2: could not open port 'COM2': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 9600 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 921600 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 460800 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 230400 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 115200 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 57600 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 38400 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM1 at 19200 baud...
Failed to connect to COM1: could not open port 'COM1': PermissionError(13, 'Access is denied.', None, 5)
Testing COM11 at 9600 baud...
Connected to COM11 at 9600 baud.
Response: b''
Handshake failed. Response: b''
Testing COM11 at 921600 baud...
Connected to COM11 at 921600 baud.
Response: b'Zedr\x80\x00 \x00R'
Handshake successful. Resolution: 128x32
Opening ZeDMD...
Failed to open ZeDMD
Server restarted and last image displayed.

I did try renaming the dll and lib files by removing the 64 from the filename, but it threw a dll error, so I renamed them back. Apparently it's loading the 32bit dll files?

Sorry, I don't know why there's a problem.
Try reflashing the dmd with the latest version and redoing this to see what it displays.
There's no reason why it can't connect to the dmd...

So strange. I updated back to 3.6.0 and am receiving the exception error again.

Connected to COM11 at 921600 baud.
Response: b'Zedr\x80\x00 \x00R'
Handshake successful. Resolution: 128x32
Opening ZeDMD...
Traceback (most recent call last):
File "dmd.py", line 577, in
File "dmd.py", line 317, in start
File "dmd.py", line 243, in clear_screen
OSError: exception: access violation reading 0x00000000
[12364] Failed to execute script 'dmd' due to unhandled exception!

I'm wondering, though. My ESP is wi-fi enabled, but I haven't tried flashing the 3.6.0 WiFi version. Maybe I'll give that a shot instead of relying on USB. If I flash the WiFi image, will I still be able to use it via USB?

Maybe. You're welcome to try. I've never tried it but I guess it will still work on usb.

I think it may be related to freezy/dmd-extensions#460 for me. I tried flashing the WiFi-based image, but couldn't figure out how to get it set up, so I'm just relying on the USB connection. I did get the dmdext command to display the test image successfully with dmdext play -d zedmd when I used version 2.2.0 beta2, but I don't have the tech skills to fork your repo and build it using freezy's older beta code.