Help with JTAG on Meraki Z1


I've picked up a Meraki Z1 on ebay and tried to install OpenWrt on it but after trying the different methods multiple times they all fail. It seems that recent Meraki firmware is properly locked down unfortunately.

I've installed a couple of MR18s via JTAG so decided to try this on the Meraki Z1 since the board has the same 14 holes as the MR18. I've followed the MR18 JTAG OpenOCD page using a raspberry pi. I can create a telnet connection but when I issue the halt command it times out and fails. Does anybody with more JTAG experience have an idea what is going wrong?



sudo openocd -f raspberrypi-native.cfg -f ar9344.cfg 
Open On-Chip Debugger 0.10.0
Licensed under GNU GPL v2
For bug reports, read
BCM2835 GPIO config: tck = 11, tms = 25, tdi = 10, tdo = 9
BCM2835 GPIO config: trst = 7
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
Warn : Transport "jtag" was already selected
adapter speed: 1000 kHz
Info : BCM2835 GPIO JTAG/SWD bitbang driver
Info : JTAG only mode enabled (specify swclk and swdio gpio to add SWD mode)
Info : clock speed 1006 kHz
Info : TAP ar9344.cpu does not have IDCODE
Info : accepting 'telnet' connection on tcp/4444
Info : TAP ar9344.cpu does not have IDCODE
Error: Failed to enter Debug Mode!
Info : Halt timed out, wake up GDB.
Error: timed out while waiting for target halted


telnet localhost 4444
Trying ::1...
Connected to localhost.
Escape character is '^]'.
Open On-Chip Debugger
> reset                                                                
TAP ar9344.cpu does not have IDCODE
> init
> halt
Failed to enter Debug Mode!
Halt timed out, wake up GDB.
timed out while waiting for target halted


if { [info exists CHIPNAME] } {
        set _CHIPNAME $_CHIPNAME
} else {
        set _CHIPNAME ar9344

if { [info exists CPUTAPID] } {
} else {
        set _CPUTAPID 0x01

jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id $_CPUTAPID

target create $_TARGETNAME mips_m4k -endian big -chain-position $_TARGETNAME

transport select jtag
adapter_khz 1000

Hello konus,

I hate to dig up this old thread, but I was wondering if you ever fixed this issue? When I issue the JTAG commands it seems to just lockup the chip. All of the lights on the machine go off. The output from the uart and OpenOCD seems to be the same problem and any insight you could provide would me much appreciated!


Edit: I am using a PI 0w by the way

No unfortunately I've not managed to install openwrt using jtag. I've still got the meraki z1 but don't know how to get jtag working properly. Once I realised the normal install methods didn't work I decided to give jtag a try by following the MR18 method. However I don't know enough about jtag / low level electronics to understand what is stopping it working.

1 Like

Thanks for replying,
I'm sorry to hear that you couldn't get it to work. I found one for free so luckily I haven't lost anything but time. I am going to try it for a bit longer and I will send something here if I get it to work.