<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>Gen7 Board -ARM 2.0  DIY build</title>
        <description> I&#039;m attempting to build a Gen7 board-ARM 2.0 by following the
instructions on the Wiki page. I&#039;m not trying to save any money
but am only doing it in the pursuit of knowledge.  If it works I&#039;ll
just use it to replace the RAMPS on my antique Prusa2.

   So far everything is on order. I attached a list of my purchased parts from Mouser Electronics.
It pretty much covers everything with the exception of some resistors that I had
leftover from previous projects and the PCB. I ordered extra parts just in case I destroy something
 during the assembly process.

   I do have a couple of concerns. The connectors called out for the end stops &amp;amp; motors are listed 
as Molex KK256 series. I couldn&#039;t find any info on these so ordered KK254 series with a  2.54mm 
pitch. The hole spacing on the layout seem to justify this. I also ordered 25volt electrolytic caps. 
After reading further I noticed larger ones could be used. Also my 0.1uF ceramic capacitors look a 
little different than the ones shown. Hopefully they are okay to use.</description>
        <link>https://reprap.org/forum/read.php?13,734507,734507#msg-734507</link>
        <lastBuildDate>Wed, 11 Mar 2026 19:08:00 -0400</lastBuildDate>
        <generator>Phorum 5.2.23</generator>
        <item>
            <guid>https://reprap.org/forum/read.php?13,734507,764594#msg-764594</guid>
            <title>Re: Gen7 Board -ARM 2.0  DIY build</title>
            <link>https://reprap.org/forum/read.php?13,734507,764594#msg-764594</link>
            <description><![CDATA[ Hi,<br />
I have a ATmega 1284 based Gen 7 AVR 1.5 which has been running on Marlin 1.0.2 firmware without issues for a few years. I tried to updated to Marlin 1.1.0 RC8. using Arduino IDE 1.8.1 All went fine with the update and everything seems to work except the X endstop is not recognised with a M119. See below<br />
<br />
SENT: M119<br />
READ: Reporting endstop status<br />
READ: y_min: TRIGGERED<br />
READ: z_min: open<br />
READ: ok <br />
<br />
I know the problem is firmware related because when I go back to ver 1.0.2  the x endstop is reported as expected. I have checked the pin file in both firmware versions and pin 0 is assigned to X endstop in both. Can anyone throw some light on what might be happening?]]></description>
            <dc:creator>parto</dc:creator>
            <category>Controllers</category>
            <pubDate>Thu, 27 Apr 2017 07:31:43 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,734507,743206#msg-743206</guid>
            <title>Re: Gen7 Board -ARM 2.0  DIY build</title>
            <link>https://reprap.org/forum/read.php?13,734507,743206#msg-743206</link>
            <description><![CDATA[ "Why are not more people building these boards?"<br />
<br />
They are lazy and cheap.<br />
<br />
Well not quite..  making pcbs is fraught with issues.  Chemicals, getting and disposing of those is problematic for many. <br />
This also takes lots of time..  you have to actually check the pcbs for shorts etc<br />
Even drilling is quite time consuming, most don’t have the drill sizes needed.  <br />
<br />
Soldering.. many people have never soldered before! (shocking I know) so this puts people off. And then there is the SMD<br />
<br />
Firmware, many have the mind set if it can't run marlin its no good..   <br />
<br />
Cost.  You can get a mega and ramps for $15!! assembled, and working.. (if your luckly)<br />
<br />
Even now that there are a few 32 bit boards, most still build machines with ramps...  resistance to change I guess]]></description>
            <dc:creator>Dust</dc:creator>
            <category>Controllers</category>
            <pubDate>Sat, 28 Jan 2017 19:43:40 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,734507,743186#msg-743186</guid>
            <title>Re: Gen7 Board -ARM 2.0  DIY build</title>
            <link>https://reprap.org/forum/read.php?13,734507,743186#msg-743186</link>
            <description><![CDATA[ The very first print from the new board came out pretty good. I still have<br />
to fine tune some firmware settings but that should be a simple matter.<br />
<br />
<br />
<a href="https://youtu.be/IN8-U7Yy2p4" target="_blank"  rel="nofollow">First Gen7 board print</a><br />
<br />
<br />
<br />
    The total build cost ended up being a little over $ 125.00. This includes<br />
a new 450 watt ATX power supply and 4 - DRV8825 stepper drivers from<br />
Amazon. Not a bad price for a 32 bit printer controller. Also it is user serviceable in the event<br />
a part should fail. How many other control boards could make that claim? <br />
<br />
    I've attached a finalized parts list if anyone is thinking about building one of these. <br />
It should help to ease up the selection of parts through a local distributor.<br />
I choose Mouser because they had every single part in stock to ship the same<br />
day. <br />
<br />
one final question..... Why are not more people building these boards?<br />
I firmly believe that this board is grossly underrated.<br />
This board and the Teacup firmware make for a formidable duo.<br />
<br />
over and out<br />
<br />
Ray]]></description>
            <dc:creator>Shank man</dc:creator>
            <category>Controllers</category>
            <pubDate>Sat, 28 Jan 2017 17:49:55 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,734507,742225#msg-742225</guid>
            <title>Re: Gen7 Board -ARM 2.0  DIY build</title>
            <link>https://reprap.org/forum/read.php?13,734507,742225#msg-742225</link>
            <description><![CDATA[ Dust   many many thanks for the response<br />
<br />
  It turns out the X_MIN_PIN was set correctly all I had  to do was uncomment the # define X_INVERT_MIN lines and now the printer homes like its supposed to.<br />
I know its hard to diagnose a printer sight unseen but you got me looking in the right area and now the problem is no more. I'm one step closer to wrapping this up.<br />
<br />
#define X_STEP_PIN PIO1_5<br />
#define X_DIR_PIN PIO1_4<br />
#define X_MIN_PIN PIO1_8<br />
//#define X_MAX_PIN PIO1_8<br />
//#define X_ENABLE_PIN xxxx<br />
//#define X_INVERT_DIR<br />
#define X_INVERT_MIN<br />
//#define X_INVERT_MAX<br />
//#define X_INVERT_ENABLE<br />
<br />
#define Y_STEP_PIN PIO1_3<br />
#define Y_DIR_PIN PIO1_2<br />
#define Y_MIN_PIN PIO1_8<br />
//#define Y_MAX_PIN PIO1_8<br />
//#define Y_ENABLE_PIN xxxx<br />
//#define Y_INVERT_DIR<br />
#define Y_INVERT_MIN<br />
//#define Y_INVERT_MAX<br />
//#define Y_INVERT_ENABLE<br />
<br />
#define Z_STEP_PIN PIO0_1<br />
#define Z_DIR_PIN PIO0_2<br />
#define Z_MIN_PIN PIO1_8<br />
//#define Z_MAX_PIN PIO1_8<br />
//#define Z_ENABLE_PIN xxxx<br />
//#define Z_INVERT_DIR<br />
#define Z_INVERT_MIN<br />
//#define Z_INVERT_MAX<br />
//#define Z_INVERT_ENABLE<br />
<br />
<br />
<br />
best regards<br />
Ray]]></description>
            <dc:creator>Shank man</dc:creator>
            <category>Controllers</category>
            <pubDate>Wed, 25 Jan 2017 18:15:06 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,734507,741912#msg-741912</guid>
            <title>Re: Gen7 Board -ARM 2.0  DIY build</title>
            <link>https://reprap.org/forum/read.php?13,734507,741912#msg-741912</link>
            <description><![CDATA[ Need more information, details on your machine, in particular what axis move and where physically are the endstops?<br />
(On re reading thread I see you have Prusa2, its the same as a I3 movement wise) <br />
<br />
Eg  a I3 type machine X min endstop is on left, X max endstop is on right, Y min is at back and Y max is at the front and Z min is at down position and z max is up top.<br />
<br />
I suspect you have some max endstops<br />
<br />
You have to configure the firmware with what endstops you have<br />
<br />
From another post<br />
"If you mean 'I want to use max endstops rather than min endstops' then undefine the minimum endstop pins and define maximum endstop pins, teacup will home to the max endstops if there are no min endstops."<br />
<br />
eg if your using X max endstop, find: <br />
<br />
#define X_MIN_PIN PIO1_8<br />
//#define X_MAX_PIN PIO1_8<br />
<br />
and change it to<br />
<br />
//#define X_MIN_PIN PIO1_8<br />
#define X_MAX_PIN PIO1_8<br />
<br />
NB if its your Y axis, You probably have movement wrong, since the bed moves and not the hot end, so its backwards from what you think. <br />
Y + moves should move the bed forward and Y - moves should move the bed back.]]></description>
            <dc:creator>Dust</dc:creator>
            <category>Controllers</category>
            <pubDate>Tue, 24 Jan 2017 20:21:38 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,734507,741899#msg-741899</guid>
            <title>Re: Gen7 Board -ARM 2.0  DIY build</title>
            <link>https://reprap.org/forum/read.php?13,734507,741899#msg-741899</link>
            <description><![CDATA[ Thanks Dust, that makes perfectly good sense.<br />
<br />
  But I'm back begging for even more help. I think this is more of a firmware issue<br />
<br />
 I'm using Pronterface to control the motors.  When I hit +10 the motors move in positive direction 10mm &amp; when is -10 pressed they move in the reverse direction 10mm<br />
<b>But when I home the motors they move away from the end stops </b>.   I've attached my firmware if anybody wants to take a look and venture a guess<br />
<br />
any help is appreciated.<br />
<br />
Sincerely<br />
Ray<br />
<br />
<br />
/***************************************************************************\<br />
*                                                                           *<br />
* 1. CPU                                                                    *<br />
*                                                                           *<br />
\***************************************************************************/<br />
<br />
/** \def CPU_TYPE<br />
  CPU types a user should be able to choose from in configtool. All<br />
  commented out.<br />
*/<br />
//#define CPU_TYPE lpc1114<br />
<br />
/** \def CPU<br />
  CPU actually present on the board.<br />
*/<br />
#define CPU                      lpc1114<br />
<br />
/** \def F_CPU_OPT<br />
  CPU clock frequencies a user should be able to choose from in configtool.<br />
  All commented out.<br />
*/<br />
//#define F_CPU_OPT 12000000UL<br />
<br />
/** \def F_CPU<br />
  Actual CPU clock rate. #ifndef required for Arduino compatibility.<br />
*/<br />
#ifndef F_CPU<br />
#define F_CPU                    12000000UL<br />
#endif<br />
<br />
/** \def MOTHERBOARD<br />
  This is the motherboard, as opposed to the extruder. See extruder/ directory<br />
  for GEN3 extruder firmware.<br />
*/<br />
#define MOTHERBOARD<br />
<br />
<br />
/***************************************************************************\<br />
*                                                                           *<br />
* 2. PINOUTS                                                                *<br />
*                                                                           *<br />
\***************************************************************************/<br />
<br />
//#define TX_ENABLE_PIN            xxxx<br />
//#define RX_ENABLE_PIN            xxxx<br />
<br />
#define X_STEP_PIN               PIO1_5<br />
#define X_DIR_PIN                PIO1_4<br />
#define X_MIN_PIN                PIO1_8<br />
//#define X_MAX_PIN                PIO1_8<br />
//#define X_ENABLE_PIN             xxxx<br />
//#define X_INVERT_DIR<br />
//#define X_INVERT_MIN<br />
//#define X_INVERT_MAX<br />
//#define X_INVERT_ENABLE<br />
<br />
#define Y_STEP_PIN               PIO1_3<br />
#define Y_DIR_PIN                PIO1_2<br />
#define Y_MIN_PIN                PIO1_8<br />
//#define Y_MAX_PIN                PIO1_8<br />
//#define Y_ENABLE_PIN             xxxx<br />
//#define Y_INVERT_DIR<br />
//#define Y_INVERT_MIN<br />
//#define Y_INVERT_MAX<br />
//#define Y_INVERT_ENABLE<br />
<br />
#define Z_STEP_PIN               PIO0_1<br />
#define Z_DIR_PIN                PIO0_2<br />
#define Z_MIN_PIN                PIO1_8<br />
//#define Z_MAX_PIN                PIO1_8<br />
//#define Z_ENABLE_PIN             xxxx<br />
//#define Z_INVERT_DIR<br />
//#define Z_INVERT_MIN<br />
//#define Z_INVERT_MAX<br />
//#define Z_INVERT_ENABLE<br />
<br />
#define E_STEP_PIN               PIO0_3<br />
#define E_DIR_PIN                PIO0_7<br />
//#define E_ENABLE_PIN             xxxx<br />
//#define E_INVERT_DIR<br />
//#define E_INVERT_ENABLE<br />
<br />
#define PS_ON_PIN                PIO0_4<br />
//#define PS_INVERT_ON<br />
//#define PS_MOSFET_PIN            xxxx<br />
#define STEPPER_ENABLE_PIN       PIO0_4<br />
#define STEPPER_INVERT_ENABLE<br />
<br />
/** \def DEBUG_LED_PIN<br />
<br />
  Enable flashing of a LED during motor stepping.<br />
<br />
  Disabled by default. Uncommenting this makes the binary a few bytes larger<br />
  and adds a few cycles to the step timing interrrupt in timer.c. Also used<br />
  for precision profiling (profiling works even without actually having such<br />
  a LED in hardware), see<br />
  [<a href="http://reprap.org/wiki/Teacup_Firmware#Doing_precision_profiling" target="_blank"  rel="nofollow">reprap.org</a>]<br />
*/<br />
//#define DEBUG_LED_PIN            PIO1_9<br />
<br />
/** \def SD_CARD_SELECT_PIN<br />
<br />
  Chip Select pin of the SD card.<br />
<br />
  SD cards work over SPI and have a Chip Select or Slave Select (SS) pin.<br />
  Choose this pin according to where on the board your SD card adapter is<br />
  connected. Disabling this pin also disables SD card support and makes the<br />
  firmware binary about 4.5 kB smaller.<br />
<br />
  Connecting a device to SPI actually uses 4 signal lines, the other three<br />
  pins are choosen by Teacup automatically.<br />
*/<br />
//#define SD_CARD_SELECT_PIN       xxxx<br />
<br />
/** \def MCP3008_SELECT_PIN<br />
<br />
  Chip Select pin of the MCP3008 ADC.<br />
<br />
  MCP3008/4 analog-digital converter works over SPI and has a Chip Select pin.<br />
  Choose this pin according to where the MCP3008 is connected. Setting this<br />
  pin is required only if at least one temperature sensor of type MCP3008 is<br />
  configured. Else it's ignored.<br />
*/<br />
//#define MCP3008_SELECT_PIN       xxxx<br />
<br />
<br />
/***************************************************************************\<br />
*                                                                           *<br />
* 3. TEMPERATURE SENSORS                                                    *<br />
*                                                                           *<br />
\***************************************************************************/<br />
<br />
#ifndef DEFINE_TEMP_SENSOR<br />
  #define DEFINE_TEMP_SENSOR(...)<br />
#endif<br />
<br />
/** \def TEMP_MAX6675 TEMP_THERMISTOR TEMP_AD595 TEMP_PT100 TEMP_INTERCOM<br />
    \def TEMP_MCP3008<br />
<br />
  Which temperature sensor types are you using? Leave all used ones<br />
  uncommented, comment out all others to save binary size and enhance<br />
  performance.<br />
*/<br />
//#define TEMP_MAX6675<br />
#define TEMP_THERMISTOR<br />
//#define TEMP_AD595<br />
//#define TEMP_PT100<br />
//#define TEMP_INTERCOM<br />
//#define TEMP_MCP3008<br />
<br />
/** \def TEMP_SENSOR_PIN<br />
  Temperature sensor pins a user should be able to choose from in configtool.<br />
  All commented out.<br />
*/<br />
//#define TEMP_SENSOR_PIN PIO1_0<br />
//#define TEMP_SENSOR_PIN PIO1_1<br />
<br />
/** \def DEFINE_TEMP_SENSOR<br />
  Define your temperature sensors here. One line for each sensor, only<br />
  limited by the number of available ATmega pins.<br />
<br />
  Name must match the name of the corresponding heater. If a heater "extruder"<br />
  exists, a temperature sensor of that name has to exist as well. Same for<br />
  heater "bed". There can be one sensor without corresponding heater, name it<br />
  "noheater".<br />
<br />
  Types are same as TEMP_ list above - TT_MAX6675, TT_THERMISTOR, TT_AD595,<br />
  TT_PT100, TT_INTERCOM, TT_MCP3008. See list in temp.c.<br />
<br />
  The "additional" field is used for TT_THERMISTOR and TT_MCP3008 only. It<br />
  defines the name of the table(s) in thermistortable.h to use. This name is<br />
  arbitrary, often used names include THERMISTOR_EXTRUDER and THERMISTOR_BED.<br />
  Also, several sensors can share the same table, which saves binary size.<br />
<br />
  For a GEN3 set temp_type to TT_INTERCOM and temp_pin to AIO0. The pin<br />
  won't be used in this case.<br />
*/<br />
//DEFINE_TEMP_SENSORS_START<br />
//                 name      type           pin    additional<br />
DEFINE_TEMP_SENSOR(extruder, TT_THERMISTOR, PIO1_1,THERMISTOR_EXTRUDER)<br />
DEFINE_TEMP_SENSOR(bed,      TT_THERMISTOR, PIO1_0,THERMISTOR_BED)<br />
<br />
// Beta algorithm      r0      beta  r2    vadc<br />
// Steinhart-Hart      rp      t0    r0      t1    r1      t2    r2<br />
//TEMP_TABLE EXTRUDER (100000, 4092, 1000, 5.0)<br />
//TEMP_TABLE BED      (100000, 4092, 4700, 5.0)<br />
//DEFINE_TEMP_SENSORS_END<br />
<br />
<br />
/***************************************************************************\<br />
*                                                                           *<br />
* 4. HEATERS                                                                *<br />
*                                                                           *<br />
\***************************************************************************/<br />
<br />
#ifndef DEFINE_HEATER<br />
  #define DEFINE_HEATER(...)<br />
#endif<br />
<br />
/** \def HEATER_PIN<br />
  Heater pins a user should be able to choose from in configtool. All<br />
  commented out.<br />
*/<br />
//#define HEATER_PIN PIO0_10<br />
//#define HEATER_PIN PIO1_9<br />
<br />
/** \def DEFINE_HEATER<br />
  Define your heaters and devices here.<br />
<br />
  To attach a heater to a temp sensor above, simply use exactly the same<br />
  name - copy+paste is your friend. Some common names are 'extruder',<br />
  'bed', 'fan', 'motor', ... names with special meaning can be found<br />
  in gcode_process.c. Currently, these are:<br />
    HEATER_extruder   (M104)<br />
    HEATER_bed        (M140)<br />
    HEATER_fan        (M106)<br />
<br />
  Devices don't neccessarily have a temperature sensor, e.g. fans or<br />
  milling spindles. Operate such devices by setting their power (M106),<br />
  instead of setting their temperature (M104).<br />
<br />
  Also note, the index of a heater (M106 P#) can differ from the index of<br />
  its attached temperature sensor (M104 P#) in case sensor-less devices<br />
  are defined or the order of the definitions differs. The first defined<br />
  device has the index 0 (zero).<br />
<br />
  Set 'invert' to 0 for normal heaters. Setting it to 1 inverts the pin signal<br />
  for this pin, e.g. for a MOSFET with a driver.<br />
<br />
  Set 'pwm' to ...<br />
    frequency  in Hertz (Hz) on ARM based controllers to set PWM frequency of<br />
               this pin's output. Frequency isn't always accurate, Teacup<br />
               will choose the closest possible one. FAST_PWM is ignored<br />
               on such controllers. Valid range is 2 to 200'000 Hz.<br />
    1          on AVR based controllers for using Pulse Width Modulation (PWM)<br />
               on a pin supporting it. PWM frequency can be influenced only<br />
               somewhat and only globally with FAST_PWM.<br />
    0          for using a PWM-able pin in on/off mode.<br />
<br />
  Using PWM usually gives smoother temperature control but can conflict<br />
  with slow switches, like solid state relays. A too high frequency can<br />
  overheat MOSFETs; a too low frequency can make your heater to emit audible<br />
  noise; so choose wisely.<br />
<br />
  Pins which don't allow PWM are always operated in on/off mode.<br />
*/<br />
//DEFINE_HEATERS_START<br />
//            name      pin      invert  pwm<br />
DEFINE_HEATER(extruder, PIO0_10, 0,      20000)<br />
DEFINE_HEATER(bed,      PIO1_9,  1,      10)<br />
<br />
#define HEATER_EXTRUDER HEATER_extruder<br />
#define HEATER_BED HEATER_bed<br />
//DEFINE_HEATERS_END<br />
<br />
<br />
/***************************************************************************\<br />
*                                                                           *<br />
* 5. COMMUNICATION OPTIONS                                                  *<br />
*                                                                           *<br />
\***************************************************************************/<br />
<br />
/** \def BAUD<br />
  Baud rate for the serial RS232 protocol connection to the host. Usually<br />
  115200, other common values are 19200, 38400 or 57600. Ignored when USB_SERIAL<br />
  is defined.<br />
*/<br />
#define BAUD                     115200<br />
<br />
/** \def XONXOFF<br />
  Xon/Xoff flow control.<br />
<br />
  Redundant when using RepRap Host for sending G-code, but mandatory when<br />
  sending G-code files with a plain terminal emulator, like GtkTerm (Linux),<br />
  CoolTerm (Mac) or HyperTerminal (Windows).<br />
*/<br />
//#define XONXOFF<br />
<br />
/** \def USB_SERIAL<br />
  Define this for using USB instead of the serial RS232 protocol. Works on<br />
  USB-equipped ATmegas, like the ATmega32U4, only.<br />
*/<br />
//#define USB_SERIAL<br />
<br />
<br />
/***************************************************************************\<br />
*                                                                           *<br />
* 6. DISPLAY SUPPORT                                                        *<br />
*                                                                           *<br />
\***************************************************************************/<br />
<br />
/** \def DISPLAY_BUS_4BIT DISPLAY_BUS_8BIT DISPLAY_BUS_I2C DISPLAY_BUS_SPI<br />
<br />
  The bus used to connect the display to the controller. This is a property<br />
  of the display. With most displays there can be only one correct choice.<br />
<br />
  Comment in the one in use, comment out all others. If there is no display,<br />
  comment out all of them to remove display code for better performance.<br />
*/<br />
//#define DISPLAY_BUS_4BIT<br />
//#define DISPLAY_BUS_8BIT<br />
//#define DISPLAY_BUS_I2C<br />
//#define DISPLAY_BUS_SPI<br />
<br />
/** \def DISPLAY_RS_PIN DISPLAY_RW_PIN DISPLAY_E_PIN<br />
    \def DISPLAY_D4_PIN DISPLAY_D5_PIN DISPLAY_D6_PIN DISPLAY_D7_PIN<br />
<br />
  Pins necessary for the 4-bit parallel display bus. Taken into account with<br />
  DISPLAY_BUS_4BIT defined, only.<br />
*/<br />
//#define DISPLAY_RS_PIN           xxxx<br />
//#define DISPLAY_RW_PIN           xxxx<br />
//#define DISPLAY_E_PIN            xxxx<br />
//#define DISPLAY_D4_PIN           xxxx<br />
//#define DISPLAY_D5_PIN           xxxx<br />
//#define DISPLAY_D6_PIN           xxxx<br />
//#define DISPLAY_D7_PIN           xxxx<br />
<br />
/** \def DISPLAY_TYPE_SSD1306 DISPLAY_TYPE_HD44780<br />
<br />
  The type of display in use. There can be only one choice. Taken into account<br />
  only if one of DISPLAY_BUS_xxx is defined.<br />
<br />
  Comment in the display in use, comment out all others. If there is no<br />
  display, comment out all of DISPLAY_BUS_xxx.<br />
*/<br />
//#define DISPLAY_TYPE_SSD1306<br />
//#define DISPLAY_TYPE_HD44780<br />
<br />
<br />
************************************************************************************configuration h   *************************<br />
**********************************************************<br />
<br />
<br />
/***************************************************************************\<br />
*                                                                           *<br />
* 6. MECHANICAL/HARDWARE                                                    *<br />
*                                                                           *<br />
\***************************************************************************/<br />
<br />
/** \def KINEMATICS_STRAIGHT KINEMATICS_COREXY<br />
<br />
  This defines the type of kinematics your printer uses. That's essential!<br />
<br />
  Valid values (see dda_kinematics.h):<br />
<br />
  KINEMATICS_STRAIGHT<br />
    Motors move axis directions directly. This is the<br />
    traditional type, found in many printers, including<br />
    Mendel, Prusa i3, Mendel90, Ormerod, Mantis.<br />
<br />
  KINEMATICS_COREXY<br />
    A bot using CoreXY kinematics. Typical for CoreXY<br />
    are long and crossing toothed belts and a print head<br />
    moving on the X-Y-plane.<br />
*/<br />
#define KINEMATICS_STRAIGHT<br />
//#define KINEMATICS_COREXY<br />
<br />
/** \def STEPS_PER_M_X STEPS_PER_M_Y STEPS_PER_M_Z STEPS_PER_M_E<br />
  Steps per meter ( = steps per mm * 1000 ), calculate these values<br />
  appropriate for your machine.<br />
<br />
  All numbers are integers, so no decimal point, please :-)<br />
<br />
    Valid range: 20 to 4'0960'000 (0.02 to 40960 steps/mm)<br />
*/<br />
#define STEPS_PER_M_X            80000<br />
#define STEPS_PER_M_Y            80000<br />
#define STEPS_PER_M_Z            2560000<br />
#define STEPS_PER_M_E            690000<br />
<br />
/** \def MAXIMUM_FEEDRATE_X MAXIMUM_FEEDRATE_Y MAXIMUM_FEEDRATE_Z MAXIMUM_FEEDRATE_E<br />
  Used for G0 rapid moves and as a cap for all other feedrates.<br />
*/<br />
#define MAXIMUM_FEEDRATE_X       1000<br />
#define MAXIMUM_FEEDRATE_Y       1000<br />
#define MAXIMUM_FEEDRATE_Z       100<br />
#define MAXIMUM_FEEDRATE_E       25<br />
<br />
/** \def SEARCH_FEEDRATE_X SEARCH_FEEDRATE_Y SEARCH_FEEDRATE_Z<br />
  Used when doing precision endstop search and as default feedrate. No<br />
  SEARCH_FEEDRATE_E, as E can't be searched.<br />
*/<br />
#define SEARCH_FEEDRATE_X        300<br />
#define SEARCH_FEEDRATE_Y        300<br />
#define SEARCH_FEEDRATE_Z        100<br />
<br />
/** \def ENDSTOP_CLEARANCE_X ENDSTOP_CLEARANCE_Y ENDSTOP_CLEARANCE_Z<br />
<br />
  When hitting an endstop, Teacup properly decelerates instead of doing an<br />
  aprupt stop to save your mechanics. Ineviteably, this means it overshoots<br />
  the endstop trigger point by some distance.<br />
<br />
  To deal with this, Teacup adapts homing movement speeds to what your<br />
  endstops can deal with. The higher the allowed acceleration ( = deceleration,<br />
  see #define ACCELERATION) and the more clearance the endstop comes with,<br />
  the faster Teacup will do homing movements.<br />
<br />
  Set here how many micrometers (mm * 1000) your endstop allows the carriage<br />
  to overshoot the trigger point. Typically 1000 or 2000 for mechanical<br />
  endstops, more for optical ones. You can set it to zero, in which case<br />
  SEARCH_FEEDRATE_{XYZ} is used, but expect very slow homing movements.<br />
<br />
    Units: micrometers<br />
    Sane values: 0 to 20000   (0 to 20 mm)<br />
    Valid range: 0 to 1000000<br />
*/<br />
#define ENDSTOP_CLEARANCE_X      1000<br />
#define ENDSTOP_CLEARANCE_Y      1000<br />
#define ENDSTOP_CLEARANCE_Z      100<br />
<br />
/** \def X_MIN X_MAX Y_MIN Y_MAX Z_MIN Z_MAX<br />
  Soft axis limits. Define them to your machine's size relative to what your<br />
  G-code considers to be the origin (typically the bed's center or the bed's<br />
  front left corner).<br />
<br />
  Note that relocating the origin at runtime with G92 will also relocate these<br />
  limits.<br />
<br />
  Not defining them at all will disable limits checking and make the binary<br />
  about 250 bytes smaller. Enabling only some of them is perfectly fine.<br />
<br />
    Units: millimeters<br />
    Sane values: according to printer build room size<br />
    Valid range: -1000.0 to 1000.0<br />
*/<br />
//#define X_MIN                    0.0<br />
#define X_MAX                    155.0<br />
<br />
//#define Y_MIN                    0.0<br />
#define Y_MAX                    175.0<br />
<br />
//#define Z_MIN                    0.0<br />
#define Z_MAX                     60.0<br />
<br />
/** \def E_ABSOLUTE<br />
  Some G-code creators produce relative length commands for the extruder,<br />
  others absolute ones. G-code using absolute lengths can be recognized when<br />
  there are G92 E0 commands from time to time. If you have G92 E0 in your<br />
  G-code, define this flag.<br />
<br />
  This is the startup default and can be changed with M82/M83 while running.<br />
*/<br />
#define E_ABSOLUTE<br />
<br />
/** \def ACCELERATION_REPRAP ACCELERATION_RAMPING ACCELERATION_TEMPORAL<br />
  Choose optionally one of ACCELERATION_REPRAP, ACCELERATION_RAMPING or<br />
  ACCELERATION_TEMPORAL. With none of them defined, movements are done<br />
  without acceleration. Recommended is ACCELERATION_RAMPING.<br />
*/<br />
//#define ACCELERATION_REPRAP<br />
#define ACCELERATION_RAMPING<br />
//#define ACCELERATION_TEMPORAL<br />
<br />
/** \def ACCELERATION<br />
  How fast to accelerate when using ACCELERATION_RAMPING. Start with 10 for<br />
  milling (high precision) or 1000 for printing.<br />
<br />
    Units: mm/s^2<br />
    Useful range: 1 to 10'000<br />
*/<br />
#define ACCELERATION             1000<br />
<br />
/** \def LOOKAHEAD<br />
  Define this to enable look-ahead during *ramping* acceleration to smoothly<br />
  transition between moves instead of performing a dead stop every move.<br />
  Enabling look-ahead requires about 3600 bytes of flash memory.<br />
*/<br />
#define LOOKAHEAD<br />
<br />
/** \def MAX_JERK_X MAX_JERK_Y MAX_JERK_Z MAX_JERK_E<br />
  When performing look-ahead, we need to decide what an acceptable jerk to the<br />
  mechanics is. Look-ahead attempts to instantly change direction at movement<br />
  crossings, which means instant changes in the speed of the axes participating<br />
  in the movement. Define here how big the speed bumps on each of the axes is<br />
  allowed to be.<br />
<br />
  If you want a full stop before and after moving a specific axis, define<br />
  MAX_JERK of this axis to 0. This is often wanted for the Z axis. If you want<br />
  to ignore jerk on an axis, define it to twice the maximum feedrate of this<br />
  axis.<br />
<br />
  Having these values too low results in more than neccessary slowdown at<br />
  movement crossings, but is otherwise harmless. Too high values can result<br />
  in stepper motors suddenly stalling. If angles between movements in your<br />
  G-code are small and your printer runs through entire curves full speed,<br />
  there's no point in raising the values.<br />
<br />
    Units: mm/min<br />
    Sane values: 0 to 400<br />
    Valid range: 0 to 65535<br />
*/<br />
#define MAX_JERK_X               200<br />
#define MAX_JERK_Y               200<br />
#define MAX_JERK_Z               0<br />
#define MAX_JERK_E               200<br />
<br />
<br />
/***************************************************************************\<br />
*                                                                           *<br />
* 7. MISCELLANEOUS OPTIONS                                                  *<br />
*                                                                           *<br />
\***************************************************************************/<br />
<br />
/** \def USE_INTERNAL_PULLUPS<br />
<br />
  Most controller chips feature internal pullup resistors on their input pins,<br />
  which get used for endstops by turning on this switch. Don't turn it on when<br />
  using endstops which need no pull resistor, e.g. optical endstops, because<br />
  pull resistors are counterproductive there.<br />
<br />
  One can't use USE_INTERNAL_PULLUPS and USE_INTERNAL_PULLDOWNS at the same<br />
  time, of course.<br />
*/<br />
//#define USE_INTERNAL_PULLUPS<br />
<br />
/** \def USE_INTERNAL_PULLDOWNS<br />
<br />
  Some controller chips feature internal pulldown resistors on their input<br />
  pins, which get used for endstops by turning on this switch. Don't turn it<br />
  on when using endstops which need no pull resistor, e.g. optical endstops,<br />
  because pull resistors are counterproductive there.<br />
<br />
  One can't use USE_INTERNAL_PULLDOWNS and USE_INTERNAL_PULLUPS at the same<br />
  time, of course.<br />
*/<br />
#define USE_INTERNAL_PULLDOWNS<br />
<br />
/** \def Z_AUTODISABLE<br />
  Automatically disable Z axis when not in use. This is useful for printers<br />
  with a self-locking Z axis, e.g. the various Mendel derivates.<br />
<br />
  Other printers have a heavy Z axis or a not self-locking spindle. In that<br />
  case you should not activate this.<br />
<br />
  This option has no effect on controllers with a common stepper enable pin.<br />
*/<br />
#define Z_AUTODISABLE<br />
<br />
/** \def TEMP_HYSTERESIS<br />
  Actual temperature must be target +/- this hysteresis before target<br />
  temperature is considered to be achieved. Also, BANG_BANG tries to stay<br />
  within half of this hysteresis.<br />
<br />
    Unit: degree Celsius<br />
*/<br />
#define TEMP_HYSTERESIS          10<br />
<br />
/** \def TEMP_RESIDENCY_TIME<br />
  Actual temperature must be close to target (within set temperature<br />
  +- TEMP_HYSTERESIS) for this long before target is achieved (and a M116<br />
  succeeds).<br />
<br />
    Unit: seconds<br />
*/<br />
#define TEMP_RESIDENCY_TIME      60<br />
<br />
/** \def TEMP_EWMA<br />
<br />
  Smooth noisy temperature sensors. Good hardware shouldn't be noisy. Set to<br />
  1000 for unfiltered data (and a 140 bytes smaller binary).<br />
<br />
  Instrument Engineer's Handbook, 4th ed, Vol 2 p126 says values of<br />
  50 to 100 are typical. Smaller is smoother but slower adjusting, larger is<br />
  quicker but rougher. If you need to use this, set the PID parameter to zero<br />
  (M132 S0) to make the PID loop insensitive to noise.<br />
<br />
    Valid range: 1 to 1000<br />
*/<br />
#define TEMP_EWMA                1000<br />
<br />
/** \def REPORT_TARGET_TEMPS<br />
  With this enabled, M105 commands will return the current temperatures along<br />
  with the target temps, separated by a slash: ok T:xxx.x/xxx.x B:xxx.x/xxx.x<br />
  With this disabled, only temps will be returned: ok T:xxx.x B:xxx.x<br />
  Enabling adds 78 bytes to the image.<br />
*/<br />
#define REPORT_TARGET_TEMPS<br />
<br />
/** \def HEATER_SANITY_CHECK<br />
  Check if heater responds to changes in target temperature, disable and spit<br />
  errors if not largely untested, please comment in forum if this works, or<br />
  doesn't work for you!<br />
*/<br />
//#define HEATER_SANITY_CHECK<br />
<br />
/** \def EECONFIG<br />
  Enable EEPROM configuration storage.<br />
<br />
  Enabled by default. Commenting this out makes the binary several hundred<br />
  bytes smaller, so you might want to disable EEPROM storage on small MCUs,<br />
  like the ATmega168.<br />
*/<br />
#define EECONFIG<br />
<br />
/** \def BANG_BANG<br />
  Drops PID loop from heater control, reduces code size significantly<br />
  (1300 bytes!).<br />
*/<br />
//#define BANG_BANG<br />
<br />
/** \def BANG_BANG_ON<br />
  PWM value for Bang Bang 'on'.<br />
*/<br />
//#define BANG_BANG_ON             200<br />
<br />
/** \def BANG_BANG_OFF<br />
  PWM value for Bang Bang 'off'.<br />
*/<br />
//#define BANG_BANG_OFF            45<br />
<br />
/** \def MOVEBUFFER_SIZE<br />
  Move buffer size, in number of moves.<br />
<br />
  Note that each move takes a fair chunk of ram (107 bytes as of this writing),<br />
  so don't make the buffer too big. However, a larger movebuffer will probably<br />
  help with lots of short consecutive moves, as each move takes a bunch of<br />
  math (hence time) to set up so a longer buffer allows more of the math to<br />
  be done during preceding longer moves.<br />
*/<br />
#define MOVEBUFFER_SIZE          8<br />
<br />
/** \def DC_EXTRUDER DC_EXTRUDER_PWM<br />
  If you have a DC motor extruder, configure it as a "heater" above and define<br />
  this value as the index or name. You probably also want to comment out<br />
  E_STEP_PIN and E_DIR_PIN in the Pinouts section above.<br />
*/<br />
//#define DC_EXTRUDER              HEATER_motor<br />
//#define DC_EXTRUDER_PWM          180<br />
<br />
/** \def USE_WATCHDOG<br />
  Teacup implements a watchdog, which has to be reset every 250ms or it will<br />
  reboot the controller. As rebooting (and letting the GCode sending<br />
  application trying to continue the build with a then different Home point)<br />
  is probably even worse than just hanging, and there is no better restore<br />
  code in place, this is disabled for now.<br />
*/<br />
//#define USE_WATCHDOG<br />
<br />
/** \def TH_COUNT<br />
  Temperature history count. This is how many temperature readings to keep in<br />
  order to calculate derivative in PID loop higher values make PID derivative<br />
  term more stable at the expense of reaction time.<br />
*/<br />
#define TH_COUNT                 8<br />
<br />
/** \def FAST_PWM<br />
  Teacup offers two PWM frequencies, 76(61) Hz and 78000(62500) Hz on a<br />
  20(16) MHz electronics. The slower one is the default, as it's the safer<br />
  choice and reduces MOSFET heating. Drawback is, in a quiet environment you<br />
  might notice the heaters and your power supply humming.<br />
<br />
  Uncomment this option if you want to get rid of this humming and can afford<br />
  a hotter MOSFET or want faster PWM for other reasons.<br />
<br />
  See also: [<a href="http://reprap.org/wiki/Gen7_Research#MOSFET_heat_and_PWM" target="_blank"  rel="nofollow">reprap.org</a>]<br />
*/<br />
//#define FAST_PWM<br />
<br />
/** \def PID_SCALE<br />
  This is the scaling of internally stored PID values. 1024L is a good value.<br />
*/<br />
#define PID_SCALE                1024L<br />
<br />
/** \def ENDSTOP_STEPS<br />
  Number of steps to run into the endstops intentionally. As endstops trigger<br />
  false alarm sometimes, Teacup debounces them by counting a number of<br />
  consecutive positives.<br />
<br />
  Use 4 or less for reliable endstops, 8 or even more for flaky ones.<br />
<br />
    Valid range: 1...255.<br />
*/<br />
#define ENDSTOP_STEPS            8<br />
<br />
/** \def CANNED_CYCLE<br />
  G-code commands in this string will be executed over and over again, without<br />
  user interaction or even a serial connection. It's purpose is e.g. for<br />
  exhibitions or when using Teacup for other purposes than printing. You can<br />
  add any G-code supported by Teacup.<br />
<br />
  Note: don't miss these newlines (\n) and backslashes (\).<br />
*/<br />
/*<br />
#define CANNED_CYCLE "G1 X100 F3000\n" \<br />
"G4 P500\n" \<br />
"G1 X0\n" \<br />
"G4 P500\n"<br />
*/]]></description>
            <dc:creator>Shank man</dc:creator>
            <category>Controllers</category>
            <pubDate>Tue, 24 Jan 2017 18:31:36 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,734507,741626#msg-741626</guid>
            <title>Re: Gen7 Board -ARM 2.0  DIY build</title>
            <link>https://reprap.org/forum/read.php?13,734507,741626#msg-741626</link>
            <description><![CDATA[ "With the switches wired in series and if Y was already homed ( opening up the circuit ) how does the X know"<br />
<br />
It doesn’t.  <br />
<br />
You should not have any axis homed before you hit home.<br />
<br />
The homing procedure is It will home an axis then move it off home (so it still knows where it really is), and repeat for next axis]]></description>
            <dc:creator>Dust</dc:creator>
            <category>Controllers</category>
            <pubDate>Mon, 23 Jan 2017 22:54:57 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,734507,741611#msg-741611</guid>
            <title>Re: Gen7 Board -ARM 2.0  DIY build</title>
            <link>https://reprap.org/forum/read.php?13,734507,741611#msg-741611</link>
            <description><![CDATA[ I need some help with the end stops. I hate to ask stupid questions but I'm stumped<br />
 <br />
 My limit switches are wired in a normally closed state.<br />
<br />
  With the RAMPS/Marlin combo whenever  I pressed the home button in Pronterface the homing sequence has always been X first , Y second &amp; Z  last.<br />
<br />
With the switches wired in series and if Y was already homed ( opening up the circuit ) how does the X know<br />
<br />
when it reaches its orgin or home point ? Doesn't a signal need to be sent to the MCU to tell it to stop?  <br />
<br />
right now when I home any single axis the carriages move in the opposite direction very very slowly almost like stuttering.<br />
<br />
<br />
Ray]]></description>
            <dc:creator>Shank man</dc:creator>
            <category>Controllers</category>
            <pubDate>Mon, 23 Jan 2017 20:23:12 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,734507,741416#msg-741416</guid>
            <title>Re: Gen7 Board -ARM 2.0  DIY build</title>
            <link>https://reprap.org/forum/read.php?13,734507,741416#msg-741416</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>Shank man</strong><br />
The Gen7 circuit have all the switches  wired in series and if  X &amp; Y are closed and Z is open, running a<br />
M119 command will report that all of the switches are open. I could be wrong about this</div></blockquote>
<br />
That's correct, Gen7-ARM requires all endstops to be normally closed types. The somewhat misguiding M119 report doesn't matter, because if you do a homing movement, you know which axis is moving, so you can also easily figure which endstop caused the trigger. The only thing you can't do is to home several axes at the same time.<br />
<br />
If you still need more detailed control you can use pins on the SPI connector. Data bus pins there can be used as simple I/O pins, too.]]></description>
            <dc:creator>Traumflug</dc:creator>
            <category>Controllers</category>
            <pubDate>Mon, 23 Jan 2017 06:59:07 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,734507,741394#msg-741394</guid>
            <title>Re: Gen7 Board -ARM 2.0  DIY build</title>
            <link>https://reprap.org/forum/read.php?13,734507,741394#msg-741394</link>
            <description><![CDATA[ I now have Octopi installation next on my to do list.  <br />
<br />
looking at the circuit diagram, I have a better understanding on how the end stops work.<br />
Unlike a RAMPS1.4 board where each switch is assigned a pin on the MCU, the <br />
Gen7 board assigns one MCU pin for all three switches. The RAMPS board allows testing<br />
for the condition of each individual switch where as the Gen7 tests them as a whole.<br />
The Gen7 circuit have all the switches  wired in series and if  X &amp; Y are closed and Z is open, running a<br />
M119 command will report that all of the switches are open. I could be wrong about this<br />
<br />
  When I hooked up my switches to the RAMPS board I had them as normally closed and didn't think<br />
about it when I connected them to the Gen7. No matter what I did the M119 would report back as all being<br />
triggered of course.]]></description>
            <dc:creator>Shank man</dc:creator>
            <category>Controllers</category>
            <pubDate>Mon, 23 Jan 2017 05:51:34 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,734507,741343#msg-741343</guid>
            <title>Re: Gen7 Board -ARM 2.0  DIY build</title>
            <link>https://reprap.org/forum/read.php?13,734507,741343#msg-741343</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong></strong><br />This RaspberryPI is proving be an ideal candidate when it comes to <br />
 running Teacup, GNU tools, and the printer host Pronterface. If only I could<br />
 slice STL files with it.</div></blockquote>
<br />
I'm running Octopi on my RasPi3 and have a WiFi connection to my main PC. I can send .gcode files directly to the RasPi without being in the same room as my printer.]]></description>
            <dc:creator>o_lampe</dc:creator>
            <category>Controllers</category>
            <pubDate>Mon, 23 Jan 2017 03:44:12 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,734507,741243#msg-741243</guid>
            <title>Re: Gen7 Board -ARM 2.0  DIY build</title>
            <link>https://reprap.org/forum/read.php?13,734507,741243#msg-741243</link>
            <description><![CDATA[ Thanks again Traumflug. This time for pointing me in the right direction.<br />
<br />
<br />
     After flailing about and wasting 5+ hours trying to get the Windows programs to compile and upload the firmware, I was<br />
becoming a little frustrated and decided to give Ubuntu a try. I burned 3 versions of boot disks, ubuntu V8.04.0,  V11.10 &amp; V11.04. All  old versions I know but all I have is a 13 year old Sony Vaio PC. My first try was with V8.04.0 and it turned out to only have Python 2.6.5 and it needed to be at least 2.7.X.  Trying to upgrade it was futile. My second try with  V11.10 it turned out to be a little too much for my PC to load. It locked up three times in a row so I loaded in V11.04. This one had Python 2.7.9 loaded as a default but no wxPython and every attempt to install that ended in failure. Teacup won't load without the wxPython installed. Its needed to bring up the Teacup configure screen GUI. And to top it all off I still couldn't get the GNU tools loaded in. Every sudo apt-get resulted in a no repository found or some other  kind of error. <br />
<br />
    I decided to give my RaspberryPI3 one more try. It only has the NOOBS operating system loaded on it. This is the same one that I had no success  loading the GNU tools with earlier on. Every try resulted in more" no repositories found" until I landed on<br />
this site.<br />
<br />
[<a href="http://www.whence.com/arm/easy-arm-none-eabi-gcc-toolchain/" target="_blank"  rel="nofollow">www.whence.com</a>]<br />
<br />
I copied and pasted this little gem and it loaded right up.. <br />
<br />
sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded<br />
sudo apt-get update<br />
sudo apt-get install gcc-arm-none-eabi<br />
<br />
Once this was installed everything fell into place. I had loaded<br />
in Pronterface a few months ago so all of the needed Python<br />
files were already there.<br />
<br />
I installed the lpc21isp from  <br />
<br />
[<a href="https://installion.co.uk/ubuntu/vivid/universe/l/lpc21isp/install/index.html" target="_blank"  rel="nofollow">installion.co.uk</a>]<br />
<br />
<br />
    I ran the Teacup configure tool from the script, selected my board and saved<br />
the config.h file. The Makefile-Arm file was renamed and saved.  I ran the make<br />
command from the terminal window and the file compiled with no errors.<br />
Uploading the now compiled firmware only took a few seconds. Pronterface<br />
connected to the controller immediately. <br />
<br />
   This RaspberryPI is proving be an ideal candidate when it comes to <br />
running Teacup, GNU tools, and the printer host Pronterface. If only I could<br />
slice STL files with it.<br />
<br />
Now that the board is hooked up to the printer I find myself confronted with a couple more dilemmas.<br />
<br />
The end stops are always triggered. I'm using  a lever style endstop and even if I disconnect<br />
it from the board and run a M119 they still show as being triggered. I tried uncommenting<br />
the pull up &amp; pull down resistors but it didn't seem to make any difference.<br />
<br />
   Also, when I plug in the jumper to upload the firmware my hot end activates. I have to<br />
remove the jumper and power down the board in order to shut it off. I'll have to take a closer<br />
look at the board. I might have a shorted trace somewhere]]></description>
            <dc:creator>Shank man</dc:creator>
            <category>Controllers</category>
            <pubDate>Sun, 22 Jan 2017 16:26:17 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,734507,739161#msg-739161</guid>
            <title>Re: Gen7 Board -ARM 2.0  DIY build</title>
            <link>https://reprap.org/forum/read.php?13,734507,739161#msg-739161</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>Shank man</strong><br />
Photos of completed controller</div></blockquote>
<br />
Nice work!<br />
<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>Shank man</strong><br />
When i launch the the gcc-arm- program  I'm greeted with a <br />
terminal window with a blinking cursor. I'm not sure what to do<br />
with this.</div></blockquote>
<br />
Gcc is a command line tool. Which means, you can't "launch" it like e.g. Word, Photoshop or Internet Explorer.<br />
<br />
You're expected to change directory into the folder with Teacup source files and type<br />
<pre class="bbcode">make -f Makefile-ARM</pre>
there. Then to fix missing pieces as they appear. Installing a GNU Make executable, editing Makefile-ARM for the right serial port, such things.<br />
<br />
Running Make should in turn run a number of other commands and after that, there should be a file "teacup.hex". That's the compiled firmware.<br />
<br />
<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>Shank man</strong><br />
My next course of action is to reformat my hard drive, install Ubuntu and give it another try using Linux instead of Windows.</div></blockquote>
<br />
Given your partitioning setup on the hard drive allows to create additional partitions, Ubuntu will happily install alongside Windows in a dual-boot fashion. All done by the Ubuntu installer it's self, including shrinking existing partitions as necessary.<br />
<br />
In general, using some Linux distribution is much more fun when dealing with Open Source software. Developers use such OSs (or Macintoshes, which are also Unix-like), so you see what they see. The only use of Windows in the open source world is the ability to install kind of a Linux on top of it (by installing a plentitude of packages manually).]]></description>
            <dc:creator>Traumflug</dc:creator>
            <category>Controllers</category>
            <pubDate>Sun, 15 Jan 2017 21:11:13 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,734507,739140#msg-739140</guid>
            <title>Re: Gen7 Board -ARM 2.0  DIY build</title>
            <link>https://reprap.org/forum/read.php?13,734507,739140#msg-739140</link>
            <description><![CDATA[ thank you Traumflug. I am grateful for the help<br />
<br />
<br />
     I am becoming increasing enamored by this little board.<br />
One feature that stands out is the use of the ATX board connectors<br />
and using a ATX power supply as a power source.<br />
This is a clever approach, Not only does it eliminate any chance of making<br />
a wrong connection, the tight fitting receptacle connections will<br />
be less prone to long term failure as sometimes seen with<br />
screw terminal type connectors.<br />
<br />
<br />
     Before soldering the MCP2200 on, I wanted to check the board once more<br />
for any opens or shorts. The assembly instructions have the USB chip being the<br />
first item to solder on but I was doubtful of my soldering abilities to get this done<br />
without any making shorts between the pins so I  skipped this step and started in with the resistors. Doing<br />
this board check gave me a good excuse to put it off soldering on the USB chip a little bit longer.<br />
<br />
<br />
    Using a 8 pin Pololu header, some motor connectors and a terminal strip<br />
I was able to make a breakout cable to check the 8 pin sockets. It made<br />
it a little easier to check these sockets for shorts, continuity to the<br />
motor headers, jumpers and connections to the MCU socket. Checking the board<br />
was a little tedious and took me a few hours but it did expose a bad solder joint on the MCU socket so<br />
it was overall a worthwhile effort. The breakout cable was also useful when it<br />
came time to do the voltage checks on the Pololu headers. I hooked the negative lead from voltage meter to<br />
a ground pin on one of the unused disc connectors coming from the power<br />
supply and used the red lead to probe the points on the terminal strip to <br />
check the voltage.<br />
<br />
[attachment 88975 cable_1.JPG]<br />
<br />
[attachment 88976 cable_2.JPG]<br />
<br />
<br />
     After these checks I soldered on the MCP2200 and the Mofsets. I did have <br />
to file down the tip on my soldering iron to get to the MCP2200 leads<br />
but it turned out to be a relatively easy process. I held it in place<br />
with some kapton tape to keep it from moving and tacked down a corner lead with some solder.<br />
I didn't see any point with soldering down any of the unused leads so I left them alone.<br />
Once the soldering was finished, I scrubbed the back of the board with a toothbrush<br />
and some Isopropyl alcohol to get rid of any flux.<br />
<br />
      All of the voltage checks came out fine. The LED's lit up like they were susposed to.<br />
 I hooked up the ATX power supply and plugged in the USB cable to my PC and  the board immediately <br />
<br />
showed up as a COM port in the device manager.<br />
<br />
Photos of completed controller<br />
<br />
[attachment 88977 completedTop.JPG]<br />
<br />
[attachment 88978 compltedBot.JPG]<br />
<br />
<br />
      Now this is where my progress comes to a halt.  When it comes to uploading<br />
the firmware to the board  i am totally flummoxed. I don't understand<br />
how Teacup, the GCC Arm compiler and the lpc21isp files tie together to<br />
get the firmware uploaded . When it comes to the Arduino IDE and<br />
Marlin i've never had a problem. There isn't support for the Gen7 ARM board<br />
in Marlin so this rules out using the Arduino IDE. My only choice left is to figure this out. I don't have <br />
any Linux PC's so I'm trying to do all this on a old Windows XP PC. I tried<br />
using a Raspberry PI3 to do this but it couldn't find the gcc-arm library or something to that<br />
effect.<br />
<br />
<br />
***********************************************************************<br />
When i launch the the gcc-arm- program  I'm greeted with a <br />
terminal window with a blinking cursor. I'm not sure what to do<br />
with this. I admit to not being a computer savy person.<br />
<br />
C:\Program Files\GNU Tools ARM Embedded\5.4 2016q3&gt;<br />
<br />
*********************************************************************<br />
When I launch the LPC21isp file, it flashes on the screen and<br />
promptly dissappears.<br />
***************************************************************************<br />
<br />
When I try to build the file in Teacup I get this error code...............<br />
<br />
<br />
C:\Program Files\GNU Tools ARM Embedded\5.4 2016q3\bin -c -DF_CPU=12000000UL -mmcu=lpc1114 -Wall <br />
-Wstrict-prototypes -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Winline <br />
-fno-move-loop-invariants -fno-tree-scev-cprop -Os -ffunction-sections -finline-functions-called-once <br />
-mcall-prologues -Wa,-adhlns="C:\Documents and Settings\Marcus <br />
Welby\Desktop\Tea_cup\Teacup_Firmware-master\Teacup_Firmware-master\build\analog-arm.al" <br />
-save-temps=obj -o "C:\Documents and Settings\Marcus <br />
Welby\Desktop\Tea_cup\Teacup_Firmware-master\Teacup_Firmware-master\build\analog-arm.o" <br />
<br />
<br />
"C:\Documents and Settings\Marcus <br />
Welby\Desktop\Tea_cup\Teacup_Firmware-master\Teacup_Firmware-master\analog-arm.c"<br />
Exception occurred trying to run<br />
C:\Program Files\GNU Tools ARM Embedded\5.4 2016q3\bin -c -DF_CPU=12000000UL -mmcu=lpc1114 -Wall <br />
-Wstrict-prototypes -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Winline <br />
-fno-move-loop-invariants -fno-tree-scev-cprop -Os -ffunction-sections -finline-functions-called-once <br />
-mcall-prologues -Wa,-adhlns="C:\Documents and Settings\Marcus <br />
Welby\Desktop\Tea_cup\Teacup_Firmware-master\Teacup_Firmware-master\build\analog-arm.al" <br />
-save-temps=obj -o "C:\Documents and Settings\Marcus <br />
Welby\Desktop\Tea_cup\Teacup_Firmware-master\Teacup_Firmware-master\build\analog-arm.o" <br />
"C:\Documents and Settings\Marcus <br />
Welby\Desktop\Tea_cup\Teacup_Firmware-master\Teacup_Firmware-master\analog-arm.c"<br />
Build terminated abnormally.<br />
<br />
*********************************************************************************************************<br />
<br />
<br />
      I know I'm missing a step somewhere but I can't figure it out. I'm flying blind.<br />
My next course of action is to reformat my hard drive, install Ubuntu and give it another<br />
try using Linux instead of Windows.]]></description>
            <dc:creator>Shank man</dc:creator>
            <category>Controllers</category>
            <pubDate>Sun, 15 Jan 2017 18:23:31 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,734507,736711#msg-736711</guid>
            <title>Re: Gen7 Board -ARM 2.0  DIY build</title>
            <link>https://reprap.org/forum/read.php?13,734507,736711#msg-736711</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>Shank man</strong><br />
Like a dummkopf I also ordered the wrong USB-TTL adapter chip. I wasn't paying close enough <br />
attention when picking out the parts. I ordered a 579-MCP2200-I/SS (SS=super small package ??). I <br />
reordered part 579-MCP2200-I/SO. They are only $2.00 each but $8.00 to ship the damn things if I <br />
want to wait a week to get it.</div></blockquote>
<br />
Such incidents are about the reason why one can order electronic components separately from the PCB on reprap-diy.com.<br />
<br />
Also take care of this 8-pin header supplying heaters. Apparently there are different ATX PSU versions out there. Some require this header to be soldered as shown, sometimes turned 180 deg. The only general rule I have is: 12V (yellow) wires have to be towards the board edge, GND (black) wires closer to MOSFETs.<br />
<br />
Other than that: well done!]]></description>
            <dc:creator>Traumflug</dc:creator>
            <category>Controllers</category>
            <pubDate>Sun, 08 Jan 2017 12:29:09 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,734507,736701#msg-736701</guid>
            <title>Re: Gen7 Board -ARM 2.0  DIY build</title>
            <link>https://reprap.org/forum/read.php?13,734507,736701#msg-736701</link>
            <description><![CDATA[ Progress is slow but the board is coming together. I expected to be finished by now but<br />
never having made a circuit board before this is all new to me. <br />
<br />
    I encountered a few setbacks along the way. I had soldered a dozen or so components to the <br />
board and found out why the ceramic capacitors looked  different than the ones pictured. I had <br />
mistakenly ordered ceramic DISC capacitors instead of the multi-layer ones. The bigger head of <br />
these disc capacitors prevent them from fitting under the drivers. Also the leads have a wider <br />
spacing. I briefly considered mounting them on the underside of the PCB but decided against it. <br />
That would have been a halfassed solution and I don't want to start cutting corners so early in the <br />
build stage.<br />
<br />
    To replace the disc capacitors I ordered these....<br />
<br />
    The 0.1uF is now  Mouser # 810-FG16C0G1H104JNT6<br />
and the 22pF is now part #81-RCE5C1H220J0A2H3B. <br />
<br />
     Like a dummkopf I also ordered the wrong USB-TTL adapter chip. I wasn't paying close enough <br />
attention when picking out the parts. I ordered a 579-MCP2200-I/SS (SS=super small package ??). I <br />
reordered part 579-MCP2200-I/SO. They are only $2.00 each but $8.00 to ship the damn things if I <br />
want to wait a week to get it. If I want it sooner I have to pay $15.00 for three day delivery. Ordering <br />
these wrong parts turned out for the best because it halted the assembly and  forced me to take <br />
another look at my PCB.   The nagging feeling of using a suspect PCB finally got the best of me <br />
and I aborted the build. The only thing good to come of this was that I got in a little soldering and <br />
board drilling practice. I went back to the ironing board to pursue a better etched PCB. Finally after <br />
9 tries I have what I know is a good board. I printed off the earlier board circuit paths with the <br />
printer settings set at 600 dots per inch &amp; 100% density. I believe this 100% density setting was <br />
depositing too much toner on the paper and when I ironed it down it melted and spread the toner <br />
and closed up the gaps between the traces. When I adjusted my printer settings to 1200 dots per <br />
inch and changed to density level to 50% it made a world of difference. I 'm very confident<br />
about this new board. There was a place in the upper LH corner where the toner didn't adhere to<br />
the board but this was easily fixed with a marker<br />
<br />
[attachment 88535 number9a.JPG]<br />
<br />
[attachment 88536 number9.JPG]<br />
<br />
partially completed board<br />
<br />
[attachment 88537 top.JPG]<br />
<br />
<br />
[attachment 88539 soldered.JPG]]]></description>
            <dc:creator>Shank man</dc:creator>
            <category>Controllers</category>
            <pubDate>Sun, 08 Jan 2017 12:05:40 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,734507,734902#msg-734902</guid>
            <title>Re: Gen7 Board -ARM 2.0  DIY build</title>
            <link>https://reprap.org/forum/read.php?13,734507,734902#msg-734902</link>
            <description><![CDATA[ Using the toner transfer method to create a usable PCB must take a special set <br />
of skills. Skills in which I am severely lacking. It took me a 1/2 dozen tries to make <br />
what I believe to be a usable Gen7 PCB. I repeated the steps I used for the last one to make a second <br />
one. The second one turned out only slightly better. Both look kind of rough but I <br />
verified continuity of all the traces and made sure none of the paths were shorting out. I wish they had <br />
come out a little bit better. This method is not an ideal way to create them in the first place and maybe this is <br />
as good as they get. I'm not very confident about these boards but I'm moving <br />
forward. I'm going to assemble the less crappy of the two boards<br />
<br />
[attachment 88182 number6.JPG]]]></description>
            <dc:creator>Shank man</dc:creator>
            <category>Controllers</category>
            <pubDate>Mon, 02 Jan 2017 10:31:52 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,734507,734587#msg-734587</guid>
            <title>Re: Gen7 Board -ARM 2.0  DIY build</title>
            <link>https://reprap.org/forum/read.php?13,734507,734587#msg-734587</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>Shank man</strong><br />
The connectors called out for the end stops &amp; motors are listed as Molex KK256 series. I couldn't find any info on these so ordered KK254 series with a  2.54mm pitch.</div></blockquote>
<br />
KK254 is correct. I just fixed the Wiki.]]></description>
            <dc:creator>Traumflug</dc:creator>
            <category>Controllers</category>
            <pubDate>Sun, 01 Jan 2017 05:57:16 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,734507,734507#msg-734507</guid>
            <title>Gen7 Board -ARM 2.0  DIY build</title>
            <link>https://reprap.org/forum/read.php?13,734507,734507#msg-734507</link>
            <description><![CDATA[ I'm attempting to build a Gen7 board-ARM 2.0 by following the<br />
instructions on the Wiki page. I'm not trying to save any money<br />
but am only doing it in the pursuit of knowledge.  If it works I'll<br />
just use it to replace the RAMPS on my antique Prusa2.<br />
<br />
   So far everything is on order. I attached a list of my purchased parts from Mouser Electronics.<br />
It pretty much covers everything with the exception of some resistors that I had<br />
leftover from previous projects and the PCB. I ordered extra parts just in case I destroy something<br />
 during the assembly process.<br />
<br />
   I do have a couple of concerns. The connectors called out for the end stops &amp; motors are listed <br />
as Molex KK256 series. I couldn't find any info on these so ordered KK254 series with a  2.54mm <br />
pitch. The hole spacing on the layout seem to justify this. I also ordered 25volt electrolytic caps. <br />
After reading further I noticed larger ones could be used. Also my 0.1uF ceramic capacitors look a <br />
little different than the ones shown. Hopefully they are okay to use.]]></description>
            <dc:creator>Shank man</dc:creator>
            <category>Controllers</category>
            <pubDate>Sat, 31 Dec 2016 14:51:59 -0500</pubDate>
        </item>
    </channel>
</rss>
