Thursday, October 31, 2019

The Truth About Burning Man - My four years inside California's sex and drug cult - Chapter 2

The Truth About Burning Man
My four years inside California's sex and drug cult

Chapter 2 - My first burn







2013 My first year

2014

2015 Burning Man as part of a road trip

2016 My final year




The kinky sex people

The drugs

The bullshit






In the end Burning Man has become for conformists, to conform to something new.  People get their hair done into dreads and other hairstyles that they don't normall wear, so they can fit in. Wearing fur. Doing the same things that "cool people" do, trying to look good, fit in, hook up, and get laid.



This week many of us watched some of our friends go to the annual bacchanal in the desert known as Burning Man. I’ve been four times, and have been loosely associated with the Burner community for the past few years, so I have some idea of what it’s about. First and foremost Burning Man is an art festival. It was started by disenfranchised artists and people who were experts at creating interactive performances. The secret hidden agenda of the modern version of Burning Man however is drug use, mostly hallucinogens and stimulants. That’s not to say everyone at Burning Man uses drugs, but from my experience most people in the community certainly experiment with them to varying degrees. When some of my closest friends started going to Burning Man years ago, I often wondered why they didn’t invite me along, ask me to check it out. I felt left out, I wondered why I wasn’t good enough to join my closest friends, and what was the big secret? Later I learned the secrecy was all about the drugs. This is not to say that the primary purpose of Burning Man is drugs, it’s not. As I said, it’s primarily an art festival. However much of the art is inspired by, and intended to enhance, the psychedelic experience. Probably in the early days of Burning Man there were artists who sometimes took drugs for inspiration, someone probably wore a furry coat once or rode a furry bike, because it was creative and avant garde, and also practical in the cold weather on the dry lake bed at night. However the modern version of Burning Man has been adopted and co-opted by people who are clearly not artists, who are not avant garde, who are not freaky or weird, but who think they need a furry coat and a furry bike and to take drugs so they can be like everyone else at the event. I’ve fallen for that need to conform myself, I also have a furry coat and a furry bike, although my furry bike is a lot cooler than most and looks like a giant muppet. This year however I am not going to Burning Man. I grew up in poverty and had a troubled childhood. For me drugs were an escape from this harsh upbringing. Being freaky or weird was not something that was “cool” or “bad ass” or “fun”. It was mentally crippling, it made you an outcast, and it made life difficult, and life is hard enough without adding extra obstacles. I used to hang around with drug users when I was much younger, in my late teens and early 20s. All of us were broken and damaged people. I smoked pot as a way to escape my poverty and troubled childhood. Some of my friends got into speed. That's when they started turning into real pieces of shit, treating their friends like crap, being users and abusers, placing their drugs ahead of their friends. Some of those old druggie "friends" of mine are still druggies today. Some have severely damaged their brains and their psyches from drugs. A couple of them died from heroin overdoses many years ago. Recently I have seen some of my Burner friends start to exhibit those same addict behaviors, those same user and abuser traits. And that is why I am not going to Burning Man this year, this is why I’m disassociating myself from the Burner community, because I don’t want a repeat of my early 20s, because I’ve spent my whole life trying to fit in and be normal and I don’t need to take a giant leap backwards after so much progress.


Why burning man is for nerds and is about conformism.  Conformists, typically university grads with professional degrees, engineergs and software people from california typically, are often looking for ways to break out of the mold. Burning Man offers them something new and different to conform to.  That's why they feel the need to wear fake hairstyles that make them look like non-=conforkmists, wear fur to look the same.





This is one is quite good on the topic























Monday, October 28, 2019

Conformsgiving


Any good conformist things going on for Thanksgiving? I'm looking to be a conformist and conform. I want to drive my gray car to a gray event on a gray day while wearing a vertical pin-striped shirt and gray pants, and subject people to my gray personality. Maybe something Thanksgiving related but with my favorite food, boiled rice. Possibly something for engineers, lawyers, or doctors, because a stuffy professional degree is the ultimate mark of conformism. Maybe even something to do with Burning Man, for people who are so conformist that they have to desperately pretend they're not, by wearing fur like everyone else and conforming.

We were going to do something original, imaginative, and creative for Thanksgiving but our plans have been forced to conform.

I actually have a great idea for what to do the weekend before Thanksgiving but I can't tell you what it is because then I'd appear non-conformist, and if there's anything I've learned in life it's that non-conformists don't fit in, and so they get left out, and therefore I have to leave you out of my non-conform
ist plans.

-Dave Bad Person

Wednesday, October 23, 2019

Why a non-professional college degree is worthless




I often look at my university education and think of what a useless load of crap it is. I have a PhD in neuroscience, which has no practical application to anything much. It's certainly not an industry, or something that produces a marketable product, or makes money, or produces anything that's needed, wanted, or popular.

This can be said of much of university education. Other than professional courses such as engineering, medicine, law, dentistry, nursing, pharmacy, computer science, teaching, and so on, a university education merely serves as a signal to employers. The content of your non-professional university education, no matter how worthless and irrelevant it may be, is not important. The important thing is the signal it sends. The signal is that you contain the trinity of characteristics that employers hope will make you a successful employee: intelligence, conscientiousness, and conformity. This is why employers seek employees with a university education, because the drudgery to obtain educational success is the same drudgery required for job success. An intelligent employee will learn their job fast, a conscientious employee will labor until the job is done right, and a conformist employee obeys superiors and works well with team members.

This is why most university graduates all appear to come from the same mold - they dress the same, talk the same, think the same, and 
act the same - because they're conformists.

Me, I fucking hated university life, and I still hate it today with a passion. I lived with my parents in my home town and hung out with my old high school friends while I was at university. So for me, going to university was not some amazing, liberating, enlightening, partying, growth experience that helped me develop as a person. Instead, it was what held me back in life, for many years. In fact, the more I've distanced myself from university life, the better my life has become. My overall opinion of college/university is that it's just high school with more partying and binge drinking, and a degree is just a piece of paper that says you belong to the middle class.

What's my point here? Well I guess the first thing is that I'm not your typical college degree conformist type of person. I don't share the characteristics of the typical straight-from-the-mold university grad employee - the standard vertical pin-striped shirt, the pants, the shiny shoes, the same haircut that my mother gave me when I was eight years old, the dopey grin of self-satisfaction, the carefully considered speech so as not to make waves, the spindly musculature, the pallid face, the subservient attitude. Does a college education reliably signal intelligence, conscientiousness, and conformity? Based on my example we can only say "maybe" at best. Does it give people useful skills for the real world? Almost definitely not.

And on that note, here are some of the world's most successful people telling us why a non-professional college degree is worthless: https://www.youtube.com/watch?v=e8QY0NDWqzk





That's all for now.  Don't forget to subscribe to my blog using the box at the top right of this page.

-Dave Bad Person



More reading on this topic

If you want to read another thread about my shitty university experiences, check this out:
https://boredofstudies.org/threads/the-australian-national-university-anu-is-a-terrible-university-and-will-ruin-your-future.387681/
https://www.badperson.net/2019/11/the-australian-national-university-anu.html


You can also find books that cover this topic more thoroughly at these links:
www.amazon.com/Case-against-Education-System-Waste/dp/0691174652
www.amazon.com/Coddling-American-Mind-Intentions-Generation/dp/0735224897
www.amazon.com/Cracks-Ivory-Tower-Higher-Education/dp/0190846283

Here's my blog post about how academics have become detached from the reality of what society needs from them.
https://www.badperson.net/2020/02/academics-have-become-detached-from-reality.html

Here's another one of my blog posts about how scientists lie about the goals and utility of their research so they can make themselves and their work seem more important.
https://www.badperson.net/2020/02/how-scientists-lie-about-the-goals-and-utility-of-their-research.html

Here's my parody of the media release by the President of the Australian Academy of Science regarding the recent mega-fires in Australia.
https://www.badperson.net/2020/01/a-message-from-president-of-australian.html









Tuesday, October 22, 2019

Why artificial intelligence is bullshit

Why interstellar travel is bullshit




nothing yet

The straw ban



I don't get this whole straw ban thing. Some people are for it, some are against it. The reason I don't get it is because I've never used straws in my whole life. Why do you need a straw at all? What the hell are you drinking? If whatever you're drinking requires a straw then it's probably some junk food crap that you shouldn't be drinking anyway. Do you need a straw because you can't tip your glass and put it to your mouth? Then maybe use a little less ice or a more practical shape of glass? The way I see it, the only legitimate reason to need a straw is if you have a major injury to your hands or face.

I guess I'm just some offbeat weirdo who now happens to be on the trendy side of the fence, the strange little kid who never used straws, who now turns out to be the genius that was half a century ahead of the curve.
I guess if I wanted to put an emotional spin on it and influence your behavior, I'd say that if you use straws then you're an unintelligent person.

You don't want to be an unintelligent person, do you?


-Dave Bad Person


Tuesday, October 8, 2019

Calibration of a linear Delta 3D printer.

Calibration of a linear delta printer is more difficult than for a cartesian. What follows is the procedure I use for my two Kossel printers. It can be a little time consuming and take half an hour on bad days, but it's very accurate. Once you've set the calibration using this method it won't change unless the printer geometry changes. Also, you'll no longer need to use a Z-probe to self-calibrate the printer, and best of all, your prints will be dimensionally accurate.

First, you should ensure that your printer's bed is flat to begin with. This calibration procedure assumes that your bed is flat to within about 0.5mm across its surface, and preferably even flatter than that. My Kossel printers came with circular borosilicate glass beds that are flat enough for 3D printing and shouldn't need replacing. If your bed is not flat enough then try flipping it over, as one side may be flatter than the other. Otherwise you will need to buy a better quality bed, and these can be bought inexpensively online. The Kossel printers take a 250mm circular piece of glass. I recommend 5mm thick for strength. This thickness may require a better bed heater if you are currently using glass thinner that 5mm.

Second, I have replaced the outdated electronics boards on my Kossel printers with Azteeg X5 Mini WiFi boards by Panucatt devices. These use Smoothieware firmware, and for my Kossel Pro my values for arm length and arm radius are shown below. Edit these in your printer's config file. These values represent two sides of a right angle triangle. Arm_length is the length of your printer's arms from pivot to pivot in millimeters (the hypotenuse). Arm_radius is the opposite side of the triangle, measured as the horizontal distance from pivot to pivot of each arm, in millimeters, when the print head is at the center of the print area, equidistant from each tower. See more info here:  http://smoothieware.org/delta

arm_length = 298.0
arm_radius = 152.4

For the first part of the calibration you will need to set the arm solution in the config file to cartesian so that you can move each of the towers independently. Remember to reboot the printer after making config changes so that the new config is loaded.

arm_solution cartesian

The next step is to ensure the motors move the correct distance. Use Pronterface or another printer control interface to move the carriage on each tower a known amount, e.g. 100 or 200mm. http://www.pronterface.com/

Use a pen to mark on the belts where the carriage starts and stops. Now measure the distance between the two pen marks. They should match the amount you told them to move. If not then you need to adjust alpha_steps_per_mm, beta_steps_per_mm, and gamma_steps_per_mm in your config file. For example, if you told the carriage to move 100mm and it moved 125mm, then you need to take the current value of alpha_steps_per_mm and divide it by 125/100 = 1.25. So if your alpha_steps_per_mm was 200, you now divide it by 1.25 to get 160.  Reboot the printer after each change of the config file so it gets the new values. Repeat the belt measurement again and adjust if necessary, until the measured belt movement is correct.

Typically the motors and belt wheels on your printer will be the same for each axis and so the values of alpha-, beta-, and gamma_steps_per_mm will be the same, and you'll only need to do this for one tower and then copy that value for the other towers.

Once this calibration is complete, you can change the arm solution back to linear delta.

arm_solution linear_delta

Your printer's towers are now set to do dimensionally accurate movements. A similar procedure can be used to adjust the extruder as well, using marks on the filament and adjusting the extruder.hotend.steps_per_mm  

The next step in the calibration is to use Pronterface or other printer control software to set the print nozzle to lightly hold down a piece of paper at location x0 y0 z0. You should be able to slide the piece of paper back and forth between the bed and the print nozzle with only slight resistance. You can use negative and positive values of Z to find the printer bed height where the paper is slides best.  Once you have this Z value, use it to adjust gamma_max in the config file. Gamma_max is the total height of your build volume from home position to the bed (see http://smoothieware.org/delta#height-calibration). Remember to reboot the printer after changing the config file so your new values are loaded. If you get down to the point where a 0.1mm difference in height is either too tight or too loose, choose the looser one.

Next, make the nozzle lightly hold down a piece of paper at a location close to each tower. The commands to do this are as follows.  The values may different depending on the diameter of your bed, this is for a 250mm bed.

g0 x-100 y-60 z0
g0 x100 y-60 z0
g0 x0 y110 z0

Use positive or negative values of Z if the height is not correct, until a piece of paper is lightly held down. Adjust the height of the nozzle at each tower by adjusting the stop screws on the carriage of that tower. You will need to home the printer after every stop-screw adjustment so the new height is set. If you need negative values to make the nozzle lightly hold down paper at the tower, then the printer thinks the bed is higher than actually it is, so you need to turn the stop screw anticlockwise to lower the bed height. If positive values are needed then the stop screw needs to turn clockwise.

Remember than an M3 screw typically has a 0.5mm thread pitch, so each turn of the screw moves it up or down 0.5mm. This will help you tune in the calibration based on the Z value you need to hold down the paper. Repeat the process a few times at each tower to get it spot on. Remember to home the printer with each change. If a 0.1mm change in height holds down a piece of paper either too tightly or too loosely, choose the looser value.

After setting the stop screws at each of the printer's three towers, return the print head to the center of the bed: g0 x0 y0 z0. If the nozzle is now too high above the bed, increase arm_radius slightly by 0.5 - 1.0mm. If the nozzle is too low and lightly crashes into the bed, decrease arm_radius. After changing arm_radius you will have to start all over again and do the height calibration (gamma_max) and then the stop screw adjustments. However by repeating the procedure several times, you will eventually find the best value for arm_radius.

When you get very close to the perfect calibration it may be necessary to change arm_radius by less than 0.5mm each time, e.g. 0.2 or 0.3mm.

After the first calibration of your printer, future adjustments will only need to be small.  If you see odd patterns, uneven thickness, or blobbing on the first layer of a print, it may be time to calibrate your printer again.  Generally the calibration lasts a long time.

Once the print nozzle lightly holds down a piece of paper at the center of the bed and at each tower, your calibration is complete. 
If it's hard to get it exact then it's better for the paper to be held a little too loose than too tight.

I have found my values for arm_radius and arm_length work fine and I expect them to be similar for every Kossel Pro printer, so start with those values and you will at least be close.

Once this is done the calibration is complete and will not need to be done again unless you change the geometry of the printer or alter the height of the nozzle within the print head. As mentioned before, your print bed must also be sufficiently flat for this to work.

I have attached the Smoothieware config.txt file I use for my Kossel Pro to help you get started.


-Dave Bad Person


# Smoothieboard configuration file, see httpsmoothieware.orgconfiguring-smoothie
# NOTE Lines must not exceed 132 characters, and '#' characters mean what follows is ignored
## Robot module configurations  general handling of movement G-codes and slicing into moves

# Basic motion configuration
default_feed_rate                            4000             # Default speed (mmminute) for G1G2G3 moves
default_seek_rate                            4000             # Default speed (mmminute) for G0 moves
mm_per_arc_segment                           0.0              # Fixed length for line segments that divide arcs, 0 to disable
#mm_per_line_segment                         5                # Cut lines into segments this size
mm_max_arc_error                             0.01             # The maximum error for line segments that divide arcs 0 to disable
                                                              # note it is invalid for both the above be 0
                                                              # if both are used, will use largest segment length based on radius
delta_segments_per_second                    100              # For deltas only, number of segments per second, set to 0 to disable
                                                              # and use mm_per_line_segment

# Arm solution configuration  Cartesian robot. Translates mm positions into stepper positions
# See httpsmoothieware.orgstepper-motors
alpha_steps_per_mm                           160              # Steps per mm for alpha ( X ) stepper and tower
beta_steps_per_mm                            160              # Steps per mm for beta ( Y ) stepper and tower
gamma_steps_per_mm                           160              # Steps per mm for gamma ( Z ) stepper and tower

# Delta configuration
# See httpsmoothieware.orgdelta
arm_solution                                 linear_delta     # Selects the linear delta arm solution
arm_length                                   298.0            # This is the length of an arm from hinge to hinge
arm_radius                                   152.4            # This is the horizontal distance from hinge to hinge when the effector is centered

# Planner module configuration  Look-ahead and acceleration configuration
# See httpsmoothieware.orgmotion-control
acceleration                                 3000              # Acceleration in mmsecondsecond.
#z_acceleration                              500              # Acceleration for Z only moves in mms^2, 0 uses acceleration which is the default. DO NOT SET ON A DELTA
junction_deviation                           0.05             # See httpsmoothieware.orgmotion-control#junction-deviation
#z_junction_deviation                        0.0              # For Z only moves, -1 uses junction_deviation, zero disables junction_deviation on z moves DO NOT SET ON A DELTA

# Cartesian axis speed limits
x_axis_max_speed                             30000            # Maximum speed in mmmin
y_axis_max_speed                             30000            # Maximum speed in mmmin
z_axis_max_speed                             30000            # Maximum speed in mmmin

# Stepper module configuration 
# Pins are defined as  ports, and pin numbers, appending ! to the number will invert a pin
# See httpsmoothieware.orgpin-configuration and httpsmoothieware.orgpinout
alpha_step_pin                               2.1              # Pin for alpha stepper step signal
alpha_dir_pin                                0.11             # Pin for alpha stepper direction, add '!' to reverse direction
alpha_en_pin                                 0.10             # Pin for alpha enable pin
alpha_current                                1.5              # X stepper motor current
alpha_max_rate                               30000.0          # Maximum rate in mmmin

beta_step_pin                                2.2              # Pin for beta stepper step signal
beta_dir_pin                                 0.20             # Pin for beta stepper direction, add '!' to reverse direction
beta_en_pin                                  0.19             # Pin for beta enable
beta_current                                 1.5              # Y stepper motor current
beta_max_rate                                30000.0          # Maxmimum rate in mmmin

gamma_step_pin                               2.3              # Pin for gamma stepper step signal
gamma_dir_pin                                0.22             # Pin for gamma stepper direction, add '!' to reverse direction
gamma_en_pin                                 0.21             # Pin for gamma enable
gamma_current                                1.5              # Z stepper motor current
gamma_max_rate                               30000.0          # Maximum rate in mmmin

## Extruder module configuration
# See httpsmoothieware.orgextruder
extruder.hotend.enable                          true          # Whether to activate the extruder module at all. All configuration is ignored if false
extruder.hotend.steps_per_mm                    894           # Steps per mm for extruder stepper
extruder.hotend.default_feed_rate               600           # Default rate ( mmminute ) for moves where only the extruder moves
extruder.hotend.acceleration                    500           # Acceleration for the stepper motor mmsec²
extruder.hotend.max_speed                       50            # Maximum speed in mms

extruder.hotend.step_pin                        2.0           # Pin for extruder step signal
extruder.hotend.dir_pin                         0.5          # Pin for extruder dir signal ( add '!' to reverse direction )
extruder.hotend.en_pin                          0.4           # Pin for extruder enable signal

# Extruder offset
#extruder.hotend.x_offset                        0            # X offset from origin in mm
#extruder.hotend.y_offset                        0            # Y offset from origin in mm
#extruder.hotend.z_offset                        0            # Z offset from origin in mm

# Firmware retract settings when using G10G11, these are the defaults if not defined, must be defined for each extruder if not using the defaults
#extruder.hotend.retract_length                  3            # Retract length in mm
#extruder.hotend.retract_feedrate                45           # Retract feedrate in mmsec
#extruder.hotend.retract_recover_length          0            # Additional length for recover
#extruder.hotend.retract_recover_feedrate        8            # Recover feedrate in mmsec (should be less than retract feedrate)
#extruder.hotend.retract_zlift_length            0            # Z-lift on retract in mm, 0 disables
#extruder.hotend.retract_zlift_feedrate          6000         # Z-lift feedrate in mmmin (Note mmmin NOT mmsec)

delta_current                                    1.0          # First extruder stepper motor current

# Second extruder module configuration
#extruder.hotend2.enable                         true         # Whether to activate the extruder module at all. All configuration is ignored if false
#extruder.hotend2.steps_per_mm                   140          # Steps per mm for extruder stepper
#extruder.hotend2.default_feed_rate              600          # Default rate ( mmminute ) for moves where only the extruder moves
#extruder.hotend2.acceleration                   500          # Acceleration for the stepper motor, as of 0.6, arbitrary ratio
#extruder.hotend2.max_speed                      50           # mms

#extruder.hotend2.step_pin                       2.8          # Pin for extruder step signal
#extruder.hotend2.dir_pin                        2.13         # Pin for extruder dir signal ( add '!' to reverse direction )
#extruder.hotend2.en_pin                         4.29         # Pin for extruder enable signal

#extruder.hotend2.x_offset                       0            # x offset from origin in mm
#extruder.hotend2.y_offset                       25.0         # y offset from origin in mm
#extruder.hotend2.z_offset                       0            # z offset from origin in mm

#epsilon_current                                 1.0          # Second extruder stepper motor current

## Laser module configuration
# See httpsmoothieware.orglaser
laser_module_enable                           false           # Whether to activate the laser module at all
laser_module_pwm_pin                          2.5             # This pin will be PWMed to control the laser. 
                                                              # Only pins 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 1.18, 1.20, 1.21, 1.23, 1.24, 1.26, 3.25 and 3.26
                                                              # can be used since laser requires hardware PWM, see httpsmoothieware.orgpinout
#laser_module_ttl_pin                       1.30            # This pin turns on when the laser turns on, and off when the laser turns off.
#laser_module_maximum_power                   1.0             # This is the maximum duty cycle that will be applied to the laser
#laser_module_minimum_power                   0.0             # This is a value just below the minimum duty cycle that keeps the laser
                                                              # active without actually burning.
#laser_module_default_power                   0.8             # This is the default laser power that will be used for cuts if a power has not been specified.  The value is a scale between
                                                              # the maximum and minimum power levels specified above
#laser_module_pwm_period                      20              # This sets the pwm frequency as the period in microseconds

## Temperature control configuration
# See httpsmoothieware.orgtemperaturecontrol

# First hotend configuration
temperature_control.hotend.enable            true             # Whether to activate this ( hotend ) module at all.
temperature_control.hotend.thermistor_pin    0.24             # Pin for the thermistor to read
temperature_control.hotend.heater_pin        2.5              # Pin that controls the heater, set to nc if a readonly thermistor is being defined
temperature_control.hotend.thermistor        EPCOS100K        # See httpsmoothieware.orgtemperaturecontrol#toc5
#temperature_control.hotend.beta             4066             # Or set the beta value
temperature_control.hotend.set_m_code        104              # M-code to set the temperature for this module
temperature_control.hotend.set_and_wait_m_code   109          # M-code to set-and-wait for this module
temperature_control.hotend.designator        T                # Designator letter for this module
temperature_control.hotend.max_temp          300              # Set maximum temperature - Will prevent heating above 300 by default
#temperature_control.hotend.min_temp         0                # Set minimum temperature - Will prevent heating below if set

# Safety control is enabled by default and can be overidden here, the values show the defaults
# See httpsmoothieware.orgtemperaturecontrol#runaway
temperature_control.hotend.runaway_heating_timeout      0   # How long it can take to heat up, max is 2040 seconds. Zero is disable
temperature_control.hotend.runaway_cooling_timeout      0   # How long it can take to cool down if temp is set lower, max is 2040 seconds. Zero is disable
temperature_control.hotend.runaway_range                35    # How far from the set temperature it can wander, max setting is 63°C
temperature_control.hotend.runaway_range_error           1    # Small temperature oscillations are ignored.

# PID configuration 
# See httpsmoothieware.orgtemperaturecontrol#pid
temperature_control.hotend.p_factor         34.8             # P ( proportional ) factor
temperature_control.hotend.i_factor         2.327            # I ( integral ) factor
temperature_control.hotend.d_factor         131              # D ( derivative ) factor
#temperature_control.hotend.readings_per_second    20    # How many times per second to read temperature from the sensor.
#temperature_control.hotend.pwm_frequency        2000  # How many times per second to switch the heating element on oroff.
                                                             # Set to a low value ( 20 ) if using a Solid State Relay.
#temperature_control.hotend.max_pwm          64               # Max pwm, 64 is a good value if driving a 12v resistor with 24v.

# Second hotend configuration
#temperature_control.hotend2.enable            true           # Whether to activate this ( hotend ) module at all.
#temperature_control.hotend2.thermistor_pin    0.25           # Pin for the thermistor to read
#temperature_control.hotend2.heater_pin        1.23           # Pin that controls the heater
#temperature_control.hotend2.thermistor        EPCOS100K      # See httpsmoothieware.orgtemperaturecontrol#thermistor
##temperature_control.hotend2.beta             4066           # or set the beta value
#temperature_control.hotend2.set_m_code        104            # M-code to set the temperature for this module
#temperature_control.hotend2.set_and_wait_m_code 109          # M-code to set-and-wait for this module
#temperature_control.hotend2.designator        T1             # Designator letter for this module

#temperature_control.hotend2.p_factor          13.7           # P ( proportional ) factor
#temperature_control.hotend2.i_factor          0.097          # I ( integral ) factor
#temperature_control.hotend2.d_factor          24             # D ( derivative ) factor

#temperature_control.hotend2.max_pwm          64              # Max pwm, 64 is a good value if driving a 12v resistor with 24v.

# Bed control configuration
temperature_control.bed.enable               true             # Whether to activate this ( hotend ) module at all.
temperature_control.bed.thermistor_pin       0.23             # Pin for the thermistor to read
temperature_control.bed.heater_pin           2.7              # Pin that controls the heater
temperature_control.bed.thermistor           Honeywell100K    # See httpsmoothieware.orgtemperaturecontrol#thermistor
#temperature_control.bed.beta                3974             # Or set the beta value
temperature_control.bed.set_m_code           140              # M-code to set the temperature for this module
temperature_control.bed.set_and_wait_m_code  190              # M-code to set-and-wait for this module
temperature_control.bed.designator           B                # Designator letter for this module

#temperature_control.bed.readings_per_second       20      # How many times per second to read temperature from the sensor.
temperature_control.bed.pwm_frequency       10      # How many times per second to switch the heating element on oroff.
                                                      # Set to a low value ( 20 ) if using a Solid State Relay.

# Bang-bang ( simplified ) control
# See httpsmoothieware.orgtemperaturecontrol#bang-bang
temperature_control.bed.bang_bang           false             # Set to true to use bang bang control rather than PID
temperature_control.bed.hysteresis          2.0               # Set to the temperature in degrees C to use as hysteresis

# Bed configuration
temperature_control.bed.max_temp          120              # Set maximum temperature - Will prevent heating above 120 by default
#temperature_control.bed.min_temp         0                # Set minimum temperature - Will prevent heating below if set

# Safety control is enabled by default and can be overidden here, the values show the defaults
# See httpsmoothieware.orgtemperaturecontrol#runaway
temperature_control.bed.runaway_heating_timeout       0        # How long it can take to heat up, max is 2040 seconds.
temperature_control.bed.runaway_cooling_timeout       0        # How long it can take to cool own if temp is set lower, max is 2040 seconds
temperature_control.bed.runaway_range                   63        # How far from the set temp it can can wander, max is 63C
                                                                  # Need to set it high because bed does not cool off quickly
temperature_control.bed.runaway_error_range              1        # How far +- from set temp to detect set temperature for runaway

# PID configuration 
# See httpsmoothieware.orgtemperaturecontrol#pid
temperature_control.bed.p_factor         138.4             # P ( proportional ) factor
temperature_control.bed.i_factor         4.58              # I ( integral ) factor
temperature_control.bed.d_factor         1046              # D ( derivative ) factor

#temperature_control.bed.max_pwm          64 

#switch.psu.enable                            true             # turn atx on/off
#switch.psu.input_on_command                  M80              #
#switch.psu.input_off_command                 M81              #
#switch.psu.output_pin                        2.4              # small mosfet (NB not inverted)
#switch.psu.output_type                       digital          # on/off only
#switch.psu.ignore_on_halt                    true             # so the PSU does not turn off on a HALT condition (like limit trigger)
                                                               # However leave commented or set to false if you want the PSU to turn off for an over heat fault condition

## Switch modules
# See httpsmoothieware.orgswitch

# Switch module for fan control
switch.fan.enable                            true             # Enable this module
switch.fan.input_on_command                  M106             # Command that will turn this switch on
switch.fan.input_off_command                 M107             # Command that will turn this switch off
switch.fan.output_pin                        0.26             # Pin this module controls
switch.fan.output_type                       pwm              # PWM output settable with S parameter in the input_on_comand
#switch.fan.max_pwm                          255              # Set max pwm for the pin default is 255

#switch.misc.enable                          true             # Enable this module
#switch.misc.input_on_command                M42              # Command that will turn this switch on
#switch.misc.input_off_command               M43              # Command that will turn this switch off
#switch.misc.output_pin                      2.4              # Pin this module controls
#switch.misc.output_type                     digital          # Digital means this is just an on or off pin

## Temperatureswitch
# See httpsmoothieware.orgtemperatureswitch
# Automatically toggle a switch at a specified temperature. Different ones of these may be defined to monitor different temperatures and switch different swithxes
# Useful to turn on a fan or water pump to cool the hotend
#temperatureswitch.hotend.enable              true            #
#temperatureswitch.hotend.designator          T               # first character of the temperature control designator to use as the temperature sensor to monitor
#temperatureswitch.hotend.switch              misc            # select which switch to use, matches the name of the defined switch
#temperatureswitch.hotend.threshold_temp      60.0            # temperature to turn on (if rising) or off the switch
#temperatureswitch.hotend.heatup_poll         15              # poll heatup at 15 sec intervals
#temperatureswitch.hotend.cooldown_poll       60              # poll cooldown at 60 sec intervals

## Endstops
# See httpsmoothieware.orgendstops
endstops_enable                              true             # The endstop module is enabled by default and can be disabled here
delta_homing                                 true             # Forces all three axis to home a the same time regardless of what is specified in G28
alpha_min_endstop                            nc               # Pin to read min endstop, add a ! to invert if endstop is NO connected to ground
alpha_max_endstop                            1.24^            # Pin to read max endstop, uncomment this and comment the above if using max endstops
alpha_homing_direction                       home_to_max      # Or set to home_to_max and set alpha_max and uncomment the alpha_max_endstop
alpha_max                                    0                # This gets loaded as the current position after homing when home_to_max is set
beta_min_endstop                             nc               # Pin to read min endstop, add a ! to invert if endstop is NO connected to ground
beta_max_endstop                             1.26^            # Pin to read max endstop, uncomment this and comment the above if using max endstops
beta_homing_direction                        home_to_max      # Or set to home_to_max and set alpha_max and uncomment the alpha_max_endstop
beta_max                                     0                # This gets loaded as the current position after homing when home_to_max is set
gamma_min_endstop                            nc               # Pin to read min endstop, add a ! to invert if endstop is NO connected to ground
gamma_max_endstop                            1.28^            # Pin to read max endstop, uncomment this and comment the above if using max endstops
gamma_homing_direction                       home_to_max      # Or set to home_to_max and set alpha_max and uncomment the alpha_max_endstop
gamma_max                                    264.2            # This gets loaded as the current position after homing when home_to_max is set

alpha_max_travel                             500             # Max travel in mm for alphaX axis when homing
beta_max_travel                              500             # Max travel in mm for betaY axis when homing
gamma_max_travel                             500             # Max travel in mm for gammaZ axis when homing

# Endstops home at their fast feedrate first, then once the endstop is found they home again at their slow feedrate for accuracy
alpha_fast_homing_rate_mm_s                  50                # Alpha tower fast homing feedrate in mmsecond
alpha_slow_homing_rate_mm_s                  20                # Alpha tower slow homing feedrate in mmsecond
beta_fast_homing_rate_mm_s                   50                # Beta  tower fast homing feedrate in mmsecond
beta_slow_homing_rate_mm_s                   20                # Beta  tower slow homing feedrate in mmsecond
gamma_fast_homing_rate_mm_s                  50                # Gamma tower fast homing feedrate in mmsecond
gamma_slow_homing_rate_mm_s                  20                # Gamma tower slow homing feedrate in mmsecond

alpha_homing_retract_mm                      5                 # Distance to retract from the endstop after it is hit for alphaX
beta_homing_retract_mm                       5                 # Distance to retract from the endstop after it is hit for betaY
gamma_homing_retract_mm                      5                 # Distance to retract from the endstop after it is hit for gammaZ


# Endstop debouncing options
#endstop_debounce_count                       100              # Uncomment if you get noise on your endstops, default is 100
#endstop_debounce_ms                          1                # Uncomment if you get noise on your endstops, default is 1 millisecond debounce

# Endstop trim options
alpha_trim                                    0             # Software trim for alpha stepper endstop (in mm)
beta_trim                                     0             # Software trim for beta stepper endstop (in mm)
gamma_trim                                    0             # Software trim for gamma stepper endstop (in mm)

# End of endstop config
# Delete the above endstop section and uncomment next line and copy and edit Snippetsabc-endstop.config file to enable endstops for ABC axis
#include abc-endstop.config

## Z-probe
# See httpsmoothieware.orgzprobe
zprobe.enable                                false           # Set to true to enable a zprobe
#zprobe.probe_pin                             1.28!^          # Pin probe is attached to, if NC remove the !
#zprobe.slow_feedrate                         5               # Mmsec probe feed rate
#zprobe.debounce_count                       100             # Set if noisy
#zprobe.fast_feedrate                         100             # Move feedrate mmsec
#zprobe.probe_height                          5               # How much above bed to start probe
#gamma_min_endstop                           nc              # Normally 1.28. Change to nc to prevent conflict,

# Levelling strategy

# Example for the delta calibration strategy
#leveling-strategy.delta-calibration.enable   true            # Enable basic delta calibration
#leveling-strategy.delta-calibration.radius   100             # the probe radius

# Example for the delta grid leveling strategy
#leveling-strategy.delta-grid.enable          true            # Enable grid leveling
#leveling-strategy.delta-grid.radius          50              # Grid radius in millimeters
#leveling-strategy.delta-grid.size            7               # Grid size, must be an odd number
#leveling-strategy.delta-grid.do_home         true            # Whether to home before calibration
#leveling-strategy.delta-grid.save            true            # Whether to automatically save the grid
#leveling-strategy.delta-grid.initial_height  10              # Height at which to start probling

## Panel
# See httpsmoothieware.orgpanel
# Please find your panel on the wiki and copypaste the right configuration here
panel.enable false #                         true              # Set to true to enable the panel code

# Example viki2 config for an azteeg miniV2 with IDC cable
panel.lcd                                    viki2             # set type of panel
panel.spi_channel                            0                 # set spi channel to use P0_18,P0_15 MOSI,SCLK
panel.spi_cs_pin                             0.16              # set spi chip select
panel.encoder_a_pin                          3.25!^            # encoder pin
panel.encoder_b_pin                          3.26!^            # encoder pin
panel.click_button_pin                       2.11!^            # click button
panel.a0_pin                                 2.6               # st7565 needs an a0
#panel.contrast                              8                 # override contrast setting (default is 9)
#panel.encoder_resolution                    4                 # override number of clicks to move 1 item (default is 4)
#panel.button_pause_pin                      1.30^             # kill/pause set one of these for the auxilliary button on viki2
#panel.back_button_pin                       1.30!^            # back button recommended to use this on EXP1
panel.buzz_pin                               0.25              # pin for buzzer on EXP2
panel.red_led_pin                            2.8               # pin for red led on viki2 on EXP1
panel.blue_led_pin                           4.29              # pin for blue led on viki2 on EXP1
panel.external_sd                            false             # set to true to use external sd WARNING not supported.
panel.external_sd.spi_channel                0                 # set spi channel the sdcard is on
panel.external_sd.spi_cs_pin                 1.23              # set spi chip select for the sdcard
panel.external_sd.sdcd_pin                   1.31!^            # sd detect signal (set to nc if no sdcard detect)
panel.menu_offset                            1                 # some panels will need 1 here

panel.menu_offset                            0                 # Some panels will need 1 here

panel.alpha_jog_feedrate                     6000              # X jogging feedrate in mmmin
panel.beta_jog_feedrate                      6000              # Y jogging feedrate in mmmin
panel.gamma_jog_feedrate                     200               # Z jogging feedrate in mmmin

panel.hotend_temperature                     185               # Temp to set hotend when preheat is selected
panel.bed_temperature                        00                # Temp to set bed when preheat is selected

## Custom menus  Example of a custom menu entry, which will show up in the Custom entry.
# NOTE _ gets converted to space in the menu and commands,  is used to separate multiple commands
custom_menu.power_on.enable                true              #
custom_menu.power_on.name                  Power_on          #
custom_menu.power_on.command               M80               #

custom_menu.power_off.enable               true              #
custom_menu.power_off.name                 Power_off         #
custom_menu.power_off.command              M81               #



## Network settings
# See httpsmoothieware.orgnetwork
network.enable                               false            # Enable the ethernet network services
network.webserver.enable                     true             # Enable the webserver
network.telnet.enable                        true             # Enable the telnet server
network.ip_address                           auto             # Use dhcp to get ip address
# Uncomment the 3 below to manually setup ip address
#network.ip_address                           192.168.3.222   # The IP address
#network.ip_mask                              255.255.255.0   # The ip mask
#network.ip_gateway                           192.168.3.1     # The gateway address
#network.mac_override                         xx.xx.xx.xx.xx.xx  # Override the mac address, only do this if you have a conflict

## System configuration
# Serial communications configuration ( baud rate defaults to 9600 if undefined )
# For communication over the UART port, not the USBSerial port
uart0.baud_rate                              115200           # Baud rate for the default hardware ( UART ) serial port

second_usb_serial_enable                     false            # This enables a second USB serial port
#leds_disable                                true             # Disable using leds after config loaded
#play_led_disable                            true             # Disable the play led

# Kill button maybe assigned to a different pin, set to the onboard pin by default
# See httpsmoothieware.orgkillbutton
kill_button_enable                           true             # Set to true to enable a kill button
kill_button_pin                              2.12             # Kill button pin. default is same as pause button 2.12 (2.11 is another good choice)

#msd_disable                                 false            # Disable the MSD (USB SDCARD), see httpsmoothieware.orgtroubleshooting#disable-msd
#dfu_enable                                  false            # For linux developers, set to true to enable DFU

# Only needed on a smoothieboard
# See httpsmoothieware.orgcurrentcontrol
currentcontrol_module_enable                 true             # Control stepper motor current via the configuration file