Skip to content

Instantly share code, notes, and snippets.

@phaseOne
Created March 3, 2022 18:47
Show Gist options
  • Save phaseOne/51d8dd5ab9e3941f9b597649e6609ab7 to your computer and use it in GitHub Desktop.
Save phaseOne/51d8dd5ab9e3941f9b597649e6609ab7 to your computer and use it in GitHub Desktop.
Walmart / Sams Club ZD620 Recovery Commands

ZD620 Configuration

ZD620 and ZD420 Users Guide (en)
Zebra Setup Utilities: Sending Printer Commands and Receiving Data
Zebra Programming Guide

Use default WML

To restore the factory Zebra menus, you need to set display.root_wml property to its default and delete the custom WMINDEX.WML file. See Zebra Setup Utilities: Sending Printer Commands and Receiving Data for how to communicate with the printer. If you want, you can also use the ZSU to backup the WMINDEX.WML file before deleting it. There are likely a number of other WML custom files (and NRD files) on the printer. You can either leave those there (works fine) or delete them as well.

ZT600 Series index.wml Not Functioning | Zebra
Restoring the Default Display on a QLn Printer | Zebra

! U1 setvar "display.root_wml" "Z:INDEXCOLOR.WML"

! U1 do "file.delete" "E:WMINDEX.WML"

You can check that the display.root_wml command applied thusly:

! U1 getvar "display.root_wml"

Note the extra line after each set-get-do (SGD) command. For the printer to respond, SGD commands must be terminated by a carriage return or a space and line feed, and the command, attributes, and values must be specified in lower case. The full set of commands and additional information can be found in the Zebra Programming Guide.

More on WML files

These custom menus are built using WML files, which are like XML/HTML pages. It's actually kinda cool that the printers are capable of this level of customization.

Set WiFi Region

COUNTRY CODE NOT SELECTED error message is displayed | Zebra

Doesn't seem to stick... you can skip this.

! U1 setvar "wlan.country_code" "usa/canada"

! U1 setvar "wlan.region_code" "usa/canada"

I haven't been able to get the COUNTRY CODE NOT SELECTED message to go away, even after setting the wlan.country_code, wlan.region_code, wlan.international_mode to off, and wlan.allowed_band to all. The settings simply do not stick. These units seem to have special firmware that keeps the WiFi card in an unlocked mode to work in any geographic region. Having said that, they still seem to work on WiFi just fine. Just ignore the message. If you really want it to go away, you might be able to create your own WML page.

Power On Reset

~JR

Web Interface Credentials

Username: admin Password: 1234

syslog

! U1 setvar "device.syslog.configuration" "debug,local"

! U1 setvar "device.syslog.enable" "on"

Other Docs

Zebra Weblink is a component that allows you to communicate with the printer via a Websocket.



~PM Decommissioning Mode

Set up WiFi

^XA
^WIA
^NC2
^NPP
^KC1,0,,
^NNINSERT_DEVICE_NAME_HERE
^WAD,D
^WEOFF,1,,,,,,
^WP0,0
^WR,,,,100
^WSINSERT_SSID_HERE,I,L,,,
^NBS
^WLOFF,,
^WKOFF,,,,
^WX09,INSERT_PSK_HERE
^XZ
^XA
^JUS
^XZ
! U1 setvar "wlan.international_mode" "off"
! U1 setvar "wlan.allowed_band" "all"
! U1 setvar "wlan.enable" "on"
  • ^WIA For the external wired print server settings, the ^ND command is the same as the ^NS command. For the wireless print server settings, the ^ND command is the same as the ^WI command.
  • ^NC2 sets primary network device to wireless
  • ^NPP Use this command to specify to use the printer’s, rather than the inserted print server’s, LAN/WLAN settings at boot time.
  • ^KC1,0,, sets the Option 61 setting to: param 1 1 enabled, use mac address; param 2 0 for all NICs
  • ^NNINSERT_DEVICE_NAME_HERE sets the SNMP settings. First param sets the printer name (up to 17 alphanumeric chars).
  • ^WAD,D sets the param 1 receive and param 2 transmit antennae to diversity
  • ^WEOFF,1,,,,,, disables WEP, but also sets the encryption key to slot 1
  • ^WP0,0 sets the wireless password to 0000 which means that you do not need to enter the wireless password through the controlpanel to view or modify wireless settings.
  • ^WR,,,,100 sets transmit power to 100. Can also enable/disable transmit rates with this command
  • ^WSINSERT_SSID_HERE,I,L,,, sets the ESSID, operating mode to Infrastructure, preamble to long.
  • ^NBS instructs the printer to skip the check for a wired print server during network boot.
  • ^WLOFF,, disables Cisco LEAP
  • ^WKOFF,,,, ???
  • ^WX09,INSERT_PSK_HERE sets the security type to WPA PSK, and sets the PSK (64 hex encoding only)
  • ^JUS saves the current settings to EEPROM
@Derryderry
Copy link

Printer on "always on" mode solution, it's a "jumper" in the connectivity card that is selected to stays ON.
Easy to change, just follow the instructions here:
https://supportcommunity.zebra.com/s/article/Printer-will-automatically-Power-ON-when-plugged-into-an-active-ON-AC-power-source?language=en_US

I'm still getting the Country Code ERROR.

For some reason the Firmware doesn't come with any country to select.
And I don't know how to (if we are able to) add any to the selection.
Usually it comes with these options: JAPAN, EUROPE, USA/CANADA

My other idea would be somehow "suppress" the error on the screen.
I was able to do that with WML coding but it goes away when the power off/on cycle is performed.

Let me know if you guys have any luck with this or any ideas.

@cadowns
Copy link

cadowns commented Dec 30, 2023

Would one of y'all be able to provide the original WMINDEX.WML that was on the printer?

@sssnarl
Copy link

sssnarl commented Jan 23, 2024

As a side note here guys, when I flash these old SAMS printers with Link-OS 5.2 the country code message goes away? not sure what the difference is but as 5.2 is fine for what I need them to do I have downgraded them all to that and resolved it that way.

@Derryderry
Copy link

You’re right!
It works fine with 5.2 OS
However if you upgrade it the country code error will persist.

Were you able to DOWNGRADE its firmware?
Is so, how did you do?

@cadowns
Copy link

cadowns commented Jan 23, 2024

Do you have a link or can you provide the 5.2 firmware version?

@Lightja
Copy link

Lightja commented Mar 10, 2024

a few useful commands (make sure they have an extra line after in the communication window):

! U1 getvar "allcv"

this displays EVERY setting your printer has visible pretty much, which includes a list of all files on the machine. You may have to send some empty commands to retrieve everything bc it usually comes in like 4 parts. There's some timeout you can configure for that too but I didn't mess with that.

Also, if the printer starts to misbehave, I find the best reset method is to send the reset from the setup utility (Printer Tools -> Action -> Reset Printer), uninstall the driver, then unplug and replug the USB. If your message syntax is wrong at any point it can cause weird stuff to happen and this basically resets all that.

! U1 do "file.type" "E:INDEXCOLOR.WML"

this displays the content of WML/txt files if you want to see whats in them, specifically the main index page. This command is how I figured out how to get rid of the country code popup.

COUNTRY CODE NOT SELECTED Issue

Solved! The card is not able to have any country code defined, there just aren't any options that it will accept, I've tried changing all the other related region/mask settings as well, but the card just rejects all country codes. You can correct this by creating your own index file by copying the existing index file and changing one "on" to "off". Here are the steps:

  1. Enable ftp:
! U1 setvar "ip.ftp.enable" "on"

! U1 setvar "ip.ftp.execute_file" "off"

! U1 getvar "ip.ftp.enable"

! U1 getvar "ip.ftp.execute_file"

this should return "on" "off" if ftp was properly enabled.

  1. Clear received data in the direct communication window (recycle bin icon), then grab existing index file with:
! U1 do "file.type" "E:INDEXCOLOR.WML"

  1. copy contents to a text file in a text editor and save as "C:\INDEXCOLOR_ALERTSOFF.WML"
  2. edit the contents for the idle page with the following line
<card id="DoMain" title="" ontimer="#DoMain" alerts="on" translate="on">

to

<card id="DoMain" title="" ontimer="#DoMain" alerts="off" translate="on">
  1. save file
  2. open cmd and type
ftp <ip address of printer>
  1. press enter again (1st entry doesn't matter, it's for the PW maybe? I don't ftp much)
  2. once cmd says ftp> enter the command:
put "C:\INDEXCOLOR_ALERTSOFF.WML"

(note: this will default to putting it on the printer's E drive)
10. Configure printer to use the new index:

! U1 setvar "display.root_wml" "E:INDEXCOLOR_ALERTSOFF.WML"

! U1 do "device.reset" ""

  1. Alerts gone
  2. optional: reset ftp for production purposes:
! U1 setvar "ip.ftp.execute_file" "on"

(you'd do this if you are sending files directly to the printer via ftp to print them, also needed for updating firmware)

Do note that this disables other alerts that would pop up in a similar manner. However the LED indicators are really enough for me (and everyone without an LCD screen), so I'm just happy to not be getting spammed with that popup. Also, if you know a little bit of anything-ML you could bring the alerts back in a custom manner, thats what Wal-mart did I think. You can also edit the page a bit for fun if you like. BLUEBCKDARk.BMP is referenced in the index file, so you could add a new background bitmap and reference it in the custom index wml if you wanted a custom background.

just a disclaimer, I did all of this after upgrading firmware to link-OS 6.2 (v93.21.27Z), which was the latest version Zebra had for ZD620 on their website. No idea if that makes any difference or not.

@thauch
Copy link

thauch commented Apr 12, 2024

@Lightja
Hi. I have a Walmart ZD620 and trying to disable the alerts.

When I send ! U1 setvar "ip.ftp.enabled" "on" I get no response and usually have to restart the printer.
When I send ! U1 getvar "ip.ftp.enabled" I get a response of, "?"

When I send

! U1 setvar "ip.ftp.enabled" "on"

! U1 setvar "ip.ftp.execute_file" "off"

! U1 getvar "ip.ftp.enabled"

! U1 getvar "ip.ftp.execute_file"

I get "?""off"

When I send ! U1 do "file.type" "E:INDEXCOLOR.WML"
I get File not found

When I send ! U1 do "file.type" "Z:INDEXCOLOR.WML"
(change E to Z) I get the contents of the file.

I cannot get ftp to work to upload the changed file.
I tried using command prompt, but it says "not connected". I'm guessing because it's not enabling ftp.

Any ideas?
Thanks.

@Lightja
Copy link

Lightja commented Apr 12, 2024

@thauch I looked back at the allcv and it looks like I typo'd in my original message. I put 'enabled' when it should be 'enable'

I updated the original message, thanks for pointing that out.

@nthcomputing
Copy link

nthcomputing commented Nov 7, 2024

Thank you so much for posting this.

I did most of everything that's labeled here. I first reset the index page but I did not delete it. Everything seemed fine but I did go ahead and run the update to the newest link-OS, because when you've had that many version changes that's a lot of bug fixes. And I would rather have the last drivers and the last utility actually work on the printer so I decided to take the plunge. And yes I did of course get the country region not set warning. But as you said if you just ignore it everything works fine. I did however want to add to this.

Once I did this my web interface never came up. Now I noticed that the variables had HTTPS enabled and not HTTP, but I still couldn't get in under HTTPS!

I found this zebra document that tells you how to re-enable the web server and disable it if you so choose: https://supportcommunity.zebra.com/s/article/000022004?language=en_US

I'm repeating the commands to enable it below in case they change the page. A lot of the hyperlinks in this have gone bad at Zebra. However they're still on the wayback archive machine. They might be in other places but just to let you know a lot of of the info links are dead by now.

! U1 setvar "ip.https.enable" "on"
! U1 setvar "ip.http.enable" "on"
^XA^JUS^XZ
! U1 do "device.reset" ""

So now I have my web interface back which I was hoping to use instead of the sort of awful zebra designer stuff to quickly change network settings and other quick settings that I apparently can't change from the giant LCD on the face of the thing. I'm kind of regretting getting the LCD version now. Reading the manual it gives the impression you can switch networks and all that with it, I've not figured out how to do that. It gives information but I can't actually change anything. So this webpage is super important so I don't have to load proprietary software every time I wanna make a small network change.

Either way this should help somebody, thanks again for showing us how to make this printer usable! I hope my little tidbit helps others too.

@Darryelt
Copy link

Does any of you were able to reach the “Internal Print Server”By using the ip address on those printers?
It gets me a broken link.
Mine is working just fine, I’m just not able to reach to them through the web server.

Images attached
IMG_7E9362742F3A-1
IMG_1757

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment