24 comments

[ 3.1 ms ] story [ 41.1 ms ] thread
(comment deleted)
Oh no don’t tell vornado this is possible and give them an enshittificafion pathway for their products
I actually like this idea. Makes more sense than smart fridges. Would be cool if this ESPHome thing worked with RP2350/Rpi Pico 2.
I don't like the notion of doing speed control by putting a digipot in series with a motor. It worked because the fan happened to be low enough power but it doesn't seem like the author gave thought to the power handling capability of the digipot. If the fan happened to be beefier he's letting the smoke out with this design.

Plus, this is more complicated than just doing PWM.

ESPHome and homeassistant have been really great, just like a nice breath of fresh air in a world of cloud saas stuff.
Why is there level conversion though if the digipot (MCP4141) is 2.7V to 5.5V?

Personally I'd just use breadboard, it's just a 8 pin IC and a ESP module, for a one-off hack..

I've been toying with a variant of this project for my Honeywell home air filters. I have one in all my "big" rooms, and I like to keep them running at a low speed most of the day.

But I also have time-of-day energy pricing, and it would be nice to automatically turn off (or at least slow) my air filters during the 5pm-8pm window. This project inspires me to at least look into the feasibility of adding that functionality myself.

I love upgrading simple home appliances with homebrew smarts using ESPHome so that they retain their original interface. I've mostly done lights that are still correctly switched at the original wall switches but up next is my fan and toaster oven! Then to tackle the thermostats.
The next step would be to monetize it with ads, and put some of the features behind a monthly subscription.

Premium oscillation package, only $9.99 a month.

Premium oscillation package. We still talking fans? Or only fans?
what abut adding a gps in there, you can then use it in different rooms only if you pay a $5 multiple location unlocking fee
This is amazingly cool. Did you consider putting a rotary encoder on the PCB to maintain local control over the speed?
I purchased a Phillips fan in a shopping spree. It was hot outside, needed something, did not pay much attention beyond that it worked and was not noisy.

At home my eyebrows went halfway on my forehead seeing that there is a remote and the remote is supposed to be my mobile! Need to download the app for it, connect the fan to the Wifi, but it also had bluetooth for some reason. No way Jose!

Yet, it was so incredibly stupid like 4K zoom camera in a hammer that I had to try. Carefully. Data collection notice in the app shop is not promising, not at all. Location data, ID, I do not remember in full but perhaps contacts too? Unsure, but a lot. Anyway, will not enable access to most, airplane mode on, no bluetooth device in sight, so went ahead and installed the app, router disconnected from the internet, then run it.

First thing: refusing access to location. App: sorry, you cannot use me if I cannot access your location, network, and my mothership. And it stops. Big laugh, delete the whole thing. Leaving feedback for other customers about this incredibly stupid intrusion.

Then I got answer from Phillips! Something along the line: "This is for the best interest of our customers, we need your precise location so we can share personalized pollen and climate data and whatnot, we absolutely must insist this!"

For a fan!

Meanwhile the fan has physical buttons on it, can adjust speed, timer, and the cycle. Not completely useless. However some buttons need two press to register the action once. Beeps twice, does thing once. Likely some interference with The App, need to make sure that I am in the same room with the fan with a warning press and then the real press, or whothef knows what was in the head of these guys when they put this piece of thing together!? But really, are they nuts? Ruining use along pollen data?!

Are we already living the movie Idiocracy when it is about the Phillips product design department?! Did they loose all sense with reality? I am sure they already pushing through some new AI function for this very fan and are sad that mine cannot connect to the mother ship through satellite or something just so the update can be pushed to it learning my breath patterns for optimal fan speed. They are nuts! They are nuts!

I think this is the opening to a Korean horror movie...
This is a very fun project with a corsi-rosenthal filter (a box fan taped to a bunch of normal house filters). To control the fan, you'll have to have some fun with a relay connected to MAINS voltage -- if you dare. The salon power relay hat is a reasonable solution (just remember to get voltage up/on for fail-dead). It's possible to squeeze everything inside of those cheap lasko fans you can get, too, if you want a challenge.
The digipot is vaguely similar to how a R2R ladder DAC works. There are two resistor values used: R and 2R. The "interesting part" of the circuit has bits x 2R resistors in parallel. One end of each resistor (let's call it input) is connected directly to the digital bit from the PWM sample.

Then there is the series bits x R resistors. The output of each 2R resistor is connected in-between the two resistors that straddle its bit position. So:

    Out
    |
    R
    +-2R-bit0 
    R
    +-2R-bit1
    ... 
    R
    +-2R-bitN
And that's it (apart from pull-up/down resistors)! Due to the way that resistors in series and parallel work, each input step in the ladder provides twice the voltage of the previous if powered: it's base 2 enshrined in a physical object.

These are relatively uncommon because they are highly sensitive to the resistor (and trace) tolerance, but this circuit is my Euler's identity of electronics: it very literally bridges the digital and analog worlds.

I saw the diagram in the original blogpost, laughed, but after a bit of sketching it out I think we're both wrong. R/2R ladders are useful in DACs (and are really cool there) but don't look like they're used in digipot applications.

It seems like actual digipot ICs use the "2^n discrete resistors" approach. The IC used in this project is a MCP4141 which explicitly states in section 5.1 of its datasheet that for 7-bit (8-bit) devices there are 128 (256) resistors in a string between the terminals.

I'm a bit surprised this seems to be the best approach, but with IC manufacturing the joint problems of "a bunch of identical components" and "wiring it all up" are much less of a problem than if you were to wire this up by hand.

>> The PCB was ordered from JLCPCB, where I opted to have most of the components pre-soldered.

very expensive, you are committed! :)

you should have gone Full Giertz and added a badd little robot arm that turn the pot.

esp32 are really nice: hundreds of code examples that do what you want without having to read too many pages. did you use ARDUINO IDE or idf.py SDK?

I love this - but honestly I was expecting this to end with the fan not functioning due to wifi issues. :)
How much does it cost to get a pcb made with all the components?

I hate soldering but breadboards are limiting.

Reading the comments here I feel like… I have found my people. I love toying with the esphome and homeassistant.
I love these things toying with home assist
I gave wifi to my AC, but went with a slightly different route. I used an ESP32 to reimplement its remote control and receiver. The ESP32 has dedicated hardware for implementing IR communications.

I then recreated the remote control in the browser and had the system both send the right codes when pressed, and also receive any other valid signals (ex. if I used the actual remote) to sync the web ui with the ACs current state.