1 (edited by adrian 2013-07-07 15:38:15)

Topic: Announcing a New Motherboard Mashup - "Spuds"

This is what happens when a Teensylu, a Printrboard and some random components get smashed together wink I'm very very keen for feedback - I'm sending the gerbers off for a proto-fab mid this week for return late-July.. I've tried to put in all the little design features and functions I've appreciated across the various controller boards out there at the moment... Good news is, my existing Beta Firmware should drop straight in, just need to test some Pins.h config changes, but can't do that till I make up a board later this month smile

Similarities to the 'new' Solidoodle Motherboard are obvious, as we both came from the same working design - the Printrboard. So I have also designed my layout to match a similar footprint for connectors etc - but obviously Spuds has more connector options and variances (such as multiple 12V, extra PWM, Choice of Power Connector and USB Interface, Off-Board Stepper Drivers, multiple USB Socket Footprints... and more). I had to reroute most of the tracks by hand to switch back to Off-Board Steppers, but this allowed me to eek out one extra I/O Pin for use as a second PWM Fan or expansion. I also cut it back to be just Dual-Layer again to reduce production costs (4-Layer triples the cost of PCB Fab) and added huge fat tracks everywhere I could or it needed it.

Still finalising the BoM - but indicative is $29 for parts and $5 for the PCB.. using single-unit pricing.. much lower when done with volume obviously smile The current BoM and the Schematics etc are available from GitHub at https://github.com/ozadr1an/Spuds .

I'm going to post a Spuds version of an expansion board, SpudsExtruder, to support an additional 2 thermistors, 2 Fans and 2 more extruders and heaters...

And yes I suck at naming things.. so feel free to suggest something better. But I just figured all good Mashups need to have Spuds wink wink

And the odd USB Data tracing is because I've done a double footprint to allow either Type-B OR MicroUSB... and you need to keep D+ and D- the same length as they are differential-pairs... I blame the oddities of Type-B pinout vs MicroUSB wink

Spuds

A Teensylu / Printrboard Mashup

Licence: CC ShareAlike 3.0
Source Files: GitHub.Com/ozadr1an/Spuds
Attributions:

Spuds was born from mashing together the concepts of both the Teensylu and Printrboard (itself a development of the Teensylu concept). The aim was to take the positives provided by the Printrboard design and incorporate some additions such as LED indicators on the MOSFETs, an additional PWM Fan header and an extra PWM Output header pin. It then reintroduced the modular Stepper Driver setup, as for many, the onboard Allegro drivers of the Printrboard are seen as a drawback as it limits options and replacement/repair or alternative driver options such as the DRV8825 from Ti.

Spuds has expansion headers supporting I2C, SPI, UART, and ADC pins. All extra I/O ports of the AT90USB have been broken out to headers for prototyping and expansion. It follows the footprint for headers that the Printrboard introduced to allow compatibility with other expansions devices such as LCD's and the Extrudr board.

The continued use of the AT90USB1286 used in the Teensylu and Printrboard means Spuds also has on-chip USB, removing the need for the FTDI UART (USB-to-serial) IC. On-chip USB means dramatically faster firmware upload times and communication. The AT90USB connects at any baud rate regardless of firmware configuration, and operates virtually free of serial communication errors/pauses.

This board is currently in pre-release design phases, so is subject to changes. The first PCB's are most likely to be back from Fabrication in Late-July 2013.

PCB Image

https://github.com/ozadr1an/Spuds/raw/master/Images/Spuds-v0.6-Board.png

Features
  • Small design - board is 100mm x 60mm (4" x 2.4")

  • Atmel AT90USB1286 Microcontroller (or AT90USB1287 drop-in compatible for 20mhz support)
    * Native USB interface. No FTDI serial-to-USB chip.
    * 128kb Flash

  • Modular Stepper Driver Support (Add/Replace as needed)

  • Solder Jumper Microstepping Selection

  • Thermistor Connectivity: 2

  • N-MOSFETs for Extruder and Heatbed control

  • LED Status Indicators for Power, HBP and Extruder (Troubleshooting, PID Monitoring)

  • 2 N-MOSFET for low power Fan or motor

  • 6 2-Pin Header 12V Connections for additional features such as LEDs, Cooling Fans, etc

  • Onboard SD card slot

  • Four Endstop connectors
    * User selectable via Solder Jumpers 5V or 12v Rails.
    * Includes X, Y, Z, and fourth endstop called E-Stop to be used as an emergency stop, or extruder stop (to be added in firmware).

  • Supports multiple power configurations (Carried from Sanguinololu)
    * Logic & Motors supplied by ATX or laptop power supply (12-20V 120W minimum)
    * Logic supplied by USB bus (if enabled by solder jumper)
    * Logic supplied by on-board voltage regulator
    * On-board USB connectivity

  • Can use either a Type-B or Micro-USB footprints

  • Edge connectors enabling use of vertical or right-angle connections

  • 15 Extra pins available for expansion and development, with the following capabilities
    * UART1 (RX and TX)
    * I2C (SDA and SCL)
    * SPI (MOSI, MISO, SCK)
    * PWM pin (2)
    * Analog I/O (6)
    * JTAG (uses some of the ADC pins)
    * Additional 14 pin header with remaining I/O for prototyping

  • SMT Components sized at 0805, and no QFNs for easier soldering.

  • Tear-dropped PCB Tracks to Pads & Vias, creating better paths and ensuring good connectivity

  • 2-Layer PCB to reduce manufacture cost & complexity

Schematic

https://github.com/ozadr1an/Spuds/raw/master/Images/Spuds-v0.6-Schematic.png

Benefits of this Design

* Allows modular use of Stepper Drivers, allowing:
* User selection of driver used
* The re-use of existing drivers
* Replacement due to fault/failure.

* Integrated USB controller provides 12MBps bandwidth, instead of usual slower serial comms via FTDI. Result: Virtually no serial communication errors and interruptions due to PC Activity reduced.
* Integrated micro-SD Card slot
* Uses small standard Molex connectors for motors, heater, and endstops.

Bill of Materials

Available via https://docs.google.com/spreadsheet/ccc?key=0ArIeeziM0bp9dG5TbjlYaFVDQ0I5dkZXbHk2VjhtQlE&usp=sharing

Revision History

* V0.5 [July 2013]: Internal pre-production design.

Compatible Firmwares

* Sprinter: http://reprap.org/wiki/Sprinter
* Marlin: No official support yet, but works with Lincomatic's fork (https://github.com/lincomatic/Marlin) or the Unofficial Solidoodle Firmware (https://github.com/mlaws/solidoodle2-marlin)
* Repetier List_of_Firmware#Repetier-Firmware: Supported, use MOTHERBOARD == 8. (https://github.com/repetier/Repetier-Firmware)
* grbl: No official support yet, but works with Lincomatic's fork. (http://blog.lincomatic.com/?p=564)

(Other firmwares are currently untested but any firmware for an arduino mega should work with proper pin setup.)

Alternate Bootloader

If you have an ISP or JTAG cable, you can also program an alternate bootloader from the LUFA project that allows you to potentially program with the standard Arduino software.
* Download BootloaderCDC.zip
* Unzip to get BootloaderCDC.hex
* Program using your favorite ISP/JTAG cable.
* The command for avrdude is avrdude -p at90usb1286 -c <your programmer here> -U flash:w:BootloaderCDC.hex

Setup

Stepper Motors
Connect the X, Y, Z axis, and extruder motors to the matching headers at the top of the Printrboard (X-MOT, Y-MOT, Z-MOT, E-MOT). Headers are 4 wire Molex KK series, part# 0022013047) with 2759 series crimp terminals, part# 0008550101. Motor pinout is:
1. A - Phase 1+
2. B - Phase 1-
3. C - Phase 2+
4. D - Phase 2-

Endstops
Connect mechanical microswitches to the 3-pin Molex headers X-STOP, Y-STOP, Z-STOP at the bottom of the board. E-STOP is reserved for future use. Connect switches as follows:
Standard Microswitches
1. Switch NC
2. No connection
3. Switch COMMON
For optos
1. Signal Output
2. +5V or +12V
3. GND

Heaters
* LEDs are fitted to indicate when the MOSFET is active. These can be ommitted if desired.
* Connect the heating element of your hotend (resistor or nichrome wire) to the 4-pin EXTRUDER header, positioned next to MOSFET Q1.
* Connect your heatbed to the HOTBED header, next to MOSFET Q2. Polarity here is unimportant; pinout is as follows:
1. Positive
2. Positive
3. Negative
4. Negative

Thermistors
Thermistor headers are 2-pin Molex headers at the right side of the board, located above the reset button.
* Connect the HBP thermistor to the header directly above the reset button.
* The Extruder thermistor also connects above the reset button next to the HBP thermistor.

Low Power Fans
2 x 2-pin Molex header labelled FAN is located on the right side of the board, above the thermistor headers.
* This optional header can be used to power a fan or other small motor.

Board Power
All power is supplied through a choice of connector at the upper left corner of the Spuds, labelled PWR:
* 4-pin ATX style header (Suitable for high current HBP)
* 5.08mm 2-Pin Screw Terminal (Suitable for low current HBP only)

Connect directly to any 12VDC power supply.
* Ground terminals are closest to the edge of the board
* 12VDC+ terminals are located behind.

USB
Choice of USB Connector (only one can be installed). The Type-B connector is a good choice for long cable runs, as you can easily acquire heavily sheilded thick gauge USB cables as used for Printers. Micro-USB is perhaps a good choice if a small compact connection is required, or for interconnection to another controller system such as a tablet or RPi:
* Micro-USB B Connector
* Type-B USB Connector

Note that a jumper should _NOT_ be installed on the "BOOT" pins for normal operation (see Bootloaders).

2

Re: Announcing a New Motherboard Mashup - "Spuds"

No replies? (!)

Awesome work, can't wait to see it in action.

3

Re: Announcing a New Motherboard Mashup - "Spuds"

My comments were sent via PM.

All around solid design, not much I can see that I'd change.

4

Re: Announcing a New Motherboard Mashup - "Spuds"

I was talking with him on IRC. I had much praise but nothing I can see that I would change.

SD3 w/ mods:
Glass bed with QU-BD heat pad upgrade, threadless ballscrew w/ 8mm smooth rod, spectra line belt replacement, lawsy MK5 extruder, Lawsy replacement carriage, E3D hotend, Ramps 1.4 w/ reprap discount controller, DRV8825 drivers, 12v 30A PS, Acrylic case, Overkill Y-idlers, Filament alarm, Extruder fan + more.

5

Re: Announcing a New Motherboard Mashup - "Spuds"

Needs lasers. Lot's of lasers.

No trees were harmed in the creation of this email, though some electrons were horribly inconvenienced.

6 (edited by Zarni 2013-07-08 12:06:16)

Re: Announcing a New Motherboard Mashup - "Spuds"

Fantastic bit of work there, you had me at dual PWM fan support.

Ahem, so how many of your first batch of PCBs are spoken for? smile

7

Re: Announcing a New Motherboard Mashup - "Spuds"

I'll post up the SpudExtrudr expansion board soon.. just need to finish a few odds and ends but I've been sidetracked with 'real' work...

And at this stage, not sure what I'll have to possibly send out with the first test batch - will wait till I get the boards back and know they work and then figure it out wink ... but yeah, will be keen for a few people to have a play in real life smile

8

Re: Announcing a New Motherboard Mashup - "Spuds"

It's beautiful. How'd you keep this mammoth project a secret the whole time?

9

Re: Announcing a New Motherboard Mashup - "Spuds"

BakedSpuds, GarlicSpuds, MashedSpuds, ButteredSpuds.  I think you have plenty of room for product extensions smile

You can put me on the list to buy one - as long as the shipping from "down there" to "up here" doesn't run the cost of another machine smile

10

Re: Announcing a New Motherboard Mashup - "Spuds"

Looks great, can't wait til you have them available!

11

Re: Announcing a New Motherboard Mashup - "Spuds"

I haven't done much research on boards or their differences and whatnot but I'll buy one simply to support you.

12

Re: Announcing a New Motherboard Mashup - "Spuds"

The printrbot at work just lost another stepper motor driver, this is the second board gone because of the inability to swap individual drivers.

The fact that Solidoodle have switched to the printrboard is hugely concerning.

Fortunately Adrian has solved this issue in his design.

13

Re: Announcing a New Motherboard Mashup - "Spuds"

looks really similar to the solidoodle printrboard.

14

Re: Announcing a New Motherboard Mashup - "Spuds"

I wonder how much of the 3d printing code would be immediately adaptable to the TEENSY3.0. I'm assuming the teensyolu came about from the teensy2.0++ arduino variant.

The teensy3.0 is kinda like the arduino duo in terms of being a 32bit arm processor, but has been around longer and has a great one man developer-master who has adapted the IDE to make a lot of things directly usable on the TEENSY platform.

It seems like pretty soon we could use a faster motherboard, or at least simply run the processor at its still-spec 20mhz. I'm kinda surprised people are still running everything at 16mhz (most code has become much more adaptable to differences in processor speed than it was back in ye old arduino0.22 days)

And if it's really the computer to arduino connection that is making the speed limit...why can't I bump up the baud rate to something higher?  Edit: Well, if this ever was the problem, I see you do have the solution!

* Integrated USB controller provides 12MBps bandwidth, instead of usual slower serial comms via FTDI. Result: Virtually no serial

Sorry for dumping those confusions on you, Adrian. I think Spuds is great, and I applaud the movements towards consolidating some good ideas and improvements into a new board.

15 (edited by adrian 2013-08-05 04:39:26)

Re: Announcing a New Motherboard Mashup - "Spuds"

Tomek wrote:

I wonder how much of the 3d printing code would be immediately adaptable to the TEENSY3.0. I'm assuming the teensyolu came about from the teensy2.0++ arduino variant.

Using the ATMega emulated core, all of it. Natively - at the moment - not much of it. So you get a slight benefit given the higher performance of the emulated core versus the actual core, but full exploitation of the 32-bit environment is lost.

The other issue is, the ARMs have horrific protection capabilities compared to the fairly robust ATMega range... you can be quite abusive to an ATmega or variant and it will cope - but the ARMs tend to go pop if you look at them sideways wrong, particularly when it comes to I/O levels... which leads me to:

Most of the current sensors/limit switches/external peripherals for 3D Printing is based around a 5V TTL line level signalling, where as the ARM processors use a 3.3V CMOS line level signalling.. meaning all the signalling from End-Stops needs to be run through a logic-level converter as a minimum.. because a TTL signal into an ARM pin will kill it fairly instantly.. 

So its possible, and I will be working on a variant that trys to exploit the Arduino DUE a bit more (since its a platform that we can just plug a RAMPS shield onto - once the logic-levels are dealt with...) , but there is a bunch of 'reliability issues' I feel will be introduced as a result of the 'less robust' nature of ARMs in users hands when dealing with I/O along with the increased speed of the processor means existing timing loops will be a bit screwy (its not all 'clean' in Marlin unfortunately...)...

But, the clock speed isn't the main issue so much.. well it is, but its influence isn't as dramatic as you'd think.... Despite the 16MHz clock speed, the actual "Movement Planner" of Marlin runs at around a paltry 10KHz.. yup.. Killohertz wink... This is for a bunch of reasons.. and yes even if we only got a 4x improvement, 40KHz is a lot better than 10KHz, but its not going to be a massive noticeable improvement in *performance* - since the limiting factors on speed is more to do with axis and inertia and traditional mechanical issues rather than a case of motherboards running out of puff... Obviously we could do things like increase the recevie buffer.. but @ 12mb/s, there isn't really a bottle neck on anything that uses USB comms (outside of virtual-serial drivers that is!)...  So yes - more MHz is always nice - but its not actually a limiting factor these days on a Solidoodle or the like.

That is a bit more of an expanded follow up for you Tomek... hope that sheds some light on it smile Feel free to fire away with any other thoughts/comments or if you want some more clarification! smile

MolecularConcept wrote:

looks really similar to the solidoodle printrboard.

Cheers for reading the first post before clicking 'reply' wink Yes, as is explained in the First Post:

OriginalPost wrote:

Similarities to the 'new' Solidoodle Motherboard are obvious, as we both came from the same working design - the Printrboard.

Therefore, its more rather the new SD motherboard AND Spuds look just like a Printrboard... Also as stated in the first post - there is a key difference - Spuds unlike the Solidoodle board OR the Printrboard does NOT have onboard stepper drivers - for the reasons elaborated and demonstrated in this thread by Lawsy wink

OriginalPost wrote:

(such as multiple 12V, extra PWM, Choice of Power Connector and USB Interface, Off-Board Stepper Drivers, multiple USB Socket Footprints... and more).

So yeah - maybe re-read the first post then I can happily clarify any remaining questions? I think my first post presents all the information you could possibly want, in a far more exhaustive manner than Solidoodle have so far with their re-work of a printrboard smile

16

Re: Announcing a New Motherboard Mashup - "Spuds"

iowajames wrote:

Needs lasers. Lot's of lasers.


You had me at the lasers!

I can't honestly say that I understood everything I just read, but I'm in!

Now I just have to figure out where to start...

17

Re: Announcing a New Motherboard Mashup - "Spuds"

This looks great! I want one.

SD2 w/ mods: Rumba controller, ATX PSU, SD pro case, glass bed, with more to come...

18 (edited by Tomek 2013-08-17 02:13:13)

Re: Announcing a New Motherboard Mashup - "Spuds"

Hi adrian, that was a wonderful followup- thanks!!

I was caught by the comment about endstops using 5V logic. But- uhh...They are just going from the pull-ups shorting to ground, so that would work the same on a 3.3V source, I would think. So maybe you can fill me in if I'm missing something from there. Still, I see your point about a number of other chips. but in my experience so many sensors now are *only* available in 3.3v, and I struggle having to run shifters for my 5v arduino projects. The only problem with 3.3v is the potential lack of logic level mosfets. I guess a driver might be needed.


There's another board (mega form factor) that I think was fairly underrated. It seems to have gone under everyone's radar last november.  The chipkit32 http://www.digilentinc.com/Products/Det … PKIT-MAX32
I got to meet the dude who convinced digilent to make them, and a few interns who spent all last summer (2012) porting a ton of libraries.  I remember them telling me that they have a row of headers that are 5V tolerant in an effort to make it truly arduino compatible (by using a resistor divider.) 

But overall, I think merely because of Paul's godliness, the Teensy 3.0 would be better. Certainly a PCB board that pins the 3.0 to be similar to the mega shouldn't be impossible, though I guess it has to few pins to cover everything.

I didn't realize teensy 3.0 can fully emulate the atmega. That's awesome!! Thanks for the heads up. I really need to get over the miniscule barrier of doing a project with one of them (barrier greater than the atmega328 because of having run with the atmega328 a lot already.)

19

Re: Announcing a New Motherboard Mashup - "Spuds"

Tomek wrote:

Hi adrian, that was a wonderful followup- thanks!!

I was caught by the comment about endstops using 5V logic. But- uhh...They are just going from the pull-ups shorting to ground, so that would work the same on a 3.3V source, I would think. So maybe you can fill me in if I'm missing something from there. Still, I see your point about a number of other chips. but in my experience so many sensors now are *only* available in 3.3v, and I struggle having to run shifters for my 5v arduino projects. The only problem with 3.3v is the potential lack of logic level mosfets. I guess a driver might be needed.

Sure - But not all endstops are purely mechanical though. Many use Optical triggers (IR Gates etc) or Hall Effect Sensors, some even have used Capacitance sensors... So what you said above is totally correct if you are just referring to mechnical NO/NC micro-switches... But starts to fall apart if you have say a 5v or 12v IR Gate or HallEffect switch - This is why lots of printer boards offer both 5V rails or 12V rails on the limit switches.  Limit switches tend to come into view from an Industrial standpoint - where 5, 12 and 24v signalling is the norm due to the cable runs normally seen which makes 3.3v largely more difficult to work with...

And yes the ChipKit's are outwardly nice.. but being PIC based, there is some inherent differences when you get into the timing phases of a things done in native PIC which makes it all a bit messy if you aren't working within those confines to begin with.. suffice to say its just easier to skip past this and work with an ARM wink