Zemismart Moonlamp

Product image Bottom view LED Layout

The moonlamp has both RGB and Cold / Warm white handled by three groups of three leds.

Manufacturer: Zemismart

The moonlamp is powered by USB, so no special regional plugs needed.

How to flash

  1. Open

    There are 3 screws securing the bottom to the 3D printed moon.

  2. Unmount circuit from the box

    5 more screws, securing the diffuser to the print, and the print to the socket.

  3. Pins

    There are pads for RX, TX, 3.3v, GND and I00 nicely marked on the board, ignore my mess with the solder, the GND is rather large and takes a lot of heat, and the solder I have at the moment is terrible, and I’m just waiting for something new to arrive.

    REMEMBER to disconnect the battery and the USB power before flashing!!!!

Soldering points

There is only 1 MB on the onboard esp8266, so the code has every thing ‘extra’ removed to keep it small, and being able to do OTA. The WW and CW temperature values are unknown, so purely guesses. The CW/WW and colour LED’s are mutually exclusive in the original firmware, probably to conserve power, this behaviour is kept in esphome.

Missing features: The original firmware claims to have touch control, so it will change colour when you tap the globe, I haven’t had the luck to figure out how that is done. It seems to use slightly more power when running esphome than the original firmware (the included battery doesn’t last as long).

Basic Config

  device_name: Moonlamp
  espname: moonlamp

  name: '${espname}'
  platform: ESP8266
  board: esp01-1m

  ssid: !secret wifissid
  password: !secret wifipw
  reboot_timeout: 60min
#  use_address:
  fast_connect: true
  # Enable fallback hotspot (captive portal) in case wifi connection fails
    ssid: "${device_name} Hotspot"
    password: !secret appw

  baud_rate: 0


  password: !secret otapw

  - platform: esp8266_pwm
    id: output_red
    pin: GPIO4
  - platform: esp8266_pwm
    id: output_green
    pin: GPIO12
  - platform: esp8266_pwm
    id: output_blue
    pin: GPIO14
  - platform: esp8266_pwm
    id: output_warm_white
    pin: GPIO13
  - platform: esp8266_pwm
    id: output_cold_white
    pin: GPIO5

  - platform: rgbww
    name: '${espname}'
    id: '${device_name}'
    color_interlock: true
    red: output_red
    green: output_green
    blue: output_blue
    warm_white: output_warm_white
    cold_white: output_cold_white
    warm_white_color_temperature: 2800 K
    cold_white_color_temperature: 6200 K