-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ET-4800 - Unable to clear waste levels #29
Comments
This looks the same as #26. The ET-4800 printer is not part of epson_print_conf.py. Anyway, you are probably using a wrong printer model or a wrong printer definition, with a different "read_key" than the interfaced printer. Run the UI with the -d command-line option (debug). You should see a number of "INFO:root:Invalid read key.". |
Running with the debug option does show a lot of invalid read keys, although I'm confused as to how the printer model is wrong unless the values from the codeberg are incorrect for the printer. The 4800 isn't a part of the conf file however I assumed the example of integrating from the codeberg would allow me to still use it. Would you know any steps I could take to try and get this working or, since it's not part of the original set of devices, is it not something you'd support? Or is there any other info I could provide that would allow you to point me in the right direction? |
Strange. Try using Python to run the application from the command line and check the output produced by the Be sure to use the latest version of the application. In the UI, select the drop-down list of the models and press F2 in correspondence to your model. The status box will show the printer definition values. Select the status box, right button of the mouse, then copy all data and paste them here. |
I have this same model and running into the same issue: Result of F2 Result of Printer Status |
You might try the "Detect Access Keys" button included in Version 3, which attempts to discover the read_key and write_key of the printer. |
This issue becomed stale because of no feedback for 15 days. Remove the stale label or add a comment; otherwise, this will be automatically closed in 30 days. |
Hi i'm having the same problem. Can someone fix this please? thanks |
Did you try the "Detect Access Keys" operation? Can you provide its result? Can you also provide the output of F2 and F3? |
This issue becomed stale because of no feedback for 15 days. Remove the stale label or add a comment; otherwise, this will be automatically closed in 30 days. |
Here are the values for my ET-4800 in ui.py F2: F3: |
Thanks. The ET-4800 model does not need to load or import external configuration archives, as the configuration is already embedded in the program. The read key should be 74, 54, while you report 255, 254. I would like to understand why these values changed. Did you run the latest version of the program v5.3.6? Did you run it from Python? Or the epson_print_conf.exe executable? Can you describe the way you used it? Did you press "Detect configuration" or "Detect Access Keys" before testing F2 and F3, or just F2 and F3 after running the program? |
Environment: Cloned most recent from git and pulled up to date Running ui.py with the -d flag via gitbash commandline. (e.g. python3 ui.py -d) and can see debug output in the shell. Find printers finds the ET-4800 well enough (on it's assigned IP address) I select the correct dropdown for the ET-4800 (and that IS the model of printer I have) and apply the IP address. If I mash the "Detect Access Keys" it starts access key detection, runs for a while and then errors with: Could not detect read_key. There is no output to the invoking console. At this point, F2 and F3 do not switch UI context and show their data. If I press "Printer Status" invoking console throws a ton of "Invalid Read Key" errors, but F2 and F3 start returning UI data. |
Can you confirm that, if you do not press "Detect Access Keys", then F2 and F3 show the default read key [74, 54], but you fail to reset the ink waste with this model? |
If I restart ui.py, and manually enter the Printer Model and IP address (skipping the "Detect Printers"), and press F2, the read_key values are 74,54. Oddly, the read sequence returned from F3 is: 74.54 (note the '.' and not a ','), if that is valuable information. If I then select the Reset Waste Ink Levels, the invoking console throws a mess of: $ python ui.py -d and the UI itself throws: [ERROR] Cannot read EEPROM values for "Raw waste reset": invalid printer model selected: ET-4800. |
I assume that also I would add a test: at the moment, before writing data to the EEPROM, I attempt to read data from it in order to verify the EEPROM access and log useful information to be able to reverse the operation; for some models, this read operation fails (unknown reason). Anyway, it is possible to write directly to the EEPROM without the preliminary reading operation. For instance, to reset the waste ink levels, do the following:
for oid, value in self.printer.parm["raw_waste_reset"].items(): self.printer.snmp_mib(self.printer.eeprom_oid_write_address(oid, value, label="raw_waste_reset"), label="raw_waste_reset") paste the output here |
First, snmpget from a nearby linux host (not from the windows machine) snmpget -v1 -d -c public 192.168.5.115 1.3.6.1.4.1.1248.1.2.2.44.1.1.2.1.124.124.7.0.74.54.65.190.160.48.0 Sending 63 bytes to UDP: [192.168.5.115]:161->[0.0.0.0]:0 Received 74 byte packet from UDP: [192.168.5.115]:161->[0.0.0.0]:0 SNMPv2-SMI::enterprises.1248.1.2.2.44.1.1.2.1.124.124.7.0.74.54.65.190.160.48.0 = Hex-STRING: 00 7C 7C 3A 34 31 3A 4E 41 3B 0C Seems to return somewhat useful data. |
Second step: I'm not sure what you mean by "load the appropriate printer configuration file (from the menu)" as that doesn't seem to be a menu choice; do you want me to export the config as a PICKLE file and reimport it? |
If, however, I skip the load step, manually select the ET-4800 from the Printer Model drop down, apply the correct IP address in the IP Address field, and pull F2 and F3 data (showing the expected 74.54 value) and then run the debug console with the supplied for statement, I get: ('OctetString', b'\x00||:42:NA;\x0c') |
Ignore this, sorry.
Thanks for the test; |
The code that worked with an ET-4800 in issue #39 was possibly interfacing an older firmware. |
I did apply a firmware update within the last couple of weeks, perhaps Epson tires of people trying to fix things themselves. |
I did apply a firmware update within the last couple of weeks, perhaps Epson tires of people trying to fix things themselves.
As for other models, you may still be able to fix it via USB.
|
Hi how can we fix it via USB? |
Hi how can we fix it via USB?
I also have F3 255.254
Both the original reink and [reinkpy](https://codeberg.org/atufi/reinkpy) support USB.
|
Thank you very much. i will try that |
Thanks @dgerber for letting me know that USB still works. I have never tested it (and I might not even have the cable). Does USB use the same SNMP byte sequences? |
Thanks @dgerber for letting me know that USB still works. I have never tested it (and I might not even have the cable). Does USB use the same SNMP [byte sequences](https://github.com/Ircama/epson_print_conf?tab=readme-ov-file#byte-sequences)?
I've not tested on ET, but it did work on an XP-Series, as we saw on
another ticket here.
It seems byte sequences are the same, just the encoding is different
over USB or SNMP.
|
New firmware versions might be likely being developed to address a security issue arising from such use of the SNMP access protocols. The exploitation of security keys to access the printer's EEPROM, along with the inevitable dissemination of the access keys, including the APIs that facilitate their use, exposes printers to the risk of unauthenticated network access by malicious actors. This could result in irreversible changes to the EEPROM, compromising the device's functionality. Ultimately, the community’s contribution to developing open-source tools and open data for accessing the printer EEPROM has shed light on a longstanding security flaw in these printers — one that existed but was previously less recognized. |
I can confirm, however, that after pulling the reinkpy repo and connecting directly to USB from a linux host, that the ET-4800 will allow its cleaning/inktank counters to be reset. |
Hi, I've been trying to clear the waste ink levels on an ET-4800, but I'm running into an error of an invalid printer model. I've added the model to the dropdown through the method listed in the readme, and the GUI can read the status of printer correctly, but when I try to clear the levels I get:
" [ERROR] Cannot read EEPROM values for "Raw waste reset": invalid printer model selected."
Any advice on how to get round this?
The text was updated successfully, but these errors were encountered: