Hi,
I'm an engineer not a programmer so out of my comfort zone beyond simple c type programming.
A while back I designed a custom PCB similar to Arduino MKRZERO, initially I used the same uC, a SAMD21G18. I wrote a fairly extensive program based on a custom board variant and had the whole thing working tickety-boo.
Fast forward to Covid and supply line disruptions and chip shortages I could not get the SAMD21G18 parts so I moved to the SAMD21G17. I built one of my custom boards with the 17 variation and the problem I have is that when Arduino attempts to load the main program via the bootloader (using the open source bossac uploader), bossac does not recognize the G17 chip ID 0x10010093 and quits with an unrecognized chip ID message.
I know for a fact my code compiles and works because as a work around I compiled a no bootloader version and loaded it using atmel studio and a Segger programmer. The problem is I need to do further development and would like to simply do it using Arduino do update the board using the normal bootloader that uses bossac via the USB port (just like a conventional Arduino board and the way I was doing it when I had the G18A parts.)
A bit of google searching and bossa, and bossac are open source and available here:
https://github.com/mattairtech/ArduinoCore-samdIt looks like the latest version actually supports some varieties of the SAMD21G17A, just not the one I'm using. I'm pretty sure if I just added one line to device.cpp and then compiled bossa for Win7, my problem would be solved.
case 0x10010001: // J17A
case 0x10010006: // G17A
case 0x10010093: // G17D 128KB FLASH 48TQFP <--- this is the new line required at about line 456 in devices.cpp there are 4 instances of G17A, however all have different chip ID's
case 0x1001000b: // E17A
case 0x10010010: // G17A WLCSP
_family = FAMILY_SAMD21;
flashPtr = new D2xNvmFlash(_samba, "ATSAMD21x17", 2048, 64, 0x20002000, 0x20004000) ;
break;
I think but I'm not sure the project needs to be compiled on a Linux machine, and I work strictly on Win7 (64 )
So for you Linux and Github savvy programmers, what do you suggest?