-
Quick-n-Dirty Stock PSU Notes
08/15/2016 at 11:51 • 3 commentsThe Big Ass Cap for input filtering is a Nippon Chemi-Con 400V 220 uF snap in cap. I wouldn't bother with pricing out a replacement...
The PSU has a small step down transformer to rectified DC voltage via a 4A, though unmarked bridge rectifier that is then fed into a TI UCS3843P-controlled DC-to-AC (?) conversion using the big transformer that is fed by a Fairchild FCP11N60F MOSFET. Without a closer look with a scope or meter, I cannot say what the input voltage is for the SO-8 controller, but this is the blow IC that some have pictured and it rated for a 30V input.
This output is rectified by two V30100S schottky diodes, as far as I can tell, in ITO-220AB packages and this goes into 4 filter caps.
The 4 small output filtering caps at the end are 1000 uF, 25V, 105 ˚C, JH CP263 electrolytics. There are two optional replacements I'd trust from mouser:
- EEU-TP1E821 - 820 uF, 25 V, 2K hr, 135 ˚C w/ 1.1 A rated ripple & 0.052 ohm ESR
- UHW1E122MPD - 1200 uF, 25 V, 10K hr, 105 ˚C w/ 2.9 A rated ripple & 0.017 ohm ESR
If both are run at 95 ˚C, their effective lifetime rating will be 32K hrs & 20K hours respectively. However, the higher ESR and lower ripple rating will cause the former to heat more due to the ripple from the steppers and heating elements. As for the latter, you'll get a a beefier filter with 20% more capacitance and up to 11 amps of ripple at 100 kHz; even though the steppers operate at a third of that.
The output voltage is controlled through a TL431A and the 2.47K & 10K 1% resistors. If I'm interpreting the datasheet and the resistors correctly, excluding error tolerances, the output voltage is then programmed for ~12.6V. Toss in a 0.3V drop from the schottky diodes and you have the 12.3V I measured previously.
In addition to the part identification, the MOSFET on the high side of the larger transformer has a max power dissipation of 125W and a max continuous current rating of 11 amps. I'd love to see some additional photos pointing to the failure mode of this PSU, cause it seems like 11 amps in and 10 amps out, assuming it's 12 V AC we're dealing with, is ~91% and that's a tall order. Even with my rudimentary knowledge of this topology, this seems too close to be coincidence.
Toshiba makes a nice MOSFET that I think will work, the TK16E60W,S1VX. I've not compared all of it's specs and a freewheeling diode will probably help keep things in shape for it too. Swap this guy out and the four filter caps.
If you want to tweak the PSU for say, 15 V output, change I'd advise new caps like this one:
- EEU-FR1V821L - 820 uF, 35 V, 10K hr, 105 ˚C w/ 2.47 A rated ripple & 0.018 ohm ESR
The 2.47K resistor needs to be swapped out with a 1.96K resistor. With the schottky's that should leave you at about 14.96 V. All in all, for ~$15 w/ shipping you can beef up this PSU (have it supply more than 10 A?), make it run cooler, and have it upped to a higher voltage if you want.
-
Final PID Notes on Stock Setup
08/11/2016 at 10:13 • 0 commentsSo, this is PID but not PID. It's the Shakespeare of PID. I don't really care if I'm being dramatic because the stock setup is weird. Yes, I'm new to 3D printing and though this hotend may be the 8th incarnation, but man, it really could be better.It's an aluminum block, 20 mm x 20 mm x 10 mm, with about a half dozen holes drilled into it. I'm not sure which alloys of aluminum, but their thermal conductivities do not differ much amongst the families. With the separation of the heater core and the nozzle, there is a decent thermal gradient that created. This problem presents itself as both a time delay between heating and when the heat arrives at its destination and the fact that a 40 W heater is overkill. Despite the results with the heated bed, it is not possible to remove overshoot and undershoot with this setup.
I have 3 sets of settings I've generated myself in the process of fine tuning the hotend. Yes, technically it's not stock since I cut off the thermal barrier before I fully realized it's effects, but I had since repaired it and it's not statistically different than original.
The stock 40W heater cartridge is overkill. This I know for a definitive fact. I'm actually considering the 30W ones on Amazon as replacement. Why? My ending results for 'P' & 'I' are forced so incredibly low because the heater cartridge dumps a nova of thermal energy into the block of so very quickly. However, due to the thermal gradient, it is not possible to have the software control the initial temperature. Dropping 'P' and/or 'I' so low to minimize this makes the response sluggish and kicks the MOSFET duty cycle into 100% because things don't change fast enough. Following that, in order to raise the control windowing up to be around the setpoint instead of below it, 'D' has to be so high that the atrocious noise floor makes controlling the hotend and the heated bed impossible for the firmware.
From exploring this and seeing it happen with my own eyes, it's no wonder why E3D and others have made 3rd party hotends with different dimensioned heather blocks. The E3D measures 20 mm x 16 mm x 12 mm. After you remove the volume from the holes, it's equivalent to the mass of the "MK8", but based on other reports and common sense, it's PID behavior will differ from what I've seen on the MK8.
Enough of my complaining. If you're an anal retentive nut like me what happens to be the fix? I cannot say this with 100% certainty since I've not PID'd out the E3D nozzle on this firmware, but my suggestion is as follows if you happen to have a simple drill press or vice:
- Buy some copper: This 6" piece from McMaster will give you plenty for 6+ blocks. Though McMaster offers other alloys, matweb says that this one has the highest thermal conductivty.
- Cut it up, drill it out, and tap some threads into it in your preferred fashion: MK8, E3D v6, or your favorite alternative
- Swap the 40W heater for a 30W heater
- Insulate the block in the manner you prefer with materials such as this ceramic fabric if you ever plan to go above 250 ˚C, or this adhesive-backed silicone mat you can cut up and stick + tape onto the block.
- FYI, it's adhesive is rated for 500 ˚F, aka 260 ˚C.
- It wouldn't hurt to be anal and use Kapton tape as a secondary around it.
This "solves" the problem 2-fold. You decrease the speed of heating, thus PID can actually have a chance at controlling the temperature properly and the 2nd is with almost double thermal conductivity over aluminum, the copper block heats more uniformly and the thermal gradient is smaller because it travels through the material faster. The insane 10 second delay will be no more. This solves the hardware problem.
I may or may not go the copper route, but I am definitely moving to better insulation as it helps with PLA quite a bit. I probably will move to a 30W heater and deal with slower warming times in order to avoid specialized control when changing to a lower temperature mid-print.
As for software, this is where my gripe comes in. A small digression though: If you're read any of my past logs, you'll get the idea that I'm fairly comfortable messing with stuff, even if I'm wrong and by that I dedicate a whole lot of time. If anyone else has come up with a better PID values first, I've not had a chance to see them ;). Anyhow, the configuration for the PID control in this firmware has a control "window" that exists below the setpoint making it a guarantee that you'll undershoot when you overshoot. By nature of this, it's nigh impossible with the current hardware to minimize either undershoot or overshoot without raising 'D' and dealing with a massive amount of influence by noise. Unlike the heated bed, when you want to shuffle the setpoint up or down, it'll immediately increase or cut power. It does so by so much that the system cannot make fine tune adjustments.
Is all of this necessary? Nope, 'cause people are printing just fine! Did I mention that I'm anal retentive?
Final thought: I want to compare the last 3 sets of PID settings I've generated against each other just to see what their characteristics are and see if the latest truely is the best or if a prior incarnation trumps it. After that, I'll update the instructions with the advisable set, including heated bed with a likely lower 'D'.
-
24V will work, technically
08/05/2016 at 03:17 • 2 commentsI've mentioned this before and before I get into other stuff right now, I'll say it again: you can drive this board from a 24 VDC power source. Just because you can though, doesn't mean you should.
There are 2 things you need to be aware of if you wish to do this:
- Primary filter capacitor needs an upgrade
- MOSFETs absolutely need a protection/freewheeling diode
See my parts list for both.
The main point of contention of if this were possible is the SMPS chip, XL1509; datasheet link. It supports a 40V input and supports up to 2 A output. This means that the inductor and output caps probably should be resized, though currently I've not felt a ton of heat from that guy so I haven't even considered swapping it with a lower resistance one for better efficiency.
If you recall my prior findings, the stock hardware configuration allows forma 37-38 V spike when the MOSFETs turn on. Kinda bad for a 30V 'FET, no? And with that being a 12V power brick, just imagine how bad that will be with a 24 V PSU. As long as you have a protection diode in place, you will be okay.
So, if you wish to switch to a 24V hotend, heated bed, and fans, this board will let you with some minor modifications.
-
'So it is true?' & more PID. No, the PID is not a lie
08/04/2016 at 10:11 • 1 commentFor the hotend, 'I' has a resolution of 1/1000th, not the displayed 1/100th. Credit goes to Ethan Anderson for that bit, though I'm not sure where it was figured out and it doesn't really matter 'cause I can confirm it in 3 screen shots.
PID with 'I' = 0.01
PID with 'I' = 0.015
PID with 'I' = 0.022
Hint: this is where note taking helps since when you M501 the printer, it won't tell you what your thousandths place was ;)This was the first problem that it took time to adjust with. The second was how aggressive the heater was; at 40W with the thermal gradient in the bock, this system didn't respond quickly so just about any "reasonable" means of setting 'P' & 'I' was pushing things past where they should be. Then when you add in the fact that a high 'D' would then need to be coupled with the very very very fast temperature rise, the noise in the ground plane just made everything unusable.
Let me be clear right now: I'm not done. I will post PID values, but there are some gotchas with them and I need to do some bumping of the setpoint like I did with the bed temps. With that said, I *think* it is possible to quicken things up a bit and smooth out some duty cycle jitter, plus I still have 'C' and 'L' values to look at. If you wish to test these PID values, treat them as experimental:
M301 P13.37 I0.009 D30.52
Nope, I didn't do that on purpose, but I saw it fit to keep 1337. I was having such a difficult time adjusting and picking new 'P' & 'D' values that I bumped over to a logarithmic increase and decrease of each and in such a way that I wouldn't repeat values.
I promise that these will take a bit of time to get to your target temperature.
I promise that when lowering your temperature by a significant margin, you can undershoot by 10 ˚C.
I promise that these are experimental and need some fine tuning but so far allow for a controlled response.
I promise that if I were not monitoring current on the hotend with my scope, this wouldn't have been possible. Well, voltage would've worked too, but a clamp-on probe is a heck of a lot more robust in this regard and you won't accidentally short something with a bump.
My next problem is weird and is two-fold. I track it to weird thermal "harmonics". I typically do testing between 190 ˚C and 210 ˚C, but since the applicable working temperature is up to 250 ˚C, I push up to 230 ˚C usually. Since I stated before that the PID auto tuning was better because it gave results close to what I've come up with, I figured it was worth looking at even though they were a bit aggressive. From 180 ˚C to 260 ˚C, I ran a 20 count PID auto tune routine every 10 ˚C. I tried 270 ˚C, but the scope confirmed what I saw on the output graph and stability wasn't able to be reached; so I did 265 ˚C to round things off. I then grep'd and awk'd the data and dropped it into LibreOffice Calc (Excel for those Windows folk) to see what I could make of it.
If you read HAD.com, then you may have caught a Bill Herd video about ADCs and the sampling types that exist. Effectively what the auto tune routine was doing was a SAR approach as it went over-under several times. WIth a count of 20, it tosses out the first 2 outputs since they're pretty far off. This gave me 18 to deal with so I averaged them all together; both the 'Classic' and 'Overshoot' models it provided. Here is the end plot with a 3-order poly fit to each one. The left axis is for 'P' & 'D' and the right is for 'I':
Notice how at 190 ˚C and 230 ˚C the values are lower. Strange right? I do need to do 4 other plots, 5 ˚C to the left and right of both of those to see what's up. My guess is that there is some trickery in the firmware that gives ideal average duty cycle average and the PID is supposed to correct for inaccuracies.
Since 230 ˚C was an anomaly, I opted to do my testing at 235 ˚C. Guess what I found:
Those flat spots are weird. they happen right at 232.6 ˚C and I'm not sure why. First I though it was an ADC resolution switch and offset error. Then I grabbed a spare bead-tipped thermocouple and ran it down the neck of the hotend until it was at the orifice of the nozzle. My UT171C gave me output readings that more of less, an offset less than 0.5 ˚C, that of what you see on the graph. Call it what you like, this block has a thing for ~232 ˚C and it's freaky.
More or less I then opted to tune between 210 ˚C & 240 ˚C. The higher are better as they'll show problems with 'D' and help determine how stable the system will stay.
The aformentioned PID values need to be tested under the following criteria:
- How much time does it take to increase temperature by 5 ˚C? 10 ˚C?
- How much time does it take to decrease temp by 5 ˚C? 10 ˚C?
- How much of a temperature drop will drop the system out of control and cause an undershoot?
- Can the 10 ˚C undershoot be lessened or removed?
- Is modification of the hotend required for stable PID control?
The latter is due to the following characteristics:
- With higher 'P' & 'I' values, heating power is turned off momentarily before reaching setpoint
- This results in a 5 ˚C overshoot in most cases and a 5 ˚C undershoot without a really high 'D'
- With moderate 'P' & 'I' values, heating power is turned off 5-10 ˚C before setpoint
- This results in no less than a 5 ˚C undershoot
- With lower 'P' & 'I' heating power is turned off no sooner than 10 ˚C before the setpoint
- The output the peaks at the setpoint - 5 ˚C and then drops another 5 ˚C
- With higher 'P' & 'I' values, a falling temperature will reengage heating power up to ~1.5 ˚C above the setpoint
- With anything lower, heating power is not reengaged until at the setpoint leading to significant undershoot.
Basically, if you overshoot the setpoint ,you're guaranteed to undershoot on the way back down with this control mechanism. The observable 'window' for the setpoint temperature control is only higher than the setpoint itself when PID is too aggressive to be controlled due to the noise in the system and needing a high 'D'. The only response is to detune and lessen the aggressive system. That and a healthy layer of insulation on the heating block to minimize temperature loss, wich I incorrectly assumed was a hindrance. Don't worry, I've been tuning with it on.
-
*Heated Bed* PID Tuning
08/04/2016 at 08:10 • 0 commentsTest results were done on firmware version 20. Yes, technically it's 20.39, but the LCD GUI has nothing to do with this so only the motion controller firmware is applicable.
This took me only 2 hours and that's cause I was being slow and lazy. I've compiled the results from my PID auto tune in the main file you can grab on the main page of this project once I upload it. Currently I am still working out what method of control I want on the hotend and the file is for both.
Scroll to the bottom for the update.
Once you start investing some dedicated time into a system, you get a feel for it. I have some observations about the hotend as a result of the tuning of the heated bed that I will share at the end.
Here is what the auto-tune algorithm decided to do; I ran it for 45 ˚C all of the way up to 80 ˚C in 5 ˚C intervals:
Just about every function is disabled when you run the autotune algorithm, fwiw.
I decided to average the output and test it @ 70 ˚C which is decently hard enough for the system to work with when you have a breeze:
I didn't like the overshoot so I tweaked each of the variables, disturbed, observed, and bumped it to 70 ˚C, as you can see, to see how it behaved.
The bed power readings aren't incredibly useful. They appear to be a small, time-averaged output, but the time base is so small that noise from the PWM switching shows up.
I watched my 'scope with a 70 second window up on my screen with 'High Resolution' sampling on to time average the output. The readout is solid with no perturbations in the current, btw the MOSFET diode is holding up wonderfully. The current undershoot caused by it is ~1 A peak to peak and it has ~120 kHz frequency when the switching frequency is 147 Hz.
Anyhow, with that, I decided to test how well the PID variables handled setpoint changes.
Here is the first 10 min window:
Sorry for the cursor...
Next setpoint bump test:
This screen cap overlaps with the previous one. Oh, and yes, it looks like it's about to overshoot a tad, ignore that and look at the next one.
Now time for the big bumps to the setpoint:
Man that is beautiful. That is what a properly controlled system looks like.
In summary, here is the behavior of the bed:
- Allow for 45 seconds for 90% of a 5 ˚C change, raising or lowering
- Allow for 60 seconds for 90% of a 10 ˚C change, raising or lowering
- If you're within 3-4 ˚C of the setpoint and the power was fully off or on, it'll then re-engage to damp the rise/fall and prevent any over or undershoot.
I would like to reduce the PWM duty cycle jitter, but there is no instability and the system is well controlled so I'm not going to touch it.
If you like these characteristics for the heated bed enter the following G-code:
M304 P48.94 I0.03 D187.31 M500
These settings have been updated scroll down
So, lessons learned from this round of tuning when reflecting back on the hotend?
- A 40 W heater cartridge is overkill on the hotend and is causing problems.
- A 25W or 30W would be better suited for the PID control with this heater block
- If that isn't able to be remedied, better noise damping from the PSU, that's another post, and higher 'D' is one option
- The combination of 'P' & 'I' tunrs off current 5 ˚C before the setpoint and then overshoots by 5 ˚C, but power does not turn back on until it's 1.5 ˚C from the setpoint when it's falling.
- Damping the power input and/or the heat loss of the hotend will alloy for better PID control
- If the overshoot cannot be controlled well enough, then 'faking it' and intentionally setting your temp 5 ˚C lower may be an appropriate fix for the system in the time being.
Update
I was able to look at the heated bed PID again to reduce 'D' like I wanted too. Also figured out that 'I' has a resolution of one one-thousandth as well. I was about to get a 10 ˚C rise in 30 seconds or less for all temps under 60 ˚C, It very fast and responsive to breezes now too with the updated PID values:
M304 P106.56 I0.024 D96.81 M500
-
Select Mini Hotend PID Variables & Noise
07/29/2016 at 00:16 • 3 commentsI've had 3 sets of PID settings that I've worked out. They behave well in isolated circumstances but don't play well with others. In this evolution, here are what I've posted before:
Common, popular PID settings by Ethan Anderson:
M301 P20 I0.02 D250
The problem with these is the D is a bit on the high end. This is because of 'I' being too "high". Jump down to my 3rd set if you want to know why. Since noise is a significant factor in the thermister output, values of 'D' this high begin to amplify it so much that temps over 220 ˚C are unstably controlled. In addition, 'C' & 'L' parameters.Speaking of 'C' & 'L', I'm relatively certain that I know what 'C' is; "Reset". I have not been able to find other PID tutorials/documentation that list many additional parameters, but given the precision in definition and steady-state testing, 'C' is behaving like "Reset". This term is sometimes used interchangeably with Integral, but they are different. However, 'C' does affect 'I' in that every so often it provides a software bump to make sure things are still working okay. The higher it is, the more frequent this bump occurs and you'll never get a fully resting output.
As for 'L', I cannot correctly judge what it is called, but it appears to directly affect the settling time of the bump provided by 'C'. At this time, I've not sure if it amplifies the bump so it lasts longer, or if it is a period counter for the bumps and thus forces complete attenuation after 'L' number of perturbations.
More or less, the higher 'C' is, the more frequently you'll observe temperature oscillations and the higher 'L' is will make them a little larger and last much longer.
These effects cannot really be observed via watching a temperature graph as there is too much noise. Even in that, the average steady-state current can stay level which temperature appears to be oscillating.
My first PID settings were as follows:
M301 P115 I0.28 D675 C0.03 L1
Don't use them. Despite being fast and settling quickly, temps over 200 ˚C are not controlled well and overage 3-5 ˚C higher than the set point getting worse the higher you go. In fact, over 225 ˚C caused my printer to jump up to 235 ˚C. I can categorically say that the 675 for 'D' is the reason for this.Second set:
M301 P80 I0.01 D80 C0.25 L2
These were developed from the starting point that possibly a low 'P' and higher 'I' would result in reacting well to the set point, but due to the time delay from the thermal conductivity of the block of aluminium I quickly found out that 'D' had to go way too high to begin damping 'I' and would them amplify the noise beyond the point of stability. Learning from that, I dropped 'D' to 125-150 and then played with 'I' & 'P'. I also experimented with 'C' and 'L' and did some more research on if I can determine their purpose.
Overall, these settings were good, but a little aggressive. I'd consider them 80% of ideal, though they oscillate a bit much for my tastes.
Third set (Pick me! Pick me!)
M301 P36 I0.01 D72 C0.12 L2
With a bit of research specifically for temperature-based PID control tuning techniques, I started fresh. It helped making the mistakes above to learn the characteristics for the system too. You'll note that 'I' is still at 0.01 and I advise never using even 0.02 or more right now.
There is a problem with this PID implementation, which I'll say rests with firmware 18.37. The dynamic range of the output is a PWM signal that's no faster than 300 Hz on the stock setup. Even with this blazing fast frequency, the delay from the heating element to the block to the thermistor is too large and the atrocious noise floor doesn't allow for sufficiently high 'D'. Once 'D' gets above that grey area of 225-250, all bets are off for controlling the hotend when above 200 ˚C with the heater bed on. You'll get multiple sporadic periods at 100% duty cycle and multiple that are 0%. It's like it's trying to act way too fast for a system that is slow as pitch in winter. Well, 5 seconds isn't slow unless you're talking electronics...
But I digress. Ideally the perfect 'I' lies somewhere between 0.01 & 0.02. The problem is that this doesn't exist in this firmware. As such, I'm using only 0.01 and tuning 'P', 'D', 'C' & 'L'. Perhaps fixing the noise floor from the 12 V PSU will allow higher 'D's to damp the 'I', but until then the conservative approach has to be played.
When adjusting 'C' & 'L', I noted that 'L' doesn't like 0 or 1 and that anything higher than 5 started directly impacting temperature output more than a swing of +/- 1 ˚C. Under the stock MOSFETs, this C-L combo results in a perturbation once or twice in 10 minutes and the fluctuation is lower than 1 ˚C on average. On the AOD510's with the fan on full, it's dead level.
These are 90-95% on the way to ideal if too high of a 'D' is still a problem down the road. I advise a delay of 30 seconds once you hit your set point temperature if it was not already steady state. This is because the low 'I' and 'P' cause a 3-8 ˚C undershoot when the output bounces or passes through it. Once you with about 30 seconds though, the temperature will remain within a +/- 1 ˚C swing while it settles.
Some custom Gcode is required if you wish to prevent this or you'll manually have to adjust the temperature little by little after your first layer.
-
Photos [soon] & Notes...
07/28/2016 at 23:17 • 0 commentsThere is a bit of tedium involved with the learning curve of 3D printing, apparently. Not a bother, but as such the photorapher portion of what I do has been put on hold while tings are being worked out and the device is setup.
With that said, the burnt out fan MOSFET also took out the pin on the STM32. I've replaced the junction with the equivalent of a 40 ohm resistor so I still have a fan. Need to print out a couple of NEMA 17, 40 mm fan holders because when the Y-axis stepper gets hot and the requested movement is faster than it's capable, it starts skipping down the road. Thankfully this has not affected prints.
After a 3rd full size print, I've successfully created my own copy of this E3D fan duct. It took 4 hours @ 0.1 mm slices & 0.6 mm nozzle because I had to slow the printer down twice. Mostly a function of printing 270˚ rotated so I could observe the fins being printed as this was the feature that had the most difficulty originally. The Gcode generated caused very little time for the fan to rest on these 'wings' and thus they warped from not cooling down. Overall, 4 hrs to print, 4 hours letting my PID variables be tested with the AOD510's instead of AOD484s.
I wasn't too surprised when the nozzle temp bumped when the heater bed's power was adjusted up/down, though it stayed within 1.5 ˚C of the set point. There was an unusual side effect of switching to the AOD510's, the switching frequency increased quite a bit; it now hovers between 300 & 600 Hz. With the same PID parameters, the 'ripple' in the current was about 1/2 of what I had before, though, to be honest, this can be a result of the MOSFET suppression diodes.
Speaking of which, I switched to the AOD510's earlier than expected. I shorted one out when doing the diode testing, PEBCAK, so I replaced one did a small 'burn in' test, and replaced the other. with the [right] side panel off, I only had a chance to feel the hotend 'FET and even after several hours, it never warmed too much to touch, 40-45 ˚C, with ambient temps at 27 ˚C. The fancy new 470 uF, 50 V cap on the other hand was easily +50 ˚C. The stepper drivers' heatsink measured out to 70 ˚C. Active cooling is my next priority.
As an experiment, I dropped in 0603 (US not METRIC) 4.7 uF MLCCs ontothe board where 0.1 uF MLCCs were for decoupling. The noise wasn't significantly affected, but it'd create a 'better' roll off for any noise coming from the thermistors themselves. Since the PID control seems to not be any worse, I'm leaving the caps in place.
Outside of calibrating the extruder for feedrate vs temperature vs nozzle size, 12 V PSU noise and active cooling are my items on the list to solve, currently.
-
WHAT?!?!
07/28/2016 at 22:28 • 0 commentsNoise. This board is noisy noisy noisy. There are 3 main sources of noise to squash and 2 of them do not take that much effort to fix:. You need new caps, a couple of diodes.
So the noise on the thermistor lines was, attrocious, horrendous, wait-there-is-a-signal-in-there? Because the caps are cheap, I replaced them first. The replacements I picked up were 68 uF, 35 V vs the 22 uF, 16 V. Overkill, but I went for ripple current and lifetime ratings and these came out as some good ones. These caps regulate the power on the 3.3 V line for the PCB. The majority of the noise is now about 50 mV ptp, sans the dirtying of the ground from the 12 V supply.
Next up is suppression diodes. The MOSFETs overshoot as expected and if you want to read why, click here. I had a spare 1N4001 around, but given a 12 V PSU had spikes of 37-38 V with the MOSFETS, a 50 V diode wouldn't be sufficiency if a 24 V PSU is used. So I picked up a pack of 10, 1N4004s and gave it a shot. Unfortunately these only cut the 37-38V peak down to ~26 V, but the ringing was eliminated though. Sorry, but I didn't check the current characteristics. Putting 2 in parallel only lowered it another 2 V.
I wasn't happy with that and I happen to have some 1N4448TAP laying around from another project so I soldered one in. Right off the bat 17 V peak with a hint of ringing. They have a max surge rating of 2 A, lower than preferred, but the result is almost ideal given that the max RMS current draw is ~3.3 A. Now I do have a current droop occur right after the MOSFET switched on, but when it switches off, I get an equivalent peak so nothing is "lost".
I looked at the thermister signal once again. I still had about 350-400 mV of ptp noise that appeared to be common mode, I place my hand on the chassis and it attenuates, but the rest of the signal was more or less clean. Despite this, a choke on the thermistor lines didn't attenuate the noise signal specifically. I'm going to drop a ferrite bead or two on the power supply to see if I get an amicable result.
-
Bah!
07/26/2016 at 12:47 • 2 commentsThanks Mouser!
Just about every 10 mOhm or under TO-252-3 MOSFET Mouser lists is not a TO-252, but a TO-263, D2PAK not DPAK. I didn't check the nomenclature in the datasheet of the PSMR90-30BL. My bad, but c'mon, please? Went to digikey and they carry Alpha & Omega transistors. The AOD484 in the Select Mini is cheap @ $0.55 in single quantity and it has a cousin, the AOD240, that's $1.35 in single quantity. At ~150 Hz, the switching characteristics won't matter much between the two.
There is a possible side effect using the AOD240 too. With the higher Vgs, given that these transistors switch the main power to the heater, it may be quite possible to run this board off of 24 V. I don't have the PN off hand of the 3.3 V SMPS on the board, but my memory is telling me that it was compatible with up to a 40 V input. Still need to dig over the driver board a bit more cause the hot end fan is switched with on 2 pins of the STM32 and then the SOT23 transistor, i.e. why don't we have PWM fan control?
EDIT: The AOD240 has too much of a lead time. A similarly spec AOD510 seems to be a sufficient enough upgrade. It's RDSon is better at 3.3 V, but admitedly I've not observed the Vgs voltage on my scope yet.
To note, my fan will be working again later today with replacement SOT-23 MOSFET. Squashing the noise in the thermistor lines is the key to the stability of the PID loop from what I can read up on and I'm close to characterizing 'C' & 'L' with some help of various PID tuning guides and watching may 'scope :). I have a local electronics shop that carries some RF chokes that I hope will help out from, given what I've observed so far.