VintageNet is new network configuration library built specifically for Nerves Project devices. It addresses shortcomings with NervesNetwork that made that library difficult to maintain and extend.
We’ve been working on VintageNet for a while and we’re finally ready for more people to try it out.
Currently, the library supports:
- Configuration for wired Ethernet, WiFi, and direct connections (to support USB gadget mode networking)
- WiFi AP mode use
- Network status and events via a simple get/subscribe interface
- Saving and restoring network configurations across reboots (you can turn this off if your application wants to take care of this)
- Connection monitoring and automatic switching between working interfaces. For example, you could set it up to prefer WiFi/Ethernet for internet access, but fail over to a metered connection should they not work.
If you would like to learn more about VintageNet, take a look at the following posts:
VintageNet is currently in production use. It is not yet in the Nerves documentation, examples, and new project generator. We will be working on making it easier to use in your projects over the coming months.
There are some caveats:
- VintageNet is not compatible with the
nerves_init_gadgetproject. See nerves_pack for something similar.
- VintageNet requires minor Linux kernel and Busybox updates. We’ve updated the official Nerves systems, but if you’ve made a custom system, please see these notes. The error messages if you’re missing the updates are not easy to understand.
- Networking is harder than it looks especially when you need it to work unattended. If something seems weird or wrong, let us know. It could be in an area we haven’t verified (for example, WPA-EAP has a LOT of options and we’ve only deployed to two types of WPA-EAP setups so far).
- While not specifically VintageNet, if you’re using mDNS for discovery and it doesn’t work on WiFi, please check if your admin disabled multicast.
I’ve been wanting to update NervesNetwork for years, but it took SmartRent having a business need to make it happen. Thanks also to Connor Rigby, Matt Ludwigs, Jon Carstens and Justin Schneck, and also thanks to Le Tote and FarmBot who both put VintageNet into production early on and provided useful feedback.
Stay tuned for updates and let us know if you want to collaborate on supporting new types of networks or features.