The Sonoff B1 Lamp has 5 separate LED channels:
Red , Green , Blue , Cold White & Warm White .
It is E27, rated 6W, 90 - 250v AC, 2A
The lamp uses an ESP8285 with 1Mb flash memory.
IMPORTANT - DO NOT connect to MAINS while disassembled.
To flash with Annex requires removing the white translucent top cover to reveal pads for connecting a serial UART (click pic to zoom in) .
From left to right (see pic) the pads are VCC, RX, TX, GND, GPIO0
The cover is a tight fit, and with a touch of superglue, so needs a firm grip and a bit of persistent persuasion to start moving, but it is doable.
I just soldered wires directly to the pads (and if I can do it, anybody can). I also soldered a wire to a GND pad near the central antenna for conveniently connecting GPIO0 to ground to manually start up the device into programming mode.
Best to keep the original device parameters by grounding GPIO0 to put the device into flashing mode then using the blue button to read the device details first, before rebooting again into flashing mode to use the green button with original device parameters.
Remove GPIO0 from GND before flashing, to prevent the device restarting up into programming mode again after successful completion.
Remember to patiently allow sufficient time for the firmware to format SPIFFS afterwards, then eventually the new wifi SSID should appear...
Once the lamp is flashed and displaying its new wifi SSID to connect to, the cables can be removed and the lamp cover replaced, because subsequent updates can be done using OTA (save files before doing 1MbOTA updates because existing SPIFFs contents will be wiped).
When screwing the re-assembled lamp into a lamp-holder, be careful not to over-tighten else it can break the thin metal surrounding the lower centre contact (I had to repair mine using epoxy resin).
Using the Sonoff Lamp is a simple matter of initialising it with "SonoffB1.init" then sending a value from 0 (off) to 255 (full brightness) to the channel(s) you wish to turn on, which will retain their values until changed again,or the device is rebooted.
The SonoffB1.white cold, warm instruction needs the values for both cold and warm whites even if only one of them is to be changed.
Similarly the SonoffB1.RGB Red, Green, Blue instruction needs to be sent all three values even if only one is to be changed.
A simple way to update only some channels without affecting others is to assign them all variables which all get sent together but only any changed variables will cause their channels to change. Similarly another set of variables could be used for holding previous values if wished.
As well as sending 3 individual R,G,B values they can be combined into a single 24bit number, eg:SonoffB1.RGB 255 (gives full blue), SonoffB1.RGB &h00ff00 (gives full green), SonoffB1.RGB 16711680 (gives full red, equivalent to &hFF0000)
:
The following projects allow Annex to shine...
Simple UDP control using the RGB sliders from the Toolkit UDP Console
Browser sliders
AutoSave settings for next startup
SoftStart facility
Dim Up, Dim Down
Colour-changers
Master slider for pre-selected LEDs
Rotary Dimmer
EasyNet remote control
Project - Simple UDP control