GithubHelp home page GithubHelp logo

Printer type? about cartridgewriter HOT 13 OPEN

Kulitorum avatar Kulitorum commented on August 15, 2024
Printer type?

from cartridgewriter.

Comments (13)

slaytonrnd avatar slaytonrnd commented on August 15, 2024

I'm not sure how all of the machines map either. For the Dimension 1200es I was working with I used Prodigy and I recently found out that a Fortus 400c is a Fox type machine. No clue on the SST 768. Whenever I've seen anyone ask Benjamin he suggests just trying them all until you get meaningful output. If you select the wrong one and press Read CartridgeWriter will just throw an exception and bomb right now. Not much in the way of error handling just yet...

from cartridgewriter.

Kulitorum avatar Kulitorum commented on August 15, 2024

Ok. Trying random stuff just freezes the program for me, so I guess I should look at the arduino code for a while. Thank you very much for all your help.

from cartridgewriter.

slaytonrnd avatar slaytonrnd commented on August 15, 2024

It will freeze if it is waiting on the Arduino for a response (like if the EEPROM is not hooked up properly or not hooked up at all). Check the Rx/Tx lights and see if there is any activity and see where it gets stuck. Also I had to add a pause to the program (Thread.Sleep(10)) to wait for a response from the Micro. I'm guessing that the timing should not change, but something to keep an eye out for depending on where it is getting stuck. Good luck!

from cartridgewriter.

Kulitorum avatar Kulitorum commented on August 15, 2024

Hmm, I can't make it work - just freezes whatever I do. Do you power your arduino externaly?

from cartridgewriter.

Kulitorum avatar Kulitorum commented on August 15, 2024

Ok, I made it work by changing he WaitForChip routine to always start with waiting for 3 seconds.

    private void WaitForChip(SerialPort sp)
    {
        Thread.Sleep(3000);
        while (!PollForChip(sp))
            Thread.Sleep(500);

        sp.DiscardInBuffer();
    }

from cartridgewriter.

Kulitorum avatar Kulitorum commented on August 15, 2024

Oh, I also changed the USB speed to 115200 - don't know if that matters.

from cartridgewriter.

slaytonrnd avatar slaytonrnd commented on August 15, 2024

Congratulations on getting it working and thanks for letting me know your results! Looking at the code I can see where the serial device might not have enough time to recover between the "sp.DiscardInBuffer()" call and the "WaitForChip(sp)" call. Did you happen to try a smaller value for Thread.Sleep before settling on 3000? I'd like to add a pause in the code, but want to make it as small as possible. I am also going to open some enhancements to make troubleshooting easier.

from cartridgewriter.

Kulitorum avatar Kulitorum commented on August 15, 2024

Well, I tried 1000ms, that did not work for me. I'd rather have it a bit slow but stable, then fast and unstable, so I settled for the 3sek.

from cartridgewriter.

slaytonrnd avatar slaytonrnd commented on August 15, 2024

Totally makes sense. I went ahead and added a configuration file (CartridgeWriter.exe.config) with default values for BaudRate = 9600 and SerialInitializationWait = 2000, but you can change them to whatever you want. I figured other people may also run into similar issues and need custom values so might as well make it user settable. I'm currently updating the readme with notes about the values. I don't have a way to test this, but I kind of figured that maybe the problem was how long it was taking to open the serial device so I've also changed when the wait happens. There used to be a call to sp.DiscardInBuffer() before the wait, but now it happens after the wait and the code looks like so:

        private void WaitForChip(SerialPort sp)
        {
            Thread.Sleep(serialInitializationWait);

            sp.DiscardInBuffer();

            while (!PollForChip(sp))
                Thread.Sleep(500);

            sp.DiscardInBuffer();
        }

This works fine with the Micro; when you get a chance would you be able to check with your Mega and see if it works for you? Thanks!

from cartridgewriter.

Bartimaeus- avatar Bartimaeus- commented on August 15, 2024

An SST 768 is known by the code name "schooner". What would it take to add support for another printer type? I'm using a BST 1200 ("oahu"). I have dumps of the EEPROMS if that helps.

from cartridgewriter.

Kulitorum avatar Kulitorum commented on August 15, 2024

CartridgeWriter already supports the BST 1200. It is compatable with the Prodigy, just like the 768.

from cartridgewriter.

Bartimaeus- avatar Bartimaeus- commented on August 15, 2024

You're right, sorry. I realized my mistake last night after some reading. If I could ask another uneducated question, would it be difficult to add support for the bus pirate? bvanheu has some python scripts for reading and writing using the bus pirate , and it would be awesome to have a gui to use.

from cartridgewriter.

slaytonrnd avatar slaytonrnd commented on August 15, 2024

I took a look at bvahheu's bus pirate scripts and it looks like it would not be too hard to port the code over, but I don't have a bus pirate so it would probably need a few rounds of back and forth testing / coding to make sure it works right. I'm pretty booked right now, but might have some time to look into it further on Sunday (2/22). Feel free to add a new issue to add Bus Pirate support to CartridgeWriter if you want to go that route and I'll get to it as I can.

from cartridgewriter.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.