Tedder's pi printer hat, v6.1.1 working

things that work:

  • 12v or 24v input to power the Pi, including a switching power converter
  • huge capacitor to smooth out any voltage irregularities
  • Two MOSFET outputs (my MPMD will get a fan and lighting control; the Prusa will get lights and IDK)
  • power monitoring (watts/volts) with INA219 chips, both at the input voltage and at the 5v level (what supplies the Pi, perhaps it'll help detect undervoltage)
  • temperature/humidity monitoring, with both LM75 and ENS210 chips
  • found or wrote Python for all of these.

failure is always an option. other parts:

  • testbed for four WS2812 LEDs. I desoldered these, wasn't happy.
  • LM75 temperature sensor. Will remove from design, the ENS210 sensor has humidity, is much more accurate, and takes a smaller footprint

No surprise, I'm already designing the next version:

  • I'm going to remove the WS2812s and add two 8-LED bar graphs. They will come in handy for printer progress, voltage/power usage, CPU, who knows.
  • will add three buttons: safe poweroff, poweron, and 'BRB' to abort a print.
  • will probably add some status LEDs too.

Here's the software output of the monitoring chips:

Bus Voltage:    12.272 V
Supply voltage: 12.270 V
Bus Current:    118.598 mA
Power:          1277.439 mW
Shunt voltage:  2.230 mV

Bus Voltage:    4.976 V
Supply voltage: 4.981 V
Bus Current:    225.457 mA
Power:          972.561 mW
Shunt voltage:  4.320 mV

ens210 temp: 24.90
ens210 hum:  33.35
lm75 temp:   26
2 Likes

So the ENS210 also supplies temperature and you're thinking that it's better than the LM75, I'm guessing?

Correct. LM75 is T, ENS210 is T and H (pretty much all humidity sensors supply both, because science). The LM75 reads to 0.5° C, is accurate to 2°, and always seems to run hot. The ENS210 reads to 0.016° and is accurate to 0.2°. It also takes up about 1/10th the space on the board.

1 Like

Who made the board, Fritzing?

I did, easyeda. Hand-routed.

3 Likes

v6.1.2, just out of the oven. The lower right is for some prototype/experimental stuff because I had some extra space. I need to reflow a couple parts (I see some suspicious bridges) and add the through-hole headers, otherwise it's ready to go: power supply, two power monitors, octoprint abort button with LED, pi shutdown button with LED, two 8-LED bar graphs, two spare LEDs, two high-amp switched circuits, etc etc.

I've never used an SMD stencil but I was encouraged to do so. Certainly makes it easier.

3 Likes

What happened to the big capacitor?

I used a much more efficient switching regulator, so I was able to go from 1000uF to 68uF. more importantly it got rid of worries about heat.

Thankfully TI has some great circuit design tools, so not only could I evaluate them on part count, but also on efficiency/heat generation (which are roughly the same thing).

Nicely done. It looks slick. Feel free to talk about that stencil; I've not used that before.

Me neither. I was complaining about an arduino SMD project and was encouraged to use it. I actually had already ordered the stencil for this project, just hadn't used it yet. Reading some howto guides like an old one from sparkfun helped me figure it out: support the sides of the PCB (I printed a surrounding piece), hold it VERY FIRMLY with one hand, scrape the paste across it. I used a paint scraper that I had, but a razor blade in a scraper handle would have been a lot better (you can see how I couldn't scrape everything off).

The stencil really helps prevent against bridging; I couldn't have done that HTSSOP28 without it. I also think other PCB manufacturers put on better solder mask; these are cheapies from JLCPCB, but I think the OSH Park boards come out slightly better.

.. and then the human pick n place machine took perhaps 40 minutes to place all those little bits :slight_smile:

Hello,

Is this project in any way opensource?

Thank you in advance

Yeah, here's the easyeda file.

I have v6.4 coming to me in the next week.

where can i found an example script to read the ENS210 with the raspberry pi in python ?