Sparky
The donation
A bunch of Meraki Outdoor "Sparky" units were donated to Noisebridge.
"Built to withstand everything from hackers to extreme temperatures, water, sand, and dust." [1]
MIT Article referring to a "SF Mesh" http://www.technologyreview.com/hack/410322/meraki-outdoor/
Old press release for Meraki's "Free The Net" SF mesh
meraki.com
- Archived version of Outdoor
- Archived version of "Solar"
See also: RouterBOARD_133 These boards came in "outdoor" cases for mounting, however they DO NOT contain the "Meraki Outdoor" aka: "Sparky" boards, they are a Mikrotik RouterBOARD 133
Documentation
Specs
- Atheros AR2317@180Mhz
- 32 MB RAM
- 8 MB Flash
- 802.11B/G
- POE support
- 4.5V-18A
Typical Coverage Radius
- Indoor: 150-250ft (50-80m)
- Outdoor: 500-1000ft (150-350m)
- Outdoor with high-gain antenna: 0.6-5mi (1-8km)
Radio
- 200 mW (23 dBm) peak transmission power*
- Enhanced receive sensitivity
- External RP-SMA connector
- 802.11 b/g (1 - 54 Mbps)
- 2 dBi omni-directional antenna included
Power
- 5 - 22 V DC
- Power Over Ethernet, 12 - 22 V (non 802.3af )
- Power consumption: 12 W max; 3 W typical
- 15 V/0.8 A DC power adapter included
- Power Over Ethernet injector included
Environment
- Operating temperature: 14° F – 122° F (-10° C – 50° C)
- IP - 66 environmental rating
Interfaces / Ports
- Two 10/100 Mbps auto-crossover Ethernet ports:
automatically detects PC or gateway operation
- Signal strength LED
- Headers for 3.3v Serial / GPIO
Source: Meraki Data Sheet [2]
Antenna
The onboard RF connector is U.FL (IPX/IPEX). You can find antennas and pigtails in old routers, laptop wifi cards.
In bulk:
http://www.aliexpress dot com/wholesale?SearchText=u.fl+to+rp-sma
http://www.aliexpress dot com/wholesale?SearchText=2.4ghz+antenna+ufl
http://www.ebay.com/sch/i.html?_nkw=u.fl+to+rp-sma
FCC Forms
- Ad Hoc Declaration: http://fccid.net/document.php?id=855552
- Construction Photos - http://fccid.net/document.php?id=855555
- Internal Photos - http://fccid.net/document.php?id=855556
- RF Exposure - http://fccid.net/document.php?id=855561
- Test Report 1 - http://fccid.net/document.php?id=855563
- Test Report 2 - http://fccid.net/document.php?id=855564
- Test Setup Photos - http://fccid.net/document.php?id=855565
- User Manual - http://fccid.net/document.php?id=855566
Manuals
Components
- Hynix256M (16Mx16bit) SDRAM Memory "HY57V561620FTP-H" (U11) [3]
- "SS54" (D2, D3, D4) [4]
- 25p64v6? (U14) Flash memory, serial
GPIO
7 GPIO Pins?
Use gpioctl set/clear <pin> to toggle
LED 1 is closest to ethernet.
GPIO Pin | Function |
---|---|
0 | LED 2 |
1 | LED 1 |
2 | LED 4 |
3 | LED 6 |
4 | LED 3 |
5 | LED 5 |
6 | RESET? |
Firmware
- Stock - commands, details
- OpenWRT install details
- OpenWRT Easyflash - utilities for simple flashing of Meraki Mini (unknown compatibility with Outdoor)
- AP51-flash flashing tool
Flashing OpenWRT
Other Meraki routers have port 9000 open for telnet console connections for two seconds during bootup, but these boards do not. The router's RedBoot tries to load a .elf file via tftp during bootup. This file could contain a different RedBoot with tcp console enabled, but unfortunately I (Juul (talk)) have not been able to get the built-in RedBoot to accept any .elf files (even ones compiled from Merakis RedBoot source code, which they have released). The files are only ever partially retrieved with no useful errors given on client or server.
This means that we have to use the 3.3v serial port on the routers to gain console access.
- Juul (talk) has written a script to flash these routers using serial and ethernet.
- Now works reliably.
Watchdog problems!
The hardware watchdog is enabled per default and reboots the board every 5 minutes. This is why it takes 20+ minutes and four reboots to flash the router.
OpenWRT and Linux's watchdog support for the AR2317 chipset apparently is not functioning per default in OpenWRT Attitude Adjustment (possibly not in any version). This means the router will still reboot every 5 minutes after you flash with OpenWRT.
The watchdog support is supposed to work like so:
- Kernel driver creates /dev/watchdog as interfaces between hardware watchdog and userland
- watchdog daemon which is part of busybox writes null characters to /dev/watchdog periodically
The kernel code to support the watchdog is in linux-3.3.8/drivers/watchdog/ar2315-wtd.c and the memory mapped register addresses should be the same for the AR2317 as for the AR2315. The code appears to be compiled into OpenWRT Attitude Adjustment. Perhaps it is not loading because it only activates for AR2315 hardware? or perhaps some flag needs to be set at compile time?
Startup
via serial port
Ethernet eth0: MAC address 00:18:0a:50:00:00 IP: 192.168.84.1/255.255.255.0, Gateway: 0.0.0.0 Default server: 192.168.84.9 RedBoot(tm) bootstrap and debug environment [ROMRAM] Non-certified release, version v1.3.0 - built 10:45:15, Aug 27 2007 Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc. Board: ap61 RAM: 0x80000000-0x82000000, [0x8003ddd0-0x80fe1000] available FLASH: 0xa8000000 - 0xa87e0000, 128 blocks of 0x00010000 bytes each. == Executing boot script in 2.000 seconds - enter ^C to abort RedBoot> check_mac ** Error: Illegal command: "check_mac" RedBoot> load art_ap51.elf Using default protocol (TFTP) __udp_sendto: Can't find address of server Can't load 'art_ap51.elf': some sort of network error RedBoot> go No entry point known - aborted RedBoot> fis load stage2 RedBoot> exec Now booting linux kernel: Base address 0x80030000 Entry 0x80100000 Cmdline : starting stage2 reading flash at 0xa8150000 - 0xa842f859.....................done Calculating CRC... 0xd1bfe2e4 - matches decompressing....................done starting linux [ 0.000] Linux version 2.6.16.16-meraki-mini (roby@roby) (gcc version 3.4.6 (OpenWrt-2.0)) #2 Mon Apr 21 14:09:33 PDT 2008 [ 0.000] CPU revision is: 00019064 [ 0.000] Determined physical RAM map: [ 0.000] memory: 02000000 @ 00000000 (usable) [ 0.000] Built 1 zonelists [ 0.000] Kernel command line: [ 0.000] Primary instruction cache 16kB, physically tagged, 4-way, linesize 16 bytes. [ 0.000] Primary data cache 16kB, 4-way, linesize 16 bytes. [ 0.000] Synthesized TLB refill handler (20 instructions). [ 0.000] Synthesized TLB load handler fastpath (32 instructions). [ 0.000] Synthesized TLB store handler fastpath (32 instructions). [ 0.000] Synthesized TLB modify handler fastpath (31 instructions). [ 0.000] PID hash table entries: 256 (order: 8, 4096 bytes) [ 0.000] Using 92.000 MHz high precision timer. [ 0.001] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) [ 0.004] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) [ 0.011] Memory: 20280k/32768k available (2038k kernel code, 12472k reserved, 401k data, 9328k init, 0k highmem) [ 0.031] Mount-cache hash table entries: 512 [ 0.034] Checking for 'wait' instruction... available. [ 0.037] unpacking initramfs....done [ 0.769] NET: Registered protocol family 16 [ 0.828] Algorithmics/MIPS FPU Emulator v1.5 [ 2.269] JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc. [ 2.270] Initializing Cryptographic API [ 2.271] io scheduler noop registered [ 2.272] io scheduler anticipatory registered (default) [ 2.274] io scheduler deadline registered [ 2.275] io scheduler cfq registered [ 2.300] watchdog hb: 90 ISR: 0x21 IMR: 0x8 WD : 0xa340fe12 WDC: 0x0 [ 2.305] ar2315_wdt_init using heartbeat 90 s cycles 3600000000 [ 2.306] watchdog hb: 90 ISR: 0x21 IMR: 0x88 WD : 0xd68d192e WDC: 0x0 [ 2.315] Serial: 8250/16550 driver $Revision: 1.90 $ 1 ports, IRQ sharing disabled [ 2.320] serial8250: ttyS0 at MMIO 0xb1100003 (irq = 37) is a 16550A [ 2.475] phyID=0x00071023 [ 2.476] Found ADM6996FC. phyID=0x00071023. [ 2.539] eth0: Dropping NETIF_F_SG since no checksum feature. [ 2.617] eth0: Atheros AR2313: 00:18:0a:50:00:00, irq 4 [ 2.619] eth1: Dropping NETIF_F_SG since no checksum feature. [ 2.687] eth1: Atheros AR2313: 00:18:0a:50:00:00, irq 4 [ 2.767] tun: Universal TUN/TAP device driver, 1.6 [ 2.768] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com> [ 2.846] MTD driver for SPI flash. [ 2.847] spiflash: Probing for Serial flash ... [ 2.848] spiflash: Found SPI serial Flash. [ 2.849] 8388608: size [ 2.850] RedBoot partition parsing not available [ 2.851] Creating 7 MTD partitions on "spiflash": [ 2.852] 0x00000000-0x00030000 : "RedBoot" [ 3.084] 0x00030000-0x00050000 : "stage2" [ 3.317] 0x00050000-0x00150000 : "/storage" [ 3.549] 0x00150000-0x00490000 : "part1" [ 3.689] eth0: Configuring MAC for full duplex [ 3.766] 0x00490000-0x007d0000 : "part2" [ 4.000] 0x007d0000-0x007e0000 : "redboot config" [ 4.232] 0x007e0000-0x00800000 : "board config" [ 4.681] oprofile: using timer interrupt. [ 4.682] Netfilter messages via NETLINK v0.30. [ 4.683] NET: Registered protocol family 2 [ 4.700] IP route cache hash table entries: 512 (order: -1, 2048 bytes) [ 4.703] TCP established hash table entries: 2048 (order: 2, 16384 bytes) [ 4.704] TCP bind hash table entries: 2048 (order: 2, 16384 bytes) [ 4.705] TCP: Hash tables configured (established 2048 bind 2048) [ 4.706] TCP reno registered [ 4.707] ip_conntrack version 2.4 (256 buckets, 2048 max) - 232 bytes per conntrack [ 4.760] ctnetlink v0.90: registering with nfnetlink. [ 4.761] ip_conntrack_pptp version 3.1 loaded [ 4.762] ip_nat_pptp version 3.0 loaded [ 4.763] ip_tables: (C) 2000-2006 Netfilter Core Team [ 4.906] ClusterIP Version 0.8 loaded successfully [ 4.907] TCP bic registered [ 4.908] NET: Registered protocol family 1 [ 4.909] NET: Registered protocol family 17 [ 4.981] Bridge firewalling registered [ 4.989] Freeing unused kernel memory: 9328k freed init started: BusyBox v1.1.0 (2008.04.19-00:26+0000) multi-call binary Please press Enter to activate this console. BusyBox v1.1.0 (2008.04.19-00:26+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands. Welcome to Meraki. Usage of this device is governed by Meraki's End User License Agreement, available at http://meraki.com/legal. (none):/# init-boot: boot 3 build 8-16504 board ar531x mac 00:18:0A:50:00:00 [ 10.209] ar2315_wdt: starting watchdog w/timeout 90 seconds [ 10.210] watchdog hb: 90 ISR: 0x20 IMR: 0x89 WD : 0xd690d504 WDC: 0x0 [ 10.310] ath_hal: module license 'Proprietary' taints kernel. [ 10.406] ath_hal: 0.9.17.1 (AR5212, AR5312, RF5112, RF2316, RF2317, TX_DESC_SWAP) [ 10.910] ath_rate_sample: 1.2 (svn 16289) [ 11.300] ath_ahb: 0.9.4.5 (svn 16289) [ 11.437] wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps [ 11.441] wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps [ 11.449] wifi0: H/W encryption support: WEP AES AES_CCM TKIP [ 11.452] wifi0: mac 11.0 phy 4.8 radio 8.6 [ 11.454] wifi0: Use hw queue 1 for WME_AC_BE traffic [ 11.455] wifi0: Use hw queue 0 for WME_AC_BK traffic [ 11.456] wifi0: Use hw queue 2 for WME_AC_VI traffic [ 11.457] wifi0: Use hw queue 3 for WME_AC_VO traffic [ 11.458] wifi0: Use hw queue 8 for CAB traffic [ 11.459] wifi0: Use hw queue 9 for beacons [ 11.460] couldn't load module 'wlan_scan_sta' (-89) [ 11.462] unable to load wlan_scan_sta [ 11.561] wifi0: Atheros 2317 WiSoC: mem=0xb0000000, irq=3 [ 15.390] click: starting router thread pid 437 (81b22900) [ 15.525] wlan: mac acl policy registered [ 20.414] couldn't load module 'wlan_scan_monitor' (-89) [ 20.415] unable to load wlan_scan_monitor ls LAST_BOOT_COUNT MERAKI_SERIAL lib usr MERAKI_ARCH bin proc var MERAKI_BOARD click sbin www MERAKI_BUILD dev storage MERAKI_IP etc sys MERAKI_MAC init tmp
Where projects are the units going to?
- Dana wants to take 20 units for a community project (I'm in possession of 14 units as of 2013.11.27. If any go unused I will return them for other uses. ~ dana)
- Sudoroom is interested in all the units for their open mesh networking project.
- Dan would like at least 1 outdoor version and 5-10 boards to provide wifi in the Mission around Noisebridge. https://openwireless.org nodes
- Adrian wants several to improve Atheros support in FreeBSD
- Jof wants boards for mesh testing
- J.C. has 2 boards for testing.
- Sudomesh has moved the majority of these to a slightly less public location as per email suggestion and no objections after three days. Need to count them.
- 4 RB133s (outdoor APs) and ~150-200 Sparkys