Skip to content

Instantly share code, notes, and snippets.

@phaseOne
Created March 3, 2022 18:47
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • 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, 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 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 to play around with it.

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.

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