synthetos / g2

g2core - The Next Generation
Other
622 stars 296 forks source link

Getting started with g2core for 3D printing. #292

Open pbannister opened 6 years ago

pbannister commented 6 years ago

This is a bit of a meta-issue, as I have not found a discussion forum (as yet) for g2core.

My interest is in using g2core for 3D printing. From the commit history, my impression is that support for 3D printing might not yet be quite entirely there ... though the Printrboard folk must be shipping something.

If some work/contribution on my part is needed to push things forward from almost-there, I am fine with that, as I have done the like before.

Got to the point in my printer-build where I need to choose the electronics. The Arduino Due, and ... some shield that supports stepper-drivers for XYZ, and (hopefully) two extruders ... presumably. Also the usual allowance for fan control, limit switches, etc.

Not looking for an exhaustive reference. Rather some basic guidance on what is known/working hardware for use with g2core and 3D printing.

giseburt commented 6 years ago

We indeed have 3D Printing working. The only currently shipping hardware is the Printrbot Printrboard G2.

We also have Marlin-compatibility in place, allowing one to use g2core as a drop-in replacement for Marlin-compatible controllers.

If you have any more questions on how things work, please dig around on the wiki, and if you don't find answers there please feel free to ask (and we'll try to fill out that area of the wiki, once we answer your questions).

Thank you for your interest in our project!

-Rob

ghost commented 6 years ago

I am using the gshield v5b for controlling a stepper motor. The gshield is mounted on an Arduino Due. When I connect the arduino to the PC using the native USB port I am not able to see TinyG V2 on the device manager. Because of this I'm not able to install the drivers. How do I proceed? Urgent.

giseburt commented 6 years ago

@nitm07 I’m sorry we didn’t see this. This is sorta in the wrong place, on an issue about 3D printing.

Could you open this into a new issue? We’ll need a few more details, such as which OS are your on (Windows 10, OS X)?, are you connecting via USB C?, how are you powering the Due and the gShield?, etc.

Thank you, -Rob

pbannister commented 6 years ago

Reading through the wiki pages, and I have questions. :)

For the topic Hardware Needed To Use g2core:

  1. Some discussion of the hardware needs for 3D printing would seem order.
  2. I am assuming for XYZ and two extruders requires control of five steppers (or four with only one extruder). As the gShield seems to have support for three steppers, this appears to be a non-starter.
  3. You have no mention of the Printrboard (which is now offered their website).
  4. The planned release dates for the gQuadratic and gQuintic boards is a year in the past. :)

In my case, I am walking through the exercise of using an Arduino Due with a RADDS board - which should an addition here (once/if working).

Or ... I could just edit the wiki, to my understanding, and you can later fix what I got wrong. Your choice. (This would likely mean some placeholders to questions to which I do not have answers - but should save you some time.)

abdrumm commented 6 years ago

We are working on a page that brings all the 3d printing info together in one place. We have combed thru the g2vore wiki and have a new volunteer rewriting it to be a little more human-readable. We have sent a few questions to read b and will post the remaining outstanding info

Our initial post is here: https://printrbot.com/2018/03/08/printrboard-g2-general-information/

Our g2 board is for sale on our site... Ultimachine is now making them and we should be able to keep them in stock.

Brook

Brook

justinclift commented 6 years ago

@abdrumm Looks nifty. :smile:

@pbannister Did the above cover all the bits you need, or are there still gaps you're needing help with? :smile:

justinclift commented 6 years ago

@abdrumm As a thought, there's a start towards a page listing G2core (and TinyG) based products here:

    https://github.com/synthetos/g2/wiki/g2core-in-use

And yeah, it's mostly Printrbot entries for now, as they were the easiest to figure out which ones use TinyG/g2core. Would you be ok to cast an eye over it and let me know if anything's wrong? Or just edit the page directly if you want. :smile:

Oh, I didn't notice a product page for the PrintrBoard G2, so the entry is just pointing to the page you mention above. Feel free to adjust that if you want. Found it. :smile:

pbannister commented 6 years ago

@justinclift I have not yet returned to this topic. Looks to be a week or two away.

justinclift commented 6 years ago

Thanks @pbannister, no worries. :smile:

pbannister commented 6 years ago

So ... off by a couple weeks.

This is more of an FYI. Not making an ask.

Started by trying to trying to compile on a Raspberry Pi3 (will be on the printer running OctoPrint, so makes sense), but that still does not work, for reason you explained prior. (Hey. Had to check...)

Could create a Linux VM on my Macbook, but instead tried using Google's Cloud Shell (the advantage being a standard environment anyone could access ... if it works).

$ make PLATFORM=DUE BOARD=gShield
"Found that we're in Linux"
Installing the necessary tools...
cd ../Motate/MotateProject/motate/../../Tools && make "ARCH=gcc-arm-none-eabi"
make[1]: Entering directory '/home/preston_bannister/build.g2core/g2/Motate/Tools'
The gcc-arm-none-eabi tools need installed. Downloading linux/gcc-arm-none-eabi-5_4-2016q2-20160622-linux.tar.bz2 and installing now.

mkdir -p linux && \
cd linux && \
wget "https://launchpad.net/gcc-arm-embedded/5.0/5-2016-q2-update/+download/gcc-arm-none-eabi-5_4-2016q2-20160622-linux.tar.bz2"
--2018-05-16 16:48:45--  https://launchpad.net/gcc-arm-embedded/5.0/5-2016-q2-update/+download/gcc-arm-none-eabi-5_4-2016q2-20160622-linux.tar.bz2
Resolving launchpad.net (launchpad.net)... 91.189.89.223, 91.189.89.222
Connecting to launchpad.net (launchpad.net)|91.189.89.223|:443... connected.
HTTP request sent, awaiting response... 303 See Other
Location: https://launchpadlibrarian.net/268330503/gcc-arm-none-eabi-5_4-2016q2-20160622-linux.tar.bz2 [following]
--2018-05-16 16:48:46--  https://launchpadlibrarian.net/268330503/gcc-arm-none-eabi-5_4-2016q2-20160622-linux.tar.bz2
Resolving launchpadlibrarian.net (launchpadlibrarian.net)... 91.189.89.228, 91.189.89.229
Connecting to launchpadlibrarian.net (launchpadlibrarian.net)|91.189.89.228|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 92600244 (88M) [application/x-tar]
Saving to: ‘gcc-arm-none-eabi-5_4-2016q2-20160622-linux.tar.bz2’
2018-05-16 16:51:54 (484 KB/s) - ‘gcc-arm-none-eabi-5_4-2016q2-20160622-linux.tar.bz2’ saved [92600244/92600244]

cd linux && \
rm -f "gcc-arm-none-eabi" && \
tar xjf gcc-arm-none-eabi-5_4-2016q2-20160622-linux.tar.bz2
cd linux && \
ln -s "gcc-arm-none-eabi-5_4-2016q2" "gcc-arm-none-eabi"
make[1]: Leaving directory '/home/preston_bannister/build.g2core/g2/Motate/Tools'
Compiling c ../Motate/MotateProject/motate/cmsis/TARGET_Atmel/sam3x/source/templates/exceptions.c
    -> build/gShield/motate/cmsis/TARGET_Atmel/sam3x/source/templates/exceptions.o 
bash: ../Motate/MotateProject/motate/../../Tools/linux/gcc-arm-none-eabi/bin/arm-none-eabi-gcc: No such file or directory

Hmm...

$ $PWD/arm-none-eabi-gcc
-bash: /home/preston_bannister/build.g2core/g2/Motate/Tools/linux/gcc-arm-none-eabi/bin/arm-none-eabi-gcc: No such file or directory

$ file arm-none-eabi-gcc
arm-none-eabi-gcc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.8, stripped

$ uname -a
Linux cs-6000-devshell-vm-ace75d61-3ca7-4dc7-b57a-c5cdf4954aaf 3.16.0-6-amd64 #1 SMP Debian 3.16.56-1+deb8u1 (2018-05-08) x86_64 GNU/Linux

$ sudo apt-get install libstdc++6:i386
********************************************************************************
You are running apt-get inside of Cloud Shell. Note that your Cloud Shell
machine is ephemeral and no system-wide change will persist beyond session end.

Note that your home directory does persist across VM instantiations, so consider
installing your tools into your home directory whenever possible.

To suppress this warning, create an empty ~/.cloudshell/no-apt-get-warning file.
The command will automatically proceed in 5 seconds or on any key.

Visit https://cloud.google.com/shell/help for more information.
********************************************************************************

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package libstdc++6:i386
E: Couldn't find any package by regex 'libstdc++6'

Right. Nevermind. Looks as though 32-bit binaries are not supported.

Again, point of information only. Guess a Linux VM is in order...

giseburt commented 6 years ago

It would be easy to make a Docker image that you could compile in. Look at the .travis.yml (https://github.com/synthetos/g2/blob/edge/.travis.yml ) file for how it sets up for the build. I believe Travis uses an image with build-essential installed already. (See https://docs.travis-ci.com/user/reference/trusty/#Compilers-%26-Build-toolchain )

pbannister commented 6 years ago

FYI, compiles fine on a 32-bit Ubuntu VM (no surprise): Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-116-generic i686)

$ time make PLATFORM=DUE BOARD=gShield -j4
...
Making binary bin/gShield/g2core.bin 
--- SIZE INFO ---
   text    data     bss     dec     hex filename
 185420       0   43584  229004   37e8c bin/gShield/g2core.elf
Build 101.02 101.02-15-g194c

real    0m10.119s
user    0m34.312s
sys     0m3.332s

Any current preference on the branch to use?

$ git branch -a
* edge
  remotes/origin/HEAD -> origin/edge
  remotes/origin/dev-168-gquintic
  remotes/origin/dev-212-common-enable
  remotes/origin/dev-307-spring-comp
  remotes/origin/dev-omco-issue-2
  remotes/origin/digital-dro
  remotes/origin/edge
  remotes/origin/edge-087
  remotes/origin/edge-090
  remotes/origin/edge-100
  remotes/origin/gh-pages
  remotes/origin/master
  remotes/origin/omc-072.65
justinclift commented 6 years ago

Any current preference on the branch to use?

master has had more people testing it over time, so might be better for getting started with. :smile:

edge is useful for creating PR's from, doing development work on, and that kind of thing.

As a thought, someone mentioned recently that Cura is known to work, though I'm not sure which branch they were running. They did mention a few minor warnings were printed at some point.

Not sure about OctoPrint personally, as I've never tried it. The OctoPrint project itself does look like it's going well though, and the maintainer seems responsive which is good. :smile:

justinclift commented 6 years ago

I believe Travis uses an image with build-essential installed already.

@giseburt Not sure if build-essential would help with a 64-bit host. When I was testing stuff out the other day, it didn't help with a minimal install of Ubuntu 18.04 x64.

Using apt-get to install libstdc++6:i386 though worked, as that pulled in a bunch of dependencies and the make process then succeeded.

justinclift commented 6 years ago

@pbannister One small gotcha to be aware of (and we'll probably change things in the near-ish future), is that since you're compiling for the gShield, the X/Y/Z axes for that start out disabled:

For me when starting out, that made things really confusing. For example, the CNCjs user interface all looked fine, however "nothing actually moves". You might find similar happening in OctoPrint.

Creating your own configuration is pretty easy though. Here's an example from yesterday, for adding a Shapeoko3 specific setup:

The first commit makes a new CONFIG=Shapeoko3 entry for the make command, and creates a new "settings_shapeoko3.h" file (manually copied from the Shapeoko 2 Dual Y one without changes). The second commit makes the changes to that file which my Shapeoko3 needs. :smile:

The axes aren't disabled in those configs, so that's not a thing you'd have to worry about with those ones. You will need to experiment and probably read lots of wiki pages to get things working for your 3D printer though.

pbannister commented 6 years ago

Thanks for clarifying the branch choices. To clarify my interest...

I have two 3D printers at present, and am building a third of my design. The third printer is to run g2core. The two present printers each have an attached Raspberry Pi3 running OctoPrint. In effect, OctoPrint provides a web-based control panel for the printer(s). OctoPrint is very, very nice - so much so that I entirely removed the physical control panel (with the horrid Marlin UI) from one printer.

At present, I do designs in OnShape, render STL to GCode via Cura (on my Macbook), and use a Cura plugin to send the GCode (via OctoPrint) to the printer. In theory I could use OctoPrint to render STL to GCode (via a Cura component), but this does not make sense in my usage, as I often want some manual control over the slicer. (Plus, my Macbook is much faster than the Pi, and my designs tend to burn up a bunch of CPU-cycles when rendering GCode.)

The electronics for the third printer is a Pi3 (to run OctoPrint), and an Arduino Due with a RADDS board and Trinamic 2208 stepper-drivers. (The Due/RADDS/Trinamic combo seemed to make sense at the time.)

Did the compile for gShield just as a test.

Today's exercise (hopefully) is to do the appropriate configuration to compile for Due/RADS/Trinamic.

FYI - misadventures: https://plus.google.com/u/0/collection/gUpBJE

justinclift commented 6 years ago

Cool. Your photo's look nifty. :smile:

Branch wise, definitely use the master branch for now, as you'll probably want something stable to work with.

If you do hit bugs or weirdness though, do check if the master branch has been updated since you last compiled and flashed the Due. It doesn't happen super often, but it's worth keeping an awareness of. :smile:

pbannister commented 6 years ago

Should have mentioned, the printer is using CoreXY, which seems to have not yet landed in the master branch: #215 and/or #285 . So ... maybe not the master branch. (Got as far as defining the settings/settings_spaceage3d.h file, and M1_MOTOR_MAP.)

Seems I have to use branch dev-168-gquintic for now? Or...??

justinclift commented 6 years ago

Oops. Sorry @pbannister, I didn't realise that CoreXY meant it needs different Kinematics handling.

You're right, only the dev-168-gquintic branch seems to have the patches in it.

Looking at the commit by @giseburt which adds the support (based upon code by @ewidance), it looks like the Mn_MOTOR_MAP value should be set to AXIS_COREXY_A or AXIS_COREXY_B (depending on which axis it's supposed to be):

There is an example settings file in that branch set up for CoreXY too:

Does that help? :smile:

justinclift commented 6 years ago

Also note that the dev branch there is more experimental than the stable master branch. So... well... definitely report back any bugs or weirdness you hit. Wouldn't be too surprising to find unexpected gotchas in parts of it. (!) :wink:

justinclift commented 6 years ago

Hmmm, trying to compile that branch just now fails for me. eg:

$ make PLATFORM=DUE BOARD=gShield
"Found that we're in Linux"
Compiling c ../Motate/MotateProject/motate/cmsis/TARGET_Atmel/sam3x/source/templates/exceptions.c
    -> build/gShield/motate/cmsis/TARGET_Atmel/sam3x/source/templates/exceptions.o 
Compiling c ../Motate/MotateProject/motate/cmsis/TARGET_Atmel/sam3x/source/templates/system_sam3x.c
    -> build/gShield/motate/cmsis/TARGET_Atmel/sam3x/source/templates/system_sam3x.o 
Compiling c ../Motate/MotateProject/motate/cmsis/TARGET_Atmel/sam3x/source/templates/gcc/startup_sam3x.c
    -> build/gShield/motate/cmsis/TARGET_Atmel/sam3x/source/templates/gcc/startup_sam3x.o 
Compiling c ../Motate/MotateProject/motate/platform/atmel_sam/hooks.c
    -> build/gShield/motate/platform/atmel_sam/hooks.o 
Compiling c ../Motate/MotateProject/motate/platform/atmel_sam/cortex_handlers.c
    -> build/gShield/motate/platform/atmel_sam/cortex_handlers.o 
Compiling cpp ../Motate/MotateProject/motate/MotateUtilities.cpp
    -> build/gShield/motate/MotateUtilities.o 
Compiling cpp ../Motate/MotateProject/motate/main.cpp
    -> build/gShield/motate/main.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamTimers.cpp
    -> build/gShield/motate/Atmel_sam_common/SamTimers.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamUART.cpp
    -> build/gShield/motate/Atmel_sam_common/SamUART.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamDMA.cpp
    -> build/gShield/motate/Atmel_sam_common/SamDMA.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamPower.cpp
    -> build/gShield/motate/Atmel_sam_common/SamPower.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamPins.cpp
    -> build/gShield/motate/Atmel_sam_common/SamPins.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamUniqueID.cpp
    -> build/gShield/motate/Atmel_sam_common/SamUniqueID.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamSPI.cpp
    -> build/gShield/motate/Atmel_sam_common/SamSPI.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamServiceCall.cpp
    -> build/gShield/motate/Atmel_sam_common/SamServiceCall.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam3x/SamUSB.cpp
    -> build/gShield/motate/Atmel_sam3x/SamUSB.o 
Compiling cpp ../Motate/MotateProject/motate/platform/atmel_sam/syscalls.cpp
    -> build/gShield/motate/platform/atmel_sam/syscalls.o 
Compiling cpp ./canonical_machine.cpp
    -> build/gShield/./canonical_machine.o 
In file included from ./canonical_machine.cpp:99:0:
./planner.h:525:38: error: expected initializer before 'HOT_DATA'
 extern mpBufferPool_t mb             HOT_DATA; // buffer pool management
                                      ^
./planner.h:526:38: error: expected initializer before 'HOT_DATA'
 extern mpMotionPlannerSingleton_t mp HOT_DATA; // context for block planning
                                      ^
./planner.h:527:38: error: expected initializer before 'HOT_DATA'
 extern mpMotionRuntimeSingleton_t mr HOT_DATA; // context for block runtime
                                      ^
./planner.h:580:38: error: expected initializer before 'HOT_FUNC'
 mpBuf_t * mp_get_write_buffer(void)  HOT_FUNC;
                                      ^
./planner.h:581:58: error: expected initializer before 'HOT_FUNC'
 void mp_commit_write_buffer(const blockType block_type)  HOT_FUNC;
[etc]
$ make BOARD=gShield
"Found that we're in Linux"
Compiling c ../Motate/MotateProject/motate/cmsis/TARGET_Atmel/sam3x/source/templates/exceptions.c
    -> build/gShield/motate/cmsis/TARGET_Atmel/sam3x/source/templates/exceptions.o 
Compiling c ../Motate/MotateProject/motate/cmsis/TARGET_Atmel/sam3x/source/templates/system_sam3x.c
    -> build/gShield/motate/cmsis/TARGET_Atmel/sam3x/source/templates/system_sam3x.o 
Compiling c ../Motate/MotateProject/motate/cmsis/TARGET_Atmel/sam3x/source/templates/gcc/startup_sam3x.c
    -> build/gShield/motate/cmsis/TARGET_Atmel/sam3x/source/templates/gcc/startup_sam3x.o 
Compiling c ../Motate/MotateProject/motate/platform/atmel_sam/hooks.c
    -> build/gShield/motate/platform/atmel_sam/hooks.o 
Compiling c ../Motate/MotateProject/motate/platform/atmel_sam/cortex_handlers.c
    -> build/gShield/motate/platform/atmel_sam/cortex_handlers.o 
Compiling cpp ../Motate/MotateProject/motate/MotateUtilities.cpp
    -> build/gShield/motate/MotateUtilities.o 
Compiling cpp ../Motate/MotateProject/motate/main.cpp
    -> build/gShield/motate/main.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamTimers.cpp
    -> build/gShield/motate/Atmel_sam_common/SamTimers.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamUART.cpp
    -> build/gShield/motate/Atmel_sam_common/SamUART.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamDMA.cpp
    -> build/gShield/motate/Atmel_sam_common/SamDMA.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamPower.cpp
    -> build/gShield/motate/Atmel_sam_common/SamPower.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamPins.cpp
    -> build/gShield/motate/Atmel_sam_common/SamPins.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamUniqueID.cpp
    -> build/gShield/motate/Atmel_sam_common/SamUniqueID.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamSPI.cpp
    -> build/gShield/motate/Atmel_sam_common/SamSPI.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamServiceCall.cpp
    -> build/gShield/motate/Atmel_sam_common/SamServiceCall.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam3x/SamUSB.cpp
    -> build/gShield/motate/Atmel_sam3x/SamUSB.o 
Compiling cpp ../Motate/MotateProject/motate/platform/atmel_sam/syscalls.cpp
    -> build/gShield/motate/platform/atmel_sam/syscalls.o 
Compiling cpp ./canonical_machine.cpp
    -> build/gShield/./canonical_machine.o 
In file included from ./canonical_machine.cpp:99:0:
./planner.h:525:38: error: expected initializer before 'HOT_DATA'
 extern mpBufferPool_t mb             HOT_DATA; // buffer pool management
                                      ^
./planner.h:526:38: error: expected initializer before 'HOT_DATA'
 extern mpMotionPlannerSingleton_t mp HOT_DATA; // context for block planning
                                      ^
./planner.h:527:38: error: expected initializer before 'HOT_DATA'
 extern mpMotionRuntimeSingleton_t mr HOT_DATA; // context for block runtime
                                      ^
./planner.h:580:38: error: expected initializer before 'HOT_FUNC'
 mpBuf_t * mp_get_write_buffer(void)  HOT_FUNC;
[etc]
$ make CONFIG=AxiDrawv3
"Found that we're in Linux"
Compiling c ../Motate/MotateProject/motate/cmsis/TARGET_Atmel/sams70/source/templates/system_sams70.c
    -> build/AxiDrawv3-gquadratic-b/motate/cmsis/TARGET_Atmel/sams70/source/templates/system_sams70.o 
Compiling c ../Motate/MotateProject/motate/cmsis/TARGET_Atmel/sams70/source/templates/gcc/startup_sams70.c
    -> build/AxiDrawv3-gquadratic-b/motate/cmsis/TARGET_Atmel/sams70/source/templates/gcc/startup_sams70.o 
Compiling c ../Motate/MotateProject/motate/platform/atmel_sam/hooks.c
    -> build/AxiDrawv3-gquadratic-b/motate/platform/atmel_sam/hooks.o 
Compiling c ../Motate/MotateProject/motate/platform/atmel_sam/cortex_handlers.c
    -> build/AxiDrawv3-gquadratic-b/motate/platform/atmel_sam/cortex_handlers.o 
Compiling cpp ../Motate/MotateProject/motate/MotateUtilities.cpp
    -> build/AxiDrawv3-gquadratic-b/motate/MotateUtilities.o 
Compiling cpp ../Motate/MotateProject/motate/main.cpp
    -> build/AxiDrawv3-gquadratic-b/motate/main.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamTimers.cpp
    -> build/AxiDrawv3-gquadratic-b/motate/Atmel_sam_common/SamTimers.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamUART.cpp
    -> build/AxiDrawv3-gquadratic-b/motate/Atmel_sam_common/SamUART.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamDMA.cpp
    -> build/AxiDrawv3-gquadratic-b/motate/Atmel_sam_common/SamDMA.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamPower.cpp
    -> build/AxiDrawv3-gquadratic-b/motate/Atmel_sam_common/SamPower.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamPins.cpp
    -> build/AxiDrawv3-gquadratic-b/motate/Atmel_sam_common/SamPins.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamUniqueID.cpp
    -> build/AxiDrawv3-gquadratic-b/motate/Atmel_sam_common/SamUniqueID.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamSPI.cpp
    -> build/AxiDrawv3-gquadratic-b/motate/Atmel_sam_common/SamSPI.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sam_common/SamServiceCall.cpp
    -> build/AxiDrawv3-gquadratic-b/motate/Atmel_sam_common/SamServiceCall.o 
Compiling cpp ../Motate/MotateProject/motate/Atmel_sams70/SamUSB.cpp
    -> build/AxiDrawv3-gquadratic-b/motate/Atmel_sams70/SamUSB.o 
In file included from ../Motate/MotateProject/motate/Atmel_sams70/SamUSB.h:32:0,
                 from ../Motate/MotateProject/motate/Atmel_sams70/SamUSB.cpp:31:
../Motate/MotateProject/motate/MotateUSB.h: In member function 'void Motate::USBDevice<interfaceTypes>::handleConnectionStateChanged()':
../Motate/MotateProject/motate/MotateUSB.h:400:75: error: there are no arguments to 'isConnected' that depend on a template parameter, so a declaration of 'isConnected' must be available [-fpermissive]
             _mixins_type::handleConnectionStateChangedInMixin(isConnected());
                                                                           ^
../Motate/MotateProject/motate/MotateUSB.h:400:75: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
make: *** [build/AxiDrawv3-gquadratic-b/motate/Atmel_sams70/SamUSB.o] Error 1

Ok, this branch might not be a go-er at the moment. :frowning:

Wonder if the CoreXY patch would apply cleanly to the master branch (and work). That might be worth a shot. :smile:

justinclift commented 6 years ago

Just tried it. Doesn't cleanly apply. :frowning:

I think we'll need some direction from @giseburt on this one. :smile:

ril3y commented 6 years ago

Rob is sick with the flu (his whole family is down) so it might be a bit of a delayed response.

pbannister commented 6 years ago

The last bug that went around took me out for a week, about three weeks back, and still lingers. :/

Did find the example CoreXY usage. Going to look at patching the change to kinematics.cpp into master ... maybe (looked isolated?). Have to get a kid off to school, first.

justinclift commented 6 years ago

Thanks for the update @ril3y. :smile:

ril3y commented 6 years ago

I could be wrong but dev-168 is the only branch I know that is capable of 3d printing. I have been printing with it for a few months now. I am using cura to slice / send print job.

On Fri, May 18, 2018 at 10:29 AM, Justin Clift notifications@github.com wrote:

Thanks for the update @ril3y https://github.com/ril3y. 😄

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/synthetos/g2/issues/292#issuecomment-390225537, or mute the thread https://github.com/notifications/unsubscribe-auth/AAOJM0XbGnVc_TS1jSTw61F89UhRZXgDks5tztrngaJpZM4PFOhM .

pbannister commented 6 years ago

If so then all the Printrbot (and Ultimaker) definitions in master are a lie. :)

CoreXY support is not in master, as yet.

aldenhart commented 6 years ago

Notes:

Hope that clarifies things.

pbannister commented 6 years ago

What branch are @abdrumm and the Printrbot folk using?

pbannister commented 6 years ago

FYI, when switching between branches, I needed to delete: rm -rf g2/Motate/Tools/linux Otherwise I got a link(?) error when compiling on master. Not sure the exact cause.

Might want a realclean rule in Motate.mk?

justinclift commented 6 years ago

Might want a realclean rule in Motate.mk?

Make a PR? (it'd against edge branch) :smile:

As a data point, I generally run git clean -dffx; git reset --hard HEAD. That restores the tree to pristine "just cloned" condition, keeping in whichever branch your in at the time.

To make it faster, I added an alias for it in my bash shell config (.bash_profile):

alias regit="git clean -dffx; git reset --hard HEAD"

Of course, there are other ways to do the same thing. :smile: