Oh and a question... Is it hand solder-able or will it need to be reflowed?
Hi anon, nice to hear from you, too!
Actually I have some pins left, because the three address pins won't be needed, instead I'll solve the address problem in software.
The actual problem is the space needed for wire connections. As it usually happens with my first prototypes - the pads / holes for mounting wires are MUCH too small, especially the power input pads. I really want to keep this thing as small as possible, which is why I need to keep the features at a minimum, too.
If you don't need the Switch output for anything else, you can connect a fan there and manually switch it on and off.
The Switch output can be used with 24V or 12V - by simply using one or the other V+ pad. This is not clear in the schematics yet, but I'm writing the complete User's Guide these days.
The Printhead Controller must be reflow-soldered. There's some really small components, such as the QFN-16 PIC microcontroller and the power mosfet (Q20).
On top of that, the user will have to do some manual solderwork connecting all the wires. Connectors take up a lot of space, and you have to get the connectors on the wires as well which can be much more troublesome than simply soldering them onto the PCB directly.
Once the project is ready for it, I'll ask around if there's some reprap distributor who wants to produce these. I'm pretty sure someone's going to be interested
I'm going to make a few myself, but have no plans on selling them in larger quantities.
I do actually want to integrate some more features. The most important one would be a means to measure filament flow. This could be either a simple switch that tells you whether or not there is filament in the extruder, or an actual quadrature encoder input. Most probably the latter, with the option to use a simple button on the same connection instead. I'm not sure if the MCU has enough processing power (and memory) for that, but that's what I have the prototype for.
By the way - not much progress on the prototypes so far. I have a lot of work at the moment and just don't get anywhere..
I'll have a two weeks holiday soon. I'll get it done then.
- 6 months later...
Hey Jonny! any update on this ?
Do you have a source for a suitable PT1000? I thinking of a similar solution?
Well, I just don't get anywhere these days...
I am working on the mechanical protype:
And I've redone the electronics like 1000 times, but actually completing them will take at least another half year. For now, I will be using a smoothieboard to power my new printer. I will first need to build a CNC router in order to be able to manufacture good parts for the next prototype, and THEN I can think about multi-head and custom electronics to make it into reality...
You can get pretty much any PT1000 sensor (or PT100, if you prefer, and make your measurement circuit accordingly...)
I'm currently working with the mouser P/N 956-32207704. Thinking about glueing them to the surface and sealing them with silicone. But that is not an ideal solution just yet... Encapsulated sensors are of course better, but they cost 10 times as much as that small one :(
Edited by GuestYou can use pt100/1000 on aSmoothieboard? Because I readed everything I could but couldn't find any sollution for that...
No I don't think you can. I'll be using a puny NTC sensor with the smoothie :(
Well, I just don't get anywhere these days...
I am working on the mechanical protype:
And I've redone the electronics like 1000 times, but actually completing them will take at least another half year. For now, I will be using a smoothieboard to power my new printer. I will first need to build a CNC router in order to be able to manufacture good parts for the next prototype, and THEN I can think about multi-head and custom electronics to make it into reality...
You can get pretty much any PT1000 sensor (or PT100, if you prefer, and make your measurement circuit accordingly...)
I'm currently working with the mouser P/N 956-32207704. Thinking about glueing them to the surface and sealing them with silicone. But that is not an ideal solution just yet... Encapsulated sensors are of course better, but they cost 10 times as much as that small one :(
Oh, OK... you are looking at the thin film type. I was searching for one encased like the UM1 thermocouple. Haven't found one of the right size. And yeah, they are like 30-40USD.
I was eyeing the thin film ones too. I'm thinking about either using a brass strip with screws tapped into the heater block to hold it or slitting the block and then have a single tapped hole that can squeeze enough to hold the sensor. Sort of like the way E3D holds the heater.
The nice thing about the thin film ones is they have almost no thermal mass so the response time is much better.
I'm also considering something like this:
https://datasheets.maximintegrated.com/en/ds/MAX31865.pdf
Accuracy is very high. The chip itself is like 0.5C (0.05% of Full Scale) so it would be reasonable to say the whole thing should be accurate to +- 1C.
A little expensive at $4 USD plus a precision resistor but I don't have your electronics experience to build a decent constant current source. So a single chip+resistor is less for me to screw up.
I saw your metal frame version of a printer in another thread. Dude, your prototype is a tank! Do you think you need to go to that level for better printing or are you going to do something else with it like milling and/or PCBs?
...
I'm also considering something like this:
https://datasheets.maximintegrated.com/en/ds/MAX31865.pdf
Accuracy is very high. The chip itself is like 0.5C (0.05% of Full Scale) so it would be reasonable to say the whole thing should be accurate to +- 1C.
...
LOL, guess what:
I've developed the printhead controller a lot further from what I've shown initially. It now has a TMC2100 and that RTD converter and a Cortex M0 onboard, so it can basically control the whole printhead (wow, it does what the name suggests...).
I'm not done with the design yet, and it keeps evolving on paper so I wanna let more ideas go into it before finishing the design.
...
I saw your metal frame version of a printer in another thread. Dude, your prototype is a tank! Do you think you need to go to that level for better printing or are you going to do something else with it like milling and/or PCBs?
Well, what can I say... I just like tanks
It will be a pure 3D printer, and I want it to be sturdy as a tank so that it swallows up any vibrations or rattling. The current prototype is not ideal though because aluminum just sucks for building machines. It makes the moving parts so much more noisy than they already are because of it's resonance properties.
I'll build a CNC router and make some better frame parts from HPL / Trespa. Then we can talk about tanks again
Edited by GuestLOL, well at least my research was good enough to arrive at the same conclusion you did.
Cortex M0 is a lot of power for controlling the printhead...
Two questions:
(Edit: please ignore the first question! Misread the datasheet!) Why a 4.02K instead of 1K per the datasheet?
What is the purpose of the 470 ohm resistor on the analog supply?
Edited by GuestThis is a ferrite bead, not a resistor. For the DC supply, it has a very low resistance (around 0.01 Ohms iirc), but it filters out any AC noise that might be on the supply line. 470 Ohms is the impedance at 100kHz.
The M0 has some advantages over some 8bit MCU. First of all, it's not really more expensive than an 8bit MCU. But it has better programming support (code libraries from suppliers, and better IDE) and it supports multiple communications interfaces, which is usually not found on the smaller 8bit MCUs. 8bit is dead...
Ahhh, that makes perfect sense with what I have been reading about mixed digital and analog supplies.
The SAMD21 Cortex M0 isn't that expensive and seems to be a pretty good MCU. But I have to bother you with more stupid questions...
Most of the eval boards and the Arduino Zero are using a 32.768khz crystal so I figure I will do the same.
I'm having difficult understanding the datasheet and the various ways of calculating the load capacitance.
The datasheet:
http://www.atmel.com/images/atmel-42181-sam-d21_datasheet.pdf
page 1093 states these characteristics:
Cl - 12.5 pf max
Cshunt - 0.1pf typ.
Cxin32 parasitic load - 3.1 pf typ
Cxout32 parasitic load - 3.2 pf typ
Crystal ESR (Cl - 12.5pf) - 141kohm max
On page 1089, the datasheet gives the method to calculate the external load cap (Clext)
Clext = 2(Cl - Cstray - CShunt)
where based on the figure on page 1092, Cshunt is the crystal's internal shunt capacitance and Cstray is the cap between the Xin and Xout pins.
Seems simple enough but here are my questions:
Why does the datasheet show a Cshunt typical value if it is a function of the crystal? Is this the recommended value to target when selecting the crystal? Or is this an internal shunt value that isn't represented in the formula because it's so small?
What are the value of the Cxin32/Cxout32 parasitic load cap used for? Are they the internal cap (to ground) of the pins? Should they figure into the calculation of Clext?
Or is there some rule of thumb people use to determine the value of the load caps like if the crystal requires X load, use two Y caps and they ignore the various other capacitance?
I did find this which is the Arduino Zero that was apparently designed by ATMEL.
https://www.adafruit.com/images/product-files/2843/Arduino-Zero-schematic.pdf
They derived the values as :
Calculation of crystal load capacitors:
Cext = 2x ( Ccrystal - Cpara - Cpcb )
Ccrystal = 7.0pF (from crystal datasheet)
Cpara = 3.15pF (from MCU datasheet)
Cpcb = 0.5pF (estimate)
Cext = 2x(7.0pF - 3.15pF - 0.5pF) = 6.7pF
But I can't find Cpara on the datasheet unless they took the average of Cxin32 and Cxout32 parasitic capacitance.
Maybe these values aren't super critical?
I'm not using Atmel chips - they're expensive and I have some kind of personal aversion against them
The 32.768 kHz crystal (commonly referred to as the "real time clock crystal" or "tuning fork") is very useful if you need any kind of precise timing. 32768 is 2^15, so you can make a timer that counts seconds very precisely.
Many MCUs have an internal "low frequency oscillator" which can be used for that purpose, but their accuracy is very low. Usually good enough for timings like "wait for the LCD to be initialised", but definitely not useful for counting time.
About the capacitances:
I don't know why Atmel bothered making a difference between Cxin32 and Cxout32. That makes no sense because no one will use two different caps there. Manufacturing costs...
These oscillator driving circuits usually work the same for most MCUs. You have a "rather" high frequency signal, so circuit impedance is important. You have to match your crystal's impedance to the input impedance of the driver, in order to get them to work together reliably.
If you don't, it will either not work at all, or at a shifted frequency, or it might stop or stutter at times. Or it might run fine, but draw more power than it should.
I said "rather", because 32kHz isn't really a high frequency. These clocks usually work without problems, but you need to match the impedance closely if you want the timing to be precise.
Either way, the MCU's datasheet should tell you how to connect it (Some do that better than others). The most common external circuit is a crystal with a capacitor to GND on both pins (I'm not using the correct terms like "shunt", "parallel" or so because I always mess them up.. o.O).
You got the correct formula for deriving these capacitors. Cpara is the MCU driver's parasitic capacitance. They used the average value from Cxin32 and Cxout32, which makes sense.
Cshunt is a property of the crystal, but many parts don't specify Cshunt (I don't know why, and I only buy the ones that are fully specified...). This is probably why Atmel gives you a typical value.
I suggest looking for a crystal that has Cshunt specified, and use that value.
Cpara (Cxin32 and Cxout32) are the parasitic capacitances of the pins. As I mentioned above, you want to match the circuits' impedances. The (parasitic) capacitances are part of the impedance calculation. There's also parasitic resistances and inductances, but by keeping trace lengths very short you can ignore these.
CLext (external load capacitors) are the actual components, derived from all the capacitances in the circuit that you'll be using to match the impedances. "Every" parameter ultimately figures into this CLext, because these are the only components that you'll be using to match your selected crystal to the driver.
There may be rules of thumb, but the calculation is really not that difficult once you dig through all the names and can connect the crystal's and MCU's datasheets together.
I wouldn't generally say that the values aren't critical. It depends on the crystal, it's frequency, and most of all, the driver. Usually, 32kHz crystals are quite uncritical, unless you really get the load caps way off. But with high frequency oscillators this can become critical really fast.
Ultimately, the most important thing is to select a crystal that goes well with your MCU.
I preferrably use one of these:
Abracon ABS07-32.768KHZ-7-T (very small package)
Abracon AB26TRQ-32.768kHz-T (This is Abracon's derivative of the "popular standard" Micro Crystal MS3V-T1R)
Mouser typically has these in stock.
Jonny,
Thanks for taking the time to reply with such great information. I'll have to read it a couple times until I understand it!
I'm looking at the ATMEL part just because it is the same part in the Arduino Zero so I have a reference for both the electronics as well as the bootloader.
It's less then $2 USD so for one offs, it's reasonable.
I really wish I had stayed with the hardware/electronics side of my schooling. So much more interesting than software.
Thanks again.
Recommended Posts
anon4321 16
Hi Jonny, it's been a long time!
This is a very cool idea. Couple comments/suggestions....
- I know you are short on pins but it would be awesome to have the one fan output switchable so if you have something like the E3D type, you can turn off the head fan.
- I was working on a Z probe, this would require two more pins, one for the servo PWM and the other for the probe.
You mentioned Marlin, I would think this could be integrated into it assuming that the I2C pins are available and I2C can run concurrently with Marlin's primary interrupt routine. Two things I'm not sure about!
Link to post
Share on other sites