text:
Managing LEDs with NanoDLP
I'm building my own DLP printer with UV LEDs. I use a 20A relay to power them on, since they require high power and can't be directly driven by arduino or Raspberry.
I'm planning to use them with NanoDLP on Raspberry + GRBL on Arduino.
Is it possible to make NanoDLP tell GRBL to power on (send digital 1/+5V) the relay when the print starts and power it off (send digital 0/GND) when the print ends?
The other way would be to just install an on/off switch and do it manually,  but I feel this step should be automated somehow.
Is there a way to do it?

why not you use commands on and off, for example: extruder, heatbed, fan etc.

@FernandoBaltazar AFAIK GRBL is a CNC host software, it doesn't have extruder, nor heatbed, nor fan I suppose.

So, this have an spindle control, Cooler, and so on.

I have no experience with either GRBL or DLP printers, but the
M7
M8
M9

coolant control codes should be able to be sent by NanoDLP to GRBL. Those seem to allow for direct digital output.
Apparently you can set the pin you want them to use in the cpu_map.h file, with the standard being Analog Pins 3 and 4 for the M8 and M7 commands respectively.
// Define flood and mist coolant enable output pins.
#define COOLANT_FLOOD_DDR   DDRC
#define COOLANT_FLOOD_PORT  PORTC
#define COOLANT_FLOOD_BIT   3  // Uno Analog Pin 3
#define COOLANT_MIST_DDR   DDRC
#define COOLANT_MIST_PORT  PORTC
#define COOLANT_MIST_BIT   4  // Uno Analog Pin 4

Hope this helps!
Source: https://github.com/gnea/grbl

Franco Cicero is completely correct there is an option to control your printer by using the GPIO of the Raspi. To do this you still need a stepper driver motor or some interface between the GPIO and the steppers/LED/etc.
More info here: http://www.buildyourownsla.com/forum/viewtopic.php?t=3772
You should really control the LEDs using a mosfet, or even a solid state relay and not just keep them on all the time. The lights should ideally switch on and off for each layer.

Well, the question is about controlling the LEDs and the answer you referenced is only about the Z-axis. I think that confused some people.

It's downvoted because it doesn't answer the question. Question is about how to manage LEDs with GRBL, answer is on how to manage z-axis without an arduino. Your answer doesn't really answer the question too, I asked how to manage LEDs using a relay (SSR of course) with GRBL, you answered I should control LEDs with a relay (which is what I already wrote in the question).

I agree it didn't answer the question directly, but he and I am providing a differing idea as you did mention that you were using NanoDLP on a Raspi. Is there any particular reason why you are using GRBL? But what I am trying to tell you is you are probably best turning the LED on/off between layers rather than just at the start/end of the print job.

But if you want a direct answer, yes if you can send a G-code to turn on/off the relay then you can do this in the settings at the "Start of print GCODE", and the "END OF PRINT GCODE"

But what i was trying to get at is, and what i did say: "The lights should ideally switch on and off for each layer."

I think you don't have to use the Arduino. There´s an option in NanoDLP to control the z-axis through the Raspberry GPIO.

Could you expand upon your answer? For example, state the name of the option (and/or where it could be found), and an example... As it stands your answer (while it may be correct) is just a little terse and has been flagged as low quality.


text:
commandline remeshing and simplifying tools
I'm currently trying to remesh and simplify some protein structure models (very large) to reduce the file size of the STLs I need to print from.
The raw file before manipulation is ~4.9GB.
I'm currently attempting this on my home PC (16GB Ram, AMD FX9590, dual RX480s - so no slouch by any stretch) but I'm currently watching the progress (which isn't fast), and the RAM usage is worryingly close to 16GB now, with about 40% of the calculation still to go.
I'm using MeshLab's Quadratic Edge Collapse Decimation, to drop down by about 60% since there are a lot of redundance internal vertices etc and the print will already be quite difficult even with a small number of faces.
If my PC ends up not being able to handle this, does anyone know of any good commandline tools for Unix that I could use on one of my servers to handle remeshing and simplification, where I have considerably more ram and CPU power available.
First post on this SE, so apologies if this belongs somewhere different.

Netfabb came up in a number of suggestions that I found. Take a look at 3D Printing Under Arch Linux, which offers a number of solutions for Linux, including:

OpenSCAD
FreeCAD
Blender
NetFabb
Slic3r

Netfabb
Taking the section on Netfabb:

netfabb Private will provide you with a fully-loaded tool-box to do all this and much more:

fix complicated file errors
make late design changes
combine parts into one
hollow out solid parts into a shell
smooth the mesh to improve surfaces
reduce file size

Installing it:

netfabb is not at official repository so you must install it from AUR
  using yaourt
$ yaourt netfabb-basic
$ netfabb-basic

However, it is unclear as to whether there is a cmd line interface. It could be worth reading Problem in Netfabb Command Line execution and in particular the documentation on Automating Netfabb - although this seems to suggest that command line functionality is only available to users with Ultimate subscription and not Basic:

From Reducing Size of STL file to upload to shapeways, this post (#10) states:

You can also decimate the model in Netfabb easily - Right click > Level of Detail > Choose something like 50%... or more or less depending on the level of detail needed.

Although, this isn't available in Basic subscription, or so says post #12.

Meshmixer
I also came across this, non-command line option.
From How to Reduce the File Size of .STL and .OBJ 3D Models

For example, you can give the free 3D modeling program Meshmixer a try. Choose the ‘Select’ tool from the menu on the right, then double-click on your model (this will select your entire mesh). Then click on the ‘Edit…’ option and select ‘Reduce’.
You can now reduce the polygon count using several options. The best working choice is to use the percentage tool. It will immediately tell you by how much percent your file size (and polygon count) has been reduced.

Available for Windows and OSX.
From Reducing Size of STL file to upload to shapeways, this post (#8) states:

The meshlab tutorial is exactly what you want to do - the options described help preserve the overall geometry of the model while reducing the poly count. Start with a target of 150,000 polys and work up until the desired detail is retained, bearing in mind the printability I mentioned above.

Also, by way of Quora, How do I reduce the size of an STL file? Does it affect the CAD coordinates for 3D printing?, I also found this Meshmixer tutorial: Easy Guide on How to Repair Your .STL Files. Under the section Problem 4: File Size is too Large for 3D Printing are the following steps:

The last problem that you may stumble upon, particularly as your
  objects get larger and their complexity increases, is that the
  resulting .stl file size is too large for your 3D printer or 3D
  printing service of choice. Third party printing services like
  i.materialise or Shapeways  have upload limits so you may have to
  change the size of your file (100 MB limit at imaterialise and 64 MB for
  Shapeways). It’s important to reduce the mesh without sacrificing the
  quality, which I should say at the outset is best done at the initial
  export from your CAD software to minimise any distortion. My number one quick
  tip is to make sure in the export settings that your saving in
  ‘Binary’ format, not ‘ASCII’ –  it’s a significantly more compact file
  format for .stl’s without losing quality). However if it’s not an
  option, Meshmixer can be really useful to quickly reduce file size and
  visualise how this will affect the quality of your surfaces.
For this example I’m going to return to the leaf from Problem 1, which
  as a .stl file is 30.757 MB – pretty large for such a small design and
  definitely over the limit for someone’s email if I wanted to send it.
  So let’s look at how we can get this under 10 MB.

Select the entire model by pressing Ctrl + A on your keyboard to select all.
Go to Edit>Reduce to bring up the options to reduce the mesh. Essentially the file size of a .stl is directly related to the number
  of polygons (triangles) that make up all of the surfaces. We will use
  the Reduce tool to reduce the quantity of polygons, therefore reducing
  file size.
The menu will give you a range of options to reduce the size of your file. The simplest is to use the default Percentage option,
  allowing you to determine the final file size you want rather than
  needing to know exactly how many triangles will be used to make up the
  file. In this case I have calculated that in order to get my original
  .stl file below 10 MB, I need a reduction of 70 % or more. As you
  adjust the values, you will get a preview of what your model will look
  like, allowing you to control how much reduction you employ before the
  model becomes too distorted and ‘pixelated.’

Once you’re happy and have accepted the changes, you can click on the Export button or go to File>Export to save this new reduced .stl
  file. As you can see in the comparison below, there is almost no
  perceptible difference in the quality of the 30.757 MB file compared
  with the final reduced version at 9.362 MB. I have simply increased the
  size of the triangles, minimising the quantity needed to create the
  same volume. Your regular 3D printer, or even a highly accurate SLS
  printer will never even know the difference in a change like this.
  It’s only if you really go crazy with the file reduction that you
  might start to notice them in your final print (and in fact many of
  the low-poly models which are popular on Pinshape can be produced
  using this technique – start with a detailed .stl of the object you
  want, and then just keep reducing the number of triangles!).

Blender
From Reducing Size of STL file to upload to shapeways, this post (#8) states:

Another option is to import the model into Blender, then use the Remesh or Decimate modifiers. Blender can be tough to get into initially but there are plenty of introduction tutorials on YouTube to help.

Blender does offer a Command Line Interface (CLI), see Command Line Arguments:
Usage: blender [args …] [file] [args …]

However, there doesn't appear to be an option for Remesh or Decimate. Although take a look at Is it possible to decimate or remesh via the CLI?:

You can specify a Python script to run, see the Python Options section of the documentation you linked. In this script, you can import the model, add the modifiers, apply them and export the result.

Related - Is it possible to automatically simplify geometry in blender without losing object shape?, which has this comment:

Is there a way to execute this modifier from command line and export the result?

which then leads to Can modifiers be computed and applied from the command line?

You'd have to use bpy.ops.object.modifier_apply, e.g.
import bpy

for obj in bpy.context.scene.objects:
    bpy.context.scene.objects.active = obj
    count = 1
    length = len(obj.modifiers)
    while obj.modifiers:
        name = obj.modifiers[0].name
        print("%s: Applying %s (%d/%d)" % (obj, name, count, length))
        bpy.ops.object.modifier_apply(modifier=name)
        count += 1
print("All done.")

For info on how to to run the above, see here.

Meshlab
Seeing as you are already using Meshlab, it might be worth reading Executing meshlab from commandline reduce faces of a mesh iteratively (awesomebytes/reduce_faces.py)
#!/usr/bin/env python

import sys
import os
import subprocess

# Script taken from doing the needed operation
# (Filters > Remeshing, Simplification and Reconstruction >
# Quadric Edge Collapse Decimation, with parameters:
# 0.9 percentage reduction (10%), 0.3 Quality threshold (70%)
# Target number of faces is ignored with those parameters
# conserving face normals, planar simplification and
# post-simplimfication cleaning)
# And going to Filter > Show current filter script
filter_script_mlx = """<!DOCTYPE FilterScript>
<FilterScript>
 <filter name="Quadric Edge Collapse Decimation">
  <Param type="RichInt" value="1448" name="TargetFaceNum"/>
  <Param type="RichFloat" value="0.9" name="TargetPerc"/>
  <Param type="RichFloat" value="0.3" name="QualityThr"/>
  <Param type="RichBool" value="false" name="PreserveBoundary"/>
  <Param type="RichFloat" value="1" name="BoundaryWeight"/>
  <Param type="RichBool" value="true" name="PreserveNormal"/>
  <Param type="RichBool" value="false" name="PreserveTopology"/>
  <Param type="RichBool" value="false" name="OptimalPlacement"/>
  <Param type="RichBool" value="true" name="PlanarQuadric"/>
  <Param type="RichBool" value="false" name="QualityWeight"/>
  <Param type="RichBool" value="true" name="AutoClean"/>
  <Param type="RichBool" value="false" name="Selected"/>
 </filter>
</FilterScript>
"""

def create_tmp_filter_file(filename='filter_file_tmp.mlx'):
    with open('/tmp/' + filename, 'w') as f:
        f.write(filter_script_mlx)
    return '/tmp/' + filename

def reduce_faces(in_file, out_file,
                 filter_script_path=create_tmp_filter_file()):
    # Add input mesh
    command = "meshlabserver -i " + in_file
    # Add the filter script
    command += " -s " + filter_script_path
    # Add the output filename and output flags
    command += " -o " + out_file + " -om vn fn"
    # Execute command
    print "Going to execute: " + command
    output = subprocess.check_output(command, shell=True)
    last_line = output.splitlines()[-1]
    print
    print "Done:"
    print in_file + " > " + out_file + ": " + last_line

if __name__ == '__main__':
    if len(sys.argv) < 3:
        print "Usage:"
        print sys.argv[0] + " /path/to/input_mesh num_iterations"
        print "For example, reduce 10 times:"
        print sys.argv[0] + " /home/myuser/mymesh.dae 10"
        exit(0)

    in_mesh = sys.argv[1]
    filename = in_mesh.split('/')[-1]
    num_iterations = int(sys.argv[2])

    folder_name = filename.replace('.', '_')
    tmp_folder_name = '/tmp/' + folder_name + '_meshes/'

    print "Input mesh: " + in_mesh + " (filename: " + filename + ")"
    print "Num iterations: " + str(num_iterations)
    print "Output folder: " + tmp_folder_name
    try:
        os.mkdir(tmp_folder_name)
    except OSError as e:
        print >> sys.stderr, "Exception creating folder for meshes: " + str(e)
        exit(0)
    for it in range(1, num_iterations):
        if it == 1:
            out_mesh = tmp_folder_name + folder_name + "_it" + str(it) + ".dae"
            reduce_faces(in_mesh, out_mesh)
        else:
            out_mesh = tmp_folder_name + folder_name + "_it" + str(it) + ".dae"
            reduce_faces(last_out_mesh, out_mesh)
        last_out_mesh = out_mesh

    print
print "Done reducing, find the files at: " + tmp_folder_name

Also

here are some updates for python 3.6.2: https://gist.github.com/tylerlindell/7435ca2261e7c404ccc1241f18e483aa

That's useful thanks! I'll just add that I've subsequently discovered that Meshlab has a meshlab-server CLI tool installed with the GUI tool. I haven't tested it yet, but in theory it should be as simple as figuring out the commandline syntax/command to invoke something like quadratic decimation etc.

Ah, well done @JoeHealey , that is excellent. Maybe you could post an answer, once you have figured it out? It would probably help others with the same issue. I would be interested in such a solution myself.

I certainly will do. I've had to put the printing on the back burner for the moment while I finish writing my thesis but I intend to return to it when I have some more free time :)

I'm facing the same problem 6 years later, Meshlab is running out of memory during Quadratic Edge Collapse Decimation.
There's another command line tool written in Go [1], which simplifies meshes in STL files.
The instructions that follow are for Linux (Debian).
First, make sure Go is installed on your system. Then install simplify with:
go install  github.com/fogleman/simplify/cmd/simplify@latest

This will install to ~/go/bin/simplify. Now simplify your mesh with:
# Reduce mesh to 10% of original size.
~/go/bin/simplify -f 0.1 input.stl output.stl

If you need to convert your 3D model to STL first, take a look at openctm-tools [2].
# Install OpenCTM tools.
sudo apt install openctm-tools

# Convert PLY to STL.
ctmconv intput.ply output.stl

[1] https://github.com/fogleman/simplify
[2] https://openctm.sourceforge.net/

Thanks for digging this up and posting a more recent solution. Much appreciated! Welcome to 3DPrinting.SE!

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

sort: votes


text:
Tevo Tarantula home offset
Following Beny's advice, I've just setup JimBrown-MarlinTarantula firmware.
However, my X0 & Y0 points are off the bed.
When trying to center my prints & afterwards sending G1 X100 Y140 to the printer, I am still off center by the margins of the sizes my X0 & Y0 points are divided by 2.
What should I do?

I´m trying to understand, Your printer has a bed for printing of 200 x 280? how far are located the XY end stops from the Bed edge?

Hi, have you resolved your problem at all? If so, would you like to post an answer? If not, could you update your question, with more information?

Have you found and fixed the problem? If so, has the answer below led you to the solution? Please vote to accept the answer so this question is not bumped up once in a while and can be removed from the unanswered question list. You may even add your own solution and accept that after 48 hours! If you have not been able to address the problem please update your question.

The last sentence is a little confusing - is there a comma or a full stop missing? Should it read "...I am still off center. By the margins of the sizes my X0 & Y0 points are divided by 2."? Where exactly is the head coming to rest? You say X&Y are divided by two, does that mean the head is halfway between the center and the corner? A photo or illustration might help.

By adjusting/calibration of the center of the bed you will automatically find the correct offset values.
This is explained in detail in this answer to the question How to center my prints on the build platform?.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Best 32 bit electronics for delta?
I'm looking to update my Delta printer's electronics from 8-bit to 32-bit.
So I checked Marlin and found out that they working on a project they call it Re-ARM and as far as I can tell they will support few chip-sets - I can't remember which one, so until when that happens I need to use something else but what?
I need it to be open source but the Smoothieboard (original one) is too expensive. I saw MKS SBASE but they are closed-source. There is also the MKS GEN version of it but again it uses an ATmega2560. Is there solution for now for my problem until 32-bit Marlin reaches test phase ?

I think this question is too subjective. Please do not ask questions that are primarily opinion-based.

@TomvanderZanden Looking past the possibility of multiple, opinion-based answers, the scope for which the user is asking for is looking any solution. So, multiple (even opinion-based) answers are acceptable for the user in this situation.

I believe MKS SBASE is open source as it runs smoothie board firmware, or at least it can. I am running one on a delta and it works well for my purposes. But you can get similar results with the 8bit AVR marlin boards.

@hilo90mhz What you saying is that MKS SBASE can run genuine smoothie firmware right ?

I believe so, but I would research it more as I could be mistaken and it is some modified version of the smoothie firmware, it has been a little time since mine was setup.

Hi, have you resolved your problem at all? If so, would you like to post an answer? If not, could you update your question, with more information?

Note that I am not stating this as the best 32 bit solution, as that is too subjective. Although you might want to read Recommendations for a good 32 bit microprocessor to run Marlin, which I cover in On which board can 32 bit Marlin run?

So, to clarify, yes, while the MKS-BASE is based on the 8 bit ATmega2560, the MKS-SBASE is powered by 32 bit ARM, 100M Cortex-MS MCU-LPC1768.
Anyway, SmoothieWare can indeed run on MKS-SBASE. There is an extensive guide on Instructables - Configuring MKS SBASE V1.X 32-bit controller basics and into to SmoothieWare.
You first need the drivers (for Windows). Plug in the MKS-SBASE board and then install the driver.

Connecting USB
Plug in USB to the board and look at the LEDs at the upper left
  corner.  Immediately the D7 led lights up. After a bit D1 also
  starts lightning while D2 and D3 blinks rapidly.
Open device manager and update drivers for the new Smoothie/Serial USB
  device with the signed drivers you just downloaded from Github located
  in the easy to find folder:
  \MKS-SBASE\MKS-SBASE\Driver\smoothieware-windows-signeddriver-v1.0

Then to install the firmware:

Installing firmware

Firmware from MKS are just and old copy of Smoothieware, so we always just want to use the newest version from Smoothieware.

In other words: always use firmware from Smoothieware.
If you can't find config.txt file from original Smoothieware, just use the one from MKS.

Download official firmware from Smoothieware's firmware page which is a subpage on their own Github page (you might want to
  download their full Github repository (folder) in order to find their
  config.txt file)

Start by using the Stable version. When everything is working fine, you can use the Nightly version instead. It is the newest
  version, but not fully tested yet, and considered as beta/test.

Insert the SD Card into the MKS Sbase board and plug in the USB Cable. Your SD Card is now going to show in your file-Explorer.

If not, you need to make sure you have the Drivers installed.

If you can't find the config.txt file from Smoothieware, just locate the config.txt in \MKS
  Sbase\MKS-SBASE-master\MKSSBase-firmware and copy it to your SD Card.

Smoothieware suggest disabling auto-Mount on the SD when connecting to USB. Especially when using a Mac, as OSX tends to do
  funky stuff at strange times.
I have changed nothing on my Win10. And nothing bad has happened the past year.

The D7 lights up, shortly after D1 follows. D2, D3, D4 blinks and then D4 turns steady while D2 and D3 continues blinking.

At this point, the firmware.bin had changed to firmware.cur file on the SD card

After successful updated, the file name will turn into firmware.cur.

Changing or Updating firmware
Just delete the firmware.cur file from your SD, or rename to
  firmware.cur.old or similar, and copy on the new firmware.bin file
  to your SD. Powercycle your printer (also unplug USB) and you can see
  your new firmware.cur file on your SD card.
Note: After making any changes to your config.txt file in the future, you need to power-cycle your controller, meaning disconnect
  both power (if in use) and USB. You can send a reset command, but only
  through true terminal use and not through Printrun/Pronterface or
  similar.

The guide, as stated above is extremely detailed, and goes on to explain all of the other aspects. The contents are as follows:

Table Of Contents:

Connect and install

Connecting USB
Installing firmware

Configuring Smoothieware compared to Marlin
Obvious difference from Marlin

Less obvious differneces
Firmware and Config file(s)
Configuring firmware
Comments

Firmware Step 1: Default feed rate

1/32 Multistepping
Connecting Motors
External Motor Controllers

Firmware Step 2: Cartesian axis speed limits, pins and current

Pins
Current

Firmware Step 3: LCD, SD and Extruder

LCD and SD
Extruder Setup
Delta driver current

Firmware Step 4: Hotend temperature control configuration

Thermistor Type
PID Tuning
Hotend Thermistor - Physical Layout
Hotend Heater Pins - Physical Layout

Firmware Step 5: Heated bed temperature control configuration

Thermistor Type
Temperature Control Bed BANG-BANG
Heated bed thermistor - Physical Layout
Heated bed heater pins - Physical Layout

Firmware Step 6: Configuring Endstops

Homing direction
Disable unused endstops
Define axes size
Reversing endstop output
Fast and slow homing rates

Firmware step 7: Network Settings
Step 8: What's next?

More advanced setup?
Using Switches

As there is way to much to cover here, please visit the Instructables page for the complete guide, in order to complete the configuration.


text:
On which board can 32 bit Marlin run?
Does anyone know on which board that can be bought today is possible to run current Marlin x32 ?

Have a look at the platformio.ini file - it's got the list of compatible boards/processors

@ZacFaragher Make an answer?

There is none at this time.  you can use repetier or some other firmware.  there is a marlin for due but the code base is a mess.

Tnx @EricKelly probably I will get Duet WiFi

Hi, is this a duplicate of Best 32 bit electronics for delta?

Hi, have you resolved your problem at all? If so, would you like to post an answer? If not, could you update your question, with more information?

The  platformio.ini file, given in Zac's comment, does not seem to list all of the boards supported.
However, The Marlin 2.0 32-bit thread appears to have a table that is much more complete (at the time of writing):
Board                           MCU         State            To-Do
RAMPS, etc.                  Arduino AVR    good
Due, RAMPS FD (v2.A!), etc.  SAM3X8E        good
Archim 1.0                   SAM3X8E        ❓unknown    Only US$170!
Archim 2.0                   SAM3X8E        beta       needs confirmation
Re-ARM                       LPC1768        beta       NEOPIXEL_LED,M100,ENDSTOP_INTERRUPTS,Tones,etc.
MKS-SBASE                    LPC1768        beta       NEOPIXEL_LED,M100,Tones, etc.
Smoothieboard                LPC1769        beta       NEOPIXEL_LED,M100,Tones, etc.
Azteeg X5 GT                 LPC1769        beta       NEOPIXEL_LED,M100,Tones, etc.
Cohesion3D Remix             LPC1769        beta       NEOPIXEL_LED,M100,Tones, etc.
Selena Compact               LPC1768        beta       NEOPIXEL_LED,M100,Tones, etc.
Malyan M200                 STM32F103C8     beta       EMERGENCY_PARSER,NEOPIXEL_LED, etc.
Borg                        STM32F765ZGT6   ⚠beta       EMERGENCY_PARSER,NEOPIXEL_LED, etc.
Chitu3D V3.9                STM32F103ZET6   alpha      EMERGENCY_PARSER,NEOPIXEL_LED, LCD, SDCard, MAX6675, etc.
Teensy 3.5                  MK64FX          alpha      (need shields)
Teensy 3.6                  MK66FX          alpha      (need shields)
STEVAL-3DP001V1             STM32F401VE     alpha      (need boards)

From [Question] Most promising 32 Bit Platform for Marlin 2.x

The reference platform IS Re-Arm with a RAMPS shield. You can find instructions for both obtaining it and getting setup with it at #7076

It appears the you have to use the bugfix branch:

Right now, there are two branches. Bugfix-v1.1.x and Bugfix-v2.0.0. They are almost identical from a feature set perspective. But Bugfix-v2.0.0 is modified to have a hierarchical file layout. That was needed to clean up the code and to support 32-bit.
The AVR code is fully debugged and working in both branches. The 32-bit code only exists (and works) in the Bugfix-v2.0.0 branch. And while the code does work... And some people are using it to print, it isn't entirely painless to get to that point.

You may also want to read Recommendations for a good 32 bit microprocessor to run Marlin. To list a few examples:

Atmel ATSAM3x8e on the Due board
Anyhow, there are a lot of 32bit Controller. Take a look at mbed.org for example.
You can use the arm-none-eabi-xxx for STM32, LPC, also the Arduino Due use it
Duet board (now called DuetWifi) is available for pre-order. It has a 120MHz Cortex M4 with hardware FPU
AZSMZ ARM 32bit controller board
RedBear: https://redbearlab.github.io/arduino/package_redbear_index.json

RedBear Duo (Cortex-M3, WiFi + BLE)
RedBear discussion forum

Konekt Dash/DashPro (Official): http://downloads.konekt.io/arduino/package_konekt_index.json

Cortex M4-based global cellular dev kits, support for all board variants, support for USB and over-the-air programming straight from within Arduino IDE

Another link that might be useful is Unofficial list of 3rd party boards support urls, although not all of these are 32 bit.


text:
Alunar m508 Firmware
I have a Alunar M508 machine that I am trying to get new firmware on. The firmware that was loaded on the machine wasn't very good. The x axis was mirrored and the home point was way off. I was looking into Marlin to put on the machine, but don't have any experience on what to edit in the code to make it work for this machine.
Does anyone have any experience with this machine? Uploading new firmware that works or editing the code to make it work for this machine. I appreciate any help!
Here is a link to the firmware I am currently using. I'm on MacOS Sierra 10.12.5 using the 1.6.8 Arduino IDE.

I removed the URL shorteners from your answer, and made the links inline. That said, I don't really understand what your question is here. You're basically saying "please help me get my printer working, here is my firmware, please fix it". That doesn't make a good StackExchange question. What specifically do you have trouble with? Could you try to distill a single, specific question (for instance: "How do I set up the directions of the axes in Marlin correctly?" or "How do I adjust the home point in Marlin?").

@DonniePlumly Correct me if I'm wrong, but you are looking for help on how to install firmware (Marlin) onto your machine?

@tbm0115 I know how to install the firmware on to the machine. My question was what I needed to edit in the Marlin Firmware to get the machine running. I went into the config file and edited the bed size and some other things and do have it running, but the print quality is still bad.

The answers below did not lead me to anything. I beat my head until I got something that worked. Here is a link to a Github repo. https://github.com/dplumly/Alunar_M508_Firmware

The Alunar firmware you linked is a fork from the main Marlin firmware. If the bed Y direction is reversed, usually the stepper is incorrectly placed (mirrored) this is seen frequently for the Anet A8 printer which is very similar to your printer. In your case the X direction is wrong, this is usually related to the wiring of the stepper, reversing the connector by 180 degrees should do the trick (hardware solution). As a software solution, changing direction is not difficult in Marlin based firmware; you just want to invert the stepper direction; the following section in the configuration.h file does that for you:
// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR true

Just change INVERT_X_DIR to true.
If your home position is still not working for you, you should look into this section of the same configuration file:
// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS -33
#define Y_MIN_POS -10
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 240

Change the MIN_POS positions as such that it starts at the corner of the bed. A more in depth bed center calibration tutorial can be found here.

P.S. Please do not print anti-wobble caps for the Z-axis rods (as mentioned in another answer), these are not reducing the wobble, in fact they cause problems. What happens if you constrain the top is that you get a statically indeterminate construction; forces and displacements are not predictable! Better solutions to eliminate Z-wobble are lifting devices that decouple X/Y movement from the threaded rod (eccentricity of the threaded rod) from the Z movement. Also fixate the threaded rod above the springy stepper-to-threaded-rod coupler.

disclaimer: I am the maintainer of the firmware that you linked.

The firmware will not improve your print quality. well, it may to some extent, but for the most part, it wont.
There is fine tuning involved that may be set for MY printer, but the values may need to be changed for you. Not to mention the physical tuning that I have done with my printer. Software is not the place to initially look for print quality improvements.
Some examples:
I printed anti-wobble caps for the Z-axis rods. Which improved the print drastically for me. As the print got higher, the quality got worse.
I printed Z-stop improvements, so I could fine tune the Z-stop.
I printed X & Y belt tensioners. Loose belts cause skipped steps which causes poor quality prints.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Printing threads
I am re-writing this question because, well, it needs to be updated.
I have the Anet A6, but in a general sense of things, what kind of threads can I produce before it no longer works?

This depends on the nozzle diameter, the layer thickness, and the material.
I've made very good M8 and acceptable M6 threads (nut and bolt) at 0.2mm layers with a 0.5mm nozzle, out of ABS, and also out of PETG.

I also printed some threads sucessfully using 0.2 layer-height on an Ultimaker2+ with ABS. You maybe need to fiddle around with the spacing between the "nut" and "bolt", I think I used 0.3mm to get a good fit. I used Fusion360 to easily create the threads, you can also round out the thread so that it will print better (less overhang). This can all be easily done in Fusion360. Also I did not need to use any supports for this.

Note, we don't use support material for threads either.

I have found that I get slightly different results with different printers and different plastics and print temperatures. For doing parts like nuts and bolts you will probably have to print several prototype parts once you get your printer to get the setting and tolerances right, once you get a print. But just decreasing the layer height and getting the nozzle temp and cooling right should let you get some working parts.

 You can get the sloped surfaces the still look ok but are not dimensional accurate with to high an angle. I find if is easiest to print and then test and then adjust the tolerances on the design.

So I just have to play with the settings, makes sense. I also like how Davo said he got a good M8. Witch is great. Will just have to wait till have I have one. Thanks for the reply

I don't have a printer like yours but it should not matter.
Once you follow the calibration steps listed at https://github.com/AndrewEllis93/Print-Tuning-Guide/blob/main/articles/extrusion_multiplier.md and you set the slicer to 0.1 mm, you should be able to print working threads at the first attempt.
I printed in PLA a thread (both screw and nut) with a 1.5 mm pitch and it worked immediately (it was a bit hard to turn, it got better after using it few times).
A G 1/2 thread (pipe thread) in ASA (only nut) also worked immediately.
I had more issues with deep threads: M30x1.5 worked immediately, but I couldn't get M30x3 mm to work. Basically printing threads with pitch from 0.8 to 1.5 mm should be fine if the axis is vertical.
0.1 mm layer height is important to keep overhangs small, see video

The nozzle is not so important, you can use 0.4-0.6 without issues. I used 0.4 mm.

One thing to keep in mind is that there's an unstated but implied thread profile which determines the slope (overhang angle) of the threads independent of pitch. For standard metric threads, this angle (60°) is just on the boundary of what can be printed accurately with typical FDM processes.


text:
Layer height issues creating partial top layer
Cura is slicing my object (a gear with text) with a partial top layer, and I believe it has to do with layer height and rounding issues. I have been able to solve this at specific heights 10-14mm using a layer height of 0.25 mm, however other heights will cause this issue to arise again. There must be a solution to this that doesn't require the user to constantly be adjusting layer height and object height in order to resolve what I perceive to be a rounding issue.
Here is the model:
https://filebin.ca/3f2g2s0dklzR/hackEly_v1.0_joined_text_2.stl
Here are my settings:

Here is the model at a height of 10 mm:
Note the diagonal line, this is the line between two layers.

Here is the model at a height of 13 mm:
Note the diagonal line again, and how it is farther to the right than the 10mm height view.

I don't believe that this is not a non-manifold issue. I have also tested this using a gear without text.
Like I mentioned, I can get rid of that layer division at certain layer heights and object heights (e.g. 0.25mm layer height), but I would like to find out how to get rid of this issue regardless of object/layer height. Thank you for your help.

Your model isn't perfect. I took it into Windows 10 3D Builder for simplicity. I kept clicking the "Mirror" function and noticed as it basically flipped there is some slight movement. I measured some points from bottom to top and noticed some differences.
Try to take your model into some software to fix/flatten it. Or recreate it making sure its perfectly flat on both sides. It is definitely not your Cura software.

Wonderful. I did not anticipate that the Z axes on the horizontal sets of vertices would have become uneven.  Thank you so much for pointing this out.

Even though you've selected an answer, here's another viewpoint. Ignoring the brim that I've added by default via my slicer, you can see the first few layers are not complete. This indicates a model that's a fraction of a degree off-plane.

Any number of methods can be used to correct this. Meshmixer has a great "align" function in the edit menu which will drop it on the bed. My slicer, S3D will work in that respect with "Place surface on bed" or some such terms.
The image below represents the result of using Align in Meshmixer, Inspector (repair all) and export. The STL file imported to S3D presented exactly the same image on the first layer as in the image above. When I used "Place surface on bed and selected the horizontal cross-member as the reference surface, the first layer result is this:

The slicer completed the imaging with this result, clearly with no diagonal artifacts:

This still wouldn't correct the object not being perfectly shaped. The best it would do is orient the object to have the most surface area touching the bed. But that slight rotation wouldn't make the last top layer perfectly horizontal for that finishing layer.

As I've often seen in models available on the 'net, the model contains parallel faces, but is positioned in error. This appears to be the case in the OP's model. My recent edit to the post shows that when the base of the model is flat to the build plane, the top aligns itself.

I brought the model into RH and performed the layflat option. It applied 0.073027 rotation on X, 0.122294 rotation on Y, and -43.986123 rotation on Z. I sliced it at 0.2mm and 0.3mm and the first layer looks clean flat. The last layer before the letters was clean flat as well, but in both layer height slices the lettering was one layer off. I really don't think the OP would mind half of the lettering to be one layer higher since it won't be noticeable. While this does fix his initial issue, providing a flat cog finishing layer, the measurements of the model are still off.


text:
How to modify G-code or a better place to get it
I have built a 3D printer from salvaged/purchased parts. I am using an Arduino Uno and three easy driver stepper drivers with 3 CD-ROMs drives and a PC power unit. I ordered a 3D pen and have it mounted with a transistor to switch it on/off. Everything works but when I try to run code that I got from makercam.com it seems like it wants to fill in the shape rather than build up.
I followed this tutorial YouTube - How To Make A Cheap 3D Printer and after modifying the G-code I am unable to get any successful prints.

The makercam.com domain appears not to exist any longer

Download an stl file from Thingiverse.com
Put your .stl file in a slicer program like cura
It will output gcode for 3d objects rather than 2d.

I would typically shy away from downloading gcode and printing it directly.  Always slice it yourself since, inevitably, every printer is different.  What happens if the gcode is setup for ABS (higher temps) and you are printing with PLA?  If it's setup for a build platform larger than yours and you just hit endstops?
Definitely go with Aaron's idea, download a model (Thingiverse is great, but there are SO many sites where you can get files), configure a slicer for your print settings (I prefer slic3r to Cura, but both are great), slice it and print away.

This is pretty much what Aaron said. But after slicing there is no way to just print because my printer is based from grbl which is a milling software and i dont have a proper extruder. So the best way i have found is to open the sliced file in notepad and make adjustments to feedrates and layer heights manually.

If you're adjusting feedrates, then you have an extruder.  If you have an extruder, any slicer can use whatever rates you give it.  If you can change it manually, you can have it set properly in slic3r or Cura or Simplify3D - unless we're not understanding one another.  Same with layer heights.  You can set your layer heights based on whatever Z-axis values you have on your steppers.  grbl just reads gcode, same as Marlin or any others.  I'm confused as to what the issue is here.

I can adjust on slic3r but i was more wanting to learn how to control my machine with gcode. G1 X5 Y5 E.5 F300 doesnt regster with grbl bc its a milling software. M3 and M5 turn the spindle on and off and thats what I'm using to activate the extruder on my 3d pen So basically i have to delete the E values and manually enter start and stop commands The variable resistor on the side of the 3d pen cant be easily adjusted while its moving. But I've got it all figured out now. I can open a txt editor and write a file that prints successfully and it has been a great learning exp. Buying anet A8 next

Hmmm, good stuff!


text:
What is the best free source for generating g-code
Ok so i have built a 3d printer from old cd rom drives. Before installing the 3d pen(extruder/hotend) i used www.makercam.com to export i file containing a star. With a marker attached the machone successfully drew a star. Now i have the 3d pen but using makercam i am not having any luck. Is there a better way to generate files for my new toy?

I would like to be able to generate my own files so it will have some functionality but something to test it with would be great

Are you looking for a way to generated the g-code or to create a model?

Using tinkercam you can export to.obj or .stl however the controllers i have installed take .nc files. Is there a way to convert or do i need a different controller?

The g code is generated by a program like slic3r, skeinforge or cura. These programs import a CAD model slilce it into layers and output the gcode required to print each layer.


text:
Printing Object in multiple parts
Is there any software/methods to automatically splice objects into multiple pieces sort of like a jig saw puzzle so that I can combine them together and bypass the build plate size limit?
As an example I have this 2D image that I want to print out but my printers size limit is roughly the size of the blue "squares." It's pretty tedious and time consuming to do this manually. Also, any tips on getting seamless lines or proper alignment when gluing these pieces together are appreciated.

AFAIK most of 3d apps have repeat (tiling) operation (also called pattern) so you can create one tile and repeat it in grid, and they also have boolean operation which helps to slice on object by another. please notice you gotta do it only for borders of your main obj. as all insied tiles are the same (full black). please write what kind of app you use so we could leade you precisely in this app. you can also do slicing in any 2d (yes - 2d) app. slice your bitmap into smaller parts and extrude them into 3d objs.

I've taken out the texture for simplicity but it'll be there. I've used Inkscape to create the bitmap but I'm creating my 3D model in Fusion 360 and printing in Repetier. To note in my picture is the top right of the car hood getting cut into a super tiny piece not falling into any of the blocks. I'd ideally use some method to make the parts all roughly the same size.

while on model: create > pattern or while on sketch: sketch > rectangular pattern. EDIT: for cutting object/skatch please take a look here https://www.youtube.com/watch?v=5o7-4lSjyQw

If you're really dealing with an output that many times the size of the build plate, I recommend trying to adjust the cut lines so there's a bunch of plain-solid-squares surrounded by chunks with shape to them.

From what I understand, you're trying to partition your object into smaller pieces with the hopes of putting them back together in a manner similar to a Jigsaw puzzle.
There are two options that I know of to do this, which requires using OpenSCAD:

The PuzzleCut library - This allows you to disassemble your object into a multiple pieces that can be assembled together in a jigsaw puzzle type manner
The PinCut library - This allows you to disassemble your objects into multiple pieces that than be reassembled using the pins and corresponding holes on the pieces.

You mentioned youre using Fusion 360; if so, you could just split your final body or component into separate bodies.  Then you could export each body separately.
Slic3r and Slic3r PE both have the Cut command, but unfortunately it only will cut on the XY plane.
If you are on Windows 10, 3D Builder has a good tool for splitting STL files.

Open your STL in 3D Builder
Use the Edit > Split command
Adjust the plane to where you want the object cut
Select Keep both and click ✓ Split
Note that you can't export individual objects; you must copy each object into a new 3D Builder window to save it separately.

Meshmixer is an excellent tool to learn overall but has a learning curve.

Sorry to put it that way, but does 3D printing the best "tool" for your case?
it seems you want to generate a huge flat file when a CnC would be the best to generate a clean and solid part.
Otherwise, as others suggets you are looking for a tooling tool.


text:
Which firmware to use on printer settings for DIY printer
I have a 3D printer that I built using CD-ROM drives. It's all set and ready to go but when I generate .stl or .obj files my G-code sender program cannot load it. I have found that Slic3r will export the .stl into G-code but it has the option of changing the G-code flavour, or firmware.
My machine is running from an Arduino Uno with Grbl v0.8.
So the question is, which firmware setting would be appropriate for my machine that would require the least amount of editing before I can print?

Unless you can find a slicer that explicitly supports grbl, you will need to check the G-code specification and see which common flavour is closest to what grbl supports. The RepRap Wiki includes grbl in it's compatibility chart, but it has question marks against a lot of entries for grbl.
The other alternative is to slice a very simple model and see what commands are issued by the slicer, and whether they are supported by grbl.
Note that there is a question as to whether grbl supports FDM printing technology, i.e. 3D printers that use filament. Most slicers are designed to work with FDM printers, and will expect to be controlling at least one extruder. If your printer does not have an extruder that is controlled via G-code, you may encounter real difficulties generating G-code for it using commonly-available slicers.
RepRap Wiki: G-code

I know that m3 starts the extruder and m5 stops it. Last night i spent alot of time calibrating things and it seems to be making the correct movements i just need to add extruder start/stops. The flavour i was trying to use was machinekit. I'll read that wiki and see what i can find.

Those commands are for subtractive manufacturing (i.e. CNC machines). Does your machine extrude filament, or is it a CNC machine?

It extudes filament. But following the tutorial i used to make it turning the spindle on activates pin 12 on the arduino. I have the extrude switch soldered to a transistor and restistor so that it activates extruder when spindle is turned on. I plan on making a script that will modify whole files for me after i figure out what need to be done. Right now its calibrated and appears to be drawing the pyramid i was going to test print but i am getting some errors like expected command letter and line overflow. Also unsupported statement.

I voted for this answer because it pointed me in the right direction however rep is too low

Slice your model... then edit the code in Notepad... where you will see that you will need to replace all E (extrude commands) with M3 for Extrude on and/or M5 for Extrude off.
You must look at the code and figure out where:

The code is telling the extruder to extrude;
Then it makes a bunch of XY moves; t
Then, where it tells the extruder to stop, you have to insert an M5 command.

I did this a year ago and got mine to work perfectly but it takes time to edit the code. Be patient and keep at it .

Yea i got it working a long time ago.. It is much easier to just manually edit with a text editor.


text:
How to rotate camera using mjpg-streamer-experimental?
I've successfully installed mjpg-streamer-experimental from jacksonliam/mjpg-streamer.
I just can't figure out how to set the parameter I need in order to rotate my camera 180 degrees (I have my webcam mounted upside down for a custom mount I made).
I'm using a Logitech C270. I've been searching online for hours for a solution to this issue and just can't find what I'm looking for. Doesn't help that I'm not very proficient when it comes to this stuff.

If I run the command suggested in GiF's answer:
mjpg_streamer -i 'input_uvc.so -rot 180'

I get the following error:
 libv4l2: error setting pixformat: Device or resource busy Unable to set format: 1196444237 res: 640x480 Init v4L2 failed !! exit fatal i: init_VideoIn failed

I seem to get that error when setting any parameters. I'm running Octoprint, if that makes any difference. There doesn't seem to be a rotate option in Octoprint.
Information just seems extremely sparse on this particular fork of mjpg-streamer. Searching for that error just gets me a bunch of people that have non-working webcams while mine works perfectly, I just need to rotate it 180 degrees.

I would really appreciate some help!

Edit: Having now installed Octopi myself, I have found that they made it easy to rotate the image right from the interface. If you open the "Settings" and look under "Webcam & Timelapse", there are settings for flipping the image horizontally or vertically and for rotating 90 degrees.

There are a few ways to rotate the image of which I am aware. You can do it via the input plugin, the client, or post-processing.
The "input_uvc" and "input_raspicam" plugins both have options to rotate the image. If you are using one of these plugins see the documentation at input_uvc or input_raspicam (it is worth noting that the input options may not be supported by all cameras). You should be able to run the command like the following to get a stream that is rotated 180 degrees:
mjpg_streamer -i 'input_uvc.so -rot 180'

I'm not sure how you are handling the stream, but it is possible that your client can perform the rotation. For example, if you are using VLC you can set the angle of rotation by doing something like this:

Open the “Tools” menu and select “Effects and Filters”
In the “Adjustments and Effects” window, on the “Video Effects” tab, select the “Transform” check box
Select a rotation from the dropdown menu and then click “Close”.

Finally, if you are saving the stream and are only concerned with rotating it afterwards, you can post-process it with a utility like ffmpeg. See this post as an example and look for "Rotate" in the accepted answer.
If your stream is being rendered via a browser you may be able to add some CSS3 formatting to the video element. For example, you could add an ID of videoElement to the stream and then add the following to your CSS:
 #videoElement {
    transform: rotateZ(180deg);
    -webkit-transform:rotateZ(180deg); /* Safari and Chrome */
    -moz-transform:rotateZ(180deg); /* Firefox */
}

With respect to Octoprint, it appears that Octoprint is an HTML interface, so you could probably edit the markup to use CSS3's transform rotateX. That would rotate the image at the client end (browser). BTW, googling for your error code did have some potentially useful information as well.

From the help for input plugin "raspicam", the following parameters can be passed to this plugin:
[-fps | --framerate]...: set video framerate, default 5 frame/sec
[-x | --width ]........: width of frame capture, default 640
[-y | --height]........: height of frame capture, default 480
[-quality].............: set JPEG quality 0-100, default 85
[-usestills]...........: uses stills mode instead of video mode
[-preview].............: Enable full screen preview
[-timestamp]...........: Get timestamp for each frame

-sh : Set image sharpness (-100 to 100)
-co : Set image contrast (-100 to 100)
-br : Set image brightness (0 to 100)
-sa : Set image saturation (-100 to 100)
-ISO : Set capture ISO
-vs : Turn on video stablisation
-ev : Set EV compensation
-ex : Set exposure mode (see raspistill notes)
-awb : Set AWB mode (see raspistill notes)
-ifx : Set image effect (see raspistill notes)
-cfx : Set colour effect (U:V)
-mm : Set metering mode (see raspistill notes)
-rot : Set image rotation (0-359)
-stats : Compute image stats for each picture (reduces noise for -usestills)
-drc : Dynamic range compensation level (see raspistill notes)
-hf : Set horizontal flip
-vf : Set vertical flip

The -rot parameter can rotate the image.


text:
How to express dwell time in G-code
I am writing some G-code for my DIY 3D printer. From what I understand, G4 is dwell and its expressed in milliseconds. So my extruder takes about 30 seconds to heat up. Do I just type
G04 30000

This question suffers from the XY problem. Mick's answer accurately addresses the titular question, while Larry's actually gives the best solution for your problem? Is there any reason you need to do the waiting based on a fixed period of time (e.g., because your extruder does not have closed-loop temperature feedback)?

You are correct about needing to specify the dwell value in milliseconds. However, the RepRap Wiki indicates that you need to use the Pn argument, and not just an unadorned number as the argument to the command. To adapt the Wiki's own example, you will need to use:
G4 P30000

This should cause the firmware to dwell (pause) for 30 seconds.
RepRap Wiki: G4: Dwell

Depending on your G-code flavor you may be able to use M109 (heat and wait) instead. If supported M109 will wait until the target temperature is achieved.


text:
What is G92 used for in G-code
On the reprap wiki it says using Znnn it sets a new axis position.  But then it says "No physical motion will occur". What would the line G92 E0 be used for?

The G92 command is used to set the start position (origin) of one of more axes (including the current extruder) to any arbitrary value. The command G92 E0 is often used to perform retraction and nozzle priming. For example, the following commands are often used in start-gcode sequences (prologues) to prime the current extruder by extruding a small amount of filament:
G92 E0     ; Reset the extruder's origin
G1 F200 E3 ; Extrude 3 millimetres of filament
G92 E0     ; Reset the extruder's origin

RepRap Wiki: G92: Set Position

But what does it mean to reset the extruders origin? What would happen if you did the “G1 F200 E3” without first resetting the extruders origin? G92 makes perfect sense for x, y, and z, but can’t wrap my head around it for the extruder.

@Michael Why, it is exactly the same. Maybe you should not read it as "reset", but as "set" instead. From the top of my head I don't know what is taken when you omitted the first G92 E0, I assume it will start at zero anyways. But, it sets the filament extrusion to a certain length to zero, after priming it makes perfect sense to set the length to zero. Slicers (some) set the length back to zero after completion of a print layer, this prevents very large values for the filament length.

Hi @Michael , thanks for your question, as I was thinking the same thing. However, as you're probably aware, questions (even good questions like yours) shouldn't be in comments. Could you post your question as a new question (referring back to Mick's answer - as it is the source of your query), and then Davo's answer below would make more sense there... if you see what I mean? :-)

@Greenonline my question would make no sense as its own question. It only makes sense in the context of this answer.

@Michael That is exactly why you should refer to this answer! The context can be found through the reference, this is not uncommon, this has happened more often. Sometimes answers spawn other questions.

To supplement the accepted answer, and answer a question in the answer's comments (which should not be there), consider the E value as another axis - the axis of the filament.
If you executed:
G92 E0     ; Reset the extruder's origin
G1 F200 E3 ; Extrude 3 millimetres of filament at a rate of 200 units per second

and then went on to printing, the first filament move would have to take you from E3 to whatever E value the next move specified.
If the next move assumed starting at E0, you'd already be 3 mm further along, and the first move would probably be a retract, so for example, if the next printing move was:
G1 Xnnn Ynnn E0.5 ; Extrude 0.5 millimetres of filament

then instead of extruding 0.5 mm, you would actually retract 2.5 mm, to get from 3.0 to 0.5. Just like moving in a negative direction on any other axis.

I think the comment refers to the first G92, not the second.

@0scar - Davo has made a good point about the question in comments under Mick's answer... Davo, I assume you mean the comment from Michael (who is not the OP)?. That question (in the comments) should really have been a new question, referring back to this question (I guess), to which Davo's answer would have been the answer to... if you follow me... Man, this is a bit of a muddle..! :-)

@Greenonline I can post that question as a stand-alone, and self-answer it, if you think that will improve the site.

Hi Davo. Yeah, that's an idea I guess... However, I have just left Michael a comment to see if he wants to post his comment as a new question though. Maybe we should wait to see if he wants to?

Yes, absolutely. :)

Thank you so much for this great explanation. I was wondering why my initial purtge of filament always results in a massive retraction and this is exactly why. I had my start script modifyed to achieve a nice filled nozzle at start


text:
Extruder motor not functioning after G29 command
On my Anet A8 3 printer, running Skynet. When I do not use the G29 command, Auto Bed Level, the printer won't print and just extrudes plastic in mid-air. But when I do use the G29 command it will home and start to print but no plastic will come out. The extruder motor and the connector both work. Does anyone know what the problem might be?
Here is the start G-code I use:
G28 X0 Y0
G28 Z0
G29
M190 S50 ;set bed temp (wait)
M109 S200 ;set head temp (wait)
; ------------------------------------
; Layer #0
; ------------------------------------
G21 ; mm
G90 ; abs
G92 E0 ; reset extr
M106 S0
;segType:Skirt
G0 F4800 E-1.0000
G0 F300 Z0.200
G0 X110.546 Y71.485 F9000
G0 F4800 E0.0000

Probably inside the code there is a wrong parameter or the secuence is not correct, you should post here some initial lines to start printing to verify.

Have you found and fixed the problem? You may even add your own solution and accept that after 48 hours! If you have not been able to address the problem please update your question. Thanks!


text:
Step motors vibrate, don't move at all (Prusa I3)
Recently, I changed my RAMPS 1.4 card (because there was a problem with the power output).So I bought this new one, and an Arduino Mega.I didn'T change the code (Marlin 1.3.3).I used the same stepsticks (a4988).I plugged my motors to the Ramps card. When I give them the command to turn they started to turn but didn't stop.Stepsticks got hot.After some time I tried it again and they just vibrated.The stepsticks got insanely hot after just 5-6 seconds.I used a different stepstick RAMPS card and Mega, they worked perfectly.But when I plugged the stepstick to the new card, the motors did te same thing again. What can be causing this and how can I fix it?
(I've measured the voltage input, it is 12V and stable)

i bet it's the issue of SS current. please read this post (in your case it's definitely too high current) https://3dprinting.stackexchange.com/questions/1480/how-do-you-make-sure-you-have-the-right-voltage-on-the-trimpots-on-an-a4988-step/1483#1483

Usually if they get too hot you have to adjust the amperage by turning the little potentiometer on the A4988 (turn left until you can move the motor by hand, turn right until you cant, add a little bit like 1/8 to 1/4 of a turn).
But this:

I used a different stepstick RAMPS card and Mega, they worked perfectly.

it is not completely clear, so:

the A4988 work on another board -> your new board is broken
another A4988 worked -> the A4988 is broken

HTH


text:
My Anet A8's filament isn't extruding properly
So after a lot of work I finally got my Anet A8 printing but then disaster struck. It has stopped working again but with a new problem. The first few strokes of printing are fine but then it goes really stringy and the lines are very very thin so the result is a very stringy mess with holes and gaps everywhere. I am also using PLA from RS and my G-code and some images are below:

G-code: https://www.mediafire.com/file/p4odlic1372q78z/xyzCalibration_cube.gcode

The most likely problem is that you have a jammed nozzle. To fix this heat the hot end up to about 140°C then insert some PLA filament push it through and then pull it out forcefully. That should solve your problem.

wait 240 degress or 140?

@VosemMedia 140

@VosemMedia First heat up to about 220 °C, insert filament, let it cool a bit and pull it out, see this answer. Filament heating up to 140 °C will not lead to melting the old filament to bond with the newly inserted!


text:
G04 dwell period control parameters
I have a 3D printer that I built and I'm having trouble with some g code. I have to stop and start the extrude motor when the z axis moves up to the next layer. When I do this the 3D pen I am using goes back a little bit to prevent dripping. When the motor starts again the filament is not at the tip yet and I am trying to add a dwell time before it starts moving again to give the filament time to come out. When I enter G04 P100 after each M3 command (the code I have to use to start my motor) it dwells way longer than 100ms and P10 seems to take around 10 seconds. On Wikipedia it states the control parameters for ms is P and the one for seconds is X however the reprap wiki states the proper control parameter for seconds is S. So my question is what is the correct parameter and how precise can I be with seconds i.e. .0000 how many zeros can I have after the decimal. I am trying to calibrate and get accurate prints so any help would be greatly appreciated. I am using grbl version .8 with and arduino uno. The software I am using is Grbl Controller 3.6.1

The problem you face is more likely to be in the firmware running inside the printer, rather than the control software.  I am most familiar with the RepRap firmware, which handles retraction and restart without G-code impact (other than perhaps some start-up configuration).  Trying to address this in the G-code seems difficult, and requires knowledge that the printer itself has access to.  My counter-question: what firmware are you running in your printer?

I have an arduino uno loaded with grbl i think its version .8 but its technically a milling software. Its made from dvd rom drives and a 3d pen. I'm buying an anet a8 next

You may do better with one of the Arduino firmwares for 3D printing.  Although there are many things in common, managing the extruders is unique to extrusion 3D printing.

Basically you are fighting against oozing. So a retraction, or as you call it:

the 3D pen I am using goes back a little bit to prevent dripping

needs to be undone. You can do this by extruding an amount to get the filament back at the tip. Command G1 Exx.xx where xx.xx is a number where the retraction is is added on top of the existing value. Furthermore, most slicing software have parameters available to influence the extrusion/retraction. E.g. "coasting" is an option to prematurely stop extruding and make use of the pressure buildup in the nozzle (this prevents blobs where perimeter end meets the perimeter begin), "extra length on restart" (replenish the nozzle chamber with extra filament) or "Retract on layer change". In principle all these actions are set and handled by the slicer you use for making a print file. There is no need for a "dwell time", in fact dwell is just a pauze. It seems a bit strange that you want to control the filament flow yourself, while all this is done for you by the slicer software.


text:
Slicing adds holes/cracks to my object
I recently got started in 3D printing but here's an issue I can't seem to find a solution for (I don't know what exactly to look for).
Here's what I did:

I used InkScape to convert an emoji in to a svg and imported it in to Blender
Used the Solidify modifier to make the curve a solid and converted it in to a mesh
Extruded the mesh a bit, fixed a few non-manifold vertices and erroneous faces and saved the whole shebang as STL
Imported the STL in to my printers software:

After slicing it looks like this:

Is the software making a mistake during the slicing? Or is my mesh screwed up?
I have a FlashForge Finder and using the software that came with it: FlashPrint.
Edit: I uploaded everything to Thingiverse for those who are interested.

The shape of the original is simple enough that you should not have had non-manifold problems. Did you use the 3D printer features of Blender? If it's not a problem, consider to add a link to the STL file. I would load it into Meshmixer to run Inspector on it, also view it in wireframe to locate anomalies. The slicer image shows insufficient information to determine the problem at this stage. An additional image of the first layer, perhaps also of the 2nd and 3rd layer via slicer may be helpful.

here is just a addenum to Tom van der Zanden's answer
this is (an example of) what you may design - nice object with virtual outline, and virtual fill
so this is what you see (and what you potentially expect)

but here is what you get (and probably not really expect)

red parts are the areas which are not covered by fill because nozzle cannot reach there
solution is

to redesign your object in smart way or
to use smaller nozzle or
to use smarter app (like Slic3r)

and of course you can use all 3 options together to get best results ;)
EDIT
here is simple explanation why smarter app could do the thing

and here goes the difference

green parts are new covered areas
not much but somthing extra

Thank you for the clarification, very helpful! Now I just need to figure out how to design or modify my objects to be more compatible. :) Thanks!

This is likely not a problem with your mesh. It's a problem in the slicer software.
Because your 3D printer prints with a (for example) 0.4mm nozzle, it lays down lines of plastic that are around (for example) 0.5mm wide. The slicer has to create a pattern, consisting of 0.5mm wide lines, that fills in your object. The gaps shown in your object are likely smaller than this, and thus can't be filled.
I am not familiar with the flashforge software, but different slicers have different ways of dealing with this. Some offer a "gap fill" option that uses tricks to be able to fill in these very tiny gaps by rapidly moving the extruder back and forth over the gap. However, even then, it is sometimes unavoidable that tiny gaps remain. Some gaps are just too small to fill with the comparatively large nozzle.


text:
Do I need to manually enter in gcode to turn off the bed and nozzle?
I got into 3D printing back when it was very much an art and not user friendly, and I have not been keeping up with it very much.  My Slic3r profile required me to manually put in the GCODE to turn off the nozzle and bed.  I'm experimenting with Cura and I can't seem to find a place to enter in GCODE.  The program is way more polished than I am used to, so it's possible that it's an automatically enabled feature.
Does Cura automatically turn off the bed and nozzle after a print is complete, or do I need to manually enter the GCODE somewhere?

Using Cura 3.0.3 to create the GCODE and OctoPi/OctoPrint 1.2.7 to print: By default the printer turned off the nozzle and bed, and also homed the X and Y axises.
You can set start and end GCODE in the preferences for the machine, like so:


text:
A free simulation program
With some of the items I am designing I would love to put them through a simulation. Like crushing, for example. I want to know how well my object can handle any situation I put it through so I can make changes before I print out the object, only to find out there was a weak spot.
I have been trying to learn ParaView but it is a little complicated off the bat, I would like something easy to use.
If anybody knows of a program that would be fantastic!

Fusion 360 will do finite element analysis (simulation), although I haven't used it. Whether it will perform the type of analysis that you are looking for, I do not know. Check Autodesk's tutorials.
One problem that you will encounter is that items printed using FDM technology are highly anisotropic. In other words, they have a grain, and are stronger/weaker in some directions than in others. I do not think that Fusion 360 can take account of that in its analysis.
Autodesk: Fusion 360

I couldn't find it while I was on the site, but, how much is fusion 360?

It is free for educators, students, enthusiasts and start-ups. Just install the free trial and register as an enthusiast once the free-trial period expires.

I am liking the idea, but will I be limited of features? And I will stop asking questions, thanks for the help!

No. It's a fully-working version. Autodesk have said that they will keep it free for enthusiasts "for the foreseeable future". The only drawback that I can see is that your work is stored in the cloud. I would much prefer the option to only store my files on my hard drive, but that is not a option.

Ask as many questions as you like, but not as comments. New questions are preferred,

The cloud? I am no expert but I would think you can download it from the cloud then. That is all I needed to know about think program. I will give it a try. I am looking forward to seeing what this program has to offer me. Thank you!


text:
Where or who could I hire to assemble a 3d printer that came in a kit for me?
I planning on getting a resin 3d printer kit, and I don't want to take any risks building it myself.  Where, or who, could I hire a professional capable of constructing a 3D printer kit? They don't necessarily have to specialize in constructing 3d printers, I just need someone qualified with the mechanical and technical skills for the job.

Why not buy an assembled printer?

What is your locale and budget?  Which kit are you pursuing?

If you are not able to assemble a simple kit such as a 3d printer, you probably are not going to be able to calibrate the printer, maintain it over time, or even handle it safely.  In all seriousness I suggest you spend some time building simpler things first.

If you have a makerspace in your area, you'll likely find individuals with reasonable mechanical skills suitable for simple kit assembly. Most kits are engineered to be reasonable assembly, not rocket surgery. Makers are by nature capable of construction, often from raw materials, and kits are typically not particularly challenging comparatively speaking.
Resin 3D printers are also simple in construction, as the component count is less than that of an FDM printer, or quite close in count. SLA designs involve laser modules, mirrors and alignment, while DLP designs involve light projection and light masking. Both designs involve vats and movement mechanics.
Even if you do not have a makerspace local to you, consider to contact one that might be nearer than farther away, as those spaces may have leads for you to locate a suitable victim/candidate.
Our local library makerspace often farms out contacts to me or other makers with the necessary skills to meet a patron's requirements.

I agree that a local makerspace is a good option, but I will say this...
Buying a kit and building it yourself, even with some frustration and learning curves, will help immensely with your ability to calibrate and troubleshoot issues later.  If someone else builds it for you, chances are if something goes wrong, you'll need to seek out that person for help fixing things.
I just recently bought my first 3D printer (FDM) as a kit.  Building it was a slight learning curve - I'm a technophile and have built things with Arduino before, but never a printer and the specifics that come along with it.  Getting it to actually print reliably took me about two weeks.  However, I'm MUCH more confident now to take care of issues as they arise, and keep it running smoothly.  The value of this experience can not be overstated.

Although I agree that there is great value in assembling a kit, and also that I've assembled many things including a Genuine Prusa i3 MK2s, the OP desired to not build himself. I suspect that is why someone has tagged you for a -1. T'wasn't me, however.

I don’t mind the downvote. I understood the OP’s question, and was simply offering a counterpoint. Especially since the OP stated this desire was born of “not want[ing to] take any risks.” I get why that might be, but wanted to shed light on the position that can put you in down the road. :)

Though the downvote seems unwarranted since it was simply a qualified answer: makerspace is a good option, however...   /shrug

I'll definitely consider building other kits later on, but I'd rather not take the risk on my first resin printer, as I'd rather at least have one working resin printer before I start messing with others, I don't exactly want to get caught in a situation where I have a pile of broken printers and no working ones, I didn't down vote you, and you do have good advice for later printers, I should get eventually get handy with these things, but I think I should get a working one first before messing around with custom mudded projector lasers, nozzles ect I'll give you an upvote (=

dang it won't let me... I don't have enough reputation yet... =[, wait would it even be possible to down vote someone with my low level of reputation... oh well sorry I couldn't up vote you...

@Max - all good!  Good luck with your resin printer!  :)


text:
Self-lubricating 3D printable materials for space
Materials used in space need to not outgas significantly
An answer to this question: Would 3d-printed objects outgas in vacuum?
referred to the NASA outgassing database which showed that ABS, PET, and PLA filaments are all fairly low outgassing and suitable for space application.
What I'm wondering is whether there are any 3D-printable plastics that are both suitable for space and also self-lubricating.   Nylon is the obvious printable self-lubricating material, but I believe that it outgasses too much (I don't think NASA has tested nylon filament, at least I can't find it in the database).
My primary interest is in hobbyist-grade, FDM printers but if there are materials that can be commercially 3D printed, that is also of interest.
Any ideas?

The ones I can think of are Polyamide, PET, POM, FEP, Taulman 618 and igus iglidur. Have you already looked into any of these?

Polyamide outgasses.  PET is already on my list, but I don't think it's self-lubricating?  POM doesn't seem to be in the databases.  FEP looks promising as far as outgassing, but is it self-lubricating?  Talulman 618 isn't in the databases, but seems to be a variant of Nylon, which outgasses like crazy.  Iglidur seems to do well with outgassing.  Is it self-lubricating?
You may want to change your comment to an answer.

Well, I think this depends on your machine.  If you can support extrusion temps north of 350C and bed temps ~150C, you could try PEI:
https://www.3dxtech.com/ultem-9085-3d-printing-filament/
I believe PEI has self-lubricating properties, and has outgassing of ~0.40% TML (PET is ~0.43%).  Of course, most off-the-shelf printers don't handle that sort of temp range.  But then, industrial grade materials are likely to require industrial grade machines.  :)
You could compare other DBs to NASA's as well.
Outgassing DB:  http://esmat.esa.int/materialframe.html
By the way, Nylon has an outgassing aspect >2.0% TML, which is definitely on the high side for vacuum applications.

Yes, I'm familiar with that DB, and yes, nylon outgases too much (though filament, specifically, is not in their DB, other nylon products are).

I would suggest  material from IGUS .
https://www.igus.com/wpck/17736/3Dprinting
They have a range of  materials that are astonishingly  easy to print with on desktop 3D printers also they are probably the world leaders in high load, self lubricating polymer bearings .
I despise printing with PEI (Any type of ULTEM) and PEEK filaments as the upgrades required are a pain to install and keep running for any serious 3D printing related activity .


text:
Mesh modeling - remove parts of a mesh using a uv map
Any idea which software they use to get the honeycomb pattern?
I just read a nice article about the “Design of a Patient Specific, 3D printed Arm Cast”. (https://knepublishing.com/index.php/KnE-Engineering/article/view/607/1895)
To create the cast model itself is pretty simple but I found no easy way to remove the honeycombs.
The article just says:
"Using the solid body model that was extruded from the surface of the arm, the pattern can be applied to the cast model. This is done by creating a UV map of the models surface and creating a surface mask of the pattern, this is applied to the model. Using the design mask the areas that not required can be removed from the cast model."
But it is not mentioned which software they use. Maybe someone of you got an idea.

Solid works is used to create such designs . But its more easily done on 3DS max .


text:
How do I 3D-print fair dice?
As 3D printers become more and more reliable, their prints get better and better. But FDM printers do have their problems too: you print tiny ovals that smooch together at the edges, and infill makes it awkward at times. So, how do I make a 3D-printed die fair (as in: not favoring one side too much)?

How fair do you want them to be?  Casino dice are subjected to some pretty rigorous tests.  And I swear my d20 refuses to roll a 20 for critical hits.

Consider in your quest for "fair dice" that commercially produced dice are not all "fair". Only "precision" dice can truly be considered "fair". I have a D20 that is almost a perfect sphere due to poor manufacturing over-tumbling it.

Are you not worried about the overall weight of the dice?  3D printed items that I've handled always seem very light to me, and it seems like a die would feel "fake" and just act differently than a typical die.

There are already some great answers here and I only have one thing to add to them. Even if your printed die is not completely fair it's pretty easy to adjust it to be fair. A bit of sanding in the right place and you'll balance the die. Going off this you find the side that rolls most frequently and sand/polish off a bit of it. Then repeat until you are as fair as you like.

As bottom and top are always quite different from the sides when I print, I'd make a "roll"-dice, say a 6 sided tube (ex. 20mm diameter for the hexagon, 40+mm long). That IMO would be the most fairest dice I could print.

See also Will 3D Printed Dice Be Fair?

This is going to become a 3-step answer, as 3D Printing uses 3 different steps:
Design, Slicing & Material choice before I elaborate alternate ways to some fair dice. Yet, we start with the material, as we need to know about it first. In this case it does impact everything from design to slicing and the print.
Variant A: Printed perfect(?)
Step 1: Know your material
Let's face it: most materials used in Fused Deposition Modeling (FDM) face an non-homogenous shrinking between XY plane and Z axis. But if you know these specific properties for your printer/filament/temperature combo, you can compensate for that. Know your material - you will need that for slicing. Run a test print of a 10x10x10 mm cube and measure - the offset of the 10mm on each axis is what you need to compensate for via your slicer.
Step 2: Design fairly
Platonic bodies
When designing your STL, try to design as fair as you can. Either indent the numbers as little as you can while maintaining readability, or, if you have a 2 color printer, fill the numbers with same density material but from the other color.
Another thing to consider: indent the same surface area on each face of the body. That way you remove the same volume and thus same weight from each face, making it somewhat fair in the design, as the Center of Mass should be mostly in the center of the body now.
Prism-"dice"
A cylindrical (or rather: prism) design that is rolled over its "cylinder" surfaces might be the most easy to be designed fairly and be reasonably easy to slice, without having to resort to specialist slicing methods and tons of different compensations to keep in mind or having to assemble the object after print. It might be made with or without a "fall over" cone/elipsoid shape at both ends. Or it might be made like a dreidl, having only one conical/elipsoid tip for easy printing, possibly even havign the 'stem' printed as a different object and then assembled after print.
Step 3: Slicing
Now, there is a pretty fair design... but what settings to use when printing it?!
Infill will make it wonky, so there are 2 options: solid (100% infill) and fully hollow (0% infill). Solid is easier to print and heavier. Hollow saves (depending on surface sides) 95% or more of the material in contrast to solid but can fall victim to sagging flat surfaces or wall thickness being not the same as flat area thickness.
Now, after we chose the infill settings, we need to choose some other things. We want to print fairly delicate stuff, so we should use a smaller layer height than normally (0.05 mm, for example), and better a smaller nozzle - 0.2 mm or even less, if available. This again means, calibrating the printer/material combo for these two settings (XY / Z shrinking).
After calibration, finally print! The dice should be pretty ok in fairness with that, but they are still not totally fair...
Extra-step: Postprocessing
You might make a test for bias by floating it on a salt water layer under tap water... if you managed to get it solid enough to reduce the air inside it to make it sink between these layers. That way you can slightly sand the heavier side until it is unbiased.
If you manage to print somewhat fair and hollow, you might consider filling the cavity with some kind of resin (for example epoxy) to give the objects a bit of weight. This has some caveats on its own though: you'll have to leave a filling hole and you'll have to coat the inside equally or refill it several times to ensure a complete fill as most resins shrink when curing. Also, most resins heat up in curing, though usually not to the degree it melts FDM. As you work with resin, Wear gloves as it is aggressive to skin!
BUT! 3D printink can do more!
Variant B: Printed Perfection
FDM is home printer stuff, but maybe you have access to something more... industrial. They are tricky in their own way, and you better know what you do with them.
SLS (solid laser sintering) You just need to know your material shrinking coefficients in that case... and no, you don't need to think about infill, you only can do solid, 100% filled objects this way. But you will also have virtually no air in your print. Having SLS at home is rare though. This is however likely what you get when you order printed... but remember: the SLS powder is highly hygroscopic and will need to be sealed. Also, it does turn yellowish over time if it starts white. Using reused powder to a large degree degrades print quality also. And never look into the working machine.
DLMS (Direct Laser Metal Smelting) is quite new and pretty much the metal variant of SLS. If you make your dice in that way and get them almost indistinguishable from cast metal. Polish the surfaces a little, don't sniff the breath the powder and don't look into the laser.
DLP/SLA (Direct Light Processing/Stereo Lithography) Printing the thing from curing resin actually is pretty much close to SLS, but it has some resemblence to FDM in parts... biggest benefit: you can make very delicate details, and your layer heights get really thin - and you have a huge array of colors to choose from. But you have to take in mind, that you might want to either make the dice solid or design them with a hole in each of the sides or corners to allow surplus resin to flow out. You get perfect surfaces and can reuse the resin for quite a bitdepending on printer and storeage, but remember: SLA is a stinky thing, never look into the printing machine & the resins are very agressive to skin, so use gloves when working with the printing and the print until properly cleaned.
Variant C: Lost Print
But wait, what if you don't actually print the dice but just print a positive of the dice and then make a negative mold from that?
Yes, that can be done. You know lost wax casting? There you go. Here's your step by step:

Print your dice.

maybe even puzzle the positive together from several faces printed all in the same orientation for maximum equality in the print.

Add a casting inlet and air outlet to the print.
cast the positive in either a clay material or gypsum. Allow it to dry/set.
Burn/melt out the positive, you get a hot and empty negative form.
cast in liquid metal or a resin
break mold, remove the inlets, polish some and... voila!

If you are good at green sand casting, you might use that instead of lost wax casting - and reuse the positive for a second casting. Or, if you are good, you can make two-part molds that are reuseable.
Variant 3b: mold it!
If we can print a positive and make a mold from that, we might as well print a mold directly. We can just cast in "cold" materials then, but if you have something that can be cast that way (some resins or wax) you can make either the dice or casting sprues for lost wax casting that way. Designing here will be different on the last steps though: after doing your wanted object, use this as a "tool" to cut out from a more or less square block that surrounds it. cut out the inlet/outlet for material and air from the block. Then cut up to your liking, if you want a reusable multi-part mold. You might want to add a roove to add wire or a rubber band around the print to keep the mold together while casting.
Or we go industrial with that model, grab a CNC and make the mold halves that way and give up on printing the dice...
tl;dr:
Know your printer, know your material, design for your printer's requirements, design fairly, maybe avoid printing the actual dice but print a positive to be molded and cast or print a mold.

Honestly, I wouldn't.
You can find dice templates at places like thingiverse, but with my (admittedly limited) experience of affordable 3D printers, I would be highly skeptical that the machine tolerances are up to snuff for producing a fair die.
See this discussion from the 3d printing exchange, especially these two answers.
If you're really bound and determined to do this (we all have our geeky little passion projects!) I'd advise trying to find a template which the authors claim to have tested with chi-square, then find out what (type of) device they used.  If you can replicate that, go for it... and then do the chi-square test yourself.  It's ridiculously easy to set something up wrong, or forget something (like the possible effects of internal orientation.)

This is only true for FDM - SLS and SLA do manage the level of accuracy needed.

This isn't a great answer because even if you use a perfect model and the same hardware and same filament as someone else whose done this, our results will vary based on: your individual spool of filament, your stepper settings and how perfectly calibrated the machine is, your nozzle, depending on filament your operating environment (temp, humidity, et cetera).  There are too many variables.  Even two prints from the same machine may result in one perfect and one imperfect print.


text:
My print did not turn out as I expected. Where can I start troubleshooting?
I am trying to modify this thing.  It's prints OK, but there are some design choices I don't like, so, since the previous makers uploaded their source files, I tried my hand at Sketchup.
My latest round of changes have produced a weird phenomenon, and I'm not sure how to describe it.  The slicer sees the GCODE as I intend, but for some reason the printer is printing something different than what the slicer is showing me.  I am primarily concerned with the top of this case, but the base does not have the additional screw holes I made, so the phenomenon, whatever it is, is not limited to a single part.

Sketchup v17.2.25555
Cura v3.0.3
OctoPi/OctoPrint 1.2.7
PrintrBot LC custom
Grey Inland PLA+ @~180C, bed @~60C (my temps are higher than the software thinks they are, so I have to put the temp lower in the software)

You can see the parts in Sketchup:

The corner on the left was giving me no end of trouble!  I left it with a messed up hole because I could more easily clean it up with a drill bit than spend another few hours futzing with that corner.

This is in Cura, after I have sliced it.  Looks fine to me!  There is a bit of red in that problematic corner, but I only noticed that after the print came out weird.

This is the output of the printer.  Notice how the edge near the GPIO pins is shorter than the rest, and how the hole is inverted into a protrusion.  This is the opposite of what I want, and the opposite of what I see in the other softwares.

did you manage to fix your object (printout)?

I redesigned it in OpenSCAD to solve the problem I was asking about.

so maybe you can click accept ;)

first issue
bed inclination. it has to be heavy issue :)
if you have any other printouts then please reveal them so we could see if it's the problem
next issue
inversion of hole into solid object
i would say it's caused by wrong calculation of normal vector to some face(s)
algorithm uses normal to calculates what is "inside" and what is not
it's hard to say if it's an issue of

object itself
application in which you modify it (even if duplicating or joining with other objects)
slicer engine

to fix the issue, you can try edit your object (recreate this hole)
but first - definitelly i'd align your bed properly ;)
EDIT
after closer look i bet it's the issue of bad object. it looks like pointed line is kinda remnant of some operations made on object in the past
in other words - it's possible place where normals are reverted and doesn't "create" inside but outside
all above this line is reverted. part of body disappeared and part of hole appeared
this is the issue for sure!

As far as bed inclination, I guess that's a joke?  I've printed other things that print flat just fine.  For example, the bottom part to this top part.  Getting back to the main issue, I figured it was related to that corner.  I don't think I have the skills to fix it, so I think I will just make the object from scratch.

@YetAnotherRandomUser  Yes, There are some extra lines inside your draw like darth pixel indicates with the arrows and there are a lot more. Those lines provoques cura, slic3r and simplify3D to create double walls, doble faces, invalid shapes and over extrusion.

Looks like you are over extruding.
check out this visual guide for example (I like it a lot):
http://support.3dverkstan.se/article/23-a-visual-ultimaker-troubleshooting-guide
For the protruding thingy, it seems (as the other hole is filled up with over extruded filament, it seems) that it's the "hole" printed. For the rest of the "wall" where that hole should have been, it seems it was just not printed. What size is it (if too thin, the slicer might just discard it, doesn't seems like it but you didn't tell nozzle size etc).
I don't know, but I think you should start with calibrating your machine first so that you actually can print small holes like that.
For the missing wall, what does the slice result look like?

Thanks for the tip about overextruding.  I'll look into your link.  However, that's completely unrelated to the issue of the question.

Could have been for the protruding 'hole' IMO but yes, it seems there is some problem with the model that makes the slicer invert volumes or something.


text:
Is it possible to 3D print shapes of atomic orbitals for a regular customer?
Disclaimer: I am not a professional 3D printer, so I'm not really familiar with how 3D printing works.
I was thinking about trying to make a real life model of the atomic orbitals, to clearly see how the orbitals are really shaped. I thought about trying to 3D print a block, made up of colored transparent "ink", in such a way that the darkness of the color at a point in the block should be proportional to the ψ2 value (probability of the electron cloud). This would print a block in which high density areas are darker than light intensity areas.
My question is, would it be possible to design an algorithm to print a specific darkness of ink at a specific location based on the computed value of ψ2, which is obtained by solving Schrödinger's Equation. Also, would it be possible to have this fullfilled at a reasonable price to be afforded by a regular customer, such as an engineering employee?

In line with the answers provided, I'd suggest creating a 3-d plot (on a 2D piece of paper!) with shading as desired.  That should be reasonably straighforward in Mathematica or R or python, with some calls to GnuPlot.

As Darth pixel mentioned, your best bet would likely be to explore subsurface laser engraving which makes little bubbles inside acrylic to make it translucent (frosted) on the inside in certain places.  However, it is expensive, it has no colors, and the resolution isn't usually great (it may look speckled on the edges instead of having a smooth gradient from clear to whitish).
A better option might be to 3d print a probability map of a 2D image an orbital cloud where height corresponds to probability rather than color. (So it will look like a hill or group of hills)  This would only run you a few dollars.

problem definition
I'm not quite sure if it's really question for this group. Looks like the problem itself is more for programming or physics group. Having requested calculations (electron cloud shape) resolved, there will be something to print but...
printing probability cloud
at first, please take a look for example here
it's a review of 3d printing technologies. i think you should have clear picture if your idea is feasible or not.
IMO it's not with todays technologies. in general (and deadly simlified) we have 3 main printing technics

out of solid (or semi-solid) filaments - can be colorful and semi-transparent but it's not homogenous in terms of your needs
out of solid powders - can be colorful but it cannot be transparent
out of liquids - can be really transparent and color but unfortunately not colorful

i'd say rendering but not printing is what you really need

Basically, I want to make an probability density model for like a show-and-tell use, while teaching. It would be great to have an accurately made one rather than drawing a crude shape on the blackboard. Once completed, it should resemble a transparent "glass-like" cubical block, in which certain cubic pixels are colored orange, and the intensity of orangeness depends on the ψ2 value of the Schrödinger wave equation.

... Once completed, the model can be rotated around, and the probability density can be easily visualized, due to the transparent nature of the ink.

as mentioned in my answer - AFAIK not possible today. it's possible with a block of acrylic and laser, fluffing the inside... but it sill won't be colorful

3d printing a gradient like that will take:
1) A program capable of graphing color into your 3D model
2) A 3D printer capable of printing multiple colors (multi nozzle 3D printers)
3) Some way to convert that density function to a change in color.
There are certain types of files called .3mf files that can hold different color information- but I thinking relating the electron density to a change in color may be rather difficult (if possible at all).
I think a better bet is to go with the 3D probability map of a 2D Image, as suggested by Gumbo.
I have come across a neat little project that is half of what you are looking for. These are mathematically accurate, 3D printed atomic orbitals (graphed with their Schrodinger Equations).
Link Here: https://pubs.acs.org/doi/abs/10.1021/acs.jchemed.6b00293

I suggest you look into Polysher: http://www.polymaker.com/shop/polysmoothpolysher/ and e3D cyclops extruder https://e3d-online.com/Cyclops you can make gradients of color.
But there might even be a smarter way to do alpha transparency than 100% infill with a transparent material:
1) making a lattice of opaque material nodes (where bigger or closer together nodes mean more probability), and using air as the transparent medium
2) dunking the 1) in resin
3) making the afore-mentioned lattice with a partially transparent material and dunking it in a resin of the same refractive index as the transparent material.