Aller au contenu

Filament ABS

lolvince

Membres
  • Compteur de contenus

    155
  • Inscrit(e) le

  • Dernière visite

Réputation sur la communauté

7 Neutre

À propos de lolvince

  • Rang
    Membre confirmé

Information

  • Imprimantes
    Anet A8 - Alfawise U20+ (V0G-1.2)

Visiteurs récents du profil

Le bloc de visiteurs récents est désactivé et il n’est pas visible pour les autres utilisateurs.

  1. oui je comprend, mais je ne pourrai donc pas passer en full TMC 2209 car pas assez de place, ou je peut faire pareil et piloter 2 moteurs via un seul TMC ?
  2. oui une V0G, et donc 2 Z. je ne comrend ce que tu veux dire...
  3. @Hobi : mais j’ai un autre problème c'est une U20 + j'ai donc 5 moteurs ^^
  4. Bon boulot ça me tenterai bien d'essayer, mais pourrais-je continuer à utiliser mon BL touch, détecteur de filament optique et mon MMU2 ?!
  5. vas-y Hobi ! je suis curieux de voir le résultat ^^
  6. @Hobi , ça avance doucement, l'intégration me demande pas mal de temps.
  7. j'avance tranquillement sur la personnalisation du firmware coté MMU2 et Marlin. il y a un gros travail d'intégration sur nos sources existante. je ne suis pas expert en GIT, il va mettre compliqué de créer un fork impliquant mes modifications. j'ai donc mes sources de mon coté que je modifie directement pour le moment car on plus sur le L'alpha qu'autre chose. DeamonCrack M'aide sur la partie conception 3D via fusion360. Hobi sur la partie Electronique. pour le moment je regroupe toutes les infos sur le MMU2, et j'essaye d'intégrer le meilleur fonctionnement possible par rapport à notre configuration actuelle. j'avance jour après jour, il me reste un gros travail d'intégration, donc si quelqu'un à un peu temps à perdre sur cette partie et voudrait me faire avancer ça serait avec grand plaisir.
  8. ok, je compte mettre une diode entre la sortie et GND afin d'indiquer l’état du capteur de manière plus visuel, dois je la mettre entre le signal et la borne de la carte mère, ou il est plutôt conseillé de la mettre entre ces bornes gnd et signal afin de ne pas influencer la CM ? le diode seule n'est pas une excellente option, une résistance l'accompagnant sera nécessaire j’imagine ?
  9. le capteur d'origine établi un contact simplement (2 fils). il me semble que les borniers prévu pour les fins de courses attendent un signal en 3.3v alors que la j'alimente en 5v le capteur (5v,signal et gnd) et il enverra 5v ou gnd sur son fil signal...
  10. bonjour, je doit remplacer le capteur mécanique de notre alfawise, par un capteur IR. celui-ci est alimenté en 5v, (je vais le repique sur mon BL) et renvoie donc 5v si pas de filament ou Gnd si présent. comment puis-je intégrer cela nos source ? merci.
  11. puis-je utiliser le port série 2 en UART ? j'aimerai intégrer ces 2 fichiers la dans notre config afin de dialoguer avec le mmu : //uart2.h #ifndef _UART2_H #define _UART2_H #define USART2_BAUDRATE 38400UL #define MMU_F_CPU 16000000UL #define BAUD_PRESCALE (((MMU_F_CPU / (USART2_BAUDRATE * 16UL))) - 1) #define BLK 0x2D // Blank data filler "-" #include <inttypes.h> #include <stdio.h> #include <avr/io.h> #include <avr/interrupt.h> #include "mmu.h" #include "Arduino.h" extern volatile unsigned char rxData1, rxData2, rxData3, rxData4, rxData5, rxFINDA; extern volatile bool confirmedPayload, confirmedFINDA, atomic_MMU_IRSENS; extern void uart2_txPayload(unsigned char*); extern void uart2_init(void); #endif //_UART2_H et //uart2.cpp /** * Robert McKenzie 7 byte payload comms protol with 0x7F as start byte * and 0xF7 as finish bytes. * ACK is with 0x06 * NACK is 0x15 */ #include "uart2.h" #include "system_timer.h" volatile unsigned char readRxBuffer, rxData1 = 0, rxData2 = 0, rxData3 = 0, rxData4 = 0, rxData5 = 0, rxFINDA = 0; volatile bool confirmedPayload = false, confirmedFINDA = false, atomic_MMU_IRSENS = false; volatile long rxTimeout = _micros(); enum class rx { Idle, Data1, Data2, Data3, Data4, Data5, End, FINDA, EndFINDA }; rx rxCount = rx::Idle; inline rx& operator++(rx& byte, int) { const int i = static_cast<int>(byte) + 1; byte = static_cast<rx>((i) % 9); return byte; } void uart2_init(void) { UCSR2A = (0 << U2X2); // baudrate multiplier UCSR2B = (1 << RXEN2) | (1 << TXEN2) | (0 << UCSZ22); // enable receiver and transmitter UCSR2C = (0 << UMSEL21) | (0 << UMSEL20) | (0 << UPM21) | (0 << UPM20) | (1 << USBS2) |(1 << UCSZ21) | (1 << UCSZ20); // Use 8-bit character sizes UBRR2H = (BAUD_PRESCALE >> 8); // Load upper 8-bits of the baud rate value into the high byte of the UBRR register UBRR2L = BAUD_PRESCALE; // Load lower 8-bits of the baud rate value into the low byte of the UBRR register UCSR2B |= (1 << RXCIE2); // enable rx interrupt } ISR(USART2_RX_vect) { readRxBuffer = UDR2; if (rxTimeout + 1855 < _micros()) rxCount = rx::Idle; switch (rxCount) { case rx::Idle: if (readRxBuffer == 0x7F) { rxCount++; rxTimeout = _micros(); } if (readRxBuffer == 0x06) { rxCount = rx::FINDA; rxTimeout = _micros(); } break; case rx::Data1: rxData1 = readRxBuffer; rxCount++; break; case rx::Data2: rxData2 = readRxBuffer; rxCount++; break; case rx::Data3: rxData3 = readRxBuffer; rxCount++; break; case rx::Data4: rxData4 = readRxBuffer; rxCount++; break; case rx::Data5: rxData5 = readRxBuffer; rxCount++; break; case rx::End: if (readRxBuffer == 0xF7) { if (rxData1 == 'I' && rxData2 == 'R' && rxData3 == 'S' && rxData4 == 'E' && rxData5 == 'N') atomic_MMU_IRSENS = true; else confirmedPayload = true; } rxCount = rx::Idle; break; case rx::FINDA: rxFINDA = readRxBuffer; rxCount++; break; case rx::EndFINDA: if (readRxBuffer == 0xF7) confirmedFINDA = true; rxCount = rx::Idle; break; } } void uart2_txPayload(unsigned char payload[]) { #ifdef MMU_DEBUG printf_P(PSTR("\nUART2 TX 0x%2X %2X %2X\n"), payload[0], payload[1], payload[2]); #endif //MMU_DEBUG mmu_last_request = _millis(); loop_until_bit_is_set(UCSR2A, UDRE2); // Do nothing until UDR is ready for more data to be written to it UDR2 = 0x7F; for (uint8_t i = 0; i < 5; i++) { loop_until_bit_is_set(UCSR2A, UDRE2); // Do nothing until UDR is ready for more data to be written to it UDR2 = (0xFF & (int)payload[i]); } loop_until_bit_is_set(UCSR2A, UDRE2); // Do nothing until UDR is ready for more data to be written to it UDR2 = 0xF7; } si quelqu'un est à l'aise avec marlin je suis preneur
  12. il est difficile (avec mon clone BMG) de charger décharger le filament manuellement. le script Gcode permet d'utiliser le moteur plutôt que d'user le filament contre les mâchoires même desserrées du BMG.
×
×
  • Créer...