Welcome! Log In Create A New Profile

Advanced

Intergrated Controller Board

Posted by Jay de Halas 
Intergrated Controller Board
November 25, 2008 12:29AM
I am wondering if the time is right to consider a consolidated controller board. While it won
sid
Re: Intergrated Controller Board
November 25, 2008 06:25AM
having all on one board is not such a good idea as you might think winking smiley

think of the following scenario:
all assembled and working properly..
untill you have let's say a headcrash because of the failure of one of the endstops.
One axis stalls, the driverchip heats until it's toast and the next day, you find the traces for that chip you've just desoldered have been delaminated.

So you have two perfect stepper drivers, a pwm, a dc motorcontrol and a perfect sanguino/arduino clone ready to hit the can just because of one chip.
Yes you could salvage most chips, true;
but you surely wont desolder small parts (money < effort) and you end up in a soldering session you don't like at all, and you'll have to spend more money than necessary to repair.

But having some sort of interboard connectors so that you can plug them all together more easily and have them build in a way that they fit in a standard electronics case would be a nice idea to have things clean, i guess.

'sid
jbb
Re: Intergrated Controller Board
November 25, 2008 05:50PM
Hi people.

I think that a more integrated controller system could be good, but on the other hand a single board solution might not be the best idea - both for the reasons sid mentioned and also because it's a bit difficult to hack with later. Even inside industrial equipment you will see multiple circuit board schemes.

An earlier thread [forums.reprap.org] discussed cooking up a system with a master controller board and I/O boards connected using IDC header cables (think old-style hard disc cables). These are great because they are readily available, easy to assemble and reliable.

Obviously as this is a hobbyist project you can do as you please, but might I suggest a possible arrangement, where you have a vertical stack of boards with a ribbon cable connector down the side? If each board is the maximum size that the free EagleCAD version allows, this will give you a greater total board area and also not have a huge footprint on the workbench.

I know that this will lead to more boards, but by stacking them up vertically and linking them with ribbon cable it won't be too messy on the bench, and if you cook something you can replace the afflicted module independently. Additionally it becomes possible to use different PCB processes for each system - for example a double sided board for the micro, and single sided for everything else.

Some specific replies to your points above:
A) no useful comments sorry

B ) People have been talking about swappable toolheads, so maybe the toolhead could have it's controller on board and just receive power and comms from the main RepRap controller? 2 power + 2 comms connections sounds a lot easier than heater, motor, temperture, fan, encoder, value etc. all done separately.

C) always good to have a few PWM lines. You can always leave empty holes in the PCB and put the components in later if necessary.

D) I'm not an expert with temp sensing, but people seem to be moving towards a thermocouple, because these work quite well at higher temperatures. Ambient temperature sensing is probably a good plan - nophead over at [hydraraptor.blogspot.com] has done some research on extruder temperature requirements and it seems that ambient temperature can have an impact...

E) Nothing wrong with a USB-serial chip - it's not the most elegant but it goes. Alternatively you could just go for good old-fashioned RS232 - it's still very popular in the industrial world. Those using laptops can get external USB-RS232 adaptors if they need them.

F) Screw terminals on board is better than direct soldering, but pluggable is probably better because you'll pop things on and off an amazing number of times while tinkering, and it saves you from having to remember where each particular wire in a bundle goes. For the best of both worlds, get pluggable screw headers.

G) If you want an Arduino board why not just make the system a big Arduino shield? That way you don't have to reinvent the wheel / risk incompatibility with existing Arduino tools.

H) From my travels around the internet it seems that if we want to move to anything over an 8 bit micro we end up with SMD, and of course it is smaller. By splitting the system into stackable boards, it becomes possible to have an SMD controller board and through-hole for everything else.

From my perspective, I think that the system will eventually include some SMD stuff anyway, because a lot of new devices don't even come in through hole packages. However I respect that not everyone is an electronics geek and might find SMD a bit too hard to build. Maybe there should be a basic board using Arduino and an advanced board using more powerful SMD devices.

Some discussions you might find relevant:
[forums.reprap.org] is a bit of a rambling discussion on design philosophies with respect to device integration in CPLD / FPGA / more powerful micros.

[forums.reprap.org] also talks about where to go from 8 bit controllers - with side trips to 'RS485 vs CAN gully' and the 'surface mount vs through hole' bog.

Zach seems to have gotten in to RS-485 stuff [blog.reprap.org] so if you start looking at a separate toolhead controller it seems that RS-485 is being investigated already.

As an open-source, user driven project you can do as you please - and if you document it somewhere, others will probably follow. There will always be discussions about what is 'best' but the reality is that there is no perfect solution.
Re: Intergrated Controller Board
November 25, 2008 07:28PM
You might consider the LPC23xx range of controllers. They have a load of features, including built-in USB, built-in ethernet MAC (don't know if this is useful or not) and lots more.
Re: Intergrated Controller Board
November 25, 2008 09:07PM
Ok,
I'm confused, I was under the impression that the Arduino was the RepRap controller of choice. What's the real situation?
jbb
Re: Intergrated Controller Board
November 25, 2008 09:19PM
Sorry for confusing you!

I believe that the current 'official' controller is the Arduino, with some discussions about moving to the Sanguino, which is the bigger version (more memory and IO pins).

The discussions about moving to more exotic controllers (FPGAs, ARMs etc.) are only discussions, although some may be playing with them at the moment.

jbb
Re: Intergrated Controller Board
November 27, 2008 03:56PM
Jay, I think it's a great idea.
I've been using other cnc type kits that have everything on one board and have no issues so far. In fact, i have less problems with those than the reprap electronics because of the complexity of the wiring. And surface mount would be even better as the ICs for surface mounting are usually smaller and removing surface mount ICs are MUCH more easy.

I think this also opens up the opportunity to apply a better thermal solution. for my cnc board, i have one single giant heatsink mounted on all the full bridge chips separated by a TIM and i have no heat issues at all where as i've been battling the heat on the reprap electronics with several fans. with surface mount, it could be even easier to add a cheap thermal solution. we could put all the surface mount ICs under one giant CPU heatsink and just match the mounting holes on the pcboard. I suggest a cpu heatsink because they're probably the cheapest and best preforming cooling solutions out there.
Re: Intergrated Controller Board
November 27, 2008 08:47PM
Korndog,
I like your cpu heatsink idea, and will take a look to see if I can get one to fit with the various driver chips. I am allocating some of the screw terminals for fan duty as well.
Re: Intergrated Controller Board
January 11, 2009 06:04PM
Hi Jay,
I agree, I've been investigating the same thing.
* An option would be to make the connections for each external device have two footprints, push plug, and screw terminal.

Your suggestion of the Allegro A3979, what does it cost ?
* I'm not convinced by the extra chip features, I think microstepping should be done by the main board controller, as PWM control of enables. Is there a minimal price difference, to justify the small advantages of MOSFET power control versus the L29x bipolar transistor scheme ?

Sid's point about modularity, and replacement of failed items:
conter arguments:
* Introduce polyswitch fuses in series with the motor windings.
* Once tested and operating, spray conformal coating over both sides of the board (mask the connectors)
* less connections means less potential failure points.

Annirak, your "LPC23xx" processor suggestion:
* I've been considering the STM32F103 chip, it's an Arm Cortex-m3, made by ST microelectronics, and sells for less than $3 NZD. It's a lot faster than the AVR 8 bit being used, 100 pins, and has a host of features useful for the project.
It has a model now available with 512k flash, could be used for large page buffers if the flash write cycle limitation is taken into account.

General:
At the moment, it looks like the processor uses for each axis:
+ & - Limit inputs(2)
direction
step
enable

This is dumbing it down for the l297 interface, before the L297 smartens it up again for the L293 or L298 driver. Three pins are saved on the microcontroller though. (otherwise, you use 2 x enable, 4 x drive signals)
I can see the rational as part of an early design philisopy, see what's happening to explain it to students before the quadrature encoding class is taken, make a small micontroller controll more things.

The X/Y/Z end limits: I notice there was a supply shortage of opto sensors at one stage... first thing to go, was the second limit.

Second limits increase your chances of aborting an unsucessful run early, but usually the damage would already be done. They also provide for auto calibration of axis length, at a cost. I don't see them on any mass produced 2-D printer, they are a LUXURY ! Without them however, you need to manually calibrate the thread length into the settings for the controller.
However, it is possible to monitor voltage over the current sense resistors on the L293 / L298, then you can run ADC conversions and look for abnormalities as part of normal operation... no drama, microcontrollers think fast. So, you can abort a run with a minimum of false steps.

Lastly, while I'm convinced of going the single board processor so far, the ST Arm Cortex is not perfect. It's really good value for money, but I've not yet seen a simply setup open source IDE for it, and you have to pay, for the ST development kits.

There is a device called the STM32Circle, I have one. It's reasonably priced, but it's not designed for connecting to other things, it's an all in one demo application. I am, however considering cutting my one open, and connecting the JTAG traces to an off PCB connector. It comes with the RIDE IDE, which I think is limited to 32 K code space. (K bytes) That's probably enough though.

Personal problem:
"C"
C is something many of you here have practically grown up with.
I grew up with BASIC, locomotive basic, GWbasic, visualbasic 6 (etc)
and I have a bit of practice with python.
Low level, I program in assembler, and I achieve excellent code density and results. I've programmed in assembler on Z80, PIC, 68HC11( I made a cross assembler for it), 68HC05, AVR, ST626x etc.
The Arm Cortex-m3 is a scary beast. I'm not looking forward to programming it in either C, or in assembler. angry smiley That's my problem though, and I will just have to deal with it !

Graham Daniel
Attachments:
open | download - reprap project.jpg (348.6 KB)
cHUMPY
Re: Intergrated Controller Board
September 10, 2009 01:34AM
grael Wrote:
-------------------------------------------------------
> Hi Jay,
> I agree, I've been investigating the same thing.
> * An option would be to make the connections for
> each external device have two footprints, push
> plug, and screw terminal.
>
> Your suggestion of the Allegro A3979, what does it
> cost ?
> * I'm not convinced by the extra chip features, I
> think microstepping should be done by the main
> board controller, as PWM control of enables. Is
> there a minimal price difference, to justify the
> small advantages of MOSFET power control versus
> the L29x bipolar transistor scheme ?
>
> Sid's point about modularity, and replacement of
> failed items:
> conter arguments:
> * Introduce polyswitch fuses in series with the
> motor windings.
> * Once tested and operating, spray conformal
> coating over both sides of the board (mask the
> connectors)
> * less connections means less potential failure
> points.
>
> Annirak, your "LPC23xx" processor suggestion:
> * I've been considering the STM32F103 chip, it's
> an Arm Cortex-m3, made by ST microelectronics, and
> sells for less than $3 NZD. It's a lot faster than
> the AVR 8 bit being used, 100 pins, and has a host
> of features useful for the project.
> It has a model now available with 512k flash,
> could be used for large page buffers if the flash
> write cycle limitation is taken into account.
>
> General:
> At the moment, it looks like the processor uses
> for each axis:
> + & - Limit inputs(2)
> direction
> step
> enable
>
> This is dumbing it down for the l297 interface,
> before the L297 smartens it up again for the L293
> or L298 driver. Three pins are saved on the
> microcontroller though. (otherwise, you use 2 x
> enable, 4 x drive signals)
> I can see the rational as part of an early design
> philisopy, see what's happening to explain it to
> students before the quadrature encoding class is
> taken, make a small micontroller controll more
> things.
>
> The X/Y/Z end limits: I notice there was a supply
> shortage of opto sensors at one stage... first
> thing to go, was the second limit.
>
> Second limits increase your chances of aborting an
> unsucessful run early, but usually the damage
> would already be done. They also provide for auto
> calibration of axis length, at a cost. I don't see
> them on any mass produced 2-D printer, they are a
> LUXURY ! Without them however, you need to
> manually calibrate the thread length into the
> settings for the controller.
> However, it is possible to monitor voltage over
> the current sense resistors on the L293 / L298,
> then you can run ADC conversions and look for
> abnormalities as part of normal operation... no
> drama, microcontrollers think fast. So, you can
> abort a run with a minimum of false steps.
>
> Lastly, while I'm convinced of going the single
> board processor so far, the ST Arm Cortex is not
> perfect. It's really good value for money, but
> I've not yet seen a simply setup open source IDE
> for it, and you have to pay, for the ST
> development kits.
>
> There is a device called the STM32Circle, I have
> one. It's reasonably priced, but it's not designed
> for connecting to other things, it's an all in one
> demo application. I am, however considering
> cutting my one open, and connecting the JTAG
> traces to an off PCB connector. It comes with the
> RIDE IDE, which I think is limited to 32 K code
> space. (K bytes) That's probably enough though.
>
> Personal problem:
> "C"
> C is something many of you here have practically
> grown up with.
> I grew up with BASIC, locomotive basic, GWbasic,
> visualbasic 6 (etc)
> and I have a bit of practice with python.
> Low level, I program in assembler, and I achieve
> excellent code density and results. I've
> programmed in assembler on Z80, PIC, 68HC11( I
> made a cross assembler for it), 68HC05, AVR,
> ST626x etc.
> The Arm Cortex-m3 is a scary beast. I'm not
> looking forward to programming it in either C, or
> in assembler. angry smiley That's my problem though, and I
> will just have to deal with it !
>
> Graham Daniel
Re: Integrated Controller Board
September 10, 2009 02:39AM
Not sure why you reposted my old message cHUMPY, but I do have my own board now. although I've been having a holiday from the software phase while I work on another project, but I'll get back to it soon.
Re: Intergrated Controller Board
September 16, 2009 07:30AM
On the subject of stacking up boards.

Is it worth considering taking a further leaf out of the Industry Notebook and instead of using link cables using a back plane featuring industry standard connectors.

The sort of stuff familiar to those who have experienced instrumentation design featuring 19" racks and plug in boards.

The board standards can be found here :-

[en.wikipedia.org])

The most common standard multi-way connectors are :-

[en.wikipedia.org]

No ribbon cables and a single multi-way connector. Power can be distributed on the backplane too.

Of course using one board with all on it is arguably cheaper (More so if the economies of scale are realised through mass production) providing as sid points out you don't toast it. But you do loose flexibility and hack-ability.

Personally I would rather play with a multi processor network maybe along the lines of the first generation controlers but with an RS485 and Power Buss.

Thoughts for what they are worth.

aka47


Necessity hopefully becomes the absentee parent of successfully invented children.
Sorry, only registered users may post in this forum.

Click here to login