PID Firmware for Injection

Previously, I made a PCB for interfacing SSRs, thermistors and LCD to Arduino Nano. These days I have more time and started writing the firmware. So here are the capabilities of this firmware:

1. LCD Menu (click-rotate interface)
2. Serial interface (similar to G-codes but not exactly)
3. Profile heating (select preset profile, e.g. PET –> heat to 250)
4. Manual heating (manually selecting temperature)
5. PID algorithm (output is duty cycle % of a heating cycle of 200ms, 5Hz)
6. PID autotune (modified from Marlin firmware for 3D printing)
7. EEPROM for settings

The interface shown is for 2 heaters.
“T0 17/0 P (empty box)” means the temperature is 17 and target is 0 for heater 0. Power (P = output for heater 0 / 200ms in %) is zero.

I’m planning to add mosfets to control fans. What do you guys think?

This is also designed to work for shredder but no PID. (measure rpm –> if stalled, stop power)

Let me know if you want a copy, I am planning to design a full-fledged hardware. But you know, PCBs are done in quantities of 10’s. I will wait until I have enough backers.

that is some solid amount of time you’ve put to make this for us. thanks you very much.
would you mind sharing this in the form download package with circuit diagram and parts list as well as a tutorial for connections

@seanpo tachometer (tacho, speed) measures the rotation speed of the shredder shaft in rpm. If it drops below its working speed, something is wrong so the power should be cut out. That’s a fail safe measure I was trying to add.

What would the tachometer be measuring?

Hi all,

I’m planning to upload the firmware and PCB here.

Do note that they are <span style=”text-decoration: underline;”>not ready for release. (Theoretically they could blow your home up — well, just a disclaimer).

Jokes aside, note the following before you order a pcb.
1. I could remember there is a manual reroute after the PCB was made. It should be the pin A7 (it should not be used a digital pin as it was in the scheme).
2. Be ready to install some dependencies (libraries). My habit is to make a copy of the library directly in the project folder so that I don’t have to install them again. But I didn’t do the same for u8glib (if I remember correctly).
3. The tachometer part is almost done. It can count rpm but it doesn’t stop the machine if it goes wrong.
4. Check the pin configuration of the AC transformer

@wkhs Which resistance did you use for the tension divider ciruit of the ntc?

Super cool work!!!
Thank you for sharing this!
Could you send me the schematics and the code you use for the arduino?

Thank you for sharing this!
Could you send me the schematics and the code you use for the arduino?
I would really like to develop this.
Thanks again!

Super cool work!

[Updates] putting into electronic box
(ignore my breakfast coupons)

[Updates] Connecting wires and enhancing current capacity with bare copper wires

@wkhs yeah sure. i am not a electronic techie so It’ll take time to understand but i wilk do it. send me files at

I would love to. But my current version is not yet updated with my improvisation (ie where I corrected drawing faults with jumping wires). I was trying to find if anyone can help me double check on my work. But…I don’t see many enthusiasts in electronics here…

If you’re fine with the current faults, I can send you a copy in advance