-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
M10CUBE #3
Comments
Hi @terjeio . Grate design. I also see that you are contributing to PICO GRBL design. Here is the link of the post containing details about that: One last thing. |
Yes I have built and bench tested it. There are only courtyard errors when I run DRC, this with v5.1.2. The courtyard errors can be ignored, they are mostly from the DRC ignoring which side of the board the components are mounted. The "dummy" driver can be used as a replacement for all boards that has Polulu style drivers. Yes, signals are inverted but that can be "corrected" by inverting them electronically in the driver configuration. I see now that the design is in KiCad4 format, so symbols has to be remapped. Also, if made with a 2 layer board R4 should be replaced with a track on the top layer. |
Thanks @terjeio. I will forget the errors. R4 can be replaced with zero resistor I think. Before converting it is nice to post the PDF of the schematic so to understand the circuit of the DUMMY since it is unreadable in KICAD6 |
It is a 0R resistor... The dummy motor project has now been converted to v5 format. |
OK @terjeio KiCAD now reads the schematic . |
Either that or 2.54mm pin headers. User choice.
Not sure what you mean by this, the connectors I use can be slided into each other. I have 2P and 3P variants which can be joined to whatever number of pins I want. Or do you mean 2.54mm pin headers with white plastic (shroud?) around them which some steppers comes with a mating plug for?
You can change the PCB to match those? Not sure if there is enough room though. |
Can you please point me to the supplier for your connector to colied with
others so as to form a continuous one? so i can only do 2p and 3 p like
you. I do not want to change the pcb at the moment concerning the
connectors. thanks
…On Sat, Oct 30, 2021 at 9:23 PM Terje Io ***@***.***> wrote:
You are using the connector CONN_PWR_2P_3.5MM_CAMBLOCK
Either that or 2.54mm pin headers. User choice.
Problem is that can not have to side by side. Is your connector without
the plastic in the sides?
Not sure what you mean by this, the connectors I use can be slided into
each other. I have 2P and 3P variants which can be joined to whatever
number of pins I want. Or do you mean 2.54mm pin headers with white plastic
(shroud?) around them which some steppers comes with a mating plug for?
I bought for M10CUBE from this supplier many types but all was 3.81mm
You can change the PCB to match those? Not sure if there is enough room
though.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#3 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADK6RSWXSXVMQS62CSUBYDTUJRA3ZANCNFSM5GYVKL3A>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
--
Vasilis Vorrias
Electronics and Automation
M10CUBE project: https://hackaday.io/project/171770-m10cube
GitLAB : https://gitlab.com/m10cube/m10
email: ***@***.*** ***@***.***>
Skype: vorrias_home
Phone home: +302421049323 <+30%202421%20049323>
Against GM food
|
I am waiting for new delivery - nearly four months now so I do not think I should link to that supplier (from china via ebay). |
Four months! we had that problem in Greece last year but now delivering is starting normal. |
Hi @terjeio As you know KiCAD 6 announcing date is in December. That will give publicity to all the topics involved specially the GRBLHAL project All that without sacrificing any design done so far with Nucleo64 CNC or Raspberry Pi Pico CNC but only adding all the M10CUBE features. Dr Dalmaris placed the podcast on December but I am thinking to move it from next year so to have time to discuss and document the idea better. The only thing you need to jump on M10CUBE is only that: 1 - to have 90x90mm for PCB dimension (on places where I/O connectors are you can go up to 100mm) I already have a template made (KiCA6 nightly builds) to help out the transition. So I really want to hear from you on that. |
Interesting, my design is open hardware so feel free to modify it as you please. I see that you have already added the Pi header above. BTW in addition to routing I2C to that header you may want to route UARTTX/UARTRX as well? For I2C you have included the STROBE signal (from U9/pin2)? Note I have no intention of selling it myself, and the component choices I've made is not well suited for assembly by a manufacturer such as JLPCB? Some, such as the optocouplers, has to be substituted with similar ones from the manufacturers parts list? |
Hi @terjeio. I am not doing it for money as well. I have no intentions of selling |
I guess I have to allow for a way to poll multiple devices. The keypad plugin is one that "uses" the strobe pin to read keypresses. A I2C strobe HAL function pointer entry that can be used by several plugins at the same time by "chaining".
Not neccesarily - polling can be used. The strobe input is active low, this allows for wire-OR'ing several sources to it. |
Nice lets do it
Mm.. If you have 5 MCP23017SS strobing and you have wire-OR'ing the strobes even if you start polling you have no idea with MCP23017SS asking you attention for you to poll. We must be careful not to enable strobe on other cards on the bus. As I said to all these problems are solved with I3C. But still if you have some other idea I am listening . I may be wrong. |
I might be wrong too... I think I'll add parameters so that polling can be avoided if the driver supports it. Anyway, having a lot of inputs would require custom/plugin C code as grblHAL does not support conditional gcode. Such custom code might be very hard to make generic so interrupt handling could be done in the custom code and not in the driver? Do you have use cases where 16 inputs would be required and where plugin code has to be portable across drivers? |
Well Yes and No. I invision your design and phil-barrett design (PicoCNC) to have 6 axis and leave the I/O on separate M10CUBE modules. |
You will have to adapt my design for that and provide the needed plugin/device driver code. What I will do is to provide a HAL extension that allows up to 255 interrupt sources for each type of predefined interrupt. With this it will be possible to write a generic plugin that handles the interrupts that is subscribed to via the HAL. A device (and likely MCU?) specific driver extension has to be provided for each I2C device to be supported, and it will have to register a function with the HAL so that plugin code can subscribe to the interrupts available. The HAL extension will also unlock the current I2C strobe signal from the keypad plugin making it available for other purposes. This is an example of how a device specific API is implemented - simple since it is output only, and integrated directly into the core due to that fact. Input is not that easy when continuous polling is not possible/desirable.
I'll have to check that as I do not know. |
Ok that will be a future project and you may help me on that if you please since the current design is 4 layers and you as a designer have more power on that.
Yes that will be nice. At the moment I will finish the CNC_Breakout_Nucleo64 + M10CUBE mix so to have a working CNC Nucleo64 board to test. I will post the final design with all necessary signals on RASPI connector so if any remarks on that will be appreciated before fabrication.
Ok I will do the above study so to be able to understand you better since I am more on electronic and not on software. |
Four layers are easier to lay out than two... The inner two layers are mostly used for ground and power, I have sneaked in a few signal traces taking care to not break up the ground layer (In1) too much. This project is in fact the first 4 layer board for me... |
Hi @terjeio While waiting for the 3.5 mm connectors I made final adjustments to adapt in M10CUBE. Adjustments made only on those between NUCLEO and RASPBERRY 40 pin connector Stobe needed but I do not want to mess it and I will wired up . Gerber uploaded to JLCPCB but waiting for your "green light" (if any glitches found) before ordering. 5 PCBs only 7 Euros. I can order some more and sent you some boards (including some I/OS) to experiment |
You have nearly broken the ground plane (In1.Cu) in two for no good reason, there are SCL and SDA wires close to your connector that can be reached with vias (near U5). And if it is hard to route on the outer layers I would prefer to place tracks on the 3V3 layer without disturbing where current flows too much. BTW buffered, and possibly level translated, I2C signals are available at J16, including the strobe.
Crossing is typical - depends on the labeling in the end. Electrically it is crossing.
UART2, UART1 is connected to the debug chip that provides USB serial - IIRC this connection can be broken by removing some 0R resistors and is the reason I have brought the pins out to J25. It is also possible to connect the TX pin of this port to another UART for "listening in" to whatever is transferred out of the port. |
Thanks @terjeio for all notes you made in a very short time. I will fresh start from the beginning to take everything into account and make something nice. I am Only confused about UART. Your suggestion is to use that on PA2/PA3 (J25) ? Strobe will go to RASPI connector Pin 13 (where input I/O strobe goes) |
No, I wrote UART2 then explained what UART1 is connected to. If connecting to UART1 (PA2/PA3) then you have to remove SB13/SB14 on the Nucleo board which will disable serial over USB. If this is what you want then use UART1. The strobe pin on the Pi should be set up as open drain output, this will allow other devices using the strobe input to be connected to J16. |
Thanks @terjeio . I am thinking the UART2 as a better solution. In real life external drivers with your plug in interface cards will be used or the internal ones in SPI mode. And see how it will go. We can always change later on a new version if something goes terribly wrong. I am moving to complete the proposed changes and the submit. |
Hi @terjeio . I did all the suggested changes and looks nothing broken. As I said before sketch is not connected to PCB because it is not annotated (I will solve that later). I put a lumber on 3.3V in case we do not want connection when Raspberry is on the bus. |
It looks better now, good to go. |
Thanks @terjeio I made final clean up
|
Hi @terjeio . I just finished 2 new I/O boards for use with M10CUBE platform plus your design. Went for PCB fabrication together with the above M10NUCLEO CNC board, wait to receive them and solder everything on board. Here comes your experience on using the Trinamic/Polulu drivers. Since it is my first design looking at your circuit I can not configure the way you connect the SPI (SDI, SDO, SCK, CS) signals. Looks like all having same CS together. Is the select is done using Enable signal on pin 9? . And what are the SDIy, SDIa, SDIz, SDOt signals on SDO inputs? All this info is needed not only to help me on the PICO design but for building your board when I receive it from fabrication some time soon. M10NC02-10.pdf |
I think you should start a spearate discussion for the M10CUBE board, it will be easier to follow then.
Yes, in SPI mode Trinamic drivers can be operated in chained mode - forming a long SPI register of 40 * n bits. This is what I opted for in my design as it frees up 3 pins for other uses.
No, that is the motor enable signal.
I have made some images showing how links can be used to select for standard Polulu style drivers, Trinamic UART mode and Trinamic SPI mode drivers. It is on my todo list, among a million other things, to publish these with corresponding documentation. An example for 3 TMC drivers in SPI mode:
I2C strobe interrupt handling is already made available for board and/or plugin code, here is how I attach code to it in the keypad plugin. |
Thanks @terjeio for the quick answer. You gave me a lot of info to start digging. When M10NUCLEO CNC PCB arrives (ready and try to operate it) will help me to understand better your philosophy and help me on the PICO GRBLHAL module. |
@terjeio while waiting for your design to come from JLCPCB I am doing finishing work on PICO CNC. |
Hi @terjeio . While wating finishes on the PICO CNC M10NC02-20 module, I finished populating your CNC Nucleo breakout board (M10NC01-10 incarnation). I left out the spindle control and the positioning of the 74LVC2G17, 74LVC1G17 (I have them in our M10NC01-20 PICO CNC) . Difficult to solder . I have to replace them in a later design. Expensive and difficult to source. Same applies for VOM452, TPS70939 TCA9406 (under way from the sources). A - First solution. B - Second solution Finally I went into Web Builder and made a binary for Nucleo 64 F446RE board. Thanks a lot EDIT |
I would use a separate driver for each motor. Signals for the second motor will be routed to fourth driver (A-axis or M3). Easy to select in the Web Builder:
More board images here.
Yes, but be aware that the outputs are open drain. This means that the outputs should be connected to the cathode side of the driver optos.
Bascially ignored. All off?
If you mean sensoless homing then yes that can be configured - but has to be tuned.
IIRC they are equal to the TMC2209 regarding the UART protocol - but are less capable in the max current department?
Yes - and programming is easy, just drop the firmware on the drive that appears when you plug in the Nucleo-64.
If the package and pin configuration is the same then it should be ok. |
Thanks @terjeio
Yes is the same SMD package. This is marked as A5SHB Thank you |
@terjeio Just to check that null boards have the correct orientation and pin out order is correct as well. Is that correct please?. Not very nice to burn something done with so many hours in the lab. One other thing is that DIR and STEP signals are truncated on the breakout board and on the null board Do I have to change on the driver ? Thanks a lot PS. If you have time have a look and my previews post |
All repositories except the processor specific ones remain (with few exceptions) unchanged for the different boards. The processor specific code binds it all together. Which specific core features and plugins each processor and/or board configuration supports vary - some due to limited MCU/board resources and some due to not having the needed support code implemented.
The "notes" I keep is the exsisting driver, plugin and template code that I have written. I have started to add some technical documentation to the core - available here. Some information can also be found in the Wiki.
Oops - my bad. Anyway - the three inputs are exactly the same, connected to the transistor gate. So it is (from top to bottom): DIR
The external stepper drivers? Or the firmware driver? |
Thanks @terjeio . I will follow your directions on the Nucleo design . Hopping this week I will have and post positive results. |
Hi @terjeio . After some endless hours to find a hardware problem (located in faulty resistor in the optocoupler circuit) finally everything assembled together for a test run. But I had to unsolder/solder new opto IC two times! For Inputs and relays (outside world) separate 5V in used common grounder with CPU 5V So far so good but when connected to BCNC and press the unlocked GRBLHAL reports error 50 as you can see. EDIT No SD card is used May be you can give me a clue to move on and run the first test. PS. what is your favorable CNC communication program? I am intending to do some PCB milling as well. |
The estop input is asserted - see this Wiki page for how to handle that.
With $ settings.
Do you have an EEPROM (or FRAM) chip installed, if so which size?
I use ioSender since I wrote it to support the many grblHAL extensions - however it is WIndows only. It has an advanced settings UI making it easy to configure the controller. |
Excellent @terjeio . You have been very fast . STEP -> PUL(-) settings to GRBL If can fix that I am ready to test EDIT |
ENA is active low or high? IIRC some external drivers drivers do not require a connection making the ENA input active high (no current through the internal optocoupler).
Sorry no - it is written i C# and uses the WPF framework which is not available for Linux.
Yes. $15 controls the coolant, $16 the spindle. |
Hi @terjeio . I got your notes and I am trying all day to move the servos. Seams impossible. |
Do you have a voltmeter? |
Yes and an oscilloscope as well if needed. |
Ok, with the voltmeter you can check the stepper wiring. You may have to send a short motion command or reset the controller when changing settings. Change should be between ~0V and 5V. With the scope you can also check levels and see if step pulses are present. |
Thanks @terjeio for your valuable time to spend it with me here. |
Hi @terjeio. and NOT |
Hi @terjeio |
Thanks to @terjeio Here is how I used the Bonus design: Polulu style motor driver "dummy" I am now adding Ethernet on this design using M10DX01-20.0 I/O board You see the unpopulated M10DX01-20.0 board only the wiznet Pico Ethernet Hat on board. @terjeio I hope to web upload the driver and have Ethernet on board. Hidden application is here and that is when you populate the board using the wiznet W5100S-EVB-Pico module KiCad design files should be in Git Lab , hopefully this weekend. |
M10CUBE format CNC Brakeout Nucleo64
The text was updated successfully, but these errors were encountered: