All Projects → pyr0ball → pyr0piezo

pyr0ball / pyr0piezo

Licence: other
An AVR/ARM based piezoelectric sensor for use in ultra-precise applications

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
shell
77523 projects
HTML
75241 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to pyr0piezo

K3D-VOSTOK
K3D VOSTOK 3D printer
Stars: ✭ 138 (+126.23%)
Mutual labels:  3d-printing, 3d-printer
Pycnc
Python CNC machine controller for Raspberry Pi and other ARM Linux boards
Stars: ✭ 390 (+539.34%)
Mutual labels:  3d-printing, 3d-printer
3D-Engine-OpenGL-4
3D Graphics Engine For Games | C++ OpenGL 4.1
Stars: ✭ 19 (-68.85%)
Mutual labels:  3d-printing, 3d-printer
PolyDraw
✳️ PTSource PolyDraw is a free 3D polygonal modeller for Windows x86 and x64, for creating or modifying 3D objects using a mesh of 3D points and parametric NURBS Curves .Exports and imports to over 40 formats including WebVR and 3D Printing.
Stars: ✭ 17 (-72.13%)
Mutual labels:  3d-printing, 3d-printer
Octopod
Free open source client for OctoPrint
Stars: ✭ 126 (+106.56%)
Mutual labels:  3d-printing, 3d-printer
parrot 3d
Stronger frame, Light weight component and easier to maintenance
Stars: ✭ 26 (-57.38%)
Mutual labels:  3d-printing, 3d-printer
Snappy Reprap
The world's most 3D printable 3D printer. (Guinness Book of World Records 2017 & 2018)
Stars: ✭ 389 (+537.7%)
Mutual labels:  3d-printing, 3d-printer
Marlin Config
Marlin firmware instant configurator
Stars: ✭ 327 (+436.07%)
Mutual labels:  3d-printing, 3d-printer
Drakon Extruder
3D Printable 3:1 Geared Extruder
Stars: ✭ 80 (+31.15%)
Mutual labels:  3d-printing, 3d-printer
Prusa i3 bear upgrade
Stronger frame for Prusa i3 MK2(s), MK2.5 and MK3
Stars: ✭ 652 (+968.85%)
Mutual labels:  3d-printing, 3d-printer
tronxy-xy100
Working with an inexpensive 3D printer, Other names: STARTT (from imakr.com) or Anet A8
Stars: ✭ 22 (-63.93%)
Mutual labels:  3d-printing, 3d-printer
Slic3r
Open Source toolpath generator for 3D printers
Stars: ✭ 2,791 (+4475.41%)
Mutual labels:  3d-printing, 3d-printer
OctoPrint-GitFiles
With this plugin, you can use a github/gitlab repository for keeping your OctoPrint Files collection up-to-date.
Stars: ✭ 28 (-54.1%)
Mutual labels:  3d-printing, 3d-printer
octoscreen
A touchscreen client for Octoprint
Stars: ✭ 26 (-57.38%)
Mutual labels:  3d-printing, 3d-printer
Octolapse
Stabilized timelapses for Octoprint
Stars: ✭ 415 (+580.33%)
Mutual labels:  3d-printing, 3d-printer
Arcwelderplugin
A plugin for OctoPrint used to convert G0/G1 commands to G2/G3 commands. Reduce the size of your gcode files, and reduce number of gcodes per second sent to your printer.
Stars: ✭ 224 (+267.21%)
Mutual labels:  3d-printing, 3d-printer
White Knight
White Knight Belt Printer
Stars: ✭ 252 (+313.11%)
Mutual labels:  3d-printing, 3d-printer
xcsg
XML based Constructive Solid Geometry based on carve
Stars: ✭ 24 (-60.66%)
Mutual labels:  3d-printing
OpenSCAD connectors
Simple, parametric APIs for connectors such as corner brackets and t-joints. Specializing on connectors for aluminum extrusion connectors.
Stars: ✭ 29 (-52.46%)
Mutual labels:  3d-printing
SMuFF-1.1
Latest version of the SMuFF firmware to be compiled in PlatformIO
Stars: ✭ 117 (+91.8%)
Mutual labels:  3d-printing

For more extensive documentation, refer to the Docs Site (source included in this repository)

Presenting...


The Pyr0-Piezo Z-Axis Sensor

What is this thing?

TL;DR: It's a litte circuit that turns your actual nozzle into a z-probe.

This is a Z-Probe Sensor for 3D Printers that utilizes a piezoelectric element (commonly a 20-27mm piezo disk used in musical pickups) to detect when the nozzle of the printer touches the bed. There have been other Z-Probes in the past that do this, but this is the first to incorporate an onboard microcontroller that automatically calibrates and balances the circuit. Previous piezo Z-Probes all required manual tuning to some extent, usually with tiny hard-to-use trimpots. Due to the mechanical and electrical characteristics of this type of sensor, it has several advantages over other Z-Probes:

  • There are no offsets to configure or adjust
  • It can be configured to emulate either a standard endstop, or any active-high Z-Probe
  • It's not dependent on a specific type of bed or hotend
  • The builtin signal filtering reduces the amount of false driggers dramatically compared to other piezo sensors.
  • It's FAST. Delay between the piezo being actuated and the z-trigger signal being sent to the printer's controller is just 26 nanoseconds

Is there a catch?

Well, yeah a couple. The sensor requires introducing a small amount of physical instability into the construction of the 3D printer. Something needs to move, even a small fraction of a millimeter. This can be something like the bed being pushed down slightly on it's springs, or adding a hinge and a tensioning spring to the print head. There's innumerable ways to make this work, and I've been working hard with my beta testers to find the best possible method combining as much stability as possble with the highest sensitivity. The other catch is that any oozing filament will skew the leveling results, so you have to decide to either assume there will always be ooze and use a small z-offset, or add a nozzle wipe/clean manuver to your startup gcode before bed leveling.

How do I use it?

I designed the sensor to connect to a 3D Printer's controller like any other endstop or Z-Probe. The sensor also includes an i2c interface that will allow the 3D Printer's controller to change parameters on the fly depending on the use-case.

The piezo element is mounted somewhere on the 3D Printer in such a way that it undergoes mechanical stress when the nozzle touches the bed. So far there have been three distinct mounting schemes that appear to work well:

  • On the extruder assembly
  • Under the Print Bed
  • In the case of CoreXY or other Gantry Kinematic systems, on either end of the gantry

Features:

  • Self-calibrating (no more fiddling with tiny potentiometers!)
  • Ultra-precise z-height measurements
  • Zero offset (The nozzle itself is the sensor!)
  • Compatible with ALL surface types
  • No plugging in removable sensors for leveling
  • Tunable over UART / I2C

FFC Cable Chain Extra Features:

  • FFC Cable chain for a clean connection between print head and controller
  • Onboard switchable DC buck converter for 12v or 5v fan operation
  • LED Feedback on all PWM components Standalone version available for drop-in installation

Credit must be given to precisionpiezo.co.uk for getting me started on this project and giving me a place to start. I did build a version of the FFC cable chain based on their electrical designs but found the calibration of the circuit to be very fiddly, as the range of value on the potentiometers that was acceptable was very narrow.

I've since started from scratch using my own BOM and designs, while including an onboard microcontroller to handle auto-calibration. Given that every 3D printer is different, I wanted this sensor to be as easy and stable as other sensors available on the market, but with the increased performance of a piezo sensor.

Join our discord for support and to join in realtime discussion for the project:

Discord Banner 1


Contribution:

Please submit all Pull Requests through the develop branch!

The support site for this project uses a script to automatically parse git commits for changelog data. There are three categories of commits that should show up in the case log:

  • Bugfix #bugfix: commits related to fixing something that's broken
  • Added Features #featureadd: Commits related to adding new functions and features
  • Documentation #docs: Any commits that deal specifically with the documentation site or comments/instructions contained within the source itself but do not contribute any functional changes

Simply by adding the corresponding tag to the end of the first line of your commit message, the changelog will automatically compile these for the documentation site. Please be sure to include this in any commit messages for this project.

I would also request that commits remain small, adding each change/fix/feature to their own commits. This will help with future debugging, version tracking, and testing.


This is a complete redesign from the ground up, but was inspired by the sensor developed by PrecisionPiezoUK

Original FFC Cable Chain designs can be found on my Thingiverse:

Please refer to LICENSE.md for license information

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].