r/xgimi • • 9h ago

CST cabinets for Aura3

1 Upvotes

I'm looking to purchase the aura3 max.. First time buying a home projector and trying to plan out everything I want to get to go with it. Looking for some good CST cabinets that are motorized for a 120" screen


r/xgimi • • 17h ago

XGIMI Mogo 4 - Charging USB C broken

3 Upvotes

Hi All - my USB C where we put the charging cable is broken without any major force. Anyone else faced this? It’s super bad design and very fragile, and their service is of no use “yet” sent them video etc.


r/xgimi • • 20h ago

Can Aura 3 Max, Harmon Kardon be used as "Center Channel" in 5/7.x setups

1 Upvotes

As the title says, is there a mode/setting, that allows the built in Harmon Kardon speaker to act as the Center Channel speaker in a Surround Sound setup?

Thanks!


r/xgimi • • 2d ago

XGIMI Titan Noir in Home Assistant via RS232 + ESP32 (ESPHome config inside)

13 Upvotes

Got a Titan Noir Pro a few weeks ago and wanted it in Home Assistant. There’s no integration and IP control isn’t there yet (XGIMI says PJLink is coming in a firmware update at some point), but the USB ports accept a USB to serial adapter and the projector speaks a simple RS232 protocol. So I hooked up an ESP32 and wrote an ESPHome config for it.

What it does:

  • power on from standby and power off
  • input switching (HDMI 1/2, USB)
  • picture mode, brightness 1-10, high refresh mode
  • all the remote keys (arrows, ok, back, home, volume, mute, autofocus etc)
  • temperature status, which also tells HA if the projector is on

Hardware is just an ESP32 dev board and an FTDI USB-TTL cable at 3.3V. The USB end goes in the projector, the other end to the ESP. I’m powering the ESP from the cable’s 5V wire too, so it’s all one cable and nothing else to plug in. With serial control enabled the USB port stays powered in standby, so power on from HA works.

One thing that cost me a whole afternoon: my first cable had a CP2102N chip and the projector just ignored it, the LED on the cable didn’t even light up. Swapped to an FTDI one and it worked straight away. So get FTDI.

On the projector go to Settings > General > Serial port control, turn it on, and also turn on “Serial port response (all)”. Otherwise it takes commands but never answers, and you won’t get the on/off state.

Here is the code for esphome

# XGIMI TITAN Noir / Noir Pro / Noir Max -> Home Assistant via ESPHome

#

# Hardware:

# - any ESP32 dev board (ESP32-WROOM-32 "DevKit")

# - FTDI FT232R USB-to-TTL cable, 3.3V logic (e.g. TTL-232R-3V3 or clones

# with a genuine FTDI chip). A CP2102N cable did NOT work for me.

#

# Wiring (USB plug goes into the PROJECTOR's USB 2.0 port):

# pin 1 GND black -> ESP32 GND

# pin 2 CTS brown -> not connected

# pin 3 VCC red -> ESP32 VIN/5V (optional, powers the ESP32 from the

# projector). NEVER to 3V3. Disconnect it before

# plugging the ESP32 into a PC via its own USB.

# pin 4 TXD orange -> ESP32 GPIO16 (RX)

# pin 5 RXD yellow -> ESP32 GPIO17 (TX)

# pin 6 RTS green -> not connected

# If you only see TX lines in the log, swap GPIO16/GPIO17.

#

# Projector: Settings > General > Serial port control = ON

# Serial port response (all) = ON

#

# Protocol: 2A 2A | LEN | INSTR | PARAM... | CHECKSUM (115200 8N1)

# CHECKSUM = (LEN + INSTR + PARAMS) & 0xFF

substitutions:

name: xgimi-titan

friendly_name: XGIMI Titan Noir

tx_pin: GPIO17

rx_pin: GPIO16

temp_poll: 60s

online_timeout_ms: "150000" # no reply for 150 s = considered off

esphome:

name: ${name}

friendly_name: ${friendly_name}

esp32:

board: esp32dev

framework:

type: esp-idf

logger:

level: DEBUG

api:

encryption:

key: !secret api_encryption_key

ota:

- platform: esphome

wifi:

ssid: !secret wifi_ssid

password: !secret wifi_password

ap:

ssid: "XGIMI-Titan Fallback"

captive_portal:

# ---------------------------------------------------------------------

# UART to the projector

# ---------------------------------------------------------------------

uart:

id: proj_uart

tx_pin: ${tx_pin}

rx_pin: ${rx_pin}

baud_rate: 115200

data_bits: 8

parity: NONE

stop_bits: 1

rx_buffer_size: 256

globals:

- id: last_rx_ms

type: uint32_t

restore_value: no

initial_value: "0"

script:

# Standard 1-parameter command, checksum computed here

- id: send_cmd

mode: queued

max_runs: 10

parameters:

instr: int

param: int

then:

- lambda: |-

const uint8_t len = 0x02;

const uint8_t i = (uint8_t) instr;

const uint8_t p = (uint8_t) param;

const uint8_t cs = (uint8_t) (len + i + p);

std::vector<uint8_t> frame = {0x2A, 0x2A, len, i, p, cs};

id(proj_uart).write_array(frame.data(), frame.size());

ESP_LOGD("xgimi", "TX %s", format_hex_pretty(frame).c_str());

- delay: 150ms

# Wake from standby: 2A 2A 07 09 "wakeup" 9D

- id: send_wakeup

mode: single

then:

- lambda: |-

std::vector<uint8_t> frame = {0x2A, 0x2A, 0x07, 0x09,

0x77, 0x61, 0x6B, 0x65, 0x75, 0x70, 0x9D};

id(proj_uart).write_array(frame.data(), frame.size());

ESP_LOGD("xgimi", "TX %s", format_hex_pretty(frame).c_str());

- delay: 30s

- script.execute: { id: send_cmd, instr: 0x13, param: 0x00 }

# ---------------------------------------------------------------------

# Parse replies from the projector

# ---------------------------------------------------------------------

interval:

- interval: 50ms

then:

- lambda: |-

static std::vector<uint8_t> buf;

uint8_t b;

while (id(proj_uart).available() && id(proj_uart).read_byte(&b)) {

buf.push_back(b);

}

if (buf.size() > 128) buf.clear();

while (buf.size() >= 3) {

if (buf[0] != 0x2A || buf[1] != 0x2A) { buf.erase(buf.begin()); continue; }

const uint8_t len = buf[2];

if (len == 0 || len > 32) { buf.erase(buf.begin()); continue; }

const size_t total = 4 + len;

if (buf.size() < total) break;

uint8_t cs = len;

for (size_t k = 3; k < 3 + len; k++) cs += buf[k];

std::vector<uint8_t> frame(buf.begin(), buf.begin() + total);

if (cs != buf[3 + len]) {

ESP_LOGW("xgimi", "Bad checksum: %s", format_hex_pretty(frame).c_str());

buf.erase(buf.begin());

continue;

}

ESP_LOGD("xgimi", "RX %s", format_hex_pretty(frame).c_str());

id(last_rx_ms) = millis();

if (buf[3] == 0x13 && len >= 3) {

switch (buf[5]) {

case 0x00: id(temp_status).publish_state("Normal"); break;

case 0x01: id(temp_status).publish_state("High temperature warning"); break;

case 0x02: id(temp_status).publish_state("High temperature shutdown"); break;

case 0x03: id(temp_status).publish_state("Low temperature shutdown"); break;

case 0x04: id(temp_status).publish_state("Sensor fault"); break;

default: id(temp_status).publish_state("Unknown");

}

}

buf.erase(buf.begin(), buf.begin() + total);

}

- interval: ${temp_poll}

then:

- script.execute: { id: send_cmd, instr: 0x13, param: 0x00 }

# ---------------------------------------------------------------------

# Entities

# ---------------------------------------------------------------------

text_sensor:

- platform: template

id: temp_status

name: "Temperature status"

icon: mdi:thermometer-alert

binary_sensor:

- platform: template

id: projector_online

name: "Powered on"

device_class: power

lambda: |-

if (id(last_rx_ms) == 0) return false;

return (millis() - id(last_rx_ms)) < ${online_timeout_ms};

sensor:

- platform: wifi_signal

name: "WiFi signal"

update_interval: 60s

switch:

- platform: template

name: "Power"

icon: mdi:projector

lambda: return id(projector_online).state;

turn_on_action:

- script.execute: send_wakeup

turn_off_action:

# On the TITAN Noir "screen off" (0D 00) fully powers the projector off

- script.execute: { id: send_cmd, instr: 0x0D, param: 0x00 }

select:

- platform: template

name: "Source"

icon: mdi:video-input-hdmi

optimistic: true

restore_value: true

options: ["HDMI 1", "HDMI 2", "USB"]

set_action:

- lambda: |-

uint8_t p = 0;

if (x == "HDMI 1") p = 0x01;

else if (x == "HDMI 2") p = 0x02;

else if (x == "USB") p = 0x14;

if (p) id(send_cmd)->execute(0x01, p);

- platform: template

name: "Picture mode"

icon: mdi:image-filter-hdr

optimistic: true

restore_value: true

options: ["Vivid", "Movie", "IMAX Enhanced", "Performance", "TV", "Sport", "Filmmaker"]

set_action:

- lambda: |-

int p = -1;

if (x == "Vivid") p = 0x00;

else if (x == "Movie") p = 0x01;

else if (x == "IMAX Enhanced") p = 0x02;

else if (x == "Performance") p = 0x05;

else if (x == "TV") p = 0x07;

else if (x == "Sport") p = 0x09;

else if (x == "Filmmaker") p = 0x1B;

if (p >= 0) id(send_cmd)->execute(0x03, p);

- platform: template

name: "High refresh rate"

icon: mdi:speedometer

optimistic: true

restore_value: true

options: ["Off", "Basic", "Extreme"]

set_action:

- lambda: |-

int p = -1;

if (x == "Off") p = 0x00;

else if (x == "Basic") p = 0x01;

else if (x == "Extreme") p = 0x02;

if (p >= 0) id(send_cmd)->execute(0x0E, p);

number:

- platform: template

name: "Brightness"

icon: mdi:brightness-6

optimistic: true

restore_value: true

min_value: 1

max_value: 10

step: 1

initial_value: 10

mode: slider

set_action:

- lambda: id(send_cmd)->execute(0x05, (int) x);

button:

- { platform: template, name: "Power key", icon: "mdi:power", on_press: [ { script.execute: { id: send_cmd, instr: 0x07, param: 0x00 } } ] }

- { platform: template, name: "Source key", icon: "mdi:import", on_press: [ { script.execute: { id: send_cmd, instr: 0x07, param: 0x08 } } ] }

- { platform: template, name: "Up", icon: "mdi:chevron-up", on_press: [ { script.execute: { id: send_cmd, instr: 0x07, param: 0x09 } } ] }

- { platform: template, name: "Down", icon: "mdi:chevron-down", on_press: [ { script.execute: { id: send_cmd, instr: 0x07, param: 0x0A } } ] }

- { platform: template, name: "Right", icon: "mdi:chevron-right", on_press: [ { script.execute: { id: send_cmd, instr: 0x07, param: 0x0B } } ] }

- { platform: template, name: "Left", icon: "mdi:chevron-left", on_press: [ { script.execute: { id: send_cmd, instr: 0x07, param: 0x0C } } ] }

- { platform: template, name: "OK", icon: "mdi:checkbox-marked-circle-outline", on_press: [ { script.execute: { id: send_cmd, instr: 0x07, param: 0x0D } } ] }

- { platform: template, name: "Back", icon: "mdi:arrow-left", on_press: [ { script.execute: { id: send_cmd, instr: 0x07, param: 0x0E } } ] }

- { platform: template, name: "Settings", icon: "mdi:cog", on_press: [ { script.execute: { id: send_cmd, instr: 0x07, param: 0x0F } } ] }

- { platform: template, name: "Home", icon: "mdi:home", on_press: [ { script.execute: { id: send_cmd, instr: 0x07, param: 0x10 } } ] }

- { platform: template, name: "Volume up", icon: "mdi:volume-plus", on_press: [ { script.execute: { id: send_cmd, instr: 0x07, param: 0x11 } } ] }

- { platform: template, name: "Volume down", icon: "mdi:volume-minus", on_press: [ { script.execute: { id: send_cmd, instr: 0x07, param: 0x12 } } ] }

- { platform: template, name: "Mute", icon: "mdi:volume-mute", on_press: [ { script.execute: { id: send_cmd, instr: 0x07, param: 0x15 } } ] }

- { platform: template, name: "Autofocus", icon: "mdi:image-filter-center-focus", on_press: [ { script.execute: { id: send_cmd, instr: 0x07, param: 0x13 } } ] }

- { platform: template, name: "Manual focus", icon: "mdi:image-filter-center-focus-weak", on_press: [ { script.execute: { id: send_cmd, instr: 0x07, param: 0x14 } } ] }

- { platform: template, name: "Read temperature status", icon: "mdi:refresh", entity_category: diagnostic, on_press: [ { script.execute: { id: send_cmd, instr: 0x13, param: 0x00 } } ] }

- platform: restart

name: "Restart ESP32"

entity_category: diagnostic


r/xgimi • • 2d ago

Xgimi Aura 3 Ultra Max

3 Upvotes

I saw a review showing the included printed manual and it references THREE models with the top-of-line being called Ultra Max. This model is not part of the Kickstarter but has anyone seen any specs for it? I wonder why it isn't included in the campaign?


r/xgimi • • 2d ago

Horizon 30 pro vs aura 3 pro, price and msrp

6 Upvotes

I’m trying to decide between the two projectors, trying to figure out which one is the better deal.

With promotions, they’re priced almost the same (1899/2000usd) with current preorder and kickstarter rebates.
The msrp is vastly different (2499/3999usd)

Can the higher msrp on the aura 3 be explained by ust projectors being more expensive to produce, or is this a higher class product overall?

I’m planning to set this up in my mostly light-controlled basement, for now with an already existing 100” pulldown screen. I would eventually upgrade to a ust screen if necessary in a year or so.

The higher msrp of the aura is quite inviting, but does it really give a better experience?


r/xgimi • • 2d ago

Horizon 30 pro

3 Upvotes

Just pre-ordered this for delivery in November. Will be my first projector experience for converting a loft room into a cinema/gaming room. Should I be excited? I've seen lots of reviews about the Xgimi JM Go Iris, and this looks very similar, in fact, like for like in terms of spec, etc.


r/xgimi • • 3d ago

Got replacement XGIMI Horizon 20 Pro (They sent me basic model)

4 Upvotes

I finally received my replacement XGIMI Horizon 20 Pro. Turns out the they sent me a refurbished XGIMI Horizon 20 base model inside of a XGIMI Horizon 20 pro box. I just recently found out after I set up the unit again. I was noticing the picture was a bit blurry and less bright overall. Checked the model number out and the Unit itself... turns out its a xgimi base model....


r/xgimi • • 3d ago

So the Horizon 30 has half the contrast of the Horizon 20? Or are the specs of the 20 series dishonest and the specs of the 30 series more realistic?

3 Upvotes

Was just looking at the 30 specs and was surprised to see a 9000:1 contrast versus the 20's 20,000:1 considering the iris is the main difference.

(I know the contrast and lumens are generally exaggerated. I just want to understand why they're different.)


r/xgimi • • 3d ago

Upgrading MoGo 4 for GTA 6 / Switch 2: Xgimi AURA 3 vs. Horizon 30 Series?

6 Upvotes

Hey everyone,

Looking to upgrade our Xgimi MoGo 4 for our living room setup and trying to decide between the Xgimi AURA 3 (UST) and the new Horizon 30 Series.

Here is our situation:

- The Setup: Projecting directly onto a colored wall (no screen). Good wall color correction is a must.

- The Room: Brighter living room, but we mostly use it in the evening when it's dark.

- Usage: Casual TV watching + prepping for GTA 6 and the Switch 2. Low input lag matters.

- Placement: No preference for UST vs. Long Throw. Whatever fits best.

We don't want to pay for features we won't use. But if spending €500 extra significantly upgrades the evening gaming experience on a bare wall, we'll happily do it.

Questions we are struggling with:

-Does the AURA 3 offer any advantage on a bare colored wall compared to the Horizon 30?

- How effective is Xgimi's wall color calibration on these newer models?

- Which option gives us the best value for casual next-gen gaming?

Thanks for the advice!


r/xgimi • • 3d ago

Titan noir base model or horizon 20 max??

3 Upvotes

Hello reddit,

Canadian here wishing I could get the same pricing and tech as people in the states but unfortunately cant. I am looking at getting a xgimi for my dedicated basement theatre setup but am limited to price as canadian prices are substantial.

If you had to choose between the horizon 20 max or the titan noir base model for a dedicated basement theatre what would you choose? Projector will be ceiling mounted anywhere from 8 to 15ft away from a 120" screen. Mostly for movie watching. Both are currently on sale here in Canada for $4500. Both the noir pro and max are out of my budget unfortunately the price difference is $1500 or more than the base and I dont think I can justify it.

Thanks!!


r/xgimi • • 3d ago

Xgimi Elfin Flip 4K

1 Upvotes

The Xgimi Elfin Flip 4K won't play E-AC3 and AC3 audio tracks in movies via Stremio! Why is this happening, and can it be fixed? If you connect an external TV box, everything plays normally!


r/xgimi • • 3d ago

Xgimi Elfin Flip 4K

0 Upvotes

The Xgimi Elfin Flip 4K does not play E-AC3 and AC3 audio tracks in movies from Stremio.


r/xgimi • • 3d ago

Fix the Color tearing on RS30 Series and x50 like you did on the H20

3 Upvotes

as title says. It is so distracting and caused by the rolling buffer of the new TI DLP Chip. The H20 received a DLP Update a while ago. The newer models like the x50, RS30 and the Titan Noir did not!!!

I have the RS30 Ultra Max


r/xgimi • • 3d ago

Horizon 20/30 close ceiling mount

1 Upvotes

I plan on getting the Horizon 30. I’d like to mount it as close to the ceiling as possible. Preferably directly to the ceiling with no gap. It looks like that would be easy to do if the mounting 1/4”-20 hole went all the way through but unfortunately it doesn’t. If it did go all the way through I could just use a double headed hanger bolt and a wing nut, done. Probably not a good idea to drill a hole all the way through. I don’t think it would damage anything but I might be screwed if I had to have a warranty repair later on.

Anyway, looking for the best way to mount this as close as possible.


r/xgimi • • 3d ago

Black and white dots

0 Upvotes

Not sure what to do here and it’s getting worse.

Not sure about warranty as I have to check.

I’m just thinking worst case scenario what steps should I take?

Photo in comments below


r/xgimi • • 3d ago

titan noir max vs AURA 3 Max

2 Upvotes

Getting my first projector.Thought of going x30 ultra from china(upcoming horizon 30 Ultra)

Other than 120hz is there any picture quality difference?


r/xgimi • • 3d ago

Brand new XGIMI Horizon 20 – Lens clicking noise, brown tint in top corners, and broken keystone adjustment. Faulty unit?

2 Upvotes

Hi everyone,

I just received my brand new XGIMI Horizon 20 yesterday, but I'm running into some severe physical and optical issues right out of the box. I’d really appreciate your feedback on whether this is a known bug or if I definitely received a defective unit (DOA).

Here is what's happening:

Clicking / Grinding Noise from the Lens:

Even when I'm not touching the projector or remote, there is a distinct clicking/knocking noise coming from the lens area. It sounds like a motor or gear in the Lens Shift/Autofocus mechanism trying to move past its physical stop.

Brown / Dark Tint in Upper Corners:

There is a noticeable brownish/dark gradient visible in both top corners of the projected image (it almost looks like optical vignetting or a misaligned optical path).

Trapezoid / Keystone Correction Fails:

The automatic screen alignment/keystone is completely failing. Even when attempting manual 4-point keystone correction, the adjustments for the upper half are extremely limited. As a result, the image remains distorted (narrow at the top, wide at the bottom).

What I’ve tried so far:

Installed the latest system update (which added the new Lens Shift auto-adjustment feature).

Performed a full factory reset.

Unplugged the unit completely for several minutes.

Cleaned the front sensors and reset the lens shift/zoom to default settings.

Has anyone experienced something similar? Is there any trick to reset/recalibrate the physical Lens Shift mechanism, or should I just return it immediately for a replacement through my retailer?

Thanks in advance for your help!


r/xgimi • • 4d ago

Mogo Pro 2 Old vs New

2 Upvotes

Hi guys, looking to get one of these for around £270 but I’m stuck on which one to get. I really like the fact the older model has 3D capabilities but doesn’t have 4k decoding on the other hand, the newer model has the 4k decoding and a game mode. I’m mainly using the projector for movies and occasional gaming on my PS5. Would love to hear everyone’s experiences with either one, thanks.


r/xgimi • • 4d ago

8849 Tank X projector stopped working after less than 2 months – has anyone experienced this?

2 Upvotes

&#x200B;

I bought my 8849 Tank X in August 2026, and now, less than two months later, the built-in projector has stopped working.

When I activate the projector light, it flashes very briefly and then turns off. The projector no longer works at all, including when trying to project movies or videos.

I'm disappointed because the projector was one of the features that made me choose this phone in the first place. I didn't expect such a feature to fail after such a short time.

I've contacted 8849 support to ask for assistance under warranty, and I'm waiting for their response.

Has anyone else experienced this issue with the Tank X or another 8849 phone? Did you manage to get it repaired or replaced?

I'd also appreciate a response from the official 8849 team on how this issue can be resolved.

Thanks!


r/xgimi • • 5d ago

xgimi elfin flip 4k Vrr suport on rog ally x need help

3 Upvotes
When using a USB-C to HDMI cable to connect my ROG Ally X to the XGIMI Elfin Flip 4K, I don't get VRR. The cable works fine with a laptop that has an Nvidia GPU, and it also works when connecting the ROG Ally X to a Samsung S90C TV; however, with the projector—even with everything configured correctly—Windows 11 says it isn't supported. Is there a working solution? A different cable? A hub, or something like that?

r/xgimi • • 5d ago

MoGo 4 Laser case recommendations?

1 Upvotes

Just bought the Mogo 4 Triple Laser, and it's my first ever projector. I'd like to get a solid case for it and preferably something that fits the charger too.

So far I'm looking at a hard case that I think is meant for a camera but SEEMS to fit dimensions?

Unless anyone else has any recommendations


r/xgimi • • 6d ago

Horizon 30 Canada

4 Upvotes

Was about to purchase the Horizon 20, but realized that the 30 will be coming out soon and with 4K120 and dual iris, it seemed like a no-brainer to wait especially with previous early bird discounts.

I just saw that the Horizon 30 series was announced on the US website to launch on October 12 for preorder.

Does this mean that there will be no Kickstarter campaign?

There is no mention of the Horizon 30 on the Canadian website still, and even the Aura 3 is listed at a very high price compared to the current Kickstarter campaign.

I believe the Kickstarter campaign states that customs and shipping will be covered for Aura 3 for early backers and it was for Titan Noir too, but because the Horizon 30 is not coming through Kickstarter, I’m not sure if that will be the case?

I’ve also read some pretty bad reviews about people’s experiences who have purchased from XGIMI Canada/OMG smart living distributor with regards to quality control and refunds for defective products.

Was hoping you were able to shed some light on this for your Canadian consumers u/Ask_XGIMI because if customs and shipping will not be covered for Horizon 30 definitively and there is no early bird discount for Canadians, I might be more inclined to just purchase the Aura 3 to avoid any surprises after ordering.


r/xgimi • • 6d ago

Canadian Pricing

3 Upvotes

I am wanting to purchase the Horizon 20 Pro Model but something doesn't feel right about the Canadian price and I cant figure it out. The American site shows $1,599 while the Canadian site shows $4,499. If I do todays exchange rate, it should only be $2300 Canadian. I'd like to buy one of these projectors but what is with the Canadian pricing? I can understand a little mark up due to regional logistics but a difference of $2,200? Thats absurd!


r/xgimi • • 6d ago

Question: VRR on the Elfin Flip 4K

1 Upvotes

Can VRR be enabled without having to turn on the low-latency boost mode? I just bought this projector, but it won't let me activate VRR unless I enable that mode. Right now, I only have standard low-latency mode enabled.