InfernoEmbedded(3)
π InfernoEmbedded π
okay bestie, sit DOWN, because this is InfernoEmbedded(3) β a section 3 page from the One-Wire File System manual, and it's giving softdevices β¨. RGBW controllers, switch masters, and a whole firmware updater, all in one page. no cap.
πΈ NAME πΈ
InfernoEmbedded Softdevices β RGBW Controllers, Switch Masters, and a Firmware Updater, all living their best life π
β¨ SYNOPSIS β¨
these are software-implemented devices, built on top of this repo right here:
https://github.com/InfernoEmbedded/onewire-softdevice
and the path shape is literally this:
ED [.]XXXXXXXXXXXX[XX][/[ device | version | status |
enter_firmware_update | address | crc8 | id | locator | r_address | r_id
| r_locator | type ]]
π¦ FAMILY CODE π¦
ED
π GENERIC PROPERTIES π
these apply to all Inferno Embedded softdevices, every single one, no exceptions π«Ά
π device
read-only, ascii text. it's the type of InfernoEmbedded Softdevice that got detected.
π version
read-only, integer. the version number the device is reporting back to you.
π status
read-only, integer. the 64 bit status register of the device.
π enter_firmware_update
write-only, yes-no. write anything and the device reboots into the bootloader for a firmware update. π
you can also force this with physical access to the device β short SWCLK to ground on the device's programming header while powering the device up. yes, actually.
π₯ FIRMWARE UPDATER PROPERTIES π₯
these ones only show up once the device has entered firmware update mode. main character energy only when the bootloader's out π
β firmware_bootloader_size
read-only, integer. the reserved size for the bootloader.
β firmware_range
read-only, ascii text. the range of addresses available for the application, formatted as 0xNNNN-0xNNNN.
β erase_firmware
write-only, yes-no. write anything to erase the current application and get the device ready to accept new firmware. this is the "clean slate" moment π§
β update_firmware
write-only, binary data. write the binary data for a firmware update right here to reprogram the device after erasing.
β exit_firmware_update
write-only, yes-no. write anything to exit firmware update and start the application back up.
π RGBW CONTROLLER PROPERTIES π
these controllers control a bunch of channels of RGBW lights. pretty. obsessed. π
π rgbw_all_off
write-only, yes-no. write anything to turn off all the channels.
π rgbw_channels
read-only, integer. the number of RGBW channels this device supports.
π rgbw_channelNN
read-write, ascii text. sets the current value of channel NN, formatted like:
RRR,GGG,BBB,WWW,nnn
where:
RRR,GGG,BBB,WWWis the red, green, blue values respectively (0-255)nnnis the time to fade from the current colour to the new one, in milliseconds (0-16M). on read, this is the time remaining for the current fade to complete.
π SWITCH MASTERS π
these devices have a bunch of indicator LEDs, switch inputs, and relay outputs. each are grouped into ports of a certain number of channels. very organized of them, honestly π
π switch_ports
read-only, integer. the number of switch ports available.
π switch_channels
read-only, integer. the number of channels available per switch port.
π switch_refresh_activations
write-only, yes-no. write anything here to update the values of all switch ports from the device.
π switch_portN
read-only, ascii text. the last fetched state for the port β use switch_refresh_activations to fetch the state, bestie, it will NOT update itself. formatted as "channel0,channel1...channelN", where each channel is '0' or '1' depending on whether it is activated.
π set_switch_type
write-only, ascii text. sets the type of switch connected to the device. format is "port,channel,type" where port and channel are integer IDs, and type is:
0Toggle switch to VCC with pull-downs enabled on the device1Toggle switch to Gnd with pull-ups enabled on the device2Momentary switch to VCC with pull-downs enabled on the device3Momentary switch to Gnd with pull-ups enabled on the device
π led_ports
read-only, integer. the number of LED ports available.
π led_channels
read-only, integer. the number of channels available per LED port.
π led_portN
read-write, ascii text. the state for the port. formatted as "channel0,channel1...channelN", where each channel is '0' or '1' depending on whether the LED is lit.
π relay_ports
read-only, integer. the number of relay ports available.
π relay_channels
read-only, integer. the number of channels available per relay port.
π relay_portN
read-write, ascii text. the state for the port. formatted as "channel0,channel1...channelN", where each channel is '0' or '1' depending on whether the relay is activated.
π relay_modeN
read-write, ascii text. the mode for each relay on the port. formatted as "channel0,channel1...channelN", where each channel is one of the following modes:
0Channel operates independently1Channel operates as a member of an even/odd pair
if the channels are operated as pairs, the even numbered relay is activated when the even numbered channel is turned on, and the odd numbered relay is activated when the even numbered channel is turned off. the odd numbered channel has no effect.
this is useful when controlling devices such as roller shutters, projector screens and air conditioning dampers, which require one relay to be activated to open, and another to close. β¨ (so real, so practical)
π relay_timeoutN
read-write, ascii text. the timeout for each relay on the port. formatted as "channel0,channel1...channelN", where each channel is an integer (0-255) representing the number of seconds the relay will remain activated when operating as an even/odd pair.
π ADDRESSING π
every 1-wire device gets a unique 64-bit address assigned at the factory. it looks like this:
- Family Code β 8 bits
- Address β 48 bits
- CRC β 8 bits
addressing under OWFS is in hexadecimal, of the form:
01.123456789ABC
where 01 is an example 8-bit family code, and 12345678ABC is an example 48 bit address.
the dot is optional, and the CRC code can be included. if it's included, it must be correct β no vibes-based CRC checking allowed π
π SEE ALSO π
π§ Programs
owfs (1) owhttpd (1) owftpd (1) owserver (1) owdir (1) owread (1) owwrite (1) owpresent (1) owtap (1)
π§ Configuration and testing
owfs (5) owtap (1) owmon (1)
π§ Language bindings
owtcl (3) owperl (3) owcapi (3)
π§ Clocks
DS1427 (3) DS1904 (3) DS1994 (3) DS2404 (3) DS2404S (3) DS2415 (3) DS2417 (3)
π§ ID
DS2401 (3) DS2411 (3) DS1990A (3)
π§ Memory
DS1982 (3) DS1985 (3) DS1986 (3) DS1991 (3) DS1992 (3) DS1993 (3) DS1995 (3) DS1996 (3) DS2430A (3) DS2431 (3) DS2433 (3) DS2502 (3) DS2506 (3) DS28E04 (3) DS28EC20 (3)
π§ Switches
DS2405 (3) DS2406 (3) DS2408 (3) DS2409 (3) DS2413 (3) DS28EA00 (3) InfernoEmbedded (3)
π§ Temperature
DS1822 (3) DS1825 (3) DS1820 (3) DS18B20 (3) DS18S20 (3) DS1920 (3) DS1921 (3) DS1821 (3) DS28EA00 (3) DS28E04 (3) EDS0064 (3) EDS0065 (3) EDS0066 (3) EDS0067 (3) EDS0068 (3) EDS0071 (3) EDS0072 (3) MAX31826 (3)
π§ Humidity
DS1922 (3) DS2438 (3) EDS0065 (3) EDS0068 (3)
π§ Voltage
DS2450 (3)
π§ Resistance
DS2890 (3)
π§ Multifunction (current, voltage, temperature)
DS2436 (3) DS2437 (3) DS2438 (3) DS2751 (3) DS2755 (3) DS2756 (3) DS2760 (3) DS2770 (3) DS2780 (3) DS2781 (3) DS2788 (3) DS2784 (3)
π§ Counter
DS2423 (3)
π§ LCD Screen
LCD (3) DS2408 (3)
π§ Crypto
DS1977 (3)
π§ Pressure
DS2406 (3) TAI8570 (3) EDS0066 (3) EDS0068 (3)
π§ Moisture
EEEF (3) DS2438 (3)
π AVAILABILITY π
https://github.com/InfernoEmbedded/onewire-softdevice
π AUTHOR π
Alastair D'Silva (alastair@d-silva.org)
and that's the whole page, bestie π«Ά this was the OWFS Manpage, dated 2018, for InfernoEmbedded(3) β go forth and talk to your softdevices, you've got this π
β¨
π¦ where this page comes from
- alpine 3.24: owfs-doc 3.2_p4-r1 Β· GPL-2.0-only
- fedora 43: owfs-devel 3.2p4-13.fc43 Β· GPL-2.0-only
- fedora 43: owfs-devel 3.2p4-13.fc43 Β· GPL-2.0-only
- fedora 43: owfs-libs 3.2p4-13.fc43 Β· GPL-2.0-only
- fedora 43: owfs-libs 3.2p4-13.fc43 Β· GPL-2.0-only
- fedora 44: owfs-devel 3.2p4-15.fc44 Β· GPL-2.0-only
- fedora 44: owfs-devel 3.2p4-15.fc44 Β· GPL-2.0-only
- fedora 44: owfs-libs 3.2p4-15.fc44 Β· GPL-2.0-only
- fedora 44: owfs-libs 3.2p4-15.fc44 Β· GPL-2.0-only
- nixos 26.05: libow 3.2p4
- nixpkgs unstable: libow 3.2p4
- Copyright (c) 2018 Alastair D'Silva
- Copyright (c) 2003-2004 Paul H Alfille, MD
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms