8Bit or 32Bit processors
-
I have an AVR Dragon, which also uses a 10-pin j-tag connection, but I see from this: http://www.atmel.com/webdoc/atmelice/atmelice.using_ocd_physical_swd.html
that it's not going to be pin compatible with the 10-pin j-tag connection used for SAMD21. Instead, it needs to be:

The cabling that comes with the el cheapo SWD programmers doesn't seem right. It should be 10 pin (really 2x5 pin) to match the recommended. The Sparkfun SAMD21 board appears as though it is made to dock with such a cable.
Even the Segger doesn't appear to come with quite the right cable for an SAMD21.
It should be using one of these cables instead: https://www.adafruit.com/product/1675
Right?
-
SWD is using only two signals for programming data and clock. then vcc for ref, and gnd. that's all.
-
SWD is using only two signals for programming data and clock. then vcc for ref, and gnd. that's all.
-
yep exactly
-
A number of people have ask me about why I'm using 32bit processors when an 8bit will do. Well its simple, for small development projects of less that a few hundreds unit, the larger flash, larger ram, faster CPU, lower power devices, and cheaper raw devices, allow for faster code development... no time wasted on how to save flash or ram space.. seldom having to concern myself about CPU speed.
If I'm doing a project that requires very large volume, or special needs, I will again consider an 8 or 16bit processor, but again, these days often the 32bit devices are cheaper and more functional.
Below are a number of CPU boards with RFM69 or RFM95 Radios attach that can be used with MySensor.
In MySensor space, for my projects, my favorite 32bit processor board is:
RocketScream M0 ultra pro Ver2, RFM69 or RFM95 radio, battery connector/charger, USB port, EUI64 chip, large external flash, very low power, u.FL or SMA connector, great support...
http://www.rocketscream.com/blog/product/mini-ultra-pro-v2-with-radio/Other 32 Bit:
Adafruit Feather LoRa M0, NO EUI64, No External flash, battery connector
https://www.adafruit.com/product/3178 RFM95
https://www.adafruit.com/product/3176 RFM69Non 32 bit processors:
MoteinoMega LoRa, ATmega1284P, RFM69 or RFM95, EUI64 chip, large external flash, u.FL or SMA connector
https://lowpowerlab.com/shop/product/119Moteino LoRa, ATmega328P, RFM69 or RFM95, large external flash, NO EUI64 chip
https://lowpowerlab.com/shop/product/99Adafruit Feather LoRa, ATmega32U4 CPU, NO EUI64, No External flash, battery connector, RFM69 or RFM95
https://www.adafruit.com/product/3078@lafleur I have tried a few of those boards you listed. Moteino Mega and RocketScream Ultra Pro V2 are the two I would always use for >32kb sketches. Moteino Mega is still my favourite - I have three of these. One is working as MySensors rfm69 GW. Another one is deployed for LMAC LoraWAN stack with TTN GW.
RocketScream has more powerful processor and a battery charger. I used it for GPS tracking. Excellent board.
Adafruit Feather - I looked briefly, but I did not like it does not have the on-board eeprom (why? It is not cheap) and comes with an amplified version of rfm69 only - not good for a battery powered sensor. -
There is a "BOSA" compatible bootloader, I have still on my todo list to verify that this is working (will be before makerfaire in Eindhoven, as I have promised to bring the new sensebender micro mk2 with me)
I have created the sensebender micro mk2, which still needs verification.. (For my part, activity have been low due to other work related projects..)
Software should be possible in arduino IDE (the core is the same as in atsamd21, which is used by the Sensebender Gateway.. Only difference is that it misses USB interface.
@tbowmo said in 8Bit or 32Bit processors:
I have created the sensebender micro mk2, which still needs verification.. (For my part, activity have been low due to other work related projects..)
I saw it on the github. When are you planning to release it proving all goes well?
-
using d21e, so i burn a bootloader like i said above with a Segger OB j-link, clone i guess. Then you just need usb
-
I suppose the SAMD20 is going to be a bit simpler to make into a node than the SAMD21 because with the SAMD20 there's no surface mount USB connector to contend with? Are there any other reasons (maybe power consumption? Or, maybe ease of use?) for preferring one type over the other?
Also, are most folks here using the TQFP32 version (aka SAMD20E), or instead the versions with more pins (48 or 64)? I was surprised to see that the Sparkfun board's mcu has so many chip pins on its ARM MCU (it appears to be using the TQFP48, aka SAMD21G).
-
I used the 64pin variant on the Sensebender GateWay, but as the sensebender micro mk2, is a "minimalistic" node, I chose to go for a 32pin.
You do not need to add the USB to a SAMD21, it can run fine without it (being like a SAMD20 then). The reason why I went for the SAMD20, is because it is a bit cheaper, and I didn't need the USB that is in the D21 chip.
-
@tbowmo said in 8Bit or 32Bit processors:
I have created the sensebender micro mk2, which still needs verification.. (For my part, activity have been low due to other work related projects..)
I saw it on the github. When are you planning to release it proving all goes well?
-
Haven't come around to verify the micro mk2 yet.. (spring / summer, so have lot's of other things on my agenda :))
@tbowmo said in 8Bit or 32Bit processors:
Haven't come around to verify the micro mk2 yet.. (spring / summer, so have lot's of other things on my agenda :))
Maybe try something even simpler? That ways there's even less to assemble and verify.
It's nice to have a solid working "base case" as a foundation and then build up from there.
I think for me the simplest case is: just 1 LED and one SPI radio--and the SPI radio is "optional". :) It would have a 4 header pin connector for the SWD. Maybe that's it, plus the barest minimum of passives needed to make it work.
-
So, I ordered one of these:
https://www.amazon.com/gp/product/B01EE4WAC8/ref=ox_sc_act_title_2?ie=UTF8&psc=1&smid=A30Y6WWS77DGEW
and I'll manual wire it to the sparkfun SAMD21G to get some experience with how ST-LINK works. -
I have an AVR Dragon, which also uses a 10-pin j-tag connection, but I see from this: http://www.atmel.com/webdoc/atmelice/atmelice.using_ocd_physical_swd.html
that it's not going to be pin compatible with the 10-pin j-tag connection used for SAMD21. Instead, it needs to be:

The cabling that comes with the el cheapo SWD programmers doesn't seem right. It should be 10 pin (really 2x5 pin) to match the recommended. The Sparkfun SAMD21 board appears as though it is made to dock with such a cable.
Even the Segger doesn't appear to come with quite the right cable for an SAMD21.
It should be using one of these cables instead: https://www.adafruit.com/product/1675
Right?
@NeverDie said in 8Bit or 32Bit processors:
It should be using one of these cables instead: https://www.adafruit.com/product/1675
Argh. I hadn't really noticed before, but the pitch (1.72mm) on the SWD connector specification is much smaller than what I'm used to. In addition, the Sparkfun board arrived, and it came with no pins installed (actually no pins at all) for the SWD. It would require a special order for 1.72mm pins from I'm not sure where.
-
Anyone else here tried the Sparkfun SAMD21 board? So far, I'm having trouble getting it to upload a new sketch.
-
@NeverDie said in 8Bit or 32Bit processors:
It should be using one of these cables instead: https://www.adafruit.com/product/1675
Argh. I hadn't really noticed before, but the pitch (1.72mm) on the SWD connector specification is much smaller than what I'm used to. In addition, the Sparkfun board arrived, and it came with no pins installed (actually no pins at all) for the SWD. It would require a special order for 1.72mm pins from I'm not sure where.
@NeverDie said in 8Bit or 32Bit processors:
@NeverDie said in 8Bit or 32Bit processors:
It should be using one of these cables instead: https://www.adafruit.com/product/1675
Argh. I hadn't really noticed before, but the pitch (1.72mm) on the SWD connector specification is much smaller than what I'm used to. In addition, the Sparkfun board arrived, and it came with no pins installed (actually no pins at all) for the SWD. It would require a special order for 1.72mm pins from I'm not sure where.
Order a set of pogo pins and make yourself an adapter PCB maybe ?
-
@NeverDie said in 8Bit or 32Bit processors:
@NeverDie said in 8Bit or 32Bit processors:
It should be using one of these cables instead: https://www.adafruit.com/product/1675
Argh. I hadn't really noticed before, but the pitch (1.72mm) on the SWD connector specification is much smaller than what I'm used to. In addition, the Sparkfun board arrived, and it came with no pins installed (actually no pins at all) for the SWD. It would require a special order for 1.72mm pins from I'm not sure where.
Order a set of pogo pins and make yourself an adapter PCB maybe ?
@Nca78 said in 8Bit or 32Bit processors:
@NeverDie said in 8Bit or 32Bit processors:
@NeverDie said in 8Bit or 32Bit processors:
It should be using one of these cables instead: https://www.adafruit.com/product/1675
Argh. I hadn't really noticed before, but the pitch (1.72mm) on the SWD connector specification is much smaller than what I'm used to. In addition, the Sparkfun board arrived, and it came with no pins installed (actually no pins at all) for the SWD. It would require a special order for 1.72mm pins from I'm not sure where.
Order a set of pogo pins and make yourself an adapter PCB maybe ?
That's a good suggestion. However, I think I may just solder the four key wires directly to the board, because presently I'm viewing the Sparkfun board as just a proof-of-concept and a test of whether or not it's ready for prime time. If that works out, then I plan to shift into making some specialized DIY nodes based on the same SAMD21..
-
I found my error. It turns out there's an Arduino board definition file for the Sparkfun SAMD21 mini. Once I installed that, sketches upload, verify, and work fine, although I do still get a mysterious error message "An error occurred while uploading this sketch." Meh, at least so far it doesn't seem to matter.
So, thinking about this a bit more, I think a good next step might be making a minimalist SAMD21 pro mini, but using the TQFP32 instead of the TQFP48 that sparkfun uses. I'm hoping that the TQFP32 will be easier to solder. The resulting board may not turn out to be 100% equivalent, but it will be interesting to see what the trade-off is, if any, that led Sparkfun to go with the TQFP48.
-
Perhaps they need the extra pins that are available on the tqfp48? Can't remember if there is an additional sercom device in the 48pin, or if it's first available int he 64pin variant... But that might also be the reason why they chose to use that device..
-
Looks like my assumption was wrong. Delving into it more closely, I suspect the TQFP64 will be the easiest to solder. Why? Because the pin-to-pin pitch on the TQFP64 is 12mm, whereas on the TQFP48 it's 9mm, and on the TQFP32 it's only 8mm. At least to me, the solder bridges--and the alignment of pin-to-pad-- I get when the pin spacing is too close is what makes the soldering hard on these SMD's.Scratch that. It didn't make sense. I was looking at the wrong dimension. The pitch on the TQFP64 and TQFP48 is 0.5mm, whereas on the TQFP32 it's 0.8mm. So my assumption was correct after all.
-
Perhaps they need the extra pins that are available on the tqfp48? Can't remember if there is an additional sercom device in the 48pin, or if it's first available int he 64pin variant... But that might also be the reason why they chose to use that device..
@tbowmo said in 8Bit or 32Bit processors:
Perhaps they need the extra pins that are available on the tqfp48? Can't remember if there is an additional sercom device in the 48pin, or if it's first available int he 64pin variant... But that might also be the reason why they chose to use that device..
4 SERCOMs on the 32 pins instead of 6 on the 48 pins.
10 ADC channels instead of 14 (and 20 on the 64 pins)
10 * 6 X&Y lines on the touch controller instead of 12 * 10 for 48 pins and 16*16 for 64 pins
64 pins also have 5 Timer Counter instances, it's 3 on 32/48 pinsThese are all the differences (with of course different number of GPIOs),, everything else is similar in the datasheet.