Welcome! Log In Create A New Profile

Advanced

New ARM Controller Board

Posted by JustAnotherOne 
New ARM Controller Board
June 21, 2015 10:12AM
I have been working, with a friend on a ARM Controller Board. I would like to get your feedback before building the first prototype:

Technical Data:
- CPU: ARM Cortex-M4F (Hardware Floating Point)
- 168 MHz, 1MB Flash, 192kB RAM
- 512 Byte EEPROM (I2C)
- Single Input Voltage (12V .. 48V)
- USB Full Speed Device
- up to 8 Steppers
The Stepper Boards use the Trinamic TMC262 chips with an external H Bridge. The Boards are optimized so that they do not need active cooling. The motor current and micro stepping(up to 256x) can be configured using SPI. The Chips also measure the current actually used by the stepper and this value can be read out using SPI.
- 6 End Stops
- 5 Heater (PWM)
- 5 PWM Fans
- 4 Thermistor Inputs
- 1 Thermocouple Input
- 1 Buzzer
- 3 LEDs
- 2 UARTS
- 3 Relay Outputs
- 1 Extension Port Header that has:
  • 3.3V
  • 5V
  • UART
  • SPI
  • I2C
  • GPIOs
- 1 USB A Connector to power a Raspberry Pi or Beagle Bone Black
- Header for 3.3V, 5V and 12V

Schematic

Schematic Stepper Module

If you are looking for Ethernet and Graphical Display then attach an Raspberry Pi or BBB for that.
The Normal Text Display with Buttons/Rotary Encoder and SD Card should be possible to be connected to the Expansion Port.

So what do you say ?



Edited: Added Schematic for Stepper Modules, updated Schematic.
Edit 2: next small update of Schematic.

Edited 2 time(s). Last edit at 06/22/2015 03:41PM by JustAnotherOne.
Re: New ARM Controller Board
June 21, 2015 10:23AM
There has been a lot of talk about STM32F4-based boards over the fast 4-5 years.

But none has been made so far ( though several have been started ).

It seems the main problem is firmware : what do you intend to run on your board ? As far as I know there is no Reprap firmware currently ported to STM32F4..

Cheers.
Re: New ARM Controller Board
June 21, 2015 12:32PM
I'm working on a Firmware. I did some test with the Discovery Board. There is a lot of stuff still to do. The ST Documentation is rather bad.

I have separated the Hardware Abstraction Layer into a separate Folder. I hope that that helps others to get a port started.
Re: New ARM Controller Board
June 21, 2015 12:34PM
Quote
JustAnotherOne
I'm working on a Firmware. I did some test with the Discovery Board. There is a lot of stuff still to do. The ST Documentation is rather bad.
.

This looks like you are departing from G-code as the communication protocol, what is pushing you to do that ?
Re: New ARM Controller Board
June 21, 2015 12:44PM
What license is the hardware under?
VDX
Re: New ARM Controller Board
June 21, 2015 12:46PM
... I'm using the Discovery boards for CNC-milling, laser-engraving and a XY-servo-scanner (not galvos!), but the firmware and used CAD/CAM-software isn't free or OS, so didn't post about here.

But the developer company is now changing/updating (could be because of me) for faster CPU's - the next one will be based on a BeagleBoneBlack ...


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org] -- Deutsche Facebook-Gruppe - [www.facebook.com]

Call for the project "garbage-free seas" - [reprap.org]
Re: New ARM Controller Board
June 21, 2015 04:56PM
Quote
jebba
What license is the hardware under?

The final hardware (and this Schematic) are Open Hardware.

Quote
VDX
... I'm using the Discovery boards for CNC-milling, laser-engraving and a XY-servo-scanner (not galvos!), but the firmware and used CAD/CAM-software isn't free or OS, so didn't post about here.

But the developer company is now changing/updating (could be because of me) for faster CPU's - the next one will be based on a BeagleBoneBlack ...


I agree that we need more performance than what the AVRs can do.
I think it is easier (and more efficient) to move time critical stuff away from a CPU that runs a non real time OS (Linux). I think it makes sense to move the Network Stack, graphical Interface onto something like a BBB and keeping the time critical stuff like steps and PID on a dedicated CPU.

Quote
arthurwolf
This looks like you are departing from G-code as the communication protocol, what is pushing you to do that ?

Yes that Firmware is moving away from G-Code as the protocol for the communication between host and firmware. If someone wants to port a Firmware that uses G-Code to this board that would be a good thing.
The reason to move away from G-Code is the separation between time critical and not time critical functions. Due to this separation parts of the Firmware (parts of the planner, the G-Code Decoder) moved to the host side. The host side uses G-Code. So no need to get a complete new tool chain there. Standard Slicers and G-Code Files will also work with Pacemaker.
And if doing a new protocol one can at least try to fis some problems of the old one. The Protocol Specification that buildrob and I created is here.
Re: New ARM Controller Board
June 21, 2015 06:22PM
I'm one of those people who was planning on making an STM32F4 board, and talked to a lot of people getting feedback. I had to drop it, unfortunately, because life got too busy, and linuxCNC-based systems appeared to be gaining ground, which I think have a lot of potential for the high end. I'd be surprised to see someone take the cpu from the beaglebone and put it on a dedicated printer driver board, but it might make for some serious cost savings at scale. But that's another animal smiling smiley

This looks pretty good, overall. A lot like what I was going to do. Glad to see someone else going for it! A few questions/comments:

If you moved upfrom the 405 to the 407, which has a budgetary cost of about $0.50 more, you'd have the ability to add ethernet at a later time. The LAN8710A or 8720A PHY is pretty cheap, and I'm sure there's chinese equivalents for even less. All you need after that is a magjack and you're good to go. Since a lot of people have previously expressed interest in not needing an rpi or whatever and just plugging in, it might be worth keeping in mind. That said, those ESP8266 wifi modules might be cheaper and more convenient for a lot of people.

I'm very glad to see higher-voltage steppers - faster movement and less heat. The chip you found looks awesome. Is there a reason for having the steppers be modules rather than integrated into the same PCB? Heat? Ability to use less beefy stepper drivers if desired?

If the stepper modules are going to stick out perpendicular to the main board (which can be nice for heat flow), you might want to consider a card edge connector. Some of them are really cheap, like the FCI 10018784-10200TLF, which is only $0.16@1k, compared to the one you picked out which is almost twice as much. That one is rated for lower current, but it has nearly twice as many pins in roughly the same space, and your stepper board wouldn't need a separate connector, saving parts and assembly cost for each stepper board, especially if there's no through-hole parts.

How do you plan to talk to those stepper chips via SPI? It seems like if a module is plugged in, you can't talk to any later ones, which rules out reading the current in use on anything but stepper 0.

Thermocouple: looks like you picked the J-type chip, but the K-type connectors. I'd choose K, because they're cheaper and better suited to the temperature ranges we're looking at. Also, are you planning to always populate the thermocouple circuitry, or just have it there as an option (like my ethernet suggestion above)? I ask because that chip alone seems to be around $3-4 at quantity, and a proper thermocouple connector isn't insignificant either. The expansion port has SPI2 on it, and I get the impression most printers don't use thermocouples, so a thermocouple board could be an add-on. People who use two heads and thermocouples would need to add a second thermocouple anyways, so it would be good to think about that use case. Thermistor circuitry is cheap and tiny, so it makes sense to have a lot of channels available, like you do.

Maybe it's just because they're cool and under $0.10/ea at quantity, but you could consider the WS2812B in place of the red, green, and blue leds on PE10,12,15. It'd free up two pins which might make the routing easier. That said, there's something nice about dedicated indicators with silkscreen labels like "POWER."


I did end up making a design for an L6474-based stepper module, as a drop-in replacement for the standard pololu. Never got around to getting it made. Would it be helpful if I ordered some to verify, and share the design?
Re: New ARM Controller Board
June 21, 2015 07:24PM
Quote
matt.minuti
This looks pretty good, overall. A lot like what I was going to do. Glad to see someone else going for it!

Thank you.

Quote
matt.minuti
If you moved upfrom the 405 to the 407, which has a budgetary cost of about $0.50 more, you'd have the ability to add ethernet at a later time. The LAN8710A or 8720A PHY is pretty cheap, and I'm sure there's chinese equivalents for even less. All you need after that is a magjack and you're good to go. Since a lot of people have previously expressed interest in not needing an rpi or whatever and just plugging in, it might be worth keeping in mind. That said, those ESP8266 wifi modules might be cheaper and more convenient for a lot of people.

The not having Ethernet is part of the concept here. Just add a RaspberryPi and Octoprint and you get WebCam support. For remotely controlling you printer being able to see what is going on is worth a lot. Ethernet would also complicate the Pinout. Or even require a bigger package.

Quote
matt.minuti
I'm very glad to see higher-voltage steppers - faster movement and less heat. The chip you found looks awesome. Is there a reason for having the steppers be modules rather than integrated into the same PCB? Heat? Ability to use less beefy stepper drivers if desired?

The design started out with having 4 Stepper integrated into the Board. 8 steppers on the Board would make no sense. Therefore stepper modules would be needed anyway. Then the Idea came up to use two boards on one printer. One Board with steppers and another to provide additional Heaters,Fans,.. (The Pacemaker protocol makes that possible) And finally the board can be cheaper and easier to layout with no steppers on board. That optimized those 4 “internal” steppers away.

Quote
matt.minuti
If the stepper modules are going to stick out perpendicular to the main board (which can be nice for heat flow), you might want to consider a card edge connector. Some of them are really cheap, like the FCI 10018784-10200TLF, which is only $0.16@1k, compared to the one you picked out which is almost twice as much. That one is rated for lower current, but it has nearly twice as many pins in roughly the same space, and your stepper board wouldn't need a separate connector, saving parts and assembly cost for each stepper board, especially if there's no through-hole parts.

Sounds interesting. The lower current might be a problem. I would also not want the modules to slip out easily. But I will look into that. Thanks for sharing.

Quote
matt.minuti
How do you plan to talk to those stepper chips via SPI? It seems like if a module is plugged in, you can't talk to any later ones, which rules out reading the current in use on anything but stepper 0.

The Stepper chips behave as a shift register as long as the chip select signal is active. Each chip has 20bits. So with 2 Modules I would send 40bits per transaction. One chip will shift the first 20 bist out to the next. So both chips would get their data. And both will shift out their status information. So no problem there.

Quote
matt.minuti
Thermocouple: looks like you picked the J-type chip, but the K-type connectors. I'd choose K, because they're cheaper and better suited to the temperature ranges we're looking at. Also, are you planning to always populate the thermocouple circuitry, or just have it there as an option (like my ethernet suggestion above)? I ask because that chip alone seems to be around $3-4 at quantity, and a proper thermocouple connector isn't insignificant either. The expansion port has SPI2 on it, and I get the impression most printers don't use thermocouples, so a thermocouple board could be an add-on. People who use two heads and thermocouples would need to add a second thermocouple anyways, so it would be good to think about that use case. Thermistor circuitry is cheap and tiny, so it makes sense to have a lot of channels available, like you do.

The Thermocouple is on there as this will be a prototype to get the firmware running. So it may or may not disappear in the final board. A Thermocouple module is something we also thought about.

Quote
matt.minuti
Maybe it's just because they're cool and under $0.10/ea at quantity, but you could consider the WS2812B in place of the red, green, and blue leds on PE10,12,15. It'd free up two pins which might make the routing easier. That said, there's something nice about dedicated indicators with silkscreen labels like "POWER."

For this board the LEDs are a debug tool. Switching them on or off to show what is happening in the Firmware at that time. In the final board it should be a Status/Error indication. So yes nice silkscreen labels and all that. The expansion port pins are for fancy lights and whatever.

Quote
matt.minuti
I did end up making a design for an L6474-based stepper module, as a drop-in replacement for the standard pololu. Never got around to getting it made. Would it be helpful if I ordered some to verify, and share the design?

For me personally no. I have my hands full with this. But others might be interested in a pololu replacement. I already saw some pololu compatible things with different stepper chips. So I don't know how the L6474 would measure up against what is currently available.
Re: New ARM Controller Board
June 24, 2015 04:53PM
Funny, I just picked up two Nucleo boards with the F4's on them for this same purpose.

I might be inclined to contribute to the firmware once I get a solution in place that can drive the hardware. I like the approach of putting the heavy calculations on the host where they belong. The controller should just be turning step/directions into pulses for the motors and monitoring the system to keep it within operating parameters.
VDX
Re: New ARM Controller Board
August 08, 2015 06:25PM
... I've got one of the STM32F7Discovery boards with capacitive touch-display for tests/development - someone other working with or has plans for it?


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org] -- Deutsche Facebook-Gruppe - [www.facebook.com]

Call for the project "garbage-free seas" - [reprap.org]
Re: New ARM Controller Board
October 18, 2015 02:34PM
Short update:
The second revision of the Stepper Boards are in my Hands and the Motor is turning. The Layout for the Base board is nearly finished and I will order the boards in the next days.

If you are interested to get a Baseboard and some stepper modules please contact me: lars@nomagic.de

I will give them away at my own cost (So no profit for me). But please be warned these are prototypes and as such are untested and may contain problems. Firmware is also not there yet.

But if you want to port your Firmware onto this board or want to help me get this board to work then this is your chance.
Re: New ARM Controller Board
December 07, 2015 01:34PM
another update:

a picture says more than thousend words:
picture1
picture2
picture3
Re: New ARM Controller Board
December 08, 2015 04:12AM
Regarding to a STM32F4 Firmware, maybe MARLIN-II Firmware will help, this printer firmware is running on STM32 since 2013.

Chri


[chrisu02.wordpress.com] Quadmax Intel Delid Tools
Re: New ARM Controller Board
December 08, 2015 03:00PM
@Chri: Do you have a real link for Marlin2 ? The posted link only leads to ChibiOs the RTOS that Marlin2 uses.

I'm already working on a Firmware.
Re: New ARM Controller Board
December 09, 2015 12:47AM
Quote
JustAnotherOne
@Chri: Do you have a real link for Marlin2 ? The posted link only leads to ChibiOs the RTOS that Marlin2 uses.

I'm already working on a Firmware.

Unfortunatley not really, i thought this would have it included as Eric Zalm has made this reprository.
The firmware is running on the Orca-XXL which has the STM32.

Chri


[chrisu02.wordpress.com] Quadmax Intel Delid Tools
Re: New ARM Controller Board
December 09, 2015 07:19AM
Hi JustAnotherOne,

This is a very interesting project. Do you have a general idea of what price point you are going to be able to hit on this???

Also, I think you should re consider having ethernet on the board. I get that octoprint is a more comprehensive ethernet solution, but having ethernet capability onboard is something I use all the time with my Duet controller, even though I have a Raspi. The Onboard ethernet is dead simple to set up, and it works great.Having that capability for eve a dollar more would be a very good buy in my opinion.

Having wifi and or bluetooth might be good for future development too. Everyone has a mobile phone, and phones are so powerful now that in the future you might find it better to have an Octoprint app. adding bluetooth is also now possible for a pretty low pricepoint.
Re: New ARM Controller Board
December 09, 2015 01:51PM
The prototype boards have been rather expensive. A big part of the reason for that is the low number of fabricated boards. Producing 100 or 1000 would bring a dramatic price drop. And then this board is not deigned to be cheap. It should be the best, not the cheapest. On this board there are also some things that are sort of a test. If the test show that the expensive components are not needed that would also reduce the price.

The board hat the 5V power supply for the Raspi (as well as mounting holes) already included. For me Ethernet and wifi are important interfaces. I'm not convinced that bluetooth will become important. The RasPi or Beagle Bone or similar boards can provide Ethernet and wifi. The can also provide bluetooth. For me a limited Ethernet or wifi is just not good enough for this board.

But the Schematics are open hardware and the Firmware is open source. So if someone disagrees with me on this then do it. The Firmware is modular and prepared to support different boards. There is also a version of the processor with Ethernet available (it's the STM32M415 if I remember correctly). I'm willing to provide information and help where necessary. I would be happy if other join in on this project.
Re: New ARM Controller Board
December 09, 2015 03:46PM
Quote
JustAnotherOne
The prototype boards have been rather expensive. A big part of the reason for that is the low number of fabricated boards. Producing 100 or 1000 would bring a dramatic price drop. And then this board is not deigned to be cheap. It should be the best, not the cheapest..

If it's designed to be the best, then surely it should have built-in WiFi or Ethernet? Even $50 3D printer controller boards have Ethernet now.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: New ARM Controller Board
December 09, 2015 04:25PM
@dc42 It shure has. The picture just shows the baseboard and one stepper module. The complete electronics package also includes a RasPi. The complete package then provides:
  • USB Stick support
  • SD-Card and other Memory Cards (USB Card Reader)
  • FullHD(1920x1080) Display (HDMI)
  • WebCam (RasPiCam or USB Cam)
  • Ethernet (even two or three if you need that with an USB-Ethernet Adapter)
  • Keyboard, Mouse, Touch( USB )
  • ...

just to name a few ;-)

Edited 1 time(s). Last edit at 12/09/2015 04:26PM by JustAnotherOne.
Re: New ARM Controller Board
December 22, 2015 07:44PM
the complete package then looks like this:


Re: New ARM Controller Board
December 23, 2015 03:46AM
Hey JustAnotherOne,
Please note that my APrinter firmware already supports STM32F4 (407 and 429I), and it shouldn't be hard to also support 405. But I agree that it makes sense to move to 407 due to Ethernet support (my firmware doesn't yet have an Ethernet driver for STM32 but will soon).
Re: New ARM Controller Board
December 23, 2015 11:45AM
Hey ambrop7,

The more software that runs on the board the better!
The 405 and 407 share the same data sheet. Supporting it should be just a matter of configuration. I did not find the place where I could do that in your firmware. The Pin Out should be clear from the schematic.

Does your firmware support the Trinamic TMC262 chips? I thought there should be something for them here.

I would like t help you more with your Firmware, but I fear I might fall into "average C hacker" group.

If I can do anything else to help you get the board supported just let me know.

Cheers,

Lars

PS: The Ethernet Interface of the Board is directly between the Power Input and the 4 USB Ports.


Re: New ARM Controller Board
December 23, 2015 12:47PM
Hey JustAnotherOne,
Yes, it will be no problem to add basic support for you board to my firwmare. I'll just try to do it some time soon, using info in your data sheet.
I read that TMC262 can work with direction+step signals, so it should work. Note that my firmware allows you to specify the required timings for driving these signals, so even if it has unusual timing requirements, it should work.
Re: New ARM Controller Board
December 23, 2015 01:19PM
I like the idea of using a Raspberry Pi for the interface. OctoPrint and the OctoPanel would make a great front end and allows the ARM chip to focus on driving the printer.

How is the RPi connected to the ARM chip?
Re: New ARM Controller Board
December 23, 2015 03:25PM
@ambrop7: You are right that the Chip can use Step+Dir signals. But it needs to be configured using SPI. It will not work without being configured first. The SPI Signal can also give feedback signals during printing. It also has a mode where it triggers on each Slope on the Step signal. So instead of Step pulses the firmware can just invert the signal to make the next step.

@WZ9V: You can either use the UART Interface ( connect RX, TX and GND between RasPI and PiPy) or USB (RasPi Host - PiPy Device) to connect the RasPi to the board.
Re: New ARM Controller Board
December 23, 2015 07:27PM
Thanks for the info. I thought maybe you had a dedicated interface like they did on the Alligator board.
I'd offer to help test but I have too many things going on already. Will be keeping an eye on this though.

Edited 1 time(s). Last edit at 12/23/2015 07:32PM by WZ9V.
Re: New ARM Controller Board
October 20, 2016 04:29PM
Quote
JustAnotherOne
I have been working, with a friend on a ARM Controller Board. I would like to get your feedback before building the first prototype:

Technical Data:
- CPU: ARM Cortex-M4F (Hardware Floating Point)
- 168 MHz, 1MB Flash, 192kB RAM
- 512 Byte EEPROM (I2C)
- up to 8 Steppers
- 4 Thermistor Inputs
- 1 Thermocouple Input

So what do you say ?

I would only change a couple of things. Up to this point in time 512 bytes of EEPROM was fine. I think we are somewhere in the 150 byte range for Marlin's RCBugFix branch. But the UBL code is storing multiple high resolution Mesh's in the EEPROM. It would be good to have a minimum of 4KB of EEPROM.

The 8 Steppers is going to be important with the multi-filament nozzles coming out now. But to support that, I think some of those nozzles are putting multiple thermistors into the nozzle. It probably would be good to bump up the Thermistor count to 5 so we can support a 4 filament nozzle and still have one left over for the heated bed.

Other than that.... VERY NICE! I would love to have one of these boards. And the CPU has a floating point unit too. That is really nice.
Re: New ARM Controller Board
October 20, 2016 05:04PM
Quote
Roxy
I would only change a couple of things. Up to this point in time 512 bytes of EEPROM was fine. I think we are somewhere in the 150 byte range for Marlin's RCBugFix branch. But the UBL code is storing multiple high resolution Mesh's in the EEPROM. It would be good to have a minimum of 4KB of EEPROM.

I expect this would have a SD card so it doesn't matter much.
Re: New ARM Controller Board
October 20, 2016 05:21PM
@Roxy, @arthurwolf Changing the EEPROM for a bigger one is very simple. On the other side with the Raspberry Pi there is basically no need for an EEPROM. SD Card is only on the Raspberry Pi.

@Roxy Regarding Thermistors. At the Expensiion port there are some Analog Pins available. So one Thermistor more would be possible.
Sorry, only registered users may post in this forum.

Click here to login