363 Commits (6483285bc5b41a6d1f38e1e52dc046be98ccdc06)

Author SHA1 Message Date
Scott Lahteine c685c7b7dd STM32F4: All pins can do PWM 7 years ago
Eduardo José Tagle d3c02410a8 [2.0.x] Small assorted collection of fixes and improvements (#10911)
* Misc fixes and improvements

- Get rid of most critical sections on the Serial port drivers for AVR and DUE. Proper usage of FIFOs should allow interrupts to stay enabled without harm to queuing and dequeuing.
  Also, with 8-bit indices (for AVR) and up to 32-bit indices (for ARM), there is no need to protect reads and writes to those indices.
- Simplify the XON/XOFF logic quite a bit. Much cleaner now (both for AVR and ARM)
- Prevent a race condition (edge case) that could happen when estimating the proper value for the stepper timer (by reading it) and writing the calculated value for the time to the next ISR by disabling interrupts in those critical and small sections of the code - The problem could lead to lost steps.
- Fix dual endstops not properly homing bug (maybe).

* Set position immediately when possible
7 years ago
Chris Pepper d87257f63c [2.0.x][LPC176x] Fix PIO build flags (#10909)
Don't build and link with different flags, the binary may not work.
7 years ago
Scott Lahteine cbcb284f4a Allow libServo::attach to work on Teensy 3.5/3.6 7 years ago
Chris Pepper f89f7c4a82 [2.0.x][LPC176x][Build] Force single precision constants, disable freestanding (#10892) 7 years ago
android444 16da5c62d0 Teensy 3.x fastio pullup (#10890) 7 years ago
Scott Lahteine 9b9b62b218 delay(SERVO_DELAY) => safe_delay(servo_delay[servo_index]) 7 years ago
android444 9c235ef821 [HAL]Add support for ST7920 - Teensy 3.x (#10872) 7 years ago
Bob-the-Kuhn 1c0ad8bbae wrong type of exit method 7 years ago
Eduardo José Tagle 6f330f397e [2.0.x] Buffer overflow and scroll fix, UTF8 cleanup (#10844) 7 years ago
Bob Kuhn 235facd545 install AVRDUDE 5.10, faster disk find for LPC1768 (#10849) 7 years ago
Bob Kuhn e2db509d58 [2.0.x] Update/Fix LPC1768 extra script upload_extra_script.py (#10843)
* Use a different method to find the volume info in Windows
7 years ago
Scott Lahteine 5f8591528e Remove #pragmas that don't help c files 7 years ago
Scott Lahteine c89649b46e Suppress U8glib build warnings 7 years ago
Scott Lahteine 4118199ddd Tweaks to core headers 7 years ago
Bob Kuhn 6dfbb39f83 [LPC1768] Add error-handling to upload script, update autobuild.py (#10802) 7 years ago
etagle 569df3fc0c Fix interrupt-based endstop detection
- Also implemented real endstop reading on interrupt.
7 years ago
etagle 0566badcef Add memory barrier, optimal interrupt on-off
Disabling an ISR on ARM has 3 instructions of latency. A Memory barrier is REQUIRED to ensure proper and predictable disabling. Memory barriers are expensive, so avoid disabling if already disabled (See https://mcuoneclipse.com/2015/10/16/nvic-disabling-interrupts-on-arm-cortex-m-and-the-need-for-a-memory-barrier-instruction/)
7 years ago
Scott Lahteine c2fb2f54a1 Use assembly for AVR ISR vectors
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
7 years ago
Scott Lahteine 206014a957 Fix LPC176x timer functions
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
7 years ago
Scott Lahteine 59f7861bcb
Move backtrace to the HAL folder (#10790) 7 years ago
Scott Lahteine c173a31060 Fix some compile warnings 7 years ago
Chris Pepper 9b64fdbc3a [LPC176x] HAL: Add missing program space definition (#10776) 7 years ago
Scott Lahteine 50270b53a0 Clear up some more compile warnings 7 years ago
etagle 40d7e12827 Removing warnings from compilation 7 years ago
Scott Lahteine fb608938f8 Prevent compilation of unused u8g-oriented code 7 years ago
Scott Lahteine 37b15fe4cf Reorder HAL timer header items 7 years ago
Scott Lahteine 883b0c9880
Convert custom maths to inlines (#10728) 7 years ago
Scott Lahteine 99ecdf59af Smarter MIN, MAX, ABS macros
Use macros that explicitly avoid double-evaluation and can be used for any datatype, replacing `min`, `max`, `abs`, `fabs`, `labs`, and `FABS`.

Co-Authored-By: ejtagle <ejtagle@hotmail.com>
7 years ago
etagle 9d98a62699 Followup to HAL optimizations and delays
- Cleanups, fixes for Due HAL code.
- TC_IER is write-only. Use TC_IMR to test ISR state.
7 years ago
Scott Lahteine a1062eec5b
Better handling of DELAY_NS and DELAY_US (#10716)
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
7 years ago
etagle 1b225a2809 DUE: Emergency parser for the USB CDC 7 years ago
Scott Lahteine 0436e16fb2 Apply shorthand Assembler macros 7 years ago
Scott Lahteine d1b619be52 Standardize some hexadecimals 7 years ago
Scott Lahteine 81b632c255 Additional temp-oriented improvements 7 years ago
nightdemonx e911635fb1 Add thermocouple with AD8495 support 7 years ago
Scott Lahteine 3f68203324 Modify FastIO error message 7 years ago
Scott Lahteine a474a7e675 Correct AVR_ATmega328_FAMILY macro
…as with #10540

Co-Authored-By: per1234 <per1234@users.noreply.github.com>
7 years ago
Scott Lahteine 456cf971af HAL FastIO cleanup and fixes 7 years ago
J.C. Nelson 5b5e322356 Set Interrupt Priorities and Grouping for STM32F103. (#10517) 7 years ago
Scott Lahteine 2578996631
[2.0.x] Emergency parser for multiple serial ports (#10524) 7 years ago
Chris Pepper 2242b98248 [LPC176x] Emergency Parser Feature (#10516) 7 years ago
Eduardo José Tagle c1e5ebbc1e [2.0.x] AVR: Atomic bit set and clear of upper pin ports without critical section (#10502)
* AVR: Atomic bit set and clear

The critical section can be dropped, saving 3 cycles per access. Also simplified pin toggling for all ports.
7 years ago
Scott Lahteine a3ce8a3fcd Add sanity checks for EMERGENCY_PARSER 7 years ago
Eduardo José Tagle 0c428a66d9 Proper AVR preemptive interrupt handling (#10496)
Also simplify logic on all ARM-based interrupts. Now, it is REQUIRED to properly configure interrupt priority. USART should have highest priority, followed by Stepper, and then all others.
7 years ago
Scott Lahteine f423e54f77 Strip trailing spaces 7 years ago
Scott Lahteine cb46cb8480
Add HAS_HEATED_BED conditional (#10495) 7 years ago
Scott Lahteine dea686cf55
Define short pin names in fastio for STM32 (#10461) 7 years ago
Karl Andersson 428c54f2ad [2.0.x] HAL for STM32F4 (#10434) 7 years ago
GMagician 20772492aa Fix compile warnings in AVR fastio.h (#10440) 7 years ago
Chris Pepper c9aed73987 Fix missed includes from HAL macro patch (#10416) 7 years ago
Scott Lahteine 29dda871cb Patch "upload_disk" to make python happy 7 years ago
Chris Pepper cc6d41e1d3 Use a macro for HAL header redirection (#10380) 7 years ago
Bob-the-Kuhn 85014cd132 [2.0.x] LPC1768 - automatic selection of upload disk (#10374) 7 years ago
Scott Lahteine 44a697ab04 Set STM32F1 TEMP_TIMER_FREQUENCY to 1K
Responding to https://github.com/MarlinFirmware/Marlin/pull/8833#issuecomment-379426803
7 years ago
Scott Lahteine 9ff4e9e1e6 Patch _IS_HW_SPI so defined() works 7 years ago
Lenbok 0e8242180d Chamber temperature monitoring and auto fan control.
This is an initial cut for feedback, updated for 2.0.x.

Chamber temperature is currently reported along with hot end and bed
temperatures to serial. The format is just like that used for hot end
and bed temperatures, but using 'C' prefix. As there is no heater,
target is always 0. Is this appropriate, is there a better way to report
chamber temperatures?

Chamber temperatures are not reported on the LCD in any way.

When auto chamber fan is enabled, it currently just uses the same
temperature threshold as the other auto controlled fans.

As the chamber temperature is not connected to any heater, it doesn't
undergo mintemp/maxtemp monitoring. This would need to change in the
future if chamber heating became a feature.
7 years ago
Bob-the-Kuhn acda4ecb20 Fix DUE Trinamic SW/HW SPI sanity check (#10336) 7 years ago
Bob-the-Kuhn ab715c70d1 TMC SPI sanity-check and pins debugging (#10324) 7 years ago
Bob-the-Kuhn 902c885782 Switch to TMC2130 compatible hardware SPI & misc (#10299) 7 years ago
Scott Lahteine 93305a2d5e Fix some spellings 7 years ago
Scott Lahteine 889fd5f71f Backtrace minor cleanup 7 years ago
Alexey Shvetsov cbdc78ec0f Fix STM32 compilation with PlatformIO (#10245) 7 years ago
Eduardo José Tagle 749f19e502 [2.0.x] Move backtrace to a shared location (#10237)
- And implement the `backtrace()` function call
7 years ago
xC0000005 7dc256432f Restore STM32F1 series to working order. (#10229)
The `_O2` attribute is no longer needed on the malyanlcd function, and the macros have broken timer numbers - reset this to a function to return the right device. Also fix the bit order cast in SPI.
7 years ago
etagle 8934a2c49b Added some missing Thumb instructions to the traceback follower, so now it is able to traceback through switch() statements 7 years ago
etagle 328edea03a Several fixes to the backtracer. Tested ant it works 7 years ago
ejtagle 9a24c0ae3f Tons of fixes to the backtracker code, and also added an extra backtracker that does not require unwind tables to work and it is used if unwind tables are absent 7 years ago
Bob-the-Kuhn f7857ac8a8
Merge pull request #10185 from ejtagle/bugfix-2.0.x
[2.0.x] DUE debugging: Solve WDT startup delay, add traceback & crash report uses programming port baud rate
7 years ago
Bob-the-Kuhn 509227fd80 change to mode 0 7 years ago
etagle c3b23974bd Added detection of case when no unwind tables are available 7 years ago
etagle b210bdf032 Now the Crash reporter uses the configured BAUDRATE to send the report through the Programming port. And also shows the traceback of functions as discussed. For that latest feature to work, you need to compile the project with -funwind-tables and -mpoke-function-name compiler flags 7 years ago
etagle c5730cf711 As Bob-The-Khun suggested, resetting the USB peripheral solves the huge startup delays that happen when a WDT reset happens and we are connected through the native port 7 years ago
Eduardo José Tagle 97e8a6ebd9 Various fixes for DUE... (#10152)
- Watchdog reset during SD Card initialization.
- Move `DebugMonitor` to `DebugMonitor_Due.cpp`.
- Since the watchdog is enabled on boot do extra resets during init.
- Have `thermalManager` do watchdog reset before its ISR starts to prevent reset.
- Ensure that timers are stopped before reprogramming them to address tone issues.
- Improve SAM3XE reset when reflashed through the native port.
7 years ago
Bob-the-Kuhn 785dbfc72d [2.0.x] FASTIO consistency (#10164) 7 years ago
Bob-the-Kuhn 7308ef7809 Add conditional, give DUE SPI a unique name, fix compiler warnings (#10168) 7 years ago
Bob-the-Kuhn 53362b81cc Tone fixes/changes (#10151) 7 years ago
Eduardo José Tagle bbfbf90797 Fix for DUE - no host support on native USB if SD card not enabled (#10148) 7 years ago
Bob-the-Kuhn 7f1afbfd60 can't type 7 years ago
Bob-the-Kuhn 23760d6c14 add full speed option 7 years ago
Bob-the-Kuhn cbcd1ed42d full speed 7 years ago
etagle 404fc94705 DUE USB CDC: Do not send any character if no program on the PC is listening to them. This avoids Marlin waiting until the user actually opens a program that is able to consume the output of Marlin 7 years ago
Scott Lahteine b858c638ad Fix compiler warning for HAL_ANALOG_SELECT 7 years ago
Bob-the-Kuhn c4467da53a
Merge pull request #10063 from ejtagle/bugfix-2.0.x
[2.0.x] DUE - add programming capability to native port
7 years ago
Scott Lahteine 36452b4d6e Fix filename HAL/DUE/servotimers.h => ServoTimers.h 7 years ago
ejtagle 703c8ac0ef Added Arduino-compatible kludge to the (ATMEL supplied) SAM3X USB stack we are now using so the Native port is also usable as a programming port on Arduino DUE and derived designs 7 years ago
Scott Lahteine dd19e74476 Cleanup trailing whitespace
@Bob-the-Kuhn — Please set your git options to remove trailing whitespace on commit.
7 years ago
Bob-the-Kuhn 0d8c15c01f restore PR 9661 files & V1 fix 7 years ago
Bob-the-Kuhn bf59a4a6df
Revert "[2.0.x] DUE compatibility with shared SPI LCDs, USB mass storage, add pin defs & update examples\MakerParts\Configuration.h" 7 years ago
Scott Lahteine 239902f861 Fix E2END and add EEPROM to Smart RAMPS
Reference #9983
7 years ago
Bob-the-Kuhn 914bb80bde removed SDSS init
added device & comm drivers for shared SPI LCDs

mistyped some updates in ultralcd_impl_DOGM.h

remove unwanted changes in onfiguration.h

still can't type

Update HAL_LCD_class_defines.h

include USB mass storage & misc
7 years ago
Bob-the-Kuhn 67a17446f2 Fix DUE incompatible enum type specification (#10017) 7 years ago
Bob-the-Kuhn 3c58ca181c [2.0.x] Correct step pulse width on LPC1768, DUE & Teensy35_36 (#10016) 7 years ago
Scott Lahteine e297748b22 Apply const, safe_delay in servo.* 7 years ago
Scott Lahteine 98d48fc731 Followup to HAL_timer_restrain
Followup to #9985
7 years ago
Scott Lahteine ca577c1638 Fix up various spacing, comments, and typos 7 years ago
Scott Lahteine d45f19d385 Remove Unicode from var name 7 years ago
Scott Lahteine 224688cc3b Fix for unicode-ignorant gcc preprocessor 7 years ago
Chris Pepper a1a88ebabc HAL function to ensure min stepper interrupt interval (#9985) 7 years ago
Scott Lahteine 2057177184 Make enums into implicit char 7 years ago