Lanbon L9 #765
Replies: 32 comments 101 replies
-
|
This is a new device. We verified there is a ESP32-S3-Wroom-1U inside:
|
Beta Was this translation helpful? Give feedback.
-
|
I'm trying to gauge interest in this device. Please indicate if you would consider the L9-HS : |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
I am buying at least one, especially while there is a $10 off coupon. I am guessing that it is mmwave presence detection by looking at it. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
Boot log for the factory firmware. |
Beta Was this translation helpful? Give feedback.
-
|
See if we think this is correct. Slight variations from @lylavoie google sheet |
Beta Was this translation helpful? Give feedback.
-
|
Any update on this driver? I purchased one of these today and it's a really nice little screen! I don't think I have seen any other screen that fits in a standard decora plate. |
Beta Was this translation helpful? Give feedback.
-
|
I am interested in this as well! This would be an awesome option as a display! Unfortunately there aren’t many options for making displays work that are any more than single gang and this could help solve that. It would be especially useful where there is a separate light switch and fan switch. |
Beta Was this translation helpful? Give feedback.
-
|
I pushed a commit b55efe0 which adds a configuration for the Lanbon L9. I don't own this device and it is purely created for testing and verification of the information we gathered so far... Please backup your original firmware before compiling and uploading the firmware. If you find issues with pins or settings please post here or create a Pull Request. Hopefully we can create a working config together... |
Beta Was this translation helpful? Give feedback.
-
|
Hey @fvanroie, I just purchased an L9-HS and I'm encountering an issue loading up OpenHASP based on your most recent commit above. After flashing, I get an infinite boot loop on regular power-up, backlight comes on but no picture. Happy to help troubleshoot things to get this working for the community as a whole, I've put the serial log output that occurs after flashing below. I did esptool erase_flash prior to flashing the L9 bin that I compiled and have written the bin probably 3-4 times (erasing between each flash). Each time the error is the same. 'CONF: Failed to load /config.json' followed later by 'Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled.' on every loop. Any ideas what could be causing this? happy to provide more details if needed. [01:39:52]�ESP-ROM:esp32s3-20210``` |
Beta Was this translation helpful? Give feedback.
-
|
Good news everyone, I can confirm I have the screen of the L9 working, using the Arduino GFX library, so we know the pinouts are working. Below are the important initialization lines, you can use to setup for the hello world program (example below). Remember, to work on bench, via the J4 header, we need to supply both 3.3 and 5V. For a video of this running, see: https://photos.app.goo.gl/Gu993TwHhs34Zios8 #include <Arduino.h>
#include <Arduino_GFX_Library.h>
/* More data bus class: https://github.com/moononournation/Arduino_GFX/wiki/Data-Bus-Class */
Arduino_DataBus *bus = new Arduino_ESP32LCD8(17 /* DC */, 21 /* CS */, 13 /* WR */, 18 /* RD */,
6 /* D0 */, 7 /* D1 */, 15 /* D2 */, 16 /* D3 */, 10 /* D4 */, 9 /* D5 */, 46 /* D6 */, 3 /* D7 */);
/* More display class: https://github.com/moononournation/Arduino_GFX/wiki/Display-Class */
Arduino_GFX *gfx = new Arduino_ST7789(bus, 4 /* RST */, 0 /* rotation */, true /* IPS */,
170 /* width */, 320 /* height */, 35 /* col offset 1 */, 0 /* row offset 1 */ );
void setup(void)
{
Serial.begin(9600);
Serial.println("Arduino_GFX Hello World example");
// Enable Blacklight
pinMode(42, OUTPUT);
digitalWrite(42, HIGH);
// Init Display
if (!gfx->begin(16000000UL))
{
Serial.println("gfx->begin() failed!");
}
gfx->fillScreen(BLACK);
gfx->setCursor(10, 10);
gfx->setTextColor(RED);
gfx->println("Hello World!");
delay(5000); // 5 seconds
gfx->fillScreen(BLACK);
gfx->drawRect(10, 10, gfx->width()-20, gfx->height()-20, RED);
delay(5000);
Serial.println("Done with setup ...");
}
void loop()
{
gfx->fillScreen(BLACK);
gfx->setCursor(random(gfx->width()), random(gfx->height()));
gfx->setTextColor(random(0xffff), random(0xffff));
gfx->setTextSize(random(6) /* x scale */, random(6) /* y scale */, random(2) /* pixel_margin */);
gfx->println("Hello World!");
delay(1000); // 1 second
Serial.println("Looping...");
} |
Beta Was this translation helpful? Give feedback.
-
|
Working on the RF presence sensor. Ended up pulling off the board and it looks like it's actually this: MoreSense 10G Hand Sweeping Series MS10-3007D26M4 (https://en.moresense-tech.com/product_details/75.html) Anyone worked with these yet. Trying to find a datasheet. |
Beta Was this translation helpful? Give feedback.
-
|
I'm able to get it to trip reliably at about 4 feet. Also, in case it helps, it has never booted to the factory firmware. |
Beta Was this translation helpful? Give feedback.
-
|
Hey @lylavoie, did you have any luck getting the relay GPIO pre-configured in the firmware? I'm still struggling with it :/ I also confirmed that IO 4 and 5 are connected to the J4 connector (continuity test with my multimeter), but even when manually configuring them as power (or light) relays I can't seem to control it. Tried setting 4 and 5 as output relays because I wasn't sure which one was the relay and which was the mmwave. |
Beta Was this translation helpful? Give feedback.
-
|
I complied it locally and flashed, but i cannot find the pin 36 listed in the GPIO configuration, tried "-D RELAY_1=36" in "lanbon_l9.ini" and "#define HASP_GPIO_TEMPLATE "[]" also in the user_config_override.h still cannot set the GPIO to 36. Please Help !! |
Beta Was this translation helpful? Give feedback.
-
|
@lylavoie @Poisonite Thank you both for your work on the L9! I just received my switch this weekend, and will get around to programming it soon (or at least as soon as my schedule allows). A couple questions, if you have the time to answer:
Thank you again! |
Beta Was this translation helpful? Give feedback.
-
|
Im sorry to be that guy, but I've been racking my head trying to figure out how to get this little guy going. I have an l8 with openhasp and got this l9 now. Is there a pre build bin file available for this? |
Beta Was this translation helpful? Give feedback.
-
|
Unsure if this is the appropriate place. Seems like my hardware is different than the shared ones I've found thus far. I was excited to try this out but wondering if it wouldn't work the same. Thoughts if it would still be compatible? |
Beta Was this translation helpful? Give feedback.
-
|
Most critical is what display chipset is used on this one, and how is that connected to the ESP32 module. Is there anyway you can identify that? You probably need to pull the board with the ESP32 out of the plastic to see more details about the display. |
Beta Was this translation helpful? Give feedback.
-
|
Well this is a coincidence, I too just picked up this hardware and was looking to flash ESPHome (or openHASP) on it but was having trouble compiling the example ESPHome config. What's really interesting is I have an even newer version than @lilmansplace -- it appears they have v3.2 of the board, I have v3.3 which critically changes over from the WROOM-1U to a WROVER-IE. That means the pinouts are not compatible since the WROVER-IE only goes up to 39 GPIO pins. Maybe they only swapped the backlit (42) and two of the display pins (41 and 46) to some of the available pins? Any tips on how to trace that? I have an oscilloscope available but I'm not very experienced in tracing like this otherwise. Is there anything we can glean from the OEM firmware if I dump it? I'm not sure if decompilers can do much with a firmware dump like that. Interestingly mine still came with v3.2 of the power board, so that's the same at least. Conveniently the display and touch controller seem to be the same as well. |
Beta Was this translation helpful? Give feedback.
-
|
So, going only from your pictures, I'm going to caution a guess, they changed how they are driving the display from parallel to serial. The image of the display connector (CON 1 I think) on the board seems to only show about 7 or 8 pins connected. While the parallel input requires 8, just for the data lines. So, unfortunately, you are going to have to trace all of those, and reverse engineer this again, to get back to a working display. |
Beta Was this translation helpful? Give feedback.
-
|
Bummer, I seemed to have gotten the new revision (L9_HS_CB_V3.3) with the WROVER-IE as well. I dissembled a bit and found this is the screen being used, in case it helps anyone: https://www.alibaba.com/product-detail/1-9-inch-tft-lcd-display_1600108664434.html I'll get out the multimeter in a bit and see if I can trace back anything. Assuming we find the pins, what would the YAML be to use this screen? |
Beta Was this translation helpful? Give feedback.
-
|
I've had the v3.3 board (ESP32-based) working under ESPHome for a couple of months. I've been meaning to submit it to devices.esphome.io but I wanted to take some photos and differentiate it from the ESP32-S3 based version. In the meantime, though, here's my ESPHome yaml file. You'll have to remove the AQI code and |
Beta Was this translation helpful? Give feedback.
-
|
Thanks @pharris2411 for figuring out board rev 3.3. This allowed me to get mine working also (Amazon US purchase Mar 2026). That said, you've mapped the proximity sensor to 22 and 23, but your code uses 15. Basic mistake, or is there something to understand? I have the PIR sensor working on mine, but it seemed a bit finicky in testing, perhaps because it self-calibrates in some way. Keeping it away from inanimate objects for testing seems advisable. |
Beta Was this translation helpful? Give feedback.
-
|
No. But please let me know if you figure out. Thx.
…On Wed, Mar 18, 2026, 5:48 AM David Reitter ***@***.***> wrote:
Thanks @pharris2411 <https://github.com/pharris2411> for figuring out
board rev 3.3. This allowed me to get mine working also (Amazon US purchase
Mar 2026).
That said, you've mapped the proximity sensor to 22 and 23, but your code
uses 15. None of them is working for me... (I haven't looked at my board.)
Is yours?
—
Reply to this email directly, view it on GitHub
<#765 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/APMBN5ME2F2C6YIZQ27JJ6L4RKLKPAVCNFSM6AAAAABK6DMUMWVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTMMJZGI2TAOA>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
|
@jshutrump I got it working. My code is below, but it's not really different. The only thing I'm doing that might be different from before is that I start up the device without any obstructions in front of it. Then it recognizes a hand-wave just fine, although you've go to get quite close. Other mmWave PIR sensors I use you can calibrate a bit. That functionality might not be exposed here if it's just connected to one pin. ` |
Beta Was this translation helpful? Give feedback.
-
|
Is anyone working on an openHASP configuration too? |
Beta Was this translation helpful? Give feedback.
-
|
Update. I got much of my HW v3.2 Lanbon-L9 working. The IO mapping on my version is as below (IO15 is the proximity sensor, IO2 is connected to T, which seems to control the dimmer TRIAC, and IO32 is K1 controlling the relay switch. IO35 is CF and might be a power meter or pulse input (to measure fan speed or even to determine zero-crossing depending on how the TRIAC is controlled). I can send commands on IO2 at 115200 baud, and that seems to turn the fan TRIAC on and off reliably, but then there seems to be no command that would dim it. The control commands found for the LANBON-L8 device do not work. To turn on:
So that's all we have for now! The file is a configuration that works with my hardware, exposing the mechanical relay and the triac as on/off switches, connecting the proximity sensor, and showing buttons, time, temperature (from HA) and weather forecast (from HA). |
Beta Was this translation helpful? Give feedback.
-
|
I have the working L9 (Switch not Fan / Dimmer) for openhasp, Tested and working for Lanbon L9 V3.3 ;***************************************************;
; Lanbon L9 v3.3 ;
; PCB: L9_HS_CB_V3.3 ;
; MCU: ESP32-WROVER-IE / ESP32-WROVER-IU ;
; Display : ST7789V 170x320 (SPI) ;
; Touch : FT5x06/FT6x36 @0x38 (I2C) ;
;***************************************************;
[env:lanbon_l9_3_3]
; Match Lanbon L8 working pattern: use arduino_esp32_v2 base + psram helper
extends = arduino_esp32_v2, flash_16mb
board = esp-wrover-kit
build_flags =
-D HASP_MODEL="Lanbon L9 v3.3"
${arduino_esp32_v2.build_flags}
${esp32.ps_ram}
;region -- TFT/LGFX build options ------------------------
-D LGFX_USE_V1=1
-D ST7789_DRIVER=1
-D TFT_WIDTH=170
-D TFT_HEIGHT=320
-D TFT_ROTATION=0
; Display behavior
-D TFT_INVERSION_ON
-D TFT_RGB_ORDER=0 ; BGR (same convention used in L8: 0=BGR, 1=RGB) :contentReference[oaicite:1]{index=1}
-D TFT_OFFSET_X=35
-D TFT_OFFSET_Y=0
; SPI pins (v3.3)
-D TFT_SCLK=26
-D TFT_MOSI=14
-D TFT_CS=25
-D TFT_DC=27
-D TFT_RST=-1
-D TFT_BCKL=21
-D SPI_FREQUENCY=40000000
-D SUPPORT_TRANSACTIONS
; Touch (I2C) - use LGFX touch like L8
-D TOUCH_DRIVER=0x6336
-D HASP_USE_LGFX_TOUCH=1
-D TOUCH_OFFSET_ROTATION=0
-D TOUCH_SDA=4
-D TOUCH_SCL=0
-D TOUCH_IRQ=-1
-D TOUCH_RST=-1
-D I2C_TOUCH_FREQUENCY=100000
-D I2C_TOUCH_ADDRESS=0x38
; NOTE: GPIO15 (motion input), GPIO32 (relay), GPIO35 (pulse input-only)
; are configured at runtime (JSON/WebUI/MQTT). Don’t force them here unless
; you also update the corresponding openHASP GPIO defaults for this model.
;endregion
lib_deps =
${arduino_esp32_v2.lib_deps}
${lovyangfx.lib_deps}
|
Beta Was this translation helpful? Give feedback.















Uh oh!
There was an error while loading. Please reload this page.
-
Does anyone have experience or insight into the Lanbon L9 switch https://a.co/d/cO7q0Fp
Things like chipset, display and touch and display resolution? And potentially whether openHASP could work on that switch?
Beta Was this translation helpful? Give feedback.
All reactions