mbusd(8)
π mbusd π β that's the page name, and yes it's section 8 of the System Manager's Manual, we love a system admin moment
okay so bestie, the page you're reading about is literally called mbusd, and near the top of the actual file it says mbusd(8) in the corner like a little name tag. now let's get into it π
β¨ SYNOPSIS β¨
here's the whole shape of it, copy-paste exact:
mbusd [-h] [-d] [-L logfile] [-v level] [-c cfgfile] [-p device] [-s
speed] [-m mode] [-t] [-r] [-y sysfsfile] [-Y sysfsfile] [-A address]
[-P port] [-C maxconn] [-N retries] [-R pause] [-W wait] [-T timeout]
[-b]
lowkey iconic bracket spam, but that's just how flags are born π«Ά
π¦ DESCRIPTION π¦
mbusd is a MODBUS/TCP to MODBUS/RTU gateway. that's it, that's the sentence, and honestly she ate π₯
π OPTIONS π
this is the part where I hold your hand, bestie, because there are like a million of them and each one is a little gift:
-hβ usage help. the "help me please" flag β¨-dβ tellsmbusdnot to fork itself (aka non-daemonize). she stays in the foreground with you, main character energy π-Llogfile β picks the log file name.'-'means log to STDOUT only. the default is/var/log/mbusd.logπ-vlevel β sets how chatty the logging is.0= errors only,1= also warnings,2= also information messages. ifmbusdwas compiled in debug mode, valid log levels go all the way up to9, and anything above2forces logging of information about additional internal events. so like, level 9 is her venting in her notes app π-ccfgfile β read configuration from cfgfile. yes queen, externalize your config π-pdevice β sets the serial port device name π-sspeed β sets the serial port speed β‘-mmode β sets the serial port mode (like8N1). those three little characters are doing so much work ngl-Sβ enable RS-485 support for the given serial port device (Linux only π§, sorry not sorry to everyone else)-Aaddress β sets the TCP address to bind π-Pport β sets the TCP port number πͺ-tβ enable RTS RS-485 data direction control using RTS, active transmit π€-rβ enable RTS RS-485 data direction control using RTS, active receive π₯-yfile β enable RS-485 direction data direction control by writing'1'to file for transmitter enable, and'0'to file for transmitter disable. ones and zeros, her love language π-Yfile β same deal but flipped: writes'0'to file for transmitter enable, and'1'to file for transmitter disable. the evil twin, we stan π-Cmaxconn β sets the maximum number of simultaneous TCP connections π―ββοΈ-Nretries β sets the maximum number of request retries (0= disable retries, no second chances fr fr)-Rpause β sets the pause between requests, in milliseconds βΈοΈ-Wwait β sets the response wait time, in milliseconds β-Ttimeout β sets the connection timeout value, in seconds (0= disable timeout, she waits forever, delulu but valid)-bβ instructsmbusdto reply on a broadcast π’ periodt
π NOTES π
okay this is the drama section, pay attention:
- when
mbusdgets a response with an invalid CRC and can't correct the error by re-requesting, it returns a MODBUS/TCP packet with exception code04π - when
mbusdcan't receive a response from the MODBUS RTU device at all (like, the addressed controller is just not present on the network, ghosted π»), it returns a MODBUS/TCP packet with exception code0x0Bπ
no cap, these codes are your best friends when things go sideways.
π BUGS π
please send bug reports to the author. be nice about it, they're doing their best π«Ά
π AUTHORS π
the legends themselves:
- Victor Antonovich <v.antonovich@gmail.com>
- Andrew Denysenko <nitr0@seti.kr.ua>
π LICENSE π
this program is distributed under the BSD license. see the LICENSE file in the installation directory for the full license text πβ¨
and that's the whole page bestie!! you made it to the bottom, I'm obsessed π the version on this one is mbusd 0.5.3, dated 07 Apr 2026, and the page is mbusd(8) β mwah, go forth and gateway ππ¦πΈ
π¦ where this page comes from
- nixpkgs unstable: mbusd 0.5.3
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms