Hi,
I've been proposing something very similar that would use a BBB or a PIC32. The reason for the PIC32 is the lack of I/O on the Beagle once you enable the HDMI or plug in one of those small 4.3" LCD displays.
I already have a 4DCape (attached JPG) and a Replicape c/w with poorly functioning Manga Screen. I bought the newer Manga screen but as yet haven't really done anything with it or the Replicape.
I've also got an earlier xylotex DB25 cape and a LogicSupply Serial cape. Unlike say the ISA bus on the original PC, nothing is really compatible so they can all plug in at the same time which makes sense because the BBB external connections aren't really an expandable bus.
OK. So what does a CNC system need? I think it's always better to first specify the needs and then see what processor fits rather than insist on a particular architecture and then shoehorn in the specifications to fit the target hardware.
1. Either 4 or 5 axis step/dir.
a. At a minimum X,Y,Z, A and B(or C) and up to 500kHz step rates to handle some of the now low cost AC servos with 2500 line encoders.
2. Spindle control in the form of two outputs:
a. PWM and Direction or
b. Step and Direction or
c. Relay Clockwise, Counter Clockwise.
3. Spindle Quadrature encoder input
a. Differential A/B and Index high speed hardware for 2500 line encoders turning up to 3000 RPM.
4. Home switch input for 4 or 5 axis (does a rotary require a home switch).
a. shared with Limit switch for each axis.
b. Open circuit means activated.
5. Limit switch for the other end of each axis.
a. Open circuit means activated.
6. ESTOP input with ESTOP asserted when ESTOP not connected.
7. ENABLE output.
a. One active high
b. One active low.
8. Coolant output control
a. Flood
b. Mist
9. General purpose output signals for power supply enables etc.
10. Charge Pump output that when stopped shuts off all outputs including ENABLE.
11. USB input for a pendant of some type
a. For USB stick for code or firmware updates.
12. Or at least Inputs for Quadrature encoder knob and a few buttons.
13. MODBus support with either RS232 or RS485
a. for something like a Homann Designs MODIO
b. Other MODBus end products for things like tool changers
14. CAN bus with CANopen support
a. for expanding to other hardware like tool changers.
15. Ethernet connectivity.
16. Some sort of display. Size depending on what level of application is running on the BBB.
Point 16 is the interesting part. Should this be a small 4.3" to 7" LCD display serving as a rudimentary DRO and status display? Or should it be the entire AXIS interface or something between.
And with point 16 in mind, if the display makes the BBB into an intelligent power feed DRO controller to allow essentially manual operation on the mill then the Ethernet port could be used to connect a full size PC (laptop or workstation) running LinuxCNC/MachineKit with full graphical tool path display etc.
It's already possible to buy a CNC controller for $200 to $300 from China with a 4.3" display, a bunch of buttons and a USB connection for loading G-Code. And there are some users who swear by that solution as the easiest and fastest way to get working. But they aren't open source. They aren't expandable.
To have all the above I/O requires a lot of pins. I'm not sure the BBB can do this all. Unless it uses 10Mhz SPI to a serial shift register latch to create 6 axis STEP/DIR/PWM for X,Y,Z,A,B and Spindle along with coolant outputs to a maximum of 16 outputs. Since SPI is in and out the system can just as easily hold a 16 bit latch that is shifted in at the same time holding the various inputs except for ESTOP and maybe a MACHINE ON switch.
Some of the features on the PMDX-126 break out board could be part of this cape. In fact the idea that perhaps a simple I/O bus structure be designed in is a really good idea. A bi-directional 8 bit bus with a 4 bit address bus along with RD/WR/ signals would allow LCD displays and other external add on devices. The PIC32 for example supports that sort of bus. I think the ARM on the Beagle does too but it may not be available.
So this cape would look a lot more like a PMDX-126 but be that large BoB cape for the Beagle. It would have the I/O and maybe even high voltage relays along with optically isolated I/O.
The photos show how the PMDX has an expansion bus and a set of connectors that are compatible for a smooth stepper.
Perhaps make the BBB the replacement for the Smooth Stepper and the cape the replacement for a much more extensive PMDX-126. And use the BBB Ethernet connection to be the interface, if CNC is wanted, to MachineKit or LinuxCNC or even maybe MACH4 too. Give the BBB cape a display output for rudimentary DRO and control information but for full CNC let a processor like Raspberry Pi4 or PC with much better decent HDMI control serve as the graphical and keyboard/mouse user input.
The need for the BBB to do everything just doesn't exist anymore when that Pi4 only adds $50 to the price and the display/keyboard/mouse are fixed costs no matter what system is used.
Make the system stand alone and scalable so a user can first add just a motor to their X axis for power feed. Six monts later the Y axis for power feed. Then a year later the Z axis for power feed. When they swap in a 3 phase or AC servo motor onto the spindle they suddenly have on/off speed control and now the potential to add simple CNC operations. Some of those could even be local like the wizards in MACH3/4.
IMHO
John Dammeyer
--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to the Google Groups "Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/CA%2BT6QPktUtnx5fv0AG%2BEqENM2mBRw44FLiEe-hKBRXOTanHomg%40mail.gmail.com.
And with point 16 in mind, if the display makes the BBB into an intelligent power feed DRO controller to allow essentially manual operation on the mill then the Ethernet port could be used to connect a full size PC (laptop or workstation) running LinuxCNC/MachineKit with full graphical tool path display etc.
It's already possible to buy a CNC controller for $200 to $300 from China with a 4.3" display, a bunch of buttons and a USB connection for loading G-Code. And there are some users who swear by that solution as the easiest and fastest way to get working. But they aren't open source. They aren't expandable.
To have all the above I/O requires a lot of pins. I'm not sure the BBB can do this all. Unless it uses 10Mhz SPI to a serial shift register latch to create 6 axis STEP/DIR/PWM for X,Y,Z,A,B and Spindle along with coolant outputs to a maximum of 16 outputs. Since SPI is in and out the system can just as easily hold a 16 bit latch that is shifted in at the same time holding the various inputs except for ESTOP and maybe a MACHINE ON switch.
Some of the features on the PMDX-126 break out board could be part of this cape. In fact the idea that perhaps a simple I/O bus structure be designed in is a really good idea. A bi-directional 8 bit bus with a 4 bit address bus along with RD/WR/ signals would allow LCD displays and other external add on devices. The PIC32 for example supports that sort of bus. I think the ARM on the Beagle does too but it may not be available.
So this cape would look a lot more like a PMDX-126 but be that large BoB cape for the Beagle. It would have the I/O and maybe even high voltage relays along with optically isolated I/O.
The photos show how the PMDX has an expansion bus and a set of connectors that are compatible for a smooth stepper.
Perhaps make the BBB the replacement for the Smooth Stepper and the cape the replacement for a much more extensive PMDX-126. And use the BBB Ethernet connection to be the interface, if CNC is wanted, to MachineKit or LinuxCNC or even maybe MACH4 too. Give the BBB cape a display output for rudimentary DRO and control information but for full CNC let a processor like Raspberry Pi4 or PC with much better decent HDMI control serve as the graphical and keyboard/mouse user input.
The need for the BBB to do everything just doesn't exist anymore when that Pi4 only adds $50 to the price and the display/keyboard/mouse are fixed costs no matter what system is used.
Make the system stand alone and scalable so a user can first add just a motor to their X axis for power feed. Six monts later the Y axis for power feed. Then a year later the Z axis for power feed. When they swap in a 3 phase or AC servo motor onto the spindle they suddenly have on/off speed control and now the potential to add simple CNC operations. Some of those could even be local like the wizards in MACH3/4.
IMHO
John Dammeyer
From: machi...@googlegroups.com [mailto:machi...@googlegroups.com] On Behalf Of Jason Kridner
Sent: March-12-20 6:39 AM
To: machi...@googlegroups.com
Cc: beagl...@googlegroups.com
Subject: [Machinekit] Seeed to design and build Machinekit focused Cape for BeagleBone Black/AI
Seeed is looking to not only build a Machinekit-focused Cape for BeagleBone Black and BeagleBone AI, but to:
* Take in features and feedback from the community
* Contribute the design to open source and certify it as such
* Manufacture the design under the BeagleBoard.org name to support the BeagleBoard.org Foundation and community
* Help assemble and provide software images configured for an open source 3D printer and CNC machine (with BeagleBoard.org and community guidance and support)
* Offer a collection of additional accessories which might commonly be needed
I am very excited about this because I know Seeed cares about open hardware and also knows how to deliver solutions reliably and cost effectively.
So, what are your ideas about where to start on such a cape?
--
--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to the Google Groups "Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/CA%2BT6QPktUtnx5fv0AG%2BEqENM2mBRw44FLiEe-hKBRXOTanHomg%40mail.gmail.com.
Hello,I am a novice in most fields of study regarding brushless stepper motors and drives. If anything, I think allowing people like me, the novices in this category, to establish as domain in the field with not only hardware but a temporary to permanent wiki support would be what Open Source initiatives are made of currently....I know about Machinekit and how it offers specific uses to users like me. Although, and this is the truth, I have not used Machinekit with my RepliCape, I have been wanting to test out these images for use in a particular manner.
- Key Takeaways
- Ease of use
- Open Source Hardware and Source (the BBB.io persons' ways)
- An updated Wiki of ideas all relative to this specific hardware, source, and middleware
- Stated Opinions
- Although my opinions may fall short of technological at times, ease of use is always a need
- I would make lists and hold a meeting
- Hardware
- Source (Machinekit)?
- Wiki (who will have advanced knowledge to pick apart the wiki)?
Now...I am sure Seeed Studio can handle, w/ the current state of machinery, the needs of me, myself, and I (and other users like me too).But...So, sockets or pins or connections:
- I say that actual connections should be made outside of the screw terminals, i.e. either soldered or a terminal block that is severely equipped to handle people moving around the machinery and electronics.
- I also say that there should be a couple of people at least that are dedicated to the project, e.g. more knowledgeable people than I on these subjects.
- I also say that the computer needs to be the source of the UX, GUI, UI, or whatever we call them these days.
...Now...I am not affiliated but I am definitely a community member that has "outlandish" goals for specific projects. I have been here since the A5C BBB. I think it has been since 2014/15.Why am I telling you these ideas and reaching out?
- I have seen specific ideas go to waste and not catch any ideas from other community members on many of the Capes produced.
- Either the Capes produced, were before my time, circa '14/'15, or I have been paying less attention to what is needed regarding the Capes.
- I think the Capes are a big part of the community and ideas circulating are more than a start.
I hate to down Seeed Studio because of their popularity and ease of motive to act on making nice equipment but...Sometimes, I think because of their wikis not being updated frequently, people lose interest or find that support is not viable for them.I have been to the Seeed Studio wiki many times in my life and sometimes I have been rewarded for asking for support. Other times, the community was more needy than I and I had to provide what I learned.All I am typing here is that interest gets lost when people are not updating due to whatever reason. Do you or do we want another Cape to get lost attention when it is a piece of GOLD?
SethP.S. Now, I understand that beagleboard.org is not a major subsidiary of Lexus or whatever large company. I am not talking about 24/7 support by way of email, phone, chat, and face time or live meetings online and in person. I would ask but I am too scared. Anyway, please try to make this venture w/ ease of access in mind, sturdy (durable) power and pin connectors, and w/ access to extra i2c pins on the AI if they are indeed available by way of Machinekit. Phew. Okay, I think that is enough opinion to make anyone cringe. Sorry and please consider my needs versus the power hungry machinists that already know up from down.
On Thursday, March 12, 2020 at 8:38:53 AM UTC-5, Jason Kridner wrote:
--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to the Google Groups "Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/36936efa-6887-4762-9982-1c2ac3dc3af7%40googlegroups.com.
If you are putting a fast processor on the main board, what is the Beagle doing?
--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to the Google Groups "Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/73cb20b7-83ba-4b8f-a629-3127cb5d16bf%40googlegroups.com.
On Thu, Mar 12, 2020 at 11:47 AM Jason Kridner <jkri...@gmail.com> wrote:If you are putting a fast processor on the main board, what is the Beagle doing?The Beagle is running the servo loop, g-code interpeter, motion planning, and the user interface. Step-gen and quadrature decoding are done on the hardware.
Pretty much exactly that way it works if you use a PC and a Mesa FPGA card.--
Chris Albertson
Redondo Beach, California
To unsubscribe from this group and stop receiving emails from it, send an email to machi...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/36936efa-6887-4762-9982-1c2ac3dc3af7%40googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to machi...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/36936efa-6887-4762-9982-1c2ac3dc3af7%40googlegroups.com.
Isn’t that something the Beagle is strong at with the eQEP and PRUs?
* Manufacture the design under the BeagleBoard.org name to support the BeagleBoard.org Foundation and community
One has to be careful here not to spec in a 10 ton dump truck for that once a year 500 lb utility trailer load of peat moss for the garden. For one thing they are hard to parallel park and really expensive for fuel.
There already exists, and will for some time, systems that can handle multiple spindles, closed loop control of the encoders back to the PC along with multiple FPGA controlled I/O and smart serial motor control for these retrofitted large commercial milling machines. Those users will never ever install a BBB with a cape that has slow HMDI screen updates and limited I/O.
So forget them.
By the same token, the customers who are using Ardunio based duos or whatever the latest flavour is for their 3D printers are also of no interest. If they were we'd have seen the Replicape on a BBB become the standard with Machinekit or Linux as the backbone. Hasn't happened. Won't happen. Not sure why. Probably price.
So what is the target market for this type of product? Well who is buying the ready to go $200 to $500 CNC boxes in China and for what machines?
If I were to venture a guess I'd say the ones that are about this size:
https://www.grizzly.com/products/Grizzly-7-x-27-1-HP-Mill-Drill-with-Stand/G0704
They come in all sorts of flavours. They are generally driven open loop with stepper motors and require only a spindle sensor for quadrature and maybe a second quadrature input for an MPG control although those can be had pretty inexpensively as USB devices. And to tell you the truth I really like my ShuttleExpress over the USB MPG pendant.
As along as the BoB has a FAULT input, which I forgot to put on my previous list, you can even use intelligent drives like the step-servos that close the loop but provide a FAULT output when something goes wrong. My STMBL, Bergerda and HP_UHU drives all have that. I think the GECKO I have on the KNEE also does but I'm not using it at the moment. All open collector outputs that pull the signal low when a fault occurs.
Anyway, that size of a machine and the price tag associated with it will set the price of the CNC conversion. Most of the cost is in the mechanics and the electricals.
So two PRU accessed quadrature inputs are more than enough to close the loop for power tapping as long as the spindle speed control is responsive.
About the only limitation I see in my list is that 500kHz stepping is really fast. I used that number because that's the step rate for the Bergerda AC servos with the 2500 line encoder. That math works out to 10,000 edges per revolution and 3000 RPM is 50 RPS which means a 1:1 ratio is 500kHz. The Bergerda can scale the step pulses in order to match the encoder with slower step rates. I don't know if the STMBL AC Servo drive can do that. Pretty sure the HP_UHU with the dsPIC can or almost can.
But for this target market, using standard stepper motors with micro-stepping drives we're back to 25kHz max before we see the motor torque drop off to a point where step speed doesn't matter. And if you are using the step-servos the selection of the encoder will determine what's required.
So I'll agree with Chris that it's the I/O on the BBB that is the limiting factor. But 10MHz SPI bus could take care of that.
What I would do is use the PRU to load the DMA device to write two bytes to and read two bytes from the SPI port at a 1MHz rate. It's the BBB's main processors responsibility to keep this filled or to stall it with step levels low and dir at last used value.
The trajectory planner is responsible for setting the step pulses ON within the two byte packet to send out the SPI port. The next two bytes hold the direction and drop the STEP. Any other outputs on that buffer will also be left as is.
Now you have hardware generating 6 pairs of step/dir as high as 500kHz. The amount of time the 8th pair is ON and OFF is dependent on the PWM frequency and PWM pulse period within that frequency. It's a simple matter of keeping the queues with this information full and default values when they aren't.
John Dammeyer
--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to the Google Groups "Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/CABbxVHs5uknWtEY-sP-hxfb13LNZ8CWBxxK30TiBn%3DOQ820K%2BA%40mail.gmail.com.
Although the subject talks about SeeedStudio let's leave that part alone for a moment and discuss what the Beagle's part is in all this.
I'd like to take everyone back to geometry learned in school. SQRT(X^2+Y^2) = hypotenuse of a right angle triangle. When we look at velocity we can use the same math. If both X and Y axis are moved at 12 IPM then the movement along that path happens at 16.97 IPM. SQRT(144+144).
So when you set a G-Code value of F12 and execute a move with G1 set then X and Y will _not_ move at 12 IPM. First the distance of each axis is determined. Assume for this example it's the same distance of 12". That means the total distance moved along the hypotenuse is 16.97" and as we move along that path we want that to be done at 12 IPM because of the F12.
Well that's (144) = (X^2+Y^2) or in this case because we have a 45 degree angle with equal X and Y it's SQRT(144/2) = SQRT(72) = 8.48 IPM. So both X and Y will be moved at 8.48 IPM. (in really we use the cos and sin of the angle to proportion the speed to achieve the F speed value.
It's more complicated than that if the acceleration for each motor is different. So the simple path planner will use the lowest acceleration and make both motors accelerate at that speed so they move at the same rate per second per second to reach the velocity. Same with deceleration.
Once this has been calculated the next question is how to translate a real world velocity (IPM) into steps per second. Once again not really hard if the reduction drive on each axis is identical. A bit harder if one uses 4:1 and the other uses 3:1.
Now the software has to decide when to create each step pulse. Assuming both axis require the same number of steps to move 1 inch (0.2" per rev and 10 uSteps/Step = 2000 steps per rev = or 2000 steps to move 0.2")
We're asking for 12 IPM which is 0.2" per second so that's 2000 steps per second. That's a step pulse every 500 uS. Our DMA clock is set to run at 1MHz spitting out the 16 bits into the SPI device so we get a 1uS long step pulse.
Or in simple terms we get one 16 bit packet, with X and Y STEP pins both set high and another packet with X and Y STEP pins set low . Then the next 498 packets do not change the X and Y step pins. So for one second of data we need at 1000 byte array with 500 values where only one of those has X and Y set high. We need a second 1000 byte array with 500 values for the next 1 second worth of messages.
The trajectory planner has one second to populate the array. The DMA controller signals when it switches to the next array and we ping pong back and forth. When there isn't any motion the array just has the DIR pins and the COOLANT pins set to their previous values. The output doesn't appear to change even though the SPI hardware is loaded by the DMA hardware to spit out new data at a 10Mhz rate.
The question is…who and what populates the array and when and how.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/09d301d5f8ca%244521c160%24cf654420%24%40autoartisans.com.
From: machi...@googlegroups.com [mailto:machi...@googlegroups.com] On Behalf Of Bas de Bruijn
Sent: March-13-20 6:47 AM
To: Jason Kridner
Cc: machi...@googlegroups.com; beagl...@googlegroups.com
Subject: Re: [Machinekit] Seeed to design and build Machinekit focused Cape for BeagleBone Black/AI
I would use a cape who can drive DC and BLDC motors with encoder feedback. and has room for 24V I/O thru screw terminals.
And how many people would be interested in a cape like that? The moment you put one type of driver on the cape you restrict the market. For example the Replicape comes with stepper drivers sized for 3D printers. Try using that on a mill with size 34 steppers or an AC Servo like I have for the 4th axis.
The days are past where there is a need or even a desire to close the motor control loop within the trajectory planner CNC control computer. No offense meant to people who manufacture that sort of hardware but 15 years ago the processors to do that were few and far between.
Now there are kits like the STMBL which would still be available in its original form had not the motor driver chip been discontinued. A new version is in the works. This drive can do AC servos and DC brushed or brushless. Step/Dir or Smart Serial. And it's small and modular and can be replaced. Yes it's expensive compared to a far east stepper motor driver.
A motor such as these types (just an example, maybe different capes for different power ratings) which would make creating tools for industrial situations much, much easier. No need to buy a €250 driver per motor.
Such a cape would need to have enough oomph to drive 24V relays, and connect 24V limit or proximity switches.
Maybe max out on motor+encoder and have a complimentary cape use the rest for the io’s.
The market for such as you describe exists with MESA and external drives using a standard PC.
Having hardware that drives these motors would help enormously in just creating a working machine (I’m not looking for 3D printing or CNC myself, but for custom machines) It would help me to focus on creating a machine, and not have me connect a bare BB to an industrial driver.
What you want will not be built. The amount of work needed to create something like that for sales in the under 100 units just won't happen.
For example in 2016 I created my Electronic Lead Screw project. I included on that board two awesome driver chips that allowed control of a stepper motor up to 3A and 55V. Therefore with a 48V supply one could run 300 oz-in stepper motors. Just the two LMD18245 devices now cost more than an entire micro-stepping driver from the far east. And if someone wants to control both Z and X on their lathe they would still need a second driver.
The software inside the ELS has the full micro-stepping code including acceleration and deceleration that now is wasted but I have to maintain it on newer versions for those using the chips.
And if someone damages that high current driver I generally have to replace the entire board. The ELS also requires a heat sink if the on board drivers are used resulting in a larger package and since it includes 35 key buttons, an MPG and a display it's not something buried deep in a box behind the machine.
So based on my experience I would never again build the motor drivers onto the cape.
John Dammeyer
Bas
Would someone perhaps be able to describe simply (like MachineKit for Dummy's) how exactly the step pulse and direction shows up on the Beagle pin relative to the motion command from a G00 X1.0 where current X position is 0.0.
Clearly we accelerate and move and then decelerate to arrive at the end point of 1.0. I do this in my ELS code inside the interrupt routine which happens at a 20kHz rate. If a step is required I set the output at the beginning of the routine and then clear it at the end after a whole bunch of other stuff is done.
Whether to step or not is done by the equivalent of a trajectory planner. For example in simple terms if the motor could accelerate instantly and the step rate was 10kHz then every second interrupt the axis is pulsed. Also for every pulse the position is incremented if going in the positive direction. Decremented if going in the other direction. When it matches the end position the stepping is terminated and we have a move to position.
Inside my ELS interrupt code I do the accel/decel too. The interrupt routine changes the number of 20kHz intervals between step rates and also tracks the half way point. If we're not up to speed yet but the halfway point is reached then deceleration is started and by the time the stepping rate reaches 0 the motor has also reached it's desired position.
Otherwise once the step output pulse rate matches the desired velocity the acceleration part is terminated and the number of steps it took recorded, and now a pulse happens every second interrupt (for 10kHz step rate). When the destination location minus the time it took to accelerate is reached deceleration begins. And since we decelerate at the same rate as accelerating and we have that same distance to move, once we reach 0 speed we've also reached the destination.
Now this could all be done outside the interrupt routine in a trajectory planner. One could determine that it will take time X to reach either target speed or midpoint of the distance to move. Broken into the 20kHz steps then the information could be fed into a FIFO so no math is done at all inside the interrupt routine. It's only task would be to read this from FIFO one byte during each interrupt and write it to the port. The interrupt routine could then run 40kHz and clear the port of step signals every second pulse. If there is no motion the FIFO, flagged as empty, holds the last entry for the port and it's just mirrored out to the port.
So how is it done in the Beaglebone with MachineKit. Is there a function that reads a FIFO filled by the trajectory planner or is it done yet some other way? I would look it up but don't even know where to start.
Obviously there's probably more going on under the covers to deal with hard limits. Seems like soft limits are dealt with before motion starts with the option to not move because it will exceed machine limits.
Thanks
John Dammeyer
--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to the Google Groups "Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/023801d5fd7e%242a472570%247ed57050%24%40autoartisans.com.
From: machi...@googlegroups.com [mailto:machi...@googlegroups.com] On Behalf Of justin White
Sent: March-18-20 5:24 PM
To: John Dammeyer
Cc: Machinekit; beagl...@googlegroups.com
Subject: Re: [Machinekit] Seeed to design and build Machinekit focused Cape for BeagleBone Black/AI
Wow that has absolutely nothing to do with seeed's cape.
Yes it does! My previous posting suggested that a cape by SEED should include the infrastructure to have a display and function as a standalone electronic lead screw for a mill. And accept the motion information from something like a Pi or PC via Ethernet if full CNC was required.
That means the software running on the BBB would not be conventional MachineKit. In fact the software might be straight C code developed with the TI IDE as a standalone project with display that can service as a multi-axis power feed and DRO. Or if could be a subset of MachineKit without the HDMI interface.
So it could do motion. The idea is that it could also, via Ethernet, like the MESA 7i92H receive information that would generate the stepping pulses and feedback the DRO information.
It's time to think outside the box because with the much more powerful Pi4 coupled to MESA hardware there is no way that SEED or anyone else can produce something as good. So it has to be something different.
Seriously. Why pay $150 for a full blown BBB Cape that serves as a Break Out Board and $50 for a BBB that then gives you sub par video compared to a much faster quad core Pi4 running LinuxCNC and Ethernet to a MESA board where the total price ends up pretty well the same.
Technologically the BBB is now old. Very old. And it's just plain silly to continue to try and make it a be all end all. I'd say 99% of the people I talk to who have CNC are running either MACH or maybe LinuxCNC. Mostly they aren't interested in changing. The ones who have mill but not CNC either want to add power feed and perhaps DRO but again most of them are not interested in CNC.
So where's the market? It's easy. The DRO and Power feed controller that can magically turn into a CNC controller.
John Dammeyer
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/CA%2BQ02MOgrNTwNmP3j8CdCai7Pj7Bm9xVm3eZfhq2AhW2niAuAg%40mail.gmail.com.
Hi all,
I've been waiting for this discussion to segue to the Pi. Indeed
the Rpi4B is a decent jump up in capability. If one drives Mesa or
other hardware off the spi then the ethernet is nicely left open
for downloads, etc.With the -4b you seem to get it all. Speed,
communication, display (2), some flexibility and decent access to
Peter's or others boards for step generation. I suspect it will
only be a mater of time before someone mods the software to use
both hdmi ports. The good news I think is that the technology
will just get better. :-)
My plan is: Rpi4b - 7i90 - 7i33 (2) - sem servo motors but Mesa
has lots of solutions for steppers also.
Just a heads up; finding connectors that will allow one to
directly connect the spi to the 7i90 is not easy. The plan is to
use the osh-park 40 pin to 26 pin board to as the spi bridge. Just
because it is logical doesn't mean it is possible. Still looking.
( ideas accepted ).
Comment: long ago (maybe 20 years ago) I acquired the glass
scales before I realized that they were good for position but not
so good for motion. Servo tuning with them is a bear. Not having
any experience with steppers can't comment with any authority but
suspect they would be easier since they are open loop (mostly).
Gene Heskett and maybe a couple of others are running the Rpi4b
under linuxcnc. Gene's implementation is for steppers.
Note: these comments are worth about what you paid for them. ;-)
Hang in there, stay safe!
Dave
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/027301d5fd87%240ea11e30%242be35a90%24%40autoartisans.com.
To unsubscribe from this group and stop receiving emails from it, send an email to machi...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/023801d5fd7e%242a472570%247ed57050%24%40autoartisans.com.
--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to the Google Groups "Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to machi...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/CA%2BQ02MOgrNTwNmP3j8CdCai7Pj7Bm9xVm3eZfhq2AhW2niAuAg%40mail.gmail.com.
--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to the Google Groups "Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to machi...@googlegroups.com.
I think we have to reliably enable hobby-class machines first. Now, some people take hobby pretty far and I'm not trying to cap this off too small, I just don't want to boil the oceans. I'd say if we can do a bit more than what CRAMPS can do today, we should.Personally, I'd want to at least be able to handle the larger 3D printers, smaller CNC mills and some pick-and-place machines. Looking around for some open source ones where the controller could be swapped:* Aleph Objects LulzBot Tax Pro* SeeMeCNC Rostock Max v3* PocketNC V2* Charmhigh CHM-T36VA (not open source, but affordable and hackable)* LasersaurThe desire for the above is mostly to be a vehicle for demonstrating motion control in a familiar way. Something CRAMPS-like could largely serve the above, though would need to be done regarding the price to make it sufficiently attractive, perhaps bundling as a kit.Getting to the standard DB25 seems like a required thing to be widely usable in the community, no?
Hi Jason
I've just found this discussion regarding a new cape for the BBB\BBAI for the hobby focused
cnc community.
A little background, so you know where I'm coming from, and what my biases are :P.
I've been using Mach3 Hobby grade mills and lathes for not quite 20 years now.
Three years ago I cnc'ed a 9 X 20 Lathe and was very happy with it's performance.
Two years ago I made a AI tool changer for it.
build blog here: https://cambamcnc.com/forum/index.php?topic=6844.0
The blog is a bit dated now and goes to MK6, I'm currently at MK8. Here is a video of it running on the bench
Here: https://www.youtube.com/watch?v=FH2_B-Vgblc&t=413s
I'm here because, I'm working on the Linuxcnc version of the software and have a BBB
with Machinekit installed, so that I can write a Linuxcnc component for it as well.
I don't know if you are aware, but Centroid have a Beagle Bone Green powered Acorn
CNC controller, and that board may be worth a look for some Ideas as it has some serious
thought gone into it.
A lot of the existing Hobby CNC installations I've seen have been as a general rule
Mach3/4 or Linux cnc powered machines. either using the DB25 and a parallel port
or with an external motion controller like for example a Smoothstepper or UCCNC UC100
200,300 or 400. The UC stuff retrofits into existing systems people have very easily as they have
a DB25 connector. All you do is plug them in and set the pins parameters ect.
Hope this was useful.
Dave
--
I too have looked at the BBB as a machine controller. Using the Xylotex Cape I temporarily hooked it up to my mill conversion that had Z and Y completed. MachineKit. The Xylotex DB-25 PP Port output to a PMDX-126 Break out board.
Although it worked I found the BBB video a bit laggy. And I needed more and the either the limit switch or the ESTOP were for N/O switches which I don't believe is safe. It was the extra I/O and NO switches that moved me to a stock PC and for LinuxCNC I'm using the MESA 7i92 which is similar to a Ethernet Smooth Stepper for MACH.
The new Xylotex Cape for the BBB doesn't have this NO Switch problem.
They are also working on a larger cape that has drivers built in so a Break Out Board isn't needed.
I also own but haven't used the Replicape to install on a POS Delta 3D printer. Both are sitting collecting dust as other projects have a higher priority. The Replicape, now discontinued, could also have run small CNC milling machines with the on board drivers although still more targeted at 3D printing hardware. For example I don't think it will support an encoder on the spindle.
I think most of the small stepper drivers out there are for motors under 2A and 24V. Realistically it might be better to aim at using modules like the Gecko G250X to plug into the cape.
https://www.geckodrive.com/g250x-digital-stepper-drive.html
Perhaps add a second socket for the cheaper drives used on 3D printers. Google " 3D Printer Parts StepStick Motor Driver With Heat Sink A4988"
This way at least you can switch up to 3.5A motors at 48V which is handier for say Sherline Mills and lathes.
Perhaps the best way to make this cape is with the headers for the Gecko on the bottom like their G540
https://www.geckodrive.com/g540-4-axis-digital-stepper-drive.html
Add enough I/O for both types of heaters and also encoders and you might have something that works for both types of products.
The question is. If you have a small Sherline Mill or Lathe would you even buy something like that?
John
From: 'David benson' via Machinekit [mailto:machi...@googlegroups.com]
Sent: May-05-20 1:08 AM
To: Machinekit
Subject: Re: [Machinekit] Seeed to design and build Machinekit focused Cape for BeagleBone Black/AI
--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to the Google Groups "Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/7b7a1aa3-7e6f-4ed8-998c-04f4d780625f%40googlegroups.com.
Hi John
I won't be using the BBB to drive either my mill or lathe as I'm very happy with what I've got, and have made good quality parts with them for many years.
What I bought it (the BBB) for was for some other robotic projects.
I've flashed it with Machinekit so that I can test the software integration for my AI tool changers for both the BBB and Linuxcnc using the gladeUI and a few of my own HAL components.
Can't test it out too much yet as I'm waiting on a powered 4 port USB keyboard , mouse and HDMI cable.
Acorn is running Machinekit headless with its own carrier board and the software is running on a Win10 pc using Ethernet and this by all accounts runs well with no lag. If I was starting from scratch again this would be worth looking at. It uses a BB green from seeed.
As to the BBB cape, I really have no idea of the user demographic for the board so it's hard to speculate, if the cape is mainly aimed at hobby 3D printers,lasers ect then the DB25 may not be necessary, perhaps a IDC header would be ok to break out the BBB pins and you could make your own cable. Existing mills or lathe will already have a BoB
I use a MachDrives BoB that has a 32 bit micro-controller on board that takes care of the VFD to a claimed better than one percent and threading with Mach3 Lathe has been faultless.
What I do like about the BoB is that it has indicator leds for the spindle feedback and limits which make it a breeze to set up even for a beginner.
Nice mill BTW.
Dave
When I build the cape I use on my lathe I sort of used a modular design. I based this on a prototype cape and used those small optocoupler and level shift modules that you get from China for the maker scene. It looks quite like a hack but you might see the three opto modules in the back and the two level shifters here:
https://forum.zerspanungsbude.net/download/file.php?id=188366&mode=view
There is an external pwm-> 0-10V module as well (not shown) for spindle control
I always thought about making this nicer. I would have done it this way:
A cape that:
- Make PRU and GPIO Pins available in sets of 4? pins on standardized PIN headers + power.
- Makes the terminals for connecting the cables available
PLUS
Small modules for level shift, opto isolation , spindle control (as desired). These would use the standardized connectors on the cape.
For this I would actually rely on stuff that is already available (if so).
--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to the Google Groups "Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/4e75a7ba-b13f-4579-a7f1-09211ff4cbd7o%40googlegroups.com.
Hmm out of curiosity why would you require 2 separate EtherCat ports or is it just for a ring topology?If you can settle for just one, you could run the igh EtherCat master stack on the BBB and use available LAN port. So if one is enough, no need to mixup the cape with the EtherCat stuff.”Ideally” for an industrial approach you could do ”minimal” setup on the cape and then (I think someone suggested this in the past) make a bunch of EtherCat slaves. Using a microchip LAN9252 coupled with a microcontoller is relatively simple to make and somewhat cheap. From the top of my head ill say the 9252 requires some 50 components around it and most just resistors and capacitors. The EtherCat slave license ”comes with” the LAN9252 so no issuesIf you pair the slave controller with a popular mcu I think the community could do a lot in the EtherCat slave world.
Just my 2 cents.
Agreed on the massive requirements disparity. In my view, given how saturated the market is for stepper-motor based control boards (particularly the Duet 3, which can be controlled by a BBB/RPi) I'd prefer a more Break-out-Board style cape to make industrial-level control more accessible.--My ideal cape would have dual etherCAT RJ45 ports, an RS422 or 485 header with voltage selection for PLC/spindle vfd control, UART headers, dual CAN headers and a small array of optoisloators for the other GPIO. Biggest problem for this is the ethercat license, which is somewhat of a pain...I also prefer the web-based GUIs locally hosted on the device, which can be accessed across the network and use less resources than a driven display and a native GUI, so I'd prefer a cape NOT be limited by a desire to have a screen/monitor from the BBB.just my 2C
On Sunday, June 7, 2020 at 12:46:01 AM UTC-4, Malte Schmidt wrote:I think the issue is always that the requirements with these machines are very different and that you never quite get what is needed.When I build the cape I use on my lathe I sort of used a modular design. I based this on a prototype cape and used those small optocoupler and level shift modules that you get from China for the maker scene. It looks quite like a hack but you might see the three opto modules in the back and the two level shifters here:
https://forum.zerspanungsbude.net/download/file.php?id=188366&mode=view
There is an external pwm-> 0-10V module as well (not shown) for spindle controlI always thought about making this nicer. I would have done it this way:
A cape that:
- Make PRU and GPIO Pins available in sets of 4? pins on standardized PIN headers + power.
- Makes the terminals for connecting the cables availablePLUS
Small modules for level shift, opto isolation , spindle control (as desired). These would use the standardized connectors on the cape.
For this I would actually rely on stuff that is already available (if so).
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to the Google Groups "Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to machi...@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/61c7c2b7-e1bb-4c2c-8556-355bf16645b2o%40googlegroups.com.
The BBB would be the master for my use case, with devices such as servomotor drivers as slaves in a dual-redundant topology. I use the BBB Wireless, and thus don't have the onboard RJ-45.
To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/61c7c2b7-e1bb-4c2c-8556-355bf16645b2o%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/E3597AE0-5791-438A-981D-D941017C7FB3%40basdebruijn.com.
On Thursday, March 12, 2020 at 6:32:52 PM UTC-4, Chris Albertson wrote:Isn’t that something the Beagle is strong at with the eQEP and PRUs?Strong only until you hit up against the limited number of I/O pins. A PRU based solution is cheap and simple but can't scale.In general TI's idea to place a small microcontroller on the same chip as their ARM Cortex-A was good and we see others doing this too but a big machine tool like a 5-axis mill with tool changer and cooling and saftey interconnects is going to need something bigger than a PRU. FPGAs work well as wold an STM32 tht had on order about 100 pins.--
Chris Albertson
Redondo Beach, CaliforniaBut that's not what they are going for "Help assemble and provide software images configured for an open source 3D printer and CNC machine (with BeagleBoard.org and community guidance and support)"......Pretty much sums up the mission statement. If they're looking to showcase the Beaglebone hardware as part of an official beaglebone supported piece, I seriously doubt they're looking to offload IO to a microcontroller and develop the firmware for it when:* Manufacture the design under the BeagleBoard.org name to support the BeagleBoard.org Foundation and communityEverytime someone mentions something like this people get all starry eyed about it.....It's going to be Seeed's version of Cramps. The most helpful suggestions would probably be along those lines. Jason will have to clarify but I'm pretty sure this is a maker focused thing, Ethercat and analog outputs for each axis are not going to happen.
Realistically that is the Machinekit audience anyway, otherwise mksocfpga would have quite a bit more interest than Beaglebone projects, Try running out of IO on a DE10-Nano, you could probably run a Haas with all that IO.
--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to the Google Groups "Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/d7a07412-c692-4673-9e2e-a87131cadf10%40googlegroups.com.
>> To unsubscribe from this group and stop receiving emails from it, send an email to >> machi...@googlegroups.com>> .
>> To view this discussion on the web visit >> https://groups.google.com/d/msgid/machinekit/d7a07412-c692-4673-9e2e-a87131cadf10%40googlegroups.com <https://groups.google.com/d/msgid/machinekit/d7a07412-c692-4673-9e2e-a87131cadf10%40googlegroups.com?utm_medium=email&utm_source=footer>>> .
>>
>
>
> --
> https://beagleboard.org/about> - a 501c3 non-profit educating around open hardware computing
>
>
>
> --
> website: > http://www.machinekit.io> blog: > http://blog.machinekit.io> github: > https://github.com/machinekit
> ---
> You received this message because you are subscribed to the Google Groups "Machinekit" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to > machi...@googlegroups.com> .
BeagleBone AI uses AM5729, which in contrast to the one used in BBB should have a Ethercat slave support. You can then use the PRU for exchange of Ethercat messages and create distributed, multi-node system (multi Machinekit instances).
This seems like an asymmetry to me. You say that nobody use Ethercat based systems,......
....but then want a support for solution that really nobody use and is not that good in first place.
Why not use something which is developed and backed by a quite big group instead of one-man-show?
EtherCAT is used extensively in industry, a signification number of the
CNC controllers now only support EtherCAT servos and IO.
The cost of using EtherCAT for CNCs has dropped significantly in the
last 5 years with a number of smaller suppliers of servo hardware
producing products.
Companies like LNC (www.lnc.com.tw) and Moon Industries
(https://www.moonsindustries.com).
My family business has been using EtherCAT hardware on our wool sampling
machines for the last 7 years. Its totally changed how we think about
our machines and the way forward. I can say with 100% certainly that we
would not be making our machines any more if I had not found EtherCAT
eight years ago.
Now for the purposes of making a BBB MachineKit board which make the job
of controlling my DIY / semi-commercial CNC.
I'm not sure. It would be cool.
But do not dismiss the idea out of hand. The ASIC's are not that
expensive and there are other suppliers out there who are interested in
having there chips/products used by DIY.
One of these is
https://www.bausano.net/en/hardware/ethercat-e-arduino/easycat.html or
https://www.bausano.net/en/hardware/ethercat-e-arduino/ethercat-and-raspberry.html
Cheers All
Mike