Skip to content

Commit

Permalink
Merge branch 'v3.01-dev-lpc' of https://github.com/gloomyandy/RepRapF…
Browse files Browse the repository at this point in the history
…irmware into v3.01-dev-lpc
  • Loading branch information
gloomyandy committed May 20, 2020
2 parents c2d63ff + c9f54cb commit 959680b
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 29 deletions.
50 changes: 21 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,31 @@
Please Note
===========
The information contained in this file is old and may be out of date, but is retained as it may contain useful information. For up to date details of the LPC RRF port V3 please see following links:
https://github.com/gloomyandy/RepRapFirmware/blob/v3.01-dev-lpc/WHATS_NEW_LPC.md
https://github.com/gloomyandy/RepRapFirmware/wiki
# LPC Port of RepRapFirmware v3
==========================

This is an experimental port of [RepRapFirmware](https://github.com/Duet3D/RepRapFirmware) for LPC1768/LPC1769 based boards.

# What is it?
It is a port of the [RepRapFirmware](https://github.com/Duet3D/RepRapFirmware) version 3 (RRF3) used on the Duet family of controllers.
The firmware can be used to control 3D printers, CNC machines, laser cutters and more.
There are a couple of features which sets it aside from Marlin, Smoothieware etc
- All settings for the firmware are configurable dynamically. No recompiling required
- Although it supports USB control through software such as Pronterface or Octoprint, the Duet Web Control (DWC) is the best way to control and configure the software
- Native network control through Wifi, Ethernet or an SBC

The boards which are currently supported are detailed in the wiki [here](https://github.com/gloomyandy/RepRapFirmware/wiki)

LPC Port of RepRapFirmware
==========================
### Main Differences to the Duet RRF
The main differences are detailed within the wiki [here](https://github.com/gloomyandy/RepRapFirmware/wiki/Differences)

This is an experimental port of [dc42's RepRapFirmware](https://github.com/dc42/RepRapFirmware/)) for LPC1768/LPC1769 based boards.

*Note: This firmware does not show up as a mass storage device when connected to a computer. Physical access to the internal sdcard may be required in order to revert back or update.*

### Main Differences to [dc42's RepRapFirmware](https://github.com/dc42/RepRapFirmware)
The CPUs targeted in this port only have 64K RAM which is less than those that run dc42s RepRapFirmware. Further, there is also some differences between the CPUs, and the following outlines the main differences in this port:
* A maximum of 4 files can be open at a time.
* Reduced write buffers for SDCard to save memory.
* External interrupts (i.e., fan rpm etc) are limited to 3.
* Reduced number of networking buffers and reduced MTU to save memory.
* Only 2 HTTP Sockets and Responders. Only 1 HTTP session at a time.
* Disabled Ftp and Telnet interfaces
* Configuration:
* GCode [M350](https://duet3d.dozuki.com/Wiki/Gcode#Section_M350_Set_microstepping_mode) - Microstepping for boards included in this port is done via hardware and thus M350 is not required. You may include it in your config.g if you like, but the command has no effect on the operation of the firmware.
* Some drivers (such as the DRV8825) require specifying the timing information as they require longer pulse timings than the configured default that can result in missed steps. Timing information for stepper drivers can be added using [M569](https://duet3d.dozuki.com/Wiki/Gcode#Section_M569_Set_motor_driver_direction_enable_polarity_and_step_pulse_timing). Timing information can usually be found in the stepper driver data sheets.
* Auto-calibration restrictions to save memory:
* Maximum number of probe points of 121; and
* Delta maximum calibration points of 16
* To support the number of different boards, a /sys/board.txt config file on the SDCard is used to configure the hardware pin assignments. Some example board config files [can be found here](https://github.com/sdavi/RepRapFirmware/tree/v2-dev-lpc/EdgeRelease/ExampleBoardConfig)
* M122 P200 command is used to print the mappings have been loaded by board.txt and displays all options supported by board.txt

**The LPC port is experimental and is likely to contain bugs - Use at your own risk**
## Getting Started
Information to support using this firmware can be found on the [wiki](https://github.com/gloomyandy/RepRapFirmware/wiki/Getting-Started---RRF3)
The wiki also details different methods of connecting for different boards.

## Support
For LPC specific questions (and general questions too), please get in touch over at the [RepRap Forum](https://reprap.org/forum/read.php?147,859857,page=1)
There is also a [Discord Channel](https://discord.gg/uS97Qs7) where LPC support can also be found.
For generic RepRapFirmware questions, please use the [Duet Forum](forum.duet.com)

**The LPC port is experimental and is likely to contain bugs - Use at your own risk**

Licence
=======
Expand Down
68 changes: 68 additions & 0 deletions src/LPC/Boards/AzteegX5Mini.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,4 +72,72 @@ constexpr BoardDefaults azteegX5Mini1_1Defaults = {
106.0, //digiPot Factor
};

//http://files.panucatt.com/datasheets/x5mini_wiring_v3.pdf
constexpr PinEntry PinTable_AzteegX5MiniV3[] =
{
//LEDs
{P1_18, PinCapability::wpwm, "led1"},
{P1_19, PinCapability::wpwm, "led2"},
{P1_20, PinCapability::wpwm, "led3"},
{P1_21, PinCapability::wpwm, "led4"},
{P4_28, PinCapability::wpwm, "play"},

//Thermistors
{P0_23, PinCapability::ainrw, "bendtemp,th0"},
{P0_24, PinCapability::ainrw, "eotemp,th1"},

//Endstops
{P1_24, PinCapability::read, "xstop"},
{P1_26, PinCapability::read, "ystop"},
{P1_28, PinCapability::read, "zstop"},
{P1_29, PinCapability::read, "e0stop,estop"},

//Heaters and Fans
{P2_7, PinCapability::wpwm, "bed,hend" },
{P2_5, PinCapability::wpwm, "e0heat,hbed" },
{P1_25, PinCapability::wpwm, "fan0" },
{P0_26, PinCapability::wpwm, "fan1" },

//EXP1 Pins
{P1_30, PinCapability::rwpwm, "P1.30"},
{P1_22, PinCapability::rwpwm, "P1.22"},
{P2_4, PinCapability::rwpwm, "P2.4"},
{P0_25, PinCapability::rwpwm, "P0.25"},
{P0_27, PinCapability::rwpwm, "sda,P0.27"},
{P4_29, PinCapability::rwpwm, "P4.29"},
{P0_28, PinCapability::rwpwm, "scl,P0.28"},
{P2_8, PinCapability::rwpwm, "P2.8"},
//3.3v
//GND

//EXP2 Pins
{P1_31, PinCapability::rwpwm, "P1.31"},
{P3_26, PinCapability::rwpwm, "P3.26"},
{P2_11, PinCapability::rwpwm, "P2.11"},
{P3_25, PinCapability::rwpwm, "P3.25"},
{P1_23, PinCapability::rwpwm, "P1.23"},
{P0_17, PinCapability::rwpwm, "P0.17"},
{P0_16, PinCapability::rwpwm, "P0.16"},
{P2_6, PinCapability::rwpwm, "P2.6"},
{P0_15, PinCapability::rwpwm, "P0.15"},
{P0_18, PinCapability::rwpwm, "P0.18"},
//GND
//5V

//Misc
//{P4_12, PinCapability::rwpwm, "Halt","P4.12"},


};

constexpr BoardDefaults azteegX5Mini3Defaults = {
{P0_10, P0_19, P0_21, P0_4, NoPin}, //enablePins
{P2_1, P2_2, P2_3, P2_0, NoPin}, //stepPins
{P0_11, P0_20, P0_22, P0_5, NoPin}, //dirPins
#if LPC_TMC_SOFT_UART
{NoPin, NoPin, NoPin, NoPin, NoPin}, //uartPins
0, // Smart drivers
#endif
113.5, //digiPot Factor
};
#endif
1 change: 1 addition & 0 deletions src/LPC/Pins_LPC.h
Original file line number Diff line number Diff line change
Expand Up @@ -395,6 +395,7 @@ constexpr BoardEntry LPC_Boards[] =
{"biquskr_1.3", PinTable_BIQU_SKR_v1_3, ARRAY_SIZE(PinTable_BIQU_SKR_v1_3), biquskr_1_3_Defaults},
{"biquskr_1.4", PinTable_BIQU_SKR_v1_4, ARRAY_SIZE(PinTable_BIQU_SKR_v1_4), biquskr_1_4_Defaults},
{"azteegx5mini_1.1", PinTable_AzteegX5MiniV1_1, ARRAY_SIZE(PinTable_AzteegX5MiniV1_1), azteegX5Mini1_1Defaults},
{"azteegx5mini_3", PinTable_AzteegX5MiniV3, ARRAY_SIZE(PinTable_AzteegX5MiniV3), azteegX5Mini3Defaults},
#endif
};

Expand Down

0 comments on commit 959680b

Please sign in to comment.