-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FAN needs support #76
Comments
No, hadn't heard. I'm curious as to what I/O pin might control the FAN (if any). If it can be controlled by the CPU, then I think it's worthwhile to incorporate it into the firmware somehow. |
I am willing to help out as much as I can in order to find out which I/O it is. If anything, components in spaces R41, R42, and Q3 were installed so maybe if you were to find what I/O uses R1, R2, and Q2, you might find the missing link nearby. ...though I have no real idea how it all works.... |
"In use" as in every pin is attached to something or as in you know it
activates something? Because we can try all 48 pins the hard way if you
want just to find it.
…On Tue, Jun 1, 2021, 6:19 PM Demitrios V. ***@***.***> wrote:
Glancing at a photo of the circuit board, I *think* the circuit is a
typical mosfet switch. One of the resistor traces should make its way back
to the cpu where the dot on the CPU marks pin# 1. Pretty much all of the
I/O pins are in use, though, I believe.
Digital I/O
[image: p-channel_mosfet]
<https://user-images.githubusercontent.com/57586704/120407518-4db25c00-c31b-11eb-8add-c1d3085d1b1b.png>
CPU Pinout
[image: cpu]
<https://user-images.githubusercontent.com/57586704/120408523-31afba00-c31d-11eb-86a0-1281035f1db3.png>
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#76 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AQYJ74WUTUGUI5SBKUFEGB3TQWBKPANCNFSM45NSOFEA>
.
|
Looks to me like PA3 is setup to control Q3 as low-side switch. PA2 & PA3 are connected to the unused serial pads by the MCU, so PA3 should be "free" to repurpose without impacting anything else. Here was another picture of the PCB area in question. @BackwardEcho Could you post a close up picture of your installed Q3? Is it installed upside down? |
I think this can work: Does this sound like a reasonable way to use the output? Is there another approach that is prefered? |
That seems fine to me. Is |
Yes, Marlin G/M-code docs for
I think this works. The original behavior of the I'll get to work on it. Please point out any glaring omissions. |
What about those that don't have the new fan output? I feel like the |
I see your point. My approach does seem overly complicated. Rather than try to accommodate some hypothetical 2-fan configurations, perhaps it's better to just add the additional fan output as explicitly controlled |
So the original fan output will be labeled explicitly as Correct? |
Yes, correct. Recall, though, that in the current I'm hung up on what For the Anyway, first step is to get the new fan output working. |
I feel like I'm letting you down by not being able to follow your train of though on this. Sorry >_> In an attempt to: are you hung up on how to designate the original header for a "hotend" or "part cooling" function since the original fan is both? Why not have
I can't wrap my head around this, though I feel like I might have touched on it in my questioning above.
Let me know when you have a test build ready. I might be the only active one here with an applicable board. |
I have not been following this thread intently, but I think it is important to look at the end goals. EDIT: I rethought some of my points in c/d. Here is my part cooling tutorial for anyone interested in relevant hardware mods. a) Stock Setup (AC Firmware). The fan will automatically turn on after a temperature threshold, but you can definitely override this with gcode commands. So, it is still controllable, but it is not advised to turn it off due to heat creep. b) Part Cooling Mod (PC Firmware): Hardwire the heatsink fan into the "always on" 12V to avoid heat creep, wire part cooling fans into the PWM connector for control. c) New PWM Fan Header (PC Firmware). (edited) Same as b, except maybe you also want to control the dimness of some lights or something? Maybe you have different types of part cooling fans on the same printer? d) New PWM Fan Header (AC Firmware). (edited) You have part cooling fans you wish to control, and you want the heat sink fan to turn on/off before-and-after the print. So, to me, it makes sense to make the new fan controlled via gcode, like mainline Marlin M106 with the fan indices. |
I agree with Purplehue in that it's a good idea to know what you want before you really go into the changes. I'm thinking it'll make things easier as the changes are made. Not to mention those listed options are more or less what I was hoping for, even if I wasn't able to properly convey it. |
I wouldn't get too hung up on this. I think |
Thank you all for the comments. I agree that my original draft is too involved for little gain -- the "default" fan should always be I wasn't too concerned about this type of issue earlier because there was little program space remaining for firmware changes. Building the So I think it makes sense to "code in" a flexible configuration to help those who want to customize, but as far as what to include in the Thoughts and comments welcomed. |
@aegean-odyssey I completely agree. I think the fan header mod is (and will be) so rare that those who do it can just setup their slicer to use P1. |
Is there a way to set a given slicer to use a specific designation for a fan? I thought it would be set to some marlin default. Not like the "if omitted, use this" type of default, but like the "spec marlin has the hotend fan as |
@BackwardEcho In Cura, you can set "Machine Settings"->"Extruder 1"->"Cooling Fan Number". |
Oh sweet, I didn't know that. Thank you. Personally I'll stick with the automated approach. |
For the sake of checking what cura generates with part cooling, I got |
I think I've got all of the changes in. It looks though that the Travis-CI (automatic build process) is somehow buggered. Waiting on support to try to sort it out. And I need to do a little testing here before asking for testers that have hardware for a working extra fan output. Thanks for your patience. |
Are you gonna be making all 16 variants in this one run? If it cuts down on how many you need to make, I believe the one I use is the |
I'm still futzing with the travis-ci builds. In the meantime: Completely untested, but compiles -- you can find two build runs under the Actions tab of this repository. Run ♯9 is If you give the firmware a try and nothing works, don't spend too much time with it -- I really did not test at all. |
I was not able to get the fan connected to the new port ( edit: and that was the edit 2: same result with the |
@BackwardEcho, thanks for giving the 1st round a try.
And to cover all bases, do we know that the hardware works (and that Again thanks for testing, and don't spend too much time with it. It's unrealistic to think that I got all things correct on the first, completely untested attempt. I'll try to find the equipment to test the firmware to see if it is generating the expected PWM signal on |
I opened up my machine and double checked the schematic I posted above. I had previously hooked a scope up to |
Here are 2 photos of my board with my new phone's macro camera.
I don't know how to tell you if it did or didn't. Inputting
Yes.
Matthew Upp : "To test, I activated the hotend fan and then jumped R1 to R41. (Circled in purple)" @mulcmu, I did not witness any shift in the fans when plugged into the header during startup. Does it need to be the |
Thank you all for the testing assist! It real helps narrow things down, and I think I found the problem: I'd removed a line of (initialization) code that actually enables timer15-ch2's pwm output signal. For some reason yesterday's read of the tech specs led me to deliberately remove the line as not required for timer15 -- but it is and it is now back in the code. @mulcmu, the firmware initializes all of the io at startup (after it gets control from the boot loader), so the state-change on the signal lines is probably related to the delay before the firmware gets to set the io to a known state. Also, both I've built two more test versions, runs ♯10 and ♯11, under the Action tab. Please feel free to test. Hopefully the |
Same result :( |
I soldered wires to the R41 and R42 resistor pads to easily hook up to the scope. I tried builds ♯8 and ♯10 with a scope hooked up. Getting a constant 3.3V. No change in the waveform for |
Sigh. I'll dig into it. Thought I could get away without having to tear into the printer. Silly me. |
I was able to verify PWM output with scope after some hacks in my fork. Not sure if these changes break other things but proves out the functionality. https://github.com/mulcmu/mpmd_marlin_1.1.x/actions/runs/1167786560 |
@mulcmu, great to see the output actually work. Trying to think things through: Looking at your changes, do you think that the change from I'm inclined to think that setting the But, if this is the case, then I'd expect the output If As far as I can tell, the fan speed is actually set in Thanks for your help. Your scope is a big help. |
I had also commented out EDIT: Looks like |
@BackwardEcho This build has the above fix if you want to give it a test on the modified board. Both fan outputs tested okay on my machine. |
Sorry for the late / early morning reply. I was at work till 10pm my time, then till 4 am I was helping my sister setup a new printer. The last half-hour I took this video. (The file is 65 MB, otherwise I would have posted it here directly.) I am STOKED. I believe everything worked as intended except for |
@mulcmu, oh my! You're right! It explains all. (I was bothered -- you're code changes were not materially different -- my latest test version should have worked. But my typo I looked at and didn't see for days... -- good catch.) @BackwardEcho, I'll look into The help here has been great. I cannot speak highly enough of your assistance. |
Glad I could help! |
Ok, I removed Are we sure that |
There is a slight misunderstanding, edit: omitting |
According the Marlin G-code docs, Also, what are good part values for the extra fan mod ( |
I don't remember off hand but I talked to @PurpleHullPeas about it on FB. I'll check for the comment when I get off work in a while. Edit: it's nothing confirmed except for the 4A mosfet, but I looked at the images and the resistor's markings match here and there. |
Here were my best guesses: FAN: B2B-XH-A through-hole type shrouded header Resistors look to me like 0603 package size Q3: AO3402 (A29T) (SOT-23 package) mounted upside down! |
I went ahead and @'d Matthew on FB, hopefully we'll get an answer later. I also sent an email via gigdigit and a PM telling him about the upcoming release and suggesting he make some new skus on the store page for an installation service (send your board in) because I think people are gonna want it. Before he told people to contact him via gigdigit to work it out, but adding a sku will make it obvious. |
@aegean-odyssey were you able to get a confirmation regarding the components? I see you added them to the wiki already. |
Apologies for not chiming in sooner. I didn't know this thread existed since I had only been searching the discussions tab to see if a thread for the fan addition was created. After reading the Facebook post and the email from @BackwardEcho, I did some searching and finally found this thread in the issues section. Anyways, the components that are in the table on the wiki page are pretty much correct. The two resistor values I chose to use are based on the values that the printer manufacturer uses on the M300 and M200 mainboards. Since the PCB design for the additional fan is for whatever reason not correct, I created this image is help me visualize what needs to go where. Not really needed for anything here but figured I'd share anyway. |
This actually might be very helpful to those who wish to add the components themselves instead of contacting you at Gigdigit. Obviously it might be very few who are comfortable doing it, but the documentation on it is extremely valuable nonetheless. |
Thanks @MatthewUpp for confirming the parts list and layout. Is GigDigit going to sell a parts kit, or offer a service to upgrade boards, or sell upgraded controller boards? If so, I'll mention it in the wiki page. |
@aegean-odyssey He added the parts during his last batch which prompted this whole thing. Since it works I can see it being added going forward for new boards. The other options (parts kit or service) is what I'm thinking people would be interested in; to know it is available. But for the service some things will probably need to be shipped to the customer beforehand in order to get the board safely to him for modification (ie, an anti-static bag, because who is going to readily have one). |
Is anyone able to add that Gigdigit schematic to the |
@aegean-odyssey , Matthew Upp, whom I'm sure you know runs the Gigdigit store, has populated the empty FAN header on this recent batch of quiet boards. I just got my board in the mail and was pleasantly surprised by it. Did you see the post, did he contact you at all on it, or is this the first time you are hearing about this?
the post in question
The text was updated successfully, but these errors were encountered: