Git Product home page Git Product logo

Comments (8)

ahmetonat avatar ahmetonat commented on August 11, 2024 1

Progress on UP Mini

I am happy to report progress on the Up Mini Teacup firmware conversion! After a long hybernation due to work pressure, I was able to get back to the Up Mini Teacup conversion. The problem was that had I used an AVR328 (Arduino Pro-mini) to run the firmware and the Up Mini had stepper motor drivers pre-configured for 128 microstepping. This caused the math calculations to overflow and it just did not work. There was no way to change the microstepping in the hardware. Even the stepper motor drivers were unidentified.

After looking at the stepper motor driver chips I found that they were an oddball 30 pin SSOP package. When I checked stepper motor driver chips with 30 pins, THB6128 came up. Surely, comparing the datasheet and board connections, the signals matched and indeed the drivers had been wired for 128 microstepping.

It is confirmed now that Up Mini uses THB6128 as stepper motor drivers.

The next problem is how to change the hardwired 128 microstepping to a more reasonable 32 or so. The datasheet says 3 pins control the microstepping rate: Pins 26,27 & 28, which were all wired to logic high. Pin 27 must be logic low for 32 microsteps. I managed to desolder, lift up and airwire Pin 27 to GND on all 4 motor drivers as desired (under a makeshift microscope).

After doing the firmware setup, motor positioning is running as desired now. I still need to adjust the extruder and bed temperature control parameters, but that is a known path and should be manageable.

Some photos show what was done inside the machine.

Up_Mini_Internal_View
Up_Mini_Driver_Mods

Best,

Ahmet

from teacup_firmware.

Traumflug avatar Traumflug commented on August 11, 2024

I'd guess you run into integer overflows. Teacup stores distances in micrometers and 2^31รท1000000 = 2,147. And there's some margin needed for calculations.

Workaround could be to multiply everything distance related by 10. Configuring ten times more steps/mm and for compensation, dividing speeds and commanded distances by 10. One might still run into overflows if more than 4 billion steps are needed for a movement.

from teacup_firmware.

Wurstnase avatar Wurstnase commented on August 11, 2024

Here are the lines depending for the ~1700mm.

Teacup_Firmware/dda.c

Lines 328 to 330 in 9b934c3

// changed distance * 6000 .. * F_CPU / 100000 to
// distance * 2400 .. * F_CPU / 40000 so we can move a distance of up to 1800mm without overflowing
uint32_t move_duration = ((distance * 2400) / dda->total_steps) * (F_CPU / 40000);

from teacup_firmware.

ahmetonat avatar ahmetonat commented on August 11, 2024

I have the same problem but with -apparently- much smaller values.
I am trying to retrofit an old UpMini! printer with an Arduino Nano.
It has 1/128 microstepping, 1.5mm pich belt 1.8 deg/step and 20 tooth pulley.
These numbers prodce 853333 steps/m

When I select acceleration as RepRap or Ramping, the movement starts fast, but then drops to extremely slow just as FelipeDelgadoR mentions.

EDIT: At these extreme low speeds, the positions seem to be correct and repeatable.

If I set 499999 steps/min, for example, speed is good, but of course positioning is wrong.

There is another problem: When I set the movement to 700000steps/m for example, and select 10mm of movement from Repetier Host, the first 10mm is smooth, but all subsequent movements are slow as described above.

Any ideas?

  • I did not understand Traumflug or Wurstnase's comments as it seems they would change dimensions of the print.

from teacup_firmware.

Wurstnase avatar Wurstnase commented on August 11, 2024

I would reduce the microstep size to 1/16 and check again. I suspect some overflows. The Teacup firmware does not have many regression tests for such values. At such high values there could be overflows that would cause such an observation.

from teacup_firmware.

ahmetonat avatar ahmetonat commented on August 11, 2024

Thanks for the reply!

Yes, most probably there is overflow. If I reduce the steps/m setting to 500,000 (arbitrarily) the problem goes away. This is the same thing as changing the microstep size to a coarser value than 1/128 as you say.

However, if I do that, the size of the printed object would be wrong.

Probably the actual solution is to increase the type of the overflowing variables to int_64t or something.

However, which ones?!! Do you have any suggestions?

Is it possible to use the simulator to check if some variables are overflowing?

from teacup_firmware.

Wurstnase avatar Wurstnase commented on August 11, 2024

I would reduce the microstep size to something smaller. E.g. 16. In that case you can reduce your steps/m by a factor of 8.

from teacup_firmware.

ahmetonat avatar ahmetonat commented on August 11, 2024

Yes, that wolud have been my first choice, but on this printer (Up! Mini) the motor driver chips are soldered directly on the PCB, have heat sinks glued on them, and their part numbers have been scraped off. I could not find any reference to the board design on the Internet either.

Even halving the microstep setting to 64 would have saved the day for me.

So unfortunately essentially I am stuck with the microstep setting. Will still check to see if I can do it.

from teacup_firmware.

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.