Commit Graph

41 Commits

Author SHA1 Message Date
Markus Hitter 5d6de1761b Enable internal pullups for endstops on demand, only.
The binary size impact is moderate, like 18 bytes plus
4 bytes per endstop defined.

The story is a follows:

The endstop logic can be used to use a touch probe with PCB
milling. Connect the (conductive) PCB surface to GND, the
spindle/mill bit to the signal line, turn the internal pullups
on and there you go.

However, doing so with pullups always enabled and while milling
under (conductive) water showed polished mill and drill bits to
become matte after a few hours of usage. Obviously, this small
0.5 mA current from the pullup resistors going through the
rotating mill bit is sufficient to get some spark erosion going.
That's bad, as spark erosion happening also means tools become
dull faster than neccessary.

With this patch, pullups are turned on while being used, only,
so this sparc erosion should go away.
2012-12-03 19:48:13 +01:00
Markus Hitter d3af5460f1 Move heater initialisation from mendel.c to heater.c.
This enhances encapsulation.

An attempt to initialise only the timers in use was abandoned.
This isn't only unneccessary, as pins are still in normal
operation mode unless their bits in TCCR0A/TCCR2A/... are set,
even with the timer behind the pins running, it's also at least
tricky to sort pins and their timer bits at compile time. Doing
the sorting at runtime would cause additional binary size.
2012-11-08 16:22:46 +01:00
David Forrest 52ce6b5f52 More enablement of ATmega32U chip.
- ATmega32U timer 4 register handling differs from other AVRs:
  Change heater.c and mendel.c.
- LUFA USB recognition expanded in Makefile.
- Add section for __AVR_ATmega32U4__ in arduino.h.
2012-10-14 22:56:09 +02:00
Markus Hitter f06b013179 clock.c: introduce clock().
This simplifies calls to clock_10ms() a bit and saves 18 bytes
binary size.
2012-09-29 23:00:24 +02:00
Markus Hitter eaf6c453be Introduce gcode_init() and honor E_ABSOLUTE as the default. 2012-05-11 13:50:51 +02:00
Markus Hitter 5f9ae5b087 Implement M82/M83 and handle relative movements entirely different.
Instead of converting them to absolute first, then back to
relative and having all the fuzz with working on the queue's
start vs. working at the queue's end, mark a movement as relative
and use this directly.
2012-05-11 13:50:33 +02:00
Markus Hitter 86e20580f8 Make fast PWM optional.
In some cases the heater switching MOSFETs overheat and using a lower
PWM frequency is advised. See also:
http://reprap.org/wiki/Gen7_Research#Heat_vs._PWM_Frequency
2012-03-03 16:56:36 +01:00
Markus Hitter 2eff194cdf Rename STEPPER_ENABLE_INVERT to STEPPER_INVERT_ENABLE.
No functional change, just match the naming of single stepper
enable pins.
2011-10-05 14:13:28 +02:00
Markus Hitter a33964fc51 Clean up enable pin handling.
This includes:

- Initialize them in mendel.c.

- While running, switch the pin only.

- Sort mendel.c the same order as in pinio.h.

- Remove the requirement of a parameter for this flag, like
  it's with all other flags.
2011-10-05 14:13:25 +02:00
Markus Hitter 090da8ddad Clean up handling PS_ON_PIN and STEPPER_ENABLE_PIN.
This means moving power_on() from a macro to a function and
initializing the STEPPER_ENABLE_PIN in mendel.c.
2011-10-05 14:13:15 +02:00
Markus Hitter 51be23177a dda: move dda->n out into a new state variable
This required to also introduce dda_init() and re-adjust the
number of accelerating steps a bit.

Goal of this is to make look-ahead possible by just reducing
the number of deceleration steps and acceleration steps of
the next move. dda->c and dda->n no longer go down to their
initial values, then.

Also, quite a number of variables in the dda struct are used only when
the dda is live, so there is no need to store that for each
movement of the queue.
2011-05-15 20:34:35 +02:00
Jim McGee f22e691fee Convert the clock_flag variable into 3 separate varables.
This costs 2 bytes of ram, but saves 60 bytes of flash. Doing so
also eliminates the need to disable interrupts while clearing flags
in the ifclock macro.

Conflicts:

	clock.c
	timer.c
	timer.h
2011-05-15 09:56:32 +10:00
Michael Moon 2822721a59 improve and simplify heater pin initialisation by moving to io_init[mendel.c] and using macro magic with DEFINE_HEATER 2011-05-05 00:02:06 +10:00
Michael Moon 0dc7d77885 Massive Doxygen documentation addition
'make doc' then point your browser at doc/html/

Needs plenty of cleanup and polishing, but the main bulk is here

even documents your configuration! ;)
2011-03-22 01:34:36 +11:00
Markus Hitter 1214646ca8 mendel.c: Repsnapper expects a lowercase "start". 2011-03-20 02:09:16 +01:00
Ben Jackson 3543c6f081 mendel.c: ifdefs for hardware features in powerdown code 2011-03-04 19:42:21 +11:00
Ben Jackson ea4fdcf26a mendel.c, pinio.c: Make Z axes optional. 2011-03-04 19:42:00 +11:00
Michael Moon c6a9f24e24 don't set up SPI pins unless we're using them for a max6675 2011-03-03 11:22:49 +11:00
Markus Hitter d2bf65822e Make the extruder stepper optional.
Think of DC extruders, milling Mendels, ...
2011-03-02 00:43:03 +01:00
Markus Hitter d93e6e5d2c Internal pullup resistors: intitialize them in the correct order.
It was brought to my attention, one has to set them as input first,
then to configure them to use the Pullups.
2011-03-01 17:07:27 +01:00
Markus Hitter b7afdda3f7 Make the use of the internal pullup resistors optional.
All other firmwares set them to zero -> no internal pullup resistor,
as they counter-work to the design of the electronic endstops.
However, in conjunction with mechanical endstops, they're very practical.
2011-03-01 16:10:52 +01:00
Michael Moon 8188ff3593 merge intercom-protocol into master 2011-02-21 16:01:27 +11:00
Stephan Walter eecf3af9f1 analog mask calculated automagically 2011-02-21 13:57:51 +11:00
Stephan Walter 760487979c Added sample configuration for GEN6 board 2011-02-15 10:03:12 +11:00
Markus Amsler e41e659e66 intercom: Disable rx while doing tx. Avoids local RS485 half-duplex echo.
Signed-off-by: Michael Moon <triffid.hunter@gmail.com>
2011-02-14 11:31:45 +11:00
Markus Amsler b7f84a1812 itercom: Enable the RS485 transceiver on the host. 2011-02-14 11:05:52 +11:00
Markus Amsler 398f68e2db make *_MIN_PIN defines optional 2011-02-09 07:47:41 +11:00
Michael Moon 007d3c9736 initialise 16-bit timers on the mega1280 correctly 2011-01-25 12:47:22 +11:00
Michael Moon 096d7dfdf3 Merge release-candidate-triffid branch 2011-01-07 23:09:13 +11:00
Stephan Walter 3028b297f3 Add simulation code: use "make sim" 2010-10-21 11:05:55 +11:00
Michael Moon 930b042aab only print temperature if we're not talking to reprap host 2010-10-20 17:52:26 +11:00
Michael Moon 56c355c5bd split gcode parse/process into separate files for readability 2010-10-20 17:51:49 +11:00
Michael Moon e78381c56d Move configuration to config.h.dist 2010-09-27 09:20:07 +10:00
Markus Hitter 4679b45ac8 Send lowercase ok on init as well. 2010-09-24 20:09:19 +02:00
Michael Moon 1a2753ebfb turn off SPI if not needed, also start analog system 2010-09-16 21:43:13 +10:00
Michael Moon 6ce5895819 Merge branch 'master' of github.com:triffid/FiveD_on_Arduino 2010-09-16 17:15:30 +10:00
Markus Hitter ae774ed0ec mendel.c: remove unused references to standard C lib. 2010-09-14 19:44:35 +02:00
Michael Moon 99f2593321 UNTESTED support for sanguino 2010-09-13 17:40:21 +10:00
Michael Moon 273d63f242 splitting heater stuff out into a separate file 2010-09-12 14:47:49 +10:00
Michael Moon 0b51c1d0ab Merge branch 'mendel-triffid'
Conflicts:
	dda.c
	gcode.c
	machine.h
	temp.c
2010-08-10 14:55:06 +10:00
Michael Moon 595b66a341 setting up new branch 2 2010-08-10 14:26:24 +10:00