The donation

File:Sparky1.jpg
A donated Meraki "Sparky" board
File:Sparky2.jpg
Back of PCB

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


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

Source

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

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

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.

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