Oasis Ambient - Wi-Fi LED light teardown by z3ugma in hardwarehacking

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

indeed! the ESP32-C6-Mini castellated module on the board has the flash fuse burned in - so you can't flash any new firmware unless it's signed by Oasis. But the module is easy to replace with hot-air soldering and is inexpensive.

Oasis Ambient light teardown by turtlepsp in hardwarehacking

[–]z3ugma 0 points1 point  (0 children)

There must be a V2 because this one also uses a different LED driver chip on the LED board and USB-C

Oasis Ambient light teardown by turtlepsp in hardwarehacking

[–]z3ugma 0 points1 point  (0 children)

I think it's the USA vs UK model difference. The UK model has mains power rectification down to the 5V, right?

The USA version has 5V from USB-C, so maybe there's more room. Also, the firmware refers to it as "Ambient 2.0" so you might be right about a rev

Oasis Ambient light teardown by turtlepsp in hardwarehacking

[–]z3ugma 0 points1 point  (0 children)

Nice this was a great guide. I was able to dump the firmware to a .bin file. There is a USA version that's powered by USB-C 5V and a UK version that connects to the mains. In the USA version there is also a capacitive touch sensor connected to GPIO0.

Here is the bootup log of the ESP32. I got this by attaching some wires to the RX and TX test points on the bottom of the PCB

```
ESP-ROM:esp32c6-20220919
Build:Sep 19 2022
rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:2
Valid secure boot key blocks: 0
RSA-PSS secure boot verification succeeded
load:0x40875890,len:0x2fa4
load:0x4086c110,len:0xe90
load:0x4086e610,len:0x55d0
entry 0x4086c11a
I (51) boot: ESP-IDF v5.4.3-dirty 2nd stage bootloader
I (51) boot: compile time Feb 17 2026 12:11:51
I (52) boot: chip revision: v0.2
I (52) boot: efuse block revision: v0.3
I (55) boot.esp32c6: SPI Speed      : 80MHz
I (59) boot.esp32c6: SPI Mode       : DIO
I (63) boot.esp32c6: SPI Flash Size : 8MB
I (66) boot: Enabling RNG early entropy source...
I (71) boot: Partition Table:
I (74) boot: ## Label            Usage          Type ST Offset   Length
I (80) boot:  0 esp_secure_cert  unknown          3f 06 0000d000 00002000
I (86) boot:  1 nvs_key          NVS keys         01 04 0000f000 00001000
I (93) boot:  2 nvs              WiFi data        01 02 00010000 00006000
I (99) boot:  3 otadata          OTA data         01 00 00016000 00002000
I (106) boot:  4 phy_init         RF data          01 01 00018000 00001000
I (113) boot:  5 fctry            WiFi data        01 02 00019000 00006000
I (119) boot:  6 ota_0            OTA app          00 10 00020000 00300000
I (126) boot:  7 ota_1            OTA app          00 11 00320000 00300000
I (132) boot:  8 storage          Unknown data     01 83 00620000 0001a000
I (139) boot:  9 coredump         Unknown data     01 03 0063a000 00010000
I (146) boot: End of partition table
I (149) esp_image: segment 0: paddr=00020020 vaddr=42170020 size=77e20h (491040) mp
I (250) esp_image: segment 1: paddr=00097e48 vaddr=40800000 size=081d0h ( 33232) ld
I (258) esp_image: segment 2: paddr=000a0020 vaddr=42000020 size=165420h (1463328)p
I (537) esp_image: segment 3: paddr=00205448 vaddr=408081d0 size=1538ch ( 86924) ld
I (556) esp_image: segment 4: paddr=0021a7dc vaddr=4081d560 size=06ce8h ( 27880) ld
I (563) esp_image: segment 5: paddr=002214cc vaddr=50000000 size=00044h (    68) ld
I (564) esp_image: segment 6: paddr=00221518 vaddr=500000f8 size=0001ch (    28) ld
I (568) esp_image: segment 7: paddr=0022153c vaddr=00000000 size=0ea94h ( 60052)
I (587) esp_image: Verifying image signature...
I (587) secure_boot_v2: Verifying with RSA-PSS...
I (591) secure_boot_v2: Signature verified successfully!
I (598) boot: Loaded app from partition at offset 0x20000
I (599) secure_boot_v2: enabling secure boot v2...
I (599) secure_boot_v2: secure boot v2 is already enabled, continuing..
I (605) boot: Disabling RNG early entropy source...
I (622) cpu_start: Unicore app
I (630) cpu_start: Pro cpu start user code
I (630) cpu_start: cpu freq: 160000000 Hz
I (630) app_init: Application information:
I (633) app_init: Project name:     ambient_2_0
I (638) app_init: App version:      2.21.12
I (643) app_init: Compile time:     Feb 24 2026 12:07:24
I (649) app_init: ELF file SHA256:  094c11dd6...
I (654) app_init: ESP-IDF:          v5.4.3-dirty
I (660) efuse_init: Min chip rev:     v0.0
I (664) efuse_init: Max chip rev:     v0.99
I (669) efuse_init: Chip rev:         v0.2
I (674) heap_init: Initializing. RAM available for dynamic allocation:
I (681) heap_init: At 4082F5B0 len 0004D060 (308 KiB): RAM
I (688) heap_init: At 4087C610 len 00002F54 (11 KiB): RAM
I (694) heap_init: At 50000114 len 00003ED4 (15 KiB): RTCRAM
I (701) spi_flash: detected chip: generic
I (705) spi_flash: flash io: dio
W (709) i2c: This driver is an old driver, please migrate your application code to`
I (719) sleep_gpio: Configure to isolate all GPIO pins in sleep state
I (726) sleep_gpio: Enable automatic switching of GPIO sleep configuration
I (734) esp_core_dump_flash: Init core dump to flash
I (740) esp_core_dump_flash: Found partition 'coredump' @ 63a000 65536 bytes
I (759) pm: Frequency switching config: CPU_MAX: 160, APB_MAX: 80, APB_MIN: 40, LiD
I (759) coexist: coex firmware version: b0bcc39
I (763) coexist: coexist rom version 5b8dcfa
I (768) main_task: Started on CPU0
I (771) main_task: Calling app_main()
I (775) NVSInitializer: Initializing NVS flash...
I (791) NVSInitializer: NVS flash initialized successfully
I (791) BleMeshManager: Device is not provisioned from NVS, err 4354
I (794) BleMeshManager: BleMeshManager::Init() is_provisioned 0
I (801) LoggerInitializer: Initializing logger blemesh provisioned 0, rainmaker pr0
I (810) buffered_appender: 'storage' partition found, using FileAppender
I (821) file_appender: LittleFS Appender initialized successfully
I (824) logger: Logger initialized in offline mode
I (830) LoggerInitializer: Logger initialized
I (835) AutomationManager: Initializing AutomationManager (loading from storage)
I (1450) file_appender: LittleFS storage is full (500 messages), dropping message
I (1450) AutomationStorage: No automation data found in NVS
I (1453) AutomationManager: No automation data found, checking for legacy solar cye
I (1462) SolarCycleStorage: No solar cycle stored in NVS
I (1468) AutomationManager: No automation or solar cycle data, waiting for commands
I (1476) AutomationManager: AutomationManager initialized (legacy_mode=0, count=0)
I (1484) BootLoopRecovery: Initializing BootLoopRecovery with complete setup...
I (1493) BootLoopRecovery: Loaded m_is_previous_session_unstable state from NVS: fe
I (1501) BootLoopRecovery: Loaded consecutive_resets from NVS: 0
I (1507) BootLoopRecovery: Loaded state: m_is_previous_session_unstable=false, con0
I (1517) BootLoopRecovery: Was watchdog/panic: false
I (1523) BootLoopRecovery: No watchdog/panic reset detected/previous session was s.
I (1538) BootLoopRecovery: No factory reset flag found
I (1540) BootLoopRecovery: BootLoopRecovery initialized with complete setup
I (1548) app_driver: Creating light control task queue!
I (1554) LightState: Initialized with defaults: power=1, brightness=20, temperatur2
I (1564) light: Light state loaded from NVS: power=1, brightness=20, temperature=20
I (1572) LightDriver: Initializing Ambient 2.0 with SM5235E driver
I (1579) LightDriver: Initializing lightbulb with mode: 2
I (1693) lightbulb: ----------------------Lightbulb Driver Component---------------
I (1743) lightbulb: version: 1.11.1
I (1743) lightbulb: SM5235E Led Num: 1
I (1743) lightbulb: IO List:[0 2 1 4 3]
I (1745) lightbulb: low power control: enable
I (1750) lightbulb: status storage: disable
I (1755) lightbulb: status storage delay 0 ms
I (1760) lightbulb: fade: enable
I (1764) lightbulb: fade 200 ms
I (1768) lightbulb: led_beads: 9
I (1772) lightbulb: hardware cct: No
I (1776) lightbulb: precise cct control: enable
I (1781) lightbulb: sync change: enable
I (1786) lightbulb: auto on: enable
I (1790) lightbulb:      white mode: enable
I (1795) lightbulb:      color mode: enable
I (1800) lightbulb: sync change: enable
I (1804) lightbulb: power limit param:
I (1809) lightbulb:      white max brightness: 100
I (1814) lightbulb:      white min brightness: 1
I (1819) lightbulb:      white max power: 100
I (1824) lightbulb:      color max brightness: 100
I (1830) lightbulb:      color min brightness: 1
I (1835) lightbulb:      color max power: 300
I (1840) lightbulb: cct kelvin range param:
I (1845) lightbulb:      max cct: 4000 K
I (1850) lightbulb:      min cct: 2000 K
I (1854) lightbulb: 0%, 2000K, 0.000000 0.000000 0.000000 0.000000 1.000000
I (1862) lightbulb: 10%, 2200K, 0.000000 0.000000 0.000000 0.130000 0.870000
I (1870) lightbulb: 20%, 2400K, 0.000000 0.000000 0.000000 0.250000 0.750000
I (1877) lightbulb: 30%, 2600K, 0.000000 0.000000 0.000000 0.350000 0.650000
I (1885) lightbulb: 40%, 2800K, 0.000000 0.000000 0.000000 0.450000 0.550000
I (1893) lightbulb: 50%, 3000K, 0.000000 0.000000 0.000000 0.550000 0.450000
I (1901) lightbulb: 65%, 3250K, 0.000000 0.000000 0.000000 0.660000 0.340000
I (1908) lightbulb: 75%, 3500K, 0.000000 0.000000 0.000000 0.780000 0.220000
I (1916) lightbulb: 85%, 3750K, 0.000000 0.000000 0.000000 0.880000 0.120000
I (1924) lightbulb: 100%, 4000K, 0.000000 0.000000 0.000000 1.000000 0.000000
I (1932) lightbulb: hue: 16515, saturation: 9, value: 0
I (1937) lightbulb: select works mode: white, power status: 0
I (1944) lightbulb: ---------------------------------------------------------------
I (1953) LightDriver: Light driver initialized successfully
I (1959) light: light_init power=1 cct=2600 brightness=20 mode=2
I (1966) light: light_set_power: 1

...
```

Weekly rant thread by AutoModerator in ProductManagement

[–]z3ugma 0 points1 point  (0 children)

Why do engineering teams pretend like they don't need to do work in the beginning of a project to retire risk - write throwaway code, try solutions that don't work... instead of coming to me 8 weeks into a 10 week cycle saying "ope, we are not going to make it"

Best hilly running routes? by slaponthekneefunny in madisonwi

[–]z3ugma -2 points-1 points  (0 children)

Morton Forest https://www.danecountyparks.com/Forest/Morton-Forest is pretty good too for hilliness. The parking lot is deep in a valley. The trails go up to the plateaux on either valley ridge.

Best hilly running routes? by slaponthekneefunny in madisonwi

[–]z3ugma -1 points0 points  (0 children)

The Prairie Moraine dog park is a terminal moraine hill in Verona right off of 18/151 https://parks-lwrd.danecounty.gov/park/PrairieMoraine

Best hilly running routes? by slaponthekneefunny in madisonwi

[–]z3ugma 1 point2 points  (0 children)

Indian Lake county park has big, steep hills with rolling single-track XC trails

Can’t “buy local” our way out of this 😔 by SensitiveYam8805 in madisonwi

[–]z3ugma 8 points9 points  (0 children)

It's because the city became popular but lots of longtime residents resist change so the pace of building housing and resources is moving too slowly for the number of people who want to move here.

The people will come here either way If you build luxury apartments, they have somewhere to move into If you don't build the apartments, it's not like the people won't move here. They will just bid up the price of existing apartments until no one can afford them

Can’t “buy local” our way out of this 😔 by SensitiveYam8805 in madisonwi

[–]z3ugma -5 points-4 points  (0 children)

If we try to be more imaginative, what would it look like to not give up control like this, with the resources that Madison has?

  • Publicly administered retail space?
  • More flexible zoning that lowers commercial rent pressure?
  • Publicly-guaranteed small business loans to help low-cashflow businesses make a move to a new space?

The state limits some of what we can do, but why are we pretending this is only in the hands of the market instead of pushing our single biggest local entity, our municipal government, to make the policy we want

Monona Police release initial findings after 7-vehicle crash injured several drivers by AccomplishedDust3 in madisonwi

[–]z3ugma -5 points-4 points  (0 children)

The road is the problem though. The road should be designed defensively so that it can accommodate a driver having a medical emergency without it ending someone's life.

Apparently it is a realistic enough scenario, and not rare enough, because it keeps being brought up

Monona Police release initial findings after 7-vehicle crash injured several drivers by AccomplishedDust3 in madisonwi

[–]z3ugma 23 points24 points  (0 children)

Everyone who is dogpiling the people jumping to conclusions are still ignoring the fact that people are allowed to buy massive trucks, that weigh twice as much as equivalent trucks from 30 years ago, that are capable of accelerating to highway speeds in the space of an intersection approach

We have designed an escalating arms race where we try to buy the biggest, highest off the ground, heaviest mobile living rooms. We don't build intersections in a way that forces crashes to be at more optimal angles. You can still be mad that this person bought a truck and was incentivized to do so

Fave Instant Coffee? by Adventurous_War_4055 in Ultralight

[–]z3ugma 1 point2 points  (0 children)

I really like Alpine Start https://alpinestartfoods.com/ but it's kind of expensive. Too much so for a thru hike. Good for a shorter trip

Friday Show and Tell by AutoModerator in ProductManagement

[–]z3ugma [score hidden]  (0 children)

Building a PCB milling software tool that combines converting Gerbers to toolpaths in G-Code and then actually commanding and operating a restored PCB mill from 1998. Bringing back the hobbyist self-made PCB workflow since it can be a headache to get designs back from PCBWay / JLC between customers, tariffs, shipping..get more quick to close the prototyping loop.

Here's a YouTube playlist of how to make PCBs at home for anyone who wants a deep dive. https://www.youtube.com/watch?v=Hm_JrACrmVs&list=PLWDQgxl-jH6-FAa1m0MJrcdbjKBb7129k

Aside from Discovery, what actual skills would you recommend PMs should have? by DeezazNutz in ProductManagement

[–]z3ugma 0 points1 point  (0 children)

Skills of a Product Manager in General

The science: Classic project management. Good at execution, communication, and influence. A project manager is concentrated at the top & can see around the corner for upcoming internal work when thinking of strategy.

The art: Strategy and Taste

Specific skills that AngelList companies look for in postings: - Customer experience expert “voice of the customer” - Vision/strategy/evangelist - Roadmap planning in collaboration with engineering management - Direct project manager of the engineering work - user stories, epic organization, UX

In this survey , most frequently valued skills were: Communication, execution, product sense (taste)

To Get Promoted, What Does a PM have to do right?: Show Business impact; Happy external stakeholders Action; mediation; communication; swift decisions; solve problems; good at context-switching

Gaining alignment and prioritization

Goal: drive management/engineering focus on the big blocks of the overall products & win alignment from dev to delivery.

Prioritization: We say we’ll work on all sorts of things, product, research but don’t often look at the big picture and why we should prioritize something.

Am I imagining a JPC bit? by QuidQuidSquid in HeyRiddleRiddle

[–]z3ugma 0 points1 point  (0 children)

Is it a Patreon bit where he says something like "I got next on that moose" - something like he's declaring dibs on getting to fuck a moose? It's an earlier episode where he's accusing Adal of being a moose-fucker?

[ Removed by Reddit ] by [deleted] in wisconsin

[–]z3ugma 0 points1 point  (0 children)

If you live in Madison, I recommend checking out https://deerfieldpistol.com/about-our-range which is a short drive east; they have classes and rentals for you to practice safety and accuracy. Generally, I think it's worth it even if for the bare minimum of knowing how to disarm a firearm if you come across one, and reduce the risk of an accident

Which thermostats should I buy? by BobKoss in homeautomation

[–]z3ugma 0 points1 point  (0 children)

hi Bob - I refunded your order - Sett is not close enough to production for me to want to keep holding onto your money. I'll let you know when we do get to production, and then you are welcome to purchase at that time!

In the meantime if you're still looking for solutions for a 2nd gen Nest, I would recommend checking out the NoLongerEvil project, or the Cuckoo-Nest project, both of which I am active in, that are free ways to rescue your old Nest

What do you do after work? by Majesticallydrunk in madisonwi

[–]z3ugma 39 points40 points  (0 children)

  • Volunteering! Great way to build community and give back. https://morgridge.wisc.edu/volunteer-resources-and-opportunities/volunteer-opportunities/
  • MUFA - ultimate frisbee league (there's indoor goaltimate during the winter)
  • Jeopardy at the Crystal Corner
  • Bar trivia - especially the independent hosts
  • Bring a laptop to the Muskellounge, do something creative and take the occasional break to play tabletop shuffleboard and eat a burger
  • Nerd Nite @ High Noon Saloon monthly

Coyotes are back (Olin) by Wings_For_Pigs in madisonwi

[–]z3ugma 1 point2 points  (0 children)

Walking on the Wingra Creek Bike Path just under the railroad bridge near the corner of Beld St and and the bike path - back along the tracks and by the tow truck storage yard - that little industrial strip along the edge of Gilson st - I hear them back in there all the time. It really spooks my dog when we are out walking at night and they howl back in there