Page 1 of 1

Geeetech A20M - Modifications

Posted: Tue May 31, 2022 11:58 pm
by ceva156
Hi all,

I just picked up a used Geetech A20M - it was a good buy and couldn't resist.

Having been familiar with 3d Printing (own an Ender 3) just trying to grow my fleet per say.

Now I'm curious should I use this as is - or Persue modifying it into something better.

Some concerns of mine:

-I'm not too sure on the extruder / hot end design - doesn't look great - would rather upgrade it to something similar to the Ender 3

-It has filament detection - for both heads - I'd like to remove these with the firmware if possible - but I'm not opposed to soldering the connections for.

-Brings to my next point should I change the board?

Anyone else ever own one of these and think of something that should be upgraded ? I'm not opposed to a Frankenstein printer

probleme code de ma geeetech a20m

Posted: Tue Jun 21, 2022 11:04 pm
by dododepauw
bonjour etant debutant dans le monde de l impression 3d et de la programmation je suis bloquer par un morceau de code du programme de la a20m en deux extrusion sauriez vous m aider soit en le corrigeant ou en m indiquant ou trouve une code non problematique bien a vous et un merci d avance

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= _BV(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~_BV(DIO ## IO ## _PIN); }; } while (0)

#define _WRITE_C(IO, v) do { if (v) { \
CRITICAL_SECTION_START; \
{DIO ## IO ## _WPORT |= _BV(DIO ## IO ## _PIN); } \
CRITICAL_SECTION_END; \
} \
else { \
CRITICAL_SECTION_START; \
{DIO ## IO ## _WPORT &= ~_BV(DIO ## IO ## _PIN); } \
CRITICAL_SECTION_END; \
} \
} \
while (0)

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

#define _TOGGLE(IO) do {DIO ## IO ## _RPORT ^= _BV(DIO ## IO ## _PIN); } while (0)

#define _SET_INPUT(IO) do {DIO ## IO ## _DDR &= ~_BV(DIO ## IO ## _PIN); } while (0)
#define _SET_OUTPUT(IO) do {DIO ## IO ## _DDR |= _BV(DIO ## IO ## _PIN); } while (0)

#define _GET_INPUT(IO) ((DIO ## IO ## _DDR & _BV(DIO ## IO ## _PIN)) == 0)
#define _GET_OUTPUT(IO) ((DIO ## IO ## _DDR & _BV(DIO ## IO ## _PIN)) != 0)
#define _GET_TIMER(IO) (DIO ## IO ## _PWM)