Coder Social home page Coder Social logo

fabtotum / fablin Goto Github PK

View Code? Open in Web Editor NEW
21.0 17.0 26.0 2.43 MB

The FABtotum Personal Fabricator Firmware, a Marlin derivate made to support hybrid manufacturing and digital acquisition

Home Page: http://www.fabtotum.com

License: GNU General Public License v3.0

C 85.51% Makefile 0.37% C++ 11.53% Processing 1.87% Scilab 0.08% Objective-C 0.56% Python 0.08%
fabtotum 3d-printer-firmware marlin 3d-printing

fablin's Introduction

                    FABlin Firmware
                    ===============

for FABtotum Personal Fabricator and FABtotum Core platforms

This is FABlin, a Marlin derivative firmware. Marlin was originally created by Erik Zalm (https://github.com/ErikZalm/Marlin). The changes made are focused on multipurpose personal fabrication and hardware characteristics of the FABtotum Personal Fabricator such as 3D/4 Axis milling, 3D/4 axis scanning, Touch-probing and the Totumduino Board I/Os capabilities.

Compiling

with Arduino IDE

To correctly compile the firmware with Arduino you must set the folder where this repository is checked out as Arduino's sketchbook folder inside Arduino's preferences. Alternatively you can manually copy the FABlin/libraries/SmartComm folder into your current sketchbook's libraries folder.

For further info refer to https://www.arduino.cc/en/Guide/Environment#toc7.

with PlatformIO

A default platformio.ini file with correct directories definitions is now included in the repository. To compile the firmware simply run:

platformio run

inside this repository's root folder. To upload the firmware on the board or flash it directly into it refer to platformio documentation. platformio.ini has a default definition for using an AVRISP-mk2 usb programmer. To directly flash the firmware onto TOTUMduino using that defintion, run:

platformio run -t program

Latest Changes

Version 1.1.1.3

  • Fix power supply issues in Laser Heads
  • Fix M999 behavior with pending temperature errors
  • Fix M42 command output

Version 1.1.1.2

  • More stable temperature readings on edge and error conditions

Version 1.1.1.1

  • Fix heaters not working inside PID tuning procedure (M303 command)
  • Fix missing bed temperature readings with some toolheads
  • Better stability when reconfiguring tools and installing new heads
  • Fix M563 output when the bed's thermistor is active without the bed heater being so

Version 1.1.1

  • Add support functions for Fabtotum Laser Head PRO
  • Added support for head-installed external probe, M746 S2 selects it
  • Expanded G38 for external-probing with movement on all the three axes
  • Better emergency stop in case of head faults
  • M793 S0 can be issued to shut-down all head lines and functions
  • Changes in tool configuration
    • M563 accepts multiple values per parameter, e.g. M563 P0 D0 H0:1
    • Revised heaters numbering:
      • 0: bed heater
      • 1: head heater
      • 4: bed temp sensor with disabled heater
      • 5: head temp sensor with disabled heater
    • Revised M563 command output
  • Added support for a motor driver (drive n.3) through bed pins; no DIR pin available

For the complete changelog, see ChangeLog.

Contributors

FABlin is possible thanks to the contributions by:

  • Simone Cociancich
  • Marco Rizzuto
  • Daniel Kesler
  • imarin2
  • Krios Mane
  • Enrico Ambrosini
  • Wolfgang Meyerle

fablin's People

Contributors

daniel-fabteam avatar enrico-fabteam avatar imarin2 avatar infinity0n3 avatar krios-fabteam avatar kriosmane avatar marco-fabteam avatar simone-fabteam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fablin's Issues

No need to wait after Wire.requestFrom().

In the file "FABlin/Marlin/Marlin_main.cpp", in the function "I2C_read()" there is a timeout with millis() after the Wire.requestFrom(). However, there is nothing to wait for.
Explanation: Common-mistakes#1

Since the return value of Wire.endTransmission() is not tested, the test for Wire.requestFrom() could perhaps be omitted as well:

  Wire.requestFrom(SERIAL_ID_ADDR, 1);    // request 1 bytes from slave device SERIAL_ID_ADDR
  return( (char) Wire.read());      // return a byte as character
}

When the Wire.requestFrom() needs a check for a valid I2C transaction, it could be like this:

  Wire.requestFrom(SERIAL_ID_ADDR, 1);    // request 1 bytes from slave device SERIAL_ID_ADDR
  if(Wire.available() != 1)       // request for 1 bytes failed ?
  {
    return('?');      // return a byte as character
  }
  else
  {
    return( (char) Wire.read());      // return a byte as character
  }
}

G38 stops before making contact

In the latest version 1.0.0095, external z-probe (continuity probe) does not work properly.
When enabled with "M746 S1" and started with G38. The z-axis starts moving up a few centimeters and stops without touching the external probe.
Version 1.0.0094 works without any problems.

Legitimate probes failing

From time to time the probing procedure reports a failed sample, even though the probe actually did stopped on an obstacle. The problem affect run_fast_z_probe, where probing is verified by:

if (READ(Z_MIN_PIN) != Z_MIN_ENDSTOP_INVERTING) {
  return true;
} else {
  return false;
}

It's possible that Z_MIN be unstable because of conversion from an analogue value which may still be too near the threshold when Z_MIN triggers. To fix this it should be necessary to run the verification multiple time.

Version 1.0.0098.1 is unavailable to install

The latest version of the FABlin firmware (1.0.0098.1) for classic FAB-UI is unavailable via update or in the drop-down menu on the recovery page. (/recovery/flash.php).
The latest version available is 1.0.0098.

G28 homing is in the wrong direction.

Symptoms:
Zmin endstop hit message is displayed even if M119 reports all Endstops as Open.

conditions:
-Reset the controller
-V 1.00.8 installed
-enter G28

Workaround:
-enter G27
-enter G28 (will slightly crash at Z_MAX

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.