## Specific Design Goals and Requirements **A standard Linux server environment** for hosting applications, meaning that web applications and most daemons (eg, appropriate to run on a single VPS) do not have to be specifically re-ported to run on rooter. **Simultaneous 200Mbps down, 109Mbps up routed ethernet throughput** between local and remote ports. This performance ensures that rooter would not limit the performance of [DOCSIS 3.0](https://en.wikipedia.org/wiki/DOCSIS#Speed_tables) cable modem connections. **"No-surprises" generic router functionality**, meaning that the device should meet the expectations of non-technical users in it's default configuration: standard firewall configuration, DHCP and DNS auto-configuration, support for common upstream authentication mechanisms, configuration via a web interface at the gateway's IP address. **Hardware Hackability**, a vague concept. In this case meaning (at a minimum) that new firmware can loaded and debugged on the device, and that low-level electronics can be integrated using standard connections (3.3/5v GPIOs, UARTS, SPI, ADCs, etc). Ability to **participate in alternative networks** like wireless mesh networks (BATMAN, OLSR, etc), darknets (i2p), or Tor without excessive difficulty. This may require some network-specific porting and may contra-indicate some other **"Line-rate" WiFi routed throughput** (to local or upstream ethernet ports). For 802.11n this means 150Mbps for a single 40MHz channel. **IPv6 fully supported out-of-the-box.** **"No-reboot" reliability** under defaults with "normal usage", meaning that end users should never have to manually power cycle the device to resolve local or uplink DHCP or routing connectivity issues. **No NDAs, special vendor deals, or binary blobs.** A mostly free/libre software and hardware stack, reproducable by anybody with capital and manufacturing facilities. **"Internet-of-Things" connectivity** via a low-power IP-based wireless protocol (eg 802.15.4 6lowpan, ZigBee, Bluetooth Low-Energy, etc). ## Implementation See [hardware]() for specific components and costs; in summary: - 1GHz dual-core ARM SoC processor - 512MB RAM - Internal uSD card storage, expandable through SATA and USB ports - Modular WiFI via miniPCIe slot; recommend dual-band 802.11n - 2 powered USB ports for expansion - 5x Gigabit ethernet ports: 4x local + 1x upstream - Serial and JTAG debugging via micro-USB port - Low-bandwidth "internet of things" gateway with 802.15.4 radio - Hardware entropy generation device The proposed software stack is to run a tweaked OpenWRT router firmware distribution on the bare metal, and run server processes in one or more virtualized full debian environments. Porting and documentation effort will be made such that users can swap out the default software stack for regular debian, regular OpenWRT, pfSense (FreeBSD), or OpenBSD as they see fit. A bootloader and multiple-partition scheme will retain a "factory" copy of the default configuration on the internal micro SD card to assist with recovering from misconfiguration. ## Comparison See [../research/devices]() for a listing of other similar hardware devices. **Router?** indicates whether the device meets contemporary first world user expectations of a home router. **Server?** indicates whether the devices meets expectations of web application developers: eg, whether a Ruby On Rails web application would run well enough for a small group of users. **Libre?** indicates whether the design of the entire device is truely Free. **Hack?** indicates whether the device could be integrated into an electronics project by an Arduino-experienced hacker.
Device | Price | CPU/RAM/Disk | Ethernet | Wireless | Router? | Server? | Libre? | Hack? |
---|---|---|---|---|---|---|---|---|
rooter with OpenWRT+debian | $130+ | 1GHz ARM / 512MB 8Gb uSD, empty SATA | 5x 1000Mbps | 802.11n 2.4GHz miniPCIe
802.11n 5GHz miniPCIe 802.15.4 6lowpan | Yes | Yes | Open Hardware FLOSS software FLOSS drivers FLOSS BIOS | Serial, JTAG, GPIO, MCU |
[DreamPlug](http://www.globalscaletechnologies.com/t-dreamplugdetails.aspx) with FreedomBox/debian | $160 | 1.2 GHz ARM / 512MB 4GB uSD, empty eSATA, SD | 2x 1000Mbps | 802.11 2.4GHz [SDIO](https://www.globalscaletechnologies.com/skins/skin_1/images/dreamplug_blockdiagram.jpg)
BlueTooth 3 SDIO | Limited | Yes | Proprietary Hardware FLOSS software Binary Blob drivers[ref](http://www.madore.org/~david/weblog/2012-03.html#d.2012-03-17.2021) FLOSS BIOS | Serial, JTAG |
[Raspberry Pi B](http://www.raspberrypi.org/) with debian | $35 | 700MHz ARM / 256MB empty SD | 1x 100Mbps | empty USB | No | Limited | Almost-Open Hardware FLOSS software Binary Blob drivers no BIOS | GPIO, Serial, SPI, i2c |
[Netgear WNDR3700v2](http://www.netgear.com/home/products/wirelessrouters/high-performance/wndr3700.aspx) with OpenWRT | $90 | 680MHz MIPS / 64MB 16MB flash | 5x 1000Mbps | 802.11n 2.4GHz PCI 802.11n 5GHz PCI | Yes | No | Proprietary Hardware FLOSS software FLOSS ath9k drivers FLOSS BIOS | Undocumented, expert only |
[Soekris net6501-50](http://soekris.com/products/net6501/net6501-50-board-case.html) with debian | $330 | 1GHz Atom x86 / 1GB empty SATA, mSATA | 4x 1000Mbps | empty miniPCIe + USB | Yes (w/ WiFi) | Yes | Proprietary Hardware FLOSS software FLOSS driversProprietary BIOS[ref](http://soekris.com/downloads.html) | Serial, GPIO, FPGA |
[Mesh Potato](http://store.villagetelco.com/mesh-potatoes/mesh-potato.html) with OpenWRT | $100 | 180MHz MIPS / 16MB 8MB flash | 1x 100Mbps | 802.11b/g 2.4GHz SoC | Limited | No | Open Hardware FLOSS software Blob drivers[ref](http://wiki.villagetelco.org/index.php?title=Mesh_Potato_Firmware_How_To#WiFi) FLOSS bootloader | MCU, CPLD, Serial, JTAG, [more](http://wiki.villagetelco.org/index.php?title=Mesh_Potato_Features_/_Specs) |