Supporting other Ardunio Boards

Hi,

I’m new to XOD, it looks very promising. Great project! However, I came across an obvious question: XOD supports Arduino, but does this also mean it supports other Arduino compatible platform such as the Feather nrf52? And if not, what would I have to do to add support for it?

Thanks!

follow these steps

Where do I normally find this file?

EDIT: found it in the user folder. Thanks!

After trying to install the dependecies I ended up with the following error:

Installing Arduino dependencies…
Downloading arduino:arm-none-eabi-gcc@7-2017q4...
arduino:arm-none-eabi-gcc@7-2017q4 downloaded
Downloading adafruit:nrfjprog@9.4.0...
adafruit:nrfjprog@9.4.0 downloaded
Downloading adafruit:nrf52@0.20.1...
adafruit:nrf52@0.20.1 downloaded
Installing arduino:arm-none-eabi-gcc@7-2017q4...
runtime: VirtualAlloc of 8388608 bytes failed with errno=487
fatal error: runtime: cannot map pages in arena address space
runtime stack:
runtime.throw(0x9e1b82, 0x30)
	/home/jenkins/go1.10.2-patched/src/runtime/panic.go:616 +0x6b
runtime.sysMap(0x46920000, 0x800000, 0x320bfe01, 0xd4bcf8)
	/home/jenkins/go1.10.2-patched/src/runtime/mem_windows.go:124 +0x100
runtime.(*mheap).sysAlloc(0xd3a820, 0x800000, 0xba01)
	/home/jenkins/go1.10.2-patched/src/runtime/malloc.go:470 +0x22f
runtime.(*mheap).grow(0xd3a820, 0x400, 0x0)
	/home/jenkins/go1.10.2-patched/src/runtime/mheap.go:907 +0x4e
runtime.(*mheap).allocSpanLocked(0xd3a820, 0x400, 0xd4bd08, 0x10665a00)
	/home/jenkins/go1.10.2-patched/src/runtime/mheap.go:820 +0x2e4
runtime.(*mheap).alloc_m(0xd3a820, 0x400, 0xd30101, 0x15d3c)
	/home/jenkins/go1.10.2-patched/src/runtime/mheap.go:686 +0x115
runtime.(*mheap).alloc.func1()
	
/home/jenkins/go1.10.2-patched/src/runtime/mheap.go:753 +0x40
runtime.(*mheap).alloc(0xd3a820, 0x400, 0x34010101, 0x411c8b)
	/home/jenkins/go1.10.2-patched/src/runtime/mheap.go:752 +0x6c
runtime.largeAlloc(0x7ffe00, 0x440101, 0x1540000)
	/home/jenkins/go1.10.2-patched/src/runtime/malloc.go:826 +0x7b
runtime.mallocgc.func1()
	/home/jenkins/go1.10.2-patched/src/runtime/malloc.go:721 +0x39
runtime.systemstack(0x0)
	/home/jenkins/go1.10.2-patched/src/runtime/asm_386.s:464 +0x5e
runtime.mstart()
	/home/jenkins/go1.10.2-patched/src/runtime/proc.go:1175
goroutine 1 [running]:
runtime.systemstack_switch()
	/home/jenkins/go1.10.2-patched/src/runtime/asm_386.s:418 fp=0x12183848 sp=0x12183844 pc=0x44bb40
runtime.mallocgc(0x7ffe00, 0x930d60, 0x12183801, 0x7e00)
	/home/jenkins/go1.10.2-patched/src/runtime/malloc.go:720 +0x67b fp=0x1218389c sp=0x12183848 pc=0x40e7fb
runtime.makeslice(0x930d60, 0x7ffe00, 0x7ffe00, 0x1210e000, 0x0, 0x0)
	/home/jenkins/go1.10.2-patched/src/runtime/slice.go:61 +0x59 fp=0x121838b0 sp=0x1218389c pc=0x439e79
bytes.makeSlice(0x7ffe00, 0x0, 0x0, 0x0)
	/home/jenkins/go1.10.2-patched/src/bytes/buffer.go:230 +0x61 fp=0x121838cc sp=0x121838b0 pc=0x4d61b1
bytes.(*Buffer).grow(0x1216f440, 0x200, 0x7e00)
	/home/jenkins/go1.10.2-patched/src/bytes/buffer.go:144 +0x112 fp=0x121838f4 sp=0x121838cc pc=0x4d5c42
bytes.(*Buffer).ReadFrom(0x1216f440, 0xa58d10, 0x3e3c50a0, 0x34054260, 0x1216f440, 0xa53001, 0x437)
	/home/jenkins/go1.10.2-patched/src/bytes/buffer.go:204 +0x45 fp=0x12183930 sp=0x121838f4 pc=0x4d5ff5
io.copyBuffer(0xa582f0, 0x1216f440, 0xa58d10, 0x3e3c50a0, 0x0, 0x0, 0x0, 0x10, 0x95cfa0, 0x11df8001, ...)
	/home/jenkins/go1.10.2-patched/src/io/io.go:386 +0x2be fp=0x1218396c sp=0x12183930 pc=0x453f3e
io.Copy(0xa582f0, 0x1216f440, 0xa58d10, 0x3e3c50a0, 0x40c6eb, 0x94ad00, 0x954920, 0xa5e900)
	/home/jenkins/go1.10.2-patched/src/io/io.go:362 +0x51 fp=0x1218399c sp=0x1218396c pc=0x453c51
github.com/arduino/arduino-cli/vendor/github.com/codeclysm/extract.copyCancel(0xa5c920, 0x11f1c840, 0xa582f0, 0x1216f440, 0x34cc4a98, 0x12118f30, 0xc0, 0x0, 0x0, 0x0)
	/home/jenkins/workspace/arduino-cli-pr-builder/src/github.com/arduino/arduino-cli/vendor/github.com/codeclysm/extract/cancelable_reader.go:10 +0x86 fp=0x121839c4 sp=0x1218399c pc=0x65a566
github.com/arduino/arduino-cli/vendor/github.com/codeclysm/extract.Zip(0xa5c920, 0x11f1c840, 0xa58fb0, 0x11f44600, 0x11dfe3c0, 0x38, 0x0, 0x3, 0x9ca850)
	/home/jenkins/workspace/arduino-cli-pr-builder/src/github.com/arduino/arduino-cli/vendor/github.com/codeclysm/extract/extract.go:281 +0x85c fp=0x12183b80 sp=0x121839c4 pc=0x65c66c
github.com/arduino/arduino-cli/vendor/github.com/codeclysm/extract.Archive(0xa5c920, 0x11f1c840, 0xa58fb0, 0x11f44600, 0x11dfe3c0, 0x38, 0x0, 0x11e00618, 0x4f18f3)
	/home/jenkins/workspace/arduino-cli-pr-builder/src/github.com/arduino/arduino-cli/vendor/github.com/codeclysm/extract/extract.go:64 +0x265 fp=0x12183c08 sp=0x12183b80 pc=0x65a925
github.com/arduino/arduino-cli/arduino/resources.(*DownloadResource).Install(0x11fd4570, 0x11e01178, 0x11e01180, 0x11e00618, 0x0, 0x0)
	/home/jenkins/workspace/arduino-cli-pr-builder/src/github.com/arduino/arduino-cli/arduino/resources/install.go:61 +0x343 fp=0x12183c80 sp=0x12183c08 pc=0x65f243
github.com/arduino/arduino-cli/arduino/cores/packagemanager.(*PackageManager).InstallTool(0x11f1dd40, 0x11fc72a0, 0x0, 0x0)
	/home/jenkins/workspace/arduino-cli-pr-builder/src/github.com/arduino/arduino-cli/arduino/cores/packagemanager/install_uninstall.go:85 +0xde fp=0x12183cd0 sp=0x12183c80 pc=0x771d9e
github.com/arduino/arduino-cli/commands/core.InstallToolRelease(0x11f1dd40, 0x11fc72a0)
	/home/jenkins/workspace/arduino-cli-pr-builder/src/github.com/arduino/arduino-cli/commands/core/install.go:151 +0x143 fp=0x12183d3c sp=0x12183cd0 pc=0x89e863
github.com/arduino/arduino-cli/commands/core.installPlatform(0x11f1dd40, 0x120d71c0, 0x1200b8a8, 0x2, 0x2)
	/home/jenkins/workspace/arduino-cli-pr-builder/src/github.com/arduino/arduino-cli/commands/core/install.go:95 +0x2f5 fp=0x12183e28 sp=0x12183d3c pc=0x89e035
github.com/arduino/arduino-cli/commands/core.installPlatformByRef(0x11f1dd40, 0x11f1dd00)
	/home/jenkins/workspace/arduino-cli-pr-builder/src/github.com/arduino/arduino-cli/commands/core/install.go:66 +0x65 fp=0x12183e5c sp=0x12183e28 pc=0x89dce5
github.com/arduino/arduino-cli/commands/core.runInstallCommand(0x11e5ba40, 0x11f44110, 0x1, 0x2)
	/home/jenkins/workspace/arduino-cli-pr-builder/src/github.com/arduino/arduino-cli/commands/core/install.go:53 +0xac fp=0x12183e90 sp=0x12183e5c pc=0x89dc5c
github.com/arduino/arduino-cli/vendor/github.com/spf13/cobra.(*Command).execute(0x11e5ba40, 0x11f440e0, 0x2, 0x2, 0x11e5ba40, 0x11f440e0)
	/home/jenkins/workspace/arduino-cli-pr-builder/src/github.com/arduino/arduino-cli/vendor/github.com/spf13/cobra/command.go:760 +0x20e fp=0x12183f04 sp=0x12183e90 pc=0x8538fe
github.com/arduino/arduino-cli/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x11e5ab40, 0x11f42280, 0x11e5b7c0, 0x11e5b400)
	/home/jenkins/workspace/arduino-cli-pr-builder/src/github.com/arduino/arduino-cli/vendor/github.com/spf13/cobra/command.go:846 +0x28a fp=0x12183fa0 sp=0x12183f04 pc=0x85421a
github.com/arduino/arduino-cli/vendor/github.com/spf13/cobra.(*Command).Execute(0x11e5ab40, 0x8bd808, 0x8be737)
	/home/jenkins/workspace/arduino-cli-pr-builder/src/github.com/arduino/arduino-cli/vendor/github.com/spf13/cobra/command.go:794 +0x21 fp=0x12183fb4 sp=0x12183fa0 pc=0x853f71
main.main()
	/home/jenkins/workspace/arduino-cli-pr-builder/src/github.com/arduino/arduino-cli/main.go:30 +0x1f fp=0x12183fc8 sp=0x12183fb4 pc=0x8be76f
runtime.main()
	/home/jenkins/go1.10.2-patched/src/runtime/proc.go:198 +0x1ea fp=0x12183ff0 sp=0x12183fc8 pc=0x4296aa
runtime.goexit()
	/home/jenkins/go1.10.2-patched/src/runtime/asm_386.s:1665 +0x1 fp=0x12183ff4 sp=0x12183ff0 pc=0x44d621
goroutine 18 [syscall]:
os/signal.signal_recv(0x0)
	/home/jenkins/go1.10.2-patched/src/runtime/sigqueue.go:139 +0x12f
os/signal.loop()
	/home/jenkins/go1.10.2-patched/src/os/signal/signal_unix.go:22 +0x1a
created by os/signal.init.0
	/home/jenkins/go1.10.2-patched/src/os/signal/signal_unix.go:28 +0x37
goroutine 33 [IO wait]:
internal/poll.runtime_pollWait(0x3210d180, 0x72, 0x0)
	/home/jenkins/go1.10.2-patched/src/runtime/netpoll.go:173 +0x4b
internal/poll.(*pollDesc).wait(0x120fa0fc, 0x72, 0xced100, 0x0, 0x0)
	/home/jenkins/go1.10.2-patched/src/internal/poll/fd_poll_runtime.go:85 +0x8c
internal/poll.(*ioSrv).ExecIO(0xd35c30, 0x120fa014, 0x9ef138, 0x0, 0x0, 0x2)
	/home/jenkins/go1.10.2-patched/src/internal/poll/fd_windows.go:223 +0xf1
internal/poll.(*FD).Read(0x120fa000, 0x12108000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/home/jenkins/go1.10.2-patched/src/internal/poll/fd_windows.go:484 +0x1f0
net.(*netFD).Read(0x120fa000, 0x12108000, 0x1000, 0x1000, 0x1, 0x0, 0x429bcb)
	/home/jenkins/go1.10.2-patched/src/net/fd_windows.go:151 +0x3f
net.(*conn).Read(0x12106000, 0x12108000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/home/jenkins/go1.10.2-patched/src/net/net.go:176 +0x56
net/http.(*persistConn).Read(0x120115e0, 0x12108000, 0x1000, 0x1000, 0x4, 0x120c1800, 0x11dc01f0)
	/home/jenkins/go1.10.2-patched/src/net/http/transport.go:1453 +0x15b
bufio.(*Reader).fill(0x120fe030)
	/home/jenkins/go1.10.2-patched/src/bufio/bufio.go:100 +0xea
bufio.(*Reader).Peek(0x120fe030, 0x1, 0x0, 0x0, 0x0, 0x1210e000, 0x0)
	/home/jenkins/go1.10.2-patched/src/bufio/bufio.go:132 +0x2f
net/http.(*persistConn).readLoop(0x120115e0)
	/home/jenkins/go1.10.2-patched/src/net/http/transport.go:1601 +0x17c
created by net/http.(*Transport).dialConn
	/home/jenkins/go1.10.2-patched/src/net/http/transport.go:1237 +0x7f4
goroutine 34 [select]:
net/http.(*persistConn).writeLoop(0x120115e0)
	/home/jenkins/go1.10.2-patched/src/net/http/transport.go:1822 +0xfc
created by net/http.(*Transport).dialConn
	/home/jenkins/go1.10.2-patched/src/net/http/transport.go:1238 +0x815
goroutine 41 [IO wait]:
internal/poll.runtime_pollWait(0x3210d100, 0x72, 0x0)
	/home/jenkins/go1.10.2-patched/src/runtime/netpoll.go:173 +0x4b
internal/poll.(*pollDesc).wait(0x1217a0fc, 0x72, 0xced100, 0x0, 0x0)
	/home/jenkins/go1.10.2-patched/src/internal/poll/fd_poll_runtime.go:85 +0x8c
internal/poll.(*ioSrv).ExecIO(0xd35c30, 0x1217a014, 0x9ef138, 0x11f4b005, 0x294, 0x0)
	/home/jenkins/go1.10.2-patched/src/internal/poll/fd_windows.go:223 +0xf1
internal/poll.(*FD).Read(0x1217a000, 0x11f4b000, 0x800, 0x800, 0x0, 0x0, 0x0)
	/home/jenkins/go1.10.2-patched/src/internal/poll/fd_windows.go:484 +0x1f0
net.(*netFD).Read(0x1217a000, 0x11f4b000, 0x800, 0x800, 0xa, 0x12176000, 0x12189027)
	/home/jenkins/go1.10.2-patched/src/net/fd_windows.go:151 +0x3f
net.(*conn).Read(0x121062d0, 0x11f4b000, 0x800, 0x800, 0x0, 0x0, 0x0)
	/home/jenkins/go1.10.2-patched/src/net/net.go:176 +0x56
crypto/tls.(*block).readFromUntil(0x120fc7c0, 0x34050060, 0x121062d0, 0x5, 0x121062d0, 0x2c)
	/home/jenkins/go1.10.2-patched/src/crypto/tls/conn.go:493 +0x76
crypto/tls.(*Conn).readRecord(0x1217c000, 0x9ef517, 0x1217c0a0, 0x1)
	/home/jenkins/go1.10.2-patched/src/crypto/tls/conn.go:595 +0xbd
crypto/tls.(*Conn).Read(0x1217c000, 0x12189000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/home/jenkins/go1.10.2-patched/src/crypto/tls/conn.go:1156 +0xdd
net/http.(*persistConn).Read(0x12176000, 0x12189000, 0x1000, 0x1000, 0x5, 0x12100b40, 0x1201c9b0)
	/home/jenkins/go1.10.2-patched/src/net/http/transport.go:1453 +0x15b
bufio.(*Reader).fill(0x120ff7d0)
	/home/jenkins/go1.10.2-patched/src/bufio/bufio.go:100 +0xea
bufio.(*Reader).Peek(0x120ff7d0, 0x1, 0x0, 0x0, 0x0, 0x1210e700, 0x0)
	/home/jenkins/go1.10.2-patched/src/bufio/bufio.go:132 +0x2f
net/http.(*persistConn).readLoop(0x12176000)
	/home/jenkins/go1.10.2-patched/src/net/http/transport.go:1601 +0x17c
created by net/http.(*Transport).dialConn
	/home/jenkins/go1.10.2-patched/src/net/http/transport.go:1237 +0x7f4
goroutine 42 [select]:
net/http.(*persistConn).writeLoop(0x12176000)
	/home/jenkins/go1.10.2-patched/src/net/http/transport.go:1822 +0xfc
created by net/http.(*Transport).dialConn
	/home/jenkins/go1.10.2-patched/src/net/http/transport.go:1238 +0x815
goroutine 45 [select]:
github.com/arduino/arduino-cli/vendor/go.bug.st/cleanup.InterruptableContext.func1(0xa5c920, 0x11f1c840, 0x11e00658)
	/home/jenkins/workspace/arduino-cli-pr-builder/src/github.com/arduino/arduino-cli/vendor/go.bug.st/cleanup/context.go:21 +0x116
created by github.com/arduino/arduino-cli/vendor/go.bug.st/cleanup.InterruptableContext
	/home/jenkins/workspace/arduino-cli-pr-builder/src/github.com/arduino/arduino-cli/vendor/go.bug.st/cleanup/context.go:18 +0x57
goroutine 81 [IO wait]:
internal/poll.runtime_pollWait(0x3210d000, 0x72, 0x0)
	/home/jenkins/go1.10.2-patched/src/runtime/netpoll.go:173 +0x4b
internal/poll.(*pollDesc).wait(0x11ea00fc, 0x72, 0xced100, 0x0, 0x0)
	/home/jenkins/go1.10.2-patched/src/internal/poll/fd_poll_runtime.go:85 +0x8c
internal/poll.(*ioSrv).ExecIO(0xd35c30, 0x11ea0014, 0x9ef138, 0x0, 0x5b04a7, 0x0)
	/home/jenkins/go1.10.2-patched/src/internal/poll/fd_windows.go:223 +0xf1
internal/poll.(*FD).Read(0x11ea0000, 0x121a6000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
	/home/jenkins/go1.10.2-patched/src/internal/poll/fd_windows.go:484 +0x1f0
net.(*netFD).Read(0x11ea0000, 0x121a6000, 0x8000, 0x8000, 0xff0072c0, 0x0, 0x2dde)
	/home/jenkins/go1.10.2-patched/src/net/fd_windows.go:151 +0x3f
net.(*conn).Read(0x11e006c8, 0x121a6000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
	/home/jenkins/go1.10.2-patched/src/net/net.go:176 +0x56
crypto/tls.(*block).readFromUntil(0x11ea5fa0, 0x34050060, 0x11e006c8, 0x5, 0x11e006c8, 0x5b4086)
	/home/jenkins/go1.10.2-patched/src/crypto/tls/conn.go:493 +0x76
crypto/tls.(*Conn).readRecord(0x1217c480, 0x9ef517, 0x1217c520, 0x0)
	/home/jenkins/go1.10.2-patched/src/crypto/tls/conn.go:595 +0xbd
crypto/tls.(*Conn).Read(0x1217c480, 0x121ef000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/home/jenkins/go1.10.2-patched/src/crypto/tls/conn.go:1156 +0xdd
bufio.(*Reader).Read(0x1213a630, 0x11e4cca0, 0x9, 0x9, 0x337, 0x0, 0x427514)
	/home/jenkins/go1.10.2-patched/src/bufio/bufio.go:216 +0x22b
io.ReadAtLeast(0xa58290, 0x1213a630, 0x11e4cca0, 0x9, 0x9, 0x9, 0x9ef54c, 0x11e0c59c, 0x4043d6)
	/home/jenkins/go1.10.2-patched/src/io/io.go:
309 +0x68
io.ReadFull(0xa58290, 0x1213a630, 0x11e4cca0, 0x9, 0x9, 0x11e24800, 0x121b7e68, 0x11e00001)
	/home/jenkins/go1.10.2-patched/src/io/io.go:327 +0x45
net/http.http2readFrameHeader(0x11e4cca0, 0x9, 0x9, 0xa58290, 0x1213a630, 0x0, 0x0, 0x0, 0x3adc, 0x4000)
	/home/jenkins/go1.10.2-patched/src/net/http/h2_bundle.go:1517 +0x66
net/http.(*http2Framer).ReadFrame(0x11e4cc80, 0x12134400, 0x0, 0x0, 0x0)
	/home/jenkins/go1.10.2-patched/src/net/http/h2_bundle.go:1775 +0x82
net/http.(*http2clientConnReadLoop).run(0x121b7fdc, 0x9ef260, 0x121fffdc)
	/home/jenkins/go1.10.2-patched/src/net/http/h2_bundle.go:8028 +0x6d
net/http.(*http2ClientConn).readLoop(0x11e3e480)
	/home/jenkins/go1.10.2-patched/src/net/http/h2_bundle.go:7956 +0x58
created by net/http.(*http2Transport).newClientConn
	/home/jenkins/go1.10.2-patched/src/net/http/h2_bundle.go:7143 +0x576
Error
Process exited with code 2
The error has no formatter, which is a bug. Report the issue to XOD developers.

Any suggestions on how to fix it?

EDIT: Seems like it has something to do with admin privileges.

Compilation failed
Command maxBuffer size exceeded
The generated C++ code contains errors. It can be due to a bad node implementation or if your board is not compatible with XOD runtime code. The original compiler error message is above. Fix C++ errors to continue. If you believe it is a bug, report the problem to XOD developers.

It ran out of memory trying to allocate 8MB (which could be in addition to other memory already allocated). I assume this was on your computer since it was compiling. How much RAM does your computer have? Is there other stuff running you could shutdown to do the compile? Can you start with a smaller program just to verify things work in general?

That’s pretty impossible I have 32GB of RAM. Be aware that the second code snippet is from the build while the first one is from the “download & install” routine.

The first snippets issue was solved by starting xod with admin rights. The second one is when I hit the upload button. Sorry for the confusion.