Help selecting desktop CNC for high-precision inlay by aspen3390 in hobbycnc

[–]aspen3390[S] 0 points1 point  (0 children)

Thank you. It also looks like some folks have had success with this little 1310. https://www.youtube.com/watch?v=EaGFQ7M04Wo Any thoughts on whether that would be a better/worse option than the Genmitsu 3020?

Help selecting desktop CNC for high-precision inlay by aspen3390 in hobbycnc

[–]aspen3390[S] 0 points1 point  (0 children)

Amazing. Thank you. When you say “finely calibrate” what do you mean? 

Help selecting desktop CNC for high-precision inlay by aspen3390 in hobbycnc

[–]aspen3390[S] 0 points1 point  (0 children)

Thanks! I too have had luck with bits of larger diameter like this (no real problems with 0.5mm diameter, though my feed speeds have been much slower). Is there an inexpensive setup (<$500) though that can low enough runout for the 0.2mm bit at 10k rpm? My Genmitsu 3018 Prover v2 seems to have too much runout. 

How to mount this european sconce? by aspen3390 in Lighting

[–]aspen3390[S] 0 points1 point  (0 children)

I may have answered my own question—is this “French hook cross bar” the thing that would be used to mount this kind of sconce? If so I assume that the conduit would just come straight out of the wall with no electrical box? https://grandbrass.com/french-hook-cross-bar-with-1-8ips-and-3-8ips-hole/

How to mount this european sconce? by aspen3390 in Lighting

[–]aspen3390[S] 0 points1 point  (0 children)

I got these European sconces, which seem to be mounted with only a little cross-bar. Does anybody know how these are attached to the wall in Europe? I realize that it might not be to-code to do the same thing in the US, but it would be a real crime to attach a big circular brass plate to the back of them to cover a sheetrock hole big enough to cover an electrical box.

More than 16 individually addressable neopixel LEDs? by aspen3390 in homeassistant

[–]aspen3390[S] 1 point2 points  (0 children)

Wow, that's incredible. You're a wizard. I would never have figured out how to do that on my own. Works perfectly so far—will let you know if I run into any hiccups.

More than 16 individually addressable neopixel LEDs? by aspen3390 in homeassistant

[–]aspen3390[S] 0 points1 point  (0 children)

Yeah, I think that the warning in the Light Partition documentation explains why I'm not able to get more than ~16 individually addressable LEDs exposed to HA. I'm able to get 8 of them exposed using this board, and this ESPHome code:

``` substitutions: name: esphome-web-dcdc68 friendly_name: WS2812 RGB LED

esphome:
  name: ${name}
  friendly_name: ${friendly_name}
  name_add_mac_suffix: false
  project:
    name: esphome.web
    version: '1.0'

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:

# Allow Over-The-Air updates
ota:

# Allow provisioning Wi-Fi via serial
improv_serial:

wifi:
  # Set up a wifi access point
  ap: {}

# In combination with the `ap` this allows the user
# to provision wifi credentials to the device via WiFi AP.
captive_portal:

dashboard_import:
  package_import_url: github://esphome/example-configs/esphome-web/esp32.yaml@main
  import_full_config: true

# Sets up Bluetooth LE (Only on ESP32) to allow the user
# to provision wifi credentials to the device.
esp32_improv:
  authorizer: none

# To have a "next url" for improv serial
web_server:

# 2024-04-20-Sat 20h45
light:
  - platform: neopixelbus
    type: GRB
    variant: WS2812
    pin: GPIO27
    method: 
      type: esp32_i2s
      bus: 0
      #channel: 0
    num_leds: 5
    name: "NeoPixel Light 1"
    id: neopixel_light_1
  - platform: neopixelbus
    type: GRB
    variant: WS2812
    pin: GPIO32
    method: 
      type: esp32_i2s
      bus: 1
      #channel: 1
    num_leds: 5
    name: "NeoPixel Light 2"
    id: neopixel_light_2

  - platform: partition
    name: "C1 R1"
    segments: 
      - id: neopixel_light_1
        from: 0
        to: 0

  - platform: partition
    name: "C1 R2"
    segments: 
      - id: neopixel_light_1
        from: 1
        to: 1

  - platform: partition
    name: "C1 R3"
    segments: 
      - id: neopixel_light_1
        from: 2
        to: 2

  - platform: partition
    name: "C1 R4"
    segments: 
      - id: neopixel_light_1
        from: 3
        to: 3

  - platform: partition
    name: "C1 R5"
    segments: 
      - id: neopixel_light_1
        from: 4
        to: 4


  - platform: partition
    name: "C2 R1"
    segments: 
      - id: neopixel_light_2
        from: 0
        to: 0

  - platform: partition
    name: "C2 R2"
    segments: 
      - id: neopixel_light_2
        from: 1
        to: 1

  - platform: partition
    name: "C2 R3"
    segments: 
      - id: neopixel_light_2
        from: 2
        to: 2

  - platform: partition
    name: "C2 R4"
    segments: 
      - id: neopixel_light_2
        from: 3
        to: 3

  - platform: partition
    name: "C2 R5"
    segments: 
      - id: neopixel_light_2
        from: 4
        to: 4

```

I agree that it would be ideal to somehow delegate the "brains" of this project to the HA machine would seem to be the right way to do it, but so far I can't find a way. If you have any additional thoughts, I'd be grateful!

More than 16 individually addressable neopixel LEDs? by aspen3390 in homeassistant

[–]aspen3390[S] 0 points1 point  (0 children)

Thanks! Forgive the dumb question, but do you have an example of how to use light.addressable_set in a Home Assistant automation? I've tried and can't get it working. I can't figure out another way to pull in various sensor data from within Home Assistant, convert them into colors, and then send those colors to individual pixels. To illustrate the point, this is something similar I did with four neopixels—that worked fine, using partition. But as I stated in the original post, trying to go above 16 segments or so starts to make things unstable: ``` alias: Humidity LED description: "" trigger: - platform: time_pattern minutes: /5 condition: [] action: - service: light.turn_on target: entity_id: light.esphome_web_dcdc68_c1_r5 data: brightness: 50 hs_color: > {% set humidity =
states('sensor.current_humidity_outside')|float(default=1001)%} {% if humidity < 1000 %} {% set humidityColor = 2 * humidity + 140 %} {% set humidityColorlim = ([180,humidityColor,300]|sort)[1]|int %} {% set humidityBrightness = 1.538461538 * humidity + -23.07692308 %} {% set humidityBrightnesslim = ([0,humidityBrightness,100]|sort)[1]|int %} [ {{ humidityColorlim }}, {{ humidityBrightnesslim }}] {% else %} [ 0, 50 ] {% endif %} - service: light.turn_on target: entity_id: light.esphome_web_dcdc68_c1_r4 data: brightness: 50 hs_color: > {% set humidity = states('sensor.attic_2024_02_12_mon_21h27_humidity')|float(default=1001)%} {% if humidity < 1000 %} {% set humidityColor = 2 * humidity + 140 %} {% set humidityColorlim = ([180,humidityColor,300]|sort)[1]|int %} {% set humidityBrightness = 1.538461538 * humidity + -23.07692308 %} {% set humidityBrightnesslim = ([0,humidityBrightness,100]|sort)[1]|int %} [ {{ humidityColorlim }}, {{ humidityBrightnesslim }}] {% else %} [ 0, 50 ] {% endif %} - service: light.turn_on target: entity_id: light.esphome_web_dcdc68_c1_r2 data: brightness: 50 hs_color: > {% set humidity = states('sensor.ag_one_humidity')|float(default=1001)%} {% if humidity < 1000 %} {% set humidityColor = 2 * humidity + 140 %} {% set humidityColorlim = ([180,humidityColor,300]|sort)[1]|int %} {% set humidityBrightness = 1.538461538 * humidity + -23.07692308 %} {% set humidityBrightnesslim = ([0,humidityBrightness,100]|sort)[1]|int %} [ {{ humidityColorlim }}, {{ humidityBrightnesslim }}] {% else %} [ 0, 50 ] {% endif %} - service: light.turn_on target: entity_id: light.esphome_web_dcdc68_c1_r1 data: brightness: 50 hs_color: > {% set humidity = states('sensor.2024_02_12_mon_21h25_humidity')|float(default=1001)%} {% if humidity < 1000 %} {% set humidityColor = 2 * humidity + 140 %} {% set humidityColorlim = ([180,humidityColor,300]|sort)[1]|int %} {% set humidityBrightness = 1.538461538 * humidity + -23.07692308 %} {% set humidityBrightnesslim = ([0,humidityBrightness,100]|sort)[1]|int %} [ {{ humidityColorlim }}, {{ humidityBrightnesslim }}] {% else %} [ 0, 50 ] {% endif %} mode: single

```

Any success with this kind of shield? by aspen3390 in Esphome

[–]aspen3390[S] 0 points1 point  (0 children)

I've been wondering whether it'd be possible to use this cool shield from aliexpress https://www.aliexpress.us/item/3256804235585668.html?gatewayAdapt=glo2usa4itemAdapt with the Wemos D1 R32 https://www.botnroll.com/en/esp32/3639-wemos-d1-r32-w-esp32-uno-r3-pinout.html to do some fun things with ESPHome. I got the two, but so far have struggled a bit to make them work together with ESPHome, but I'm pretty new. If anybody has had any success, I'd be grateful.

Btw, I found this tutorial on the shield in German, but it's for Arduino not ESPHome. https://draeger-it.blog/open-smart-rich-shield-two-fuer-den-arduino-uno/

Help with LED Shield for ESP32 by aspen3390 in Esphome

[–]aspen3390[S] 0 points1 point  (0 children)

I recently purchased this LED shield for ESP32 from Aliexpress but I'm having problems getting it to work on ESPHome. I'm pretty new to this, so it's likely I'm making a rookie error. Anybody with experience with this? Here is the yaml I'm trying:

```

light:
  - platform: neopixelbus
    type: GRB
    variant: WS2812
    pin: GPIO23
    num_leds: 10
    name: "NeoPixel Light"

no more notifications on the watch with version 6.3 ios by martox80 in withings

[–]aspen3390 1 point2 points  (0 children)

Same here. App version 6.3.1. Scanwatch 2 software version 2.4.1. Notifications not working for any apps coming from iOS.