<span style="font-family: Arial;">Thanks to this hack, we should be able to use a noisebridge-donated lot of ~200 sparky routers for <a href="https://peoplesopen.net/">https://peoplesopen.net/</a><br><br>Cheers!<br><br>// Matt<br><br>----- Reply message -----<br>From: "Adrian Chadd" <adrian.chadd@gmail.com><br>To: "mesh@lists.sudoroom.org" <mesh@lists.sudoroom.org><br>Subject: [Mesh] So, about those Meraki Sparky boards<br>Date: Wed, Mar 26, 2014 18:34<br><br></span><br>A little drinking at Noisebridge and some poking from JC got me<br>thinking about the Sparky boards. So I came up to Sudo and worked with<br>Marc to figure it out.<br><br>The TL;DR version: It's an AR2317 and you have a watchdog timer, but<br>it doesn't actually reset the unit. It just posts an interrupt. It<br>turns out GPIO6 is the "pat to stop it resetting" line.<br><br>So, the details:<br><br>I first did "help" at the redboot prompt. I found "bdshow", which is<br>the "Atheros board info."<br><br>RedBoot> bdshow<br>name:     Meraki Outdoor 1.0<br>magic:    35333131<br>cksum:    2a1b<br>rev:      10<br>major:    1<br>minor:    0<br>pciid:    0013<br>wlan0:    yes 00:18:0a:50:7b:ae<br>wlan1:    no  00:00:00:00:00:00<br>enet0:    yes 00:18:0a:50:7b:ae<br>enet1:    no  00:00:00:00:00:00<br>uart0:    yes<br>sysled:   no, gpio 0<br>factory:  no, gpio 0<br>serclk:   internal<br>cpufreq:  calculated 184000000 Hz<br>sysfreq:  calculated 92000000 Hz<br>memcap:   disabled<br>watchdg:  disabled (WARNING: for debugging only!)<br><br>serialNo: Q2AJYS5XMYZ8<br>Watchdog Gpio pin: 6<br>secret number: e2f019a200ee517e30ded15cdbd27ba72f9e30c8<br><br>.. hm. Watchdog GPIO pin 6? What's that?<br><br>After manually checking out the watchdog registers via 'x', we<br>discovered that it would count down to 0 and not reset.<br><br>So, hm. Maybe the GPIO 6 wire is actually the right thing to pat. And<br>yes, the board doesn't reset when you pat GPIO 6.<br><br><br><br>Board: ap61<br>RAM: 0x80000000-0x82000000, [0x8003ddd0-0x80fe1000] available<br>FLASH: 0xa8000000 - 0xa87e0000, 128 blocks of 0x00010000 bytes each.<br>== Executing boot script in 2.000 seconds - enter ^C to abort<br>^C<br>RedBoot> # set direction of gpio6 to out<br>RedBoot> mfill -b 0xb1000098 -l 4 -p 0x00000043<br>RedBoot> x -b 0xb1000098<br>B1000098: 00 00 00 43 00 00 00 00  00 00 00 00 00 00 00 03  |...C............|<br>B10000A8: FF EF F7 B9 7D DF 5F FF  00 00 00 00 00 00 00 00  |....}._.........|<br><br>RedBoot> # pat gpio6 - set it high, then low.<br>RedBoot> mfill -b 0xb1000090 -l 4 -p 0x00000042<br>RedBoot> mfill -b 0xb1000090 -l 4 -p 0x00000002<br><br>.. then I manually did this every minute or so.<br><br>RedBoot><br>RedBoot> mfill -b 0xb1000090 -l 4 -p 0x00000042<br>RedBoot> mfill -b 0xb1000090 -l 4 -p 0x00000002<br>RedBoot> mfill -b 0xb1000090 -l 4 -p 0x00000042<br>RedBoot> mfill -b 0xb1000090 -l 4 -p 0x00000002<br><br>.. so, the solution here seems to be to "set gpio6 to be output", then<br>"pat it every 60 seconds."<br><br><br>-a<br>_______________________________________________<br>mesh mailing list<br>mesh@lists.sudoroom.org<br>https://lists.sudoroom.org/listinfo/mesh<br>