8Bit or 32Bit processors
-
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
-
As always it's all a matter of choosing the right solution for every needs. If you need to have a battery powered sensors that is going to sleep 99.999% of the time with a 1-2 years battery life, you will look for the lowest standby drain power, while if you need processor power, ram, storage etc you need to look at the boards you mentioned
-
Hi lafleur!
I am glad to see that you are using the Adafruit Feather M0. Since I do have some issues with that, I would be grateful if you could have a look at my problem and help me out.
https://forum.mysensors.org/topic/6908/adafruit-feather-m0-rfm69hcw-with-mysensors
-
I'm on travel, and do not have any hardware to test with...
some notes:
Use generic M0 processor definition tool-->board--> Arduino zero (native USB port)
If I remember, 2.1.1 has NOT yet implemented sleep for M0 processors
Here is a striped down version of your code.... get it to work first sending messages to your gateway, then start adding your real code back.... This complies, but I DID NOT HAVE ANY HW to test it on...
Make sure you check the radio pins on the feather and that they are correct.
/** * The MySensors Arduino library handles the wireless radio link and protocol * between your home built sensors/actuators and HA controller of choice. * The sensors forms a self healing radio network with optional repeaters. Each * repeater and gateway builds a routing tables in EEPROM which keeps track of the * network topology allowing messages to be routed to nodes. * * Created by Henrik Ekblad <henrik.ekblad@mysensors.org> * Copyright (C) 2013-2015 Sensnology AB * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors * * Documentation: http://www.mysensors.org * Support Forum: http://forum.mysensors.org * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * version 2 as published by the Free Software Foundation. * ******************************* * * DESCRIPTION * * Example sketch showing how to send in DS1820B OneWire temperature readings back to the controller * http://www.mysensors.org/build/temp */ // Enable debug prints to serial monitor //#define MY_DEBUG // Enable and select radio type attached //#define MY_RADIO_NRF24 #define MY_RADIO_RFM69 #include <SPI.h> #include <MySensors.h> unsigned long SEND_FREQUENCY = 10000; // Minimum time between send (in milliseconds). We don't want to spam the gateway. unsigned long currentTime = 0; unsigned long lastSendTime = 0; unsigned long keepaliveTime = 0; #define MY_RF69_SPI_CS 8 #define MY_RF69_IRQ_PIN 7 #define MY_RF69_IRQ_NUM 4 // Initialize temperature message MyMessage msg(0,V_TEMP); /* ******************************************** */ void before() { } /* ******************************************** */ void setup() { } /* ******************************************** */ void presentation() { // Send the sketch version information to the gateway and Controller sendSketchInfo("Temperature Sensor", "1.1"); //present(0, S_TEMP); } /* ******************************************** */ void loop() { currentTime = millis(); /* ***************** Send Sensor Data ***************** */ if (currentTime - lastSendTime >= SEND_FREQUENCY) // Only send values at a maximum rate { Serial.println("*** Sending Sensor Data"); lastSendTime = currentTime; // lets send some data float temperature = 67.4; // Send in the new temperature send(msg.setSensor(0).set(temperature,1)); } // end of if } // end of loop
-
I see "cheap" and then 30-40$ boards as suggestions, am I missing something ?
-
"cheap" is all related to where you live
-
The M0 chip cost less that the 8bit 328, so building your own boards, it cost less...
Then you need to add a radio, $2 to $9. Crystal, $.50, connectors, flash, voltage regulators, leds, capacitors, resistors, pcb board.... ect, all add cost....
But vendors building board, need to make a profit to stay alive, so you pay for their work....
So yes, finish boards in small quantity cost $20 to $40 or so.... not a bad price for what you get.....
-
I see, I didn't realize there were M0 chips so insanely cheap.
-
As manufacturing of chips goes to smaller and smaller die size, chip cost go down and preformance goes up..... older processors cost more to build that newer parts!
It all means better performance, less power and more features for less money...
The intel 8080 when it was introduced was $360, power hungry, no ram, no storage, no I/O, needed a lot of support chips.... we have come a long way!!!!
-
You should also add this to your test code to see debug messages from the MySensor stack.. Also add to gateway, so that you can see what happening on both ends....
/* Enable debug prints to serial monitor on port 0 */ #define MY_DEBUG // used by MySensor #define MY_DEBUG_VERBOSE_RFM69
-
Thank you very much! This is a big step in the right direction for me and I hope that I can get it to work with that
To add to this discussion:
These radios come already assembled. It is true that you could save some money by assembling them yourself and maybe more by ordering directly from Hong Kong (which takes anything between 4-10 weeks) and hoping that they sent you the right stuff. But if you add up the stuff that you would need and the time to solder etc. then at least I would end up spending more for a bigger and uglier radio.
-
Still a pro mini is well tested platform, performance is not an issue for a sensor node anyway
-
@gohan Pro-mini, is a great part, but sometime you need a lot more! 32 bit is the future for me, less power, less cost, more resources....less hassles...
-
Agreed but at the moment you have to choose between the future that isn't sure to work or the past that has been proven reliable
-
The only way we can get the shiny new things to be proven hardware, is to have people build stuff using it That way, we can have more people testing the hardware, and reporting any bugs (if there is any), and have a better chance for getting it to be the next big thing
-
I was wondering where you can get a M0 processor for less then the price of an atmega328p ? Most SAMD21's I see are 5 times the price of an atmega328p (normal given it's much better capacities).
-
atmega328p costs 2.07$ on mouser : http://www.mouser.dk/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-AU/
If you take the equivalent atsamd20E15, it cost 1.84$ http://www.mouser.dk/ProductDetail/Microchip-Technology-Atmel/ATSAMD20E15A-AU
(both have 32Kb flash)
If you beef up the atsam to the largest memory, it costs 2.36$ http://www.mouser.dk/ProductDetail/Microchip-Technology-Atmel/ATSAMD20E18A-AU
But then you also have 256Kb of flash and 32Kb ram available, for .29$ extra (compared to the atmega328)..
Of course that is not atsamd21, but for a standard node you don't need the USB capabilities of the '21, and a '20 should be enough..
-
On AliExpress you can find STM32 with Cortex M0 for as low as 0.4$ per unit. Not compatible with Arduino unfortunately but for that price the specs are pretty impressive...
And the STM32F103C8T6 which are compatible with Arduino and soon compatible with MySensors are around 1$, similar price than AtMega328 but for Cortex M3 at 48MHz, 64KB of flash, 20KB or RAM and lots of extras.
-
@tbowmo said in 8Bit or 32Bit processors:
ATSAMD20E18A-AU
Too bad that MOUSER still charges me 20 EUR for transport, even for something as small as a single chip. I would need to buy for more then 50 EUR before transport cost is waived. How the suppliers on Aliexpress do it, I do not know.
-
@GertSanders said in 8Bit or 32Bit processors:
How the suppliers on Aliexpress do it, I do not know.
They just use cheaper shipping options that are much slower. It's possible in the US too as you can order PCBs from PCBs.io for 5$ shipping included, and they are in the US.
-
@GertSanders
ali, or chinese supplier, in fact are cheating a bit for getting those price.when ordering at mouser, i generally order some stock for future boards, and regarding some parts, like passives it's almost same price as ali and you're sure of the quality (and for some sensors i'm sure they're not out of specs, clones..) , with a bigger choice.
but sometimes i have some missing parts too
tme has low shipping cost, or Arrow.com is nice too as it's 20€ minimum order for getting free express shippingI don't know how to get cheaper then..
-
@scalz said in 8Bit or 32Bit processors:
Arrow.com is nice too as it's 20€ minimum order for getting free express shipping
Free shipping to Vietnam also
Thank you @scalz I love you
-
@Nca78
hehe, me too lol
octopart is your friend
-
@scalz said in 8Bit or 32Bit processors:
Arrow.com is nice too as it's 20€ minimum order for getting free express shipping
Looks promising! Thank you
Anything about quality - is it all genuine parts?
-
@sundberg84 for sure they are the same as mouser, digikey, farnell etc.. But they don't all have same stock and price. And it exists even more semiconductors suppliers. As always it depends what you need
-
@lafleur
Which IDE do you use/recommend for the 32-bit mcu's?In the 8-bit realm, I'm most familiar with the atmega328p. RAM is certainly limited, the 10-bit ADC leaves me wanting, no DAC, no RTC, and the only asynchronous counter is only 8 bits! So, for an upgrade, I'd like all those things and a wider counter. Ideally, it would have a large enough memory that I could easily download new sketches OTA without having to buy and install additional external flash memory (which is how the Moteino does it) to hold a new sketch until it has been validated as correctly received before it is installed and then activated as the primary sketch. On the other hand, I wouldn't want current consumption during sleep to be any worse than the atmega328p. It's ultra-low powerdown current consumption is what I find most attractive about the atmega328p, and it's one of the main reasons why I use it.
I suppose the other reason is an abundance of libraries that work with it and that are well supported (due to the large number of Arduino users asking and answering questions as well as writing libraries).
-
I use the standard Arduino IDE for most things but moving to PlatformIO as it's editor is so much better that the brain dead one in the Arduino IDE
-
@Nca78 said in 8Bit or 32Bit processors:
On AliExpress you can find STM32 with Cortex M0 for as low as 0.4$ per unit.
I can't find anything priced anywhere near that low. Would you mind posting some links?
-
@lafleur said in 8Bit or 32Bit processors:
I use the standard Arduino IDE for most things but moving to PlatformIO as it's editor is so much better that the brain dead one in the Arduino IDE
Have you tried ARMmbed? I have yet to try it, but I hear it's better than the Arduino IDE.
For all its flaws, the simplicity of the Arduino IDE is its strength. I've tried using Atmel studio, but it seemed rather bloated and not simple.
-
@NeverDie
maybe wrong, but i think mbed is online.. and not sure if mysensors would work out of the box.
On my side, i've tried Platform.io but it was unfortunately a bit buggy on my side, sometimes closing ide etc, well maybe was unlucky. My favorite is Visual Studio (you can get it for free with the Express Edition) with Visual Micro extension which then simply uses your arduino cores and boards files behind the scene. try it you won't be disappointed, fast and rocks
-
for visual studio
-
Did some checking, and apparently these $1.70 "blue pill" 32-bit ARM mcu boards are programmable from within the Arduino IDE:
[Edit: This tells how to do it: http://www.wifi4things.com/stm32f103c8t6-blue-pill-board-with-arduino-ide-on-linux/]
-
Thanks for the suggestion! I'll look into Visual Studio with Visual Micro extension.
-
@NeverDie said in 8Bit or 32Bit processors:
Did some checking, and apparently these $1.70 "blue pill" 32-bit ARM mcu boards are programmable from within the Arduino IDE:
Yes they are and they are getting some support in MySensors too. But they can't really be used for very low power nodes are sleep current is at 20uA minimum.
-
I just now did a quick survey of what's available in MCU's, and I have to say: if there's an MCU with markedly more capability, then one way or another you're going to pay extra for that. For instance, an mcu which can do 24-bit analog-to-digital is going to cost more than $5. i.e. I'm not seeing any great deals that come from switching to 32-bit per se. I assume that's because the market for 8-bit MCU's adjusts to stiffer 32-bit competition by more or less automatically lowering its price.
-
@NeverDie it depends on your application.
For example ATSAMD20E18A-AU is just over 2$, same price than atmega328 if you buy from a "reputable" source.
But it has many more capabilities that will save you external components: easier/faster design, lower power consumption, easier coding etc etc.I had a quick look at the datasheet and see many potential interesting uses for me :
- it can manage dozens of touch channels meaning I could use a much more simple design for the board in Livolo wall switch. And with 8uA in sleep mode with capacitive touch enabled it's saving power too
- it has 6 serial communication interfaces so it can have 2 high speed serial coms and manage A6 GSM module in debug mode, something I can't do with atmega328 but only with a mega2560 which is much more expensive
- integrated RTC so no need for it on my ADXL shield for example. And in sleep mode with RTC active it's using less current than atmega328 with watchdog timer activated for regular wake up.
Even if you buy atmega328 around 1$ on aliexpress you can quickly make your missing $ back in many use cases.
I'm seriously thinking about using it now
-
@Nca78 said in 8Bit or 32Bit processors:
For example ATSAMD20E18A-AU is just over 2$, same price than atmega328 if you buy from a "reputable" source.
And the ATSAMD20E17A-AU which is exactly identical except it "only" has 128k of flash instead of 256k is 1.56$ at Arrow. It's quite hard to keep the credit card in the pocket
-
This is more or less what I have said the last year or so.. Samd20 is even cheaper than atmega 328, if you choose the smallest variant with 32lb flash, and it scales "seamlessly" to 256kb, with same footprints.
-
@Nca78 said in 8Bit or 32Bit processors:
@NeverDie it depends on your application.
For example ATSAMD20E18A-AU is just over 2$, same price than atmega328 if you buy from a "reputable" source.
But it has many more capabilities that will save you external components: easier/faster design, lower power consumption, easier coding etc etc.I had a quick look at the datasheet and see many potential interesting uses for me :
- it can manage dozens of touch channels meaning I could use a much more simple design for the board in Livolo wall switch. And with 8uA in sleep mode with capacitive touch enabled it's saving power too
- it has 6 serial communication interfaces so it can have 2 high speed serial coms and manage A6 GSM module in debug mode, something I can't do with atmega328 but only with a mega2560 which is much more expensive
- integrated RTC so no need for it on my ADXL shield for example. And in sleep mode with RTC active it's using less current than atmega328 with watchdog timer activated for regular wake up.
Even if you buy atmega328 around 1$ on aliexpress you can quickly make your missing $ back in many use cases.
I'm seriously thinking about using it nowSay, that MCU you picked (https://www.digikey.com/product-detail/en/ATSAMD20E18A-AUT/ATSAMD20E18A-AUTCT-ND/4497257) does look like a winner. I especially like that it has so much memory, both SRAM and flash. As I doubt I would need to occupy that much flash memory all at once, it means it should make for a great staging area to store a new wireless OTA sketch as it trickles in.
- Is there already a serial bootloader available for it, or does that have yet to be written?
- Is there a schematic for a very basic "pro mini" type circuit that makes use of it? Having that as a reference point really helped when I first tried making circuits with the atmega328p.
- What about libraries and demo code?
- Can software for it be developed in either Arduino IDE or Visual Studio with Visual Micro extensions?
If all those pieces are in place and not still waiting to be developed, then I'd be interested in giving it a try too!
-
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:
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.
Any reason to use D20 instead of D21 except saving 0.3 - 0.5$ per unit ?
As the D21G18 is used in Arduino Zero it makes sure there's some stable support for that version.@NeverDie you can check that for "pro mini" style board: https://www.sparkfun.com/products/13664
-
It won't incorporate USB anyways, so I do not see a benefit of using D21.. And even 0.5$ could become a lot of money, when we start producing a million sensebender micro mk2
-
@NeverDie i'm using atsamd21 with mysensors since last year, no problem too with VS Studio
-
@tbowmo said in 8Bit or 32Bit processors:
It won't incorporate USB anyways, so I do not see a benefit of using D21.. And even 0.5$ could become a lot of money, when we start producing a million sensebender micro mk2
Yes yes I'm not talking about the sensebender micro for which saving money for a feature you don't use makes sense. But for small scale production like in my appartment ?
-
@Nca78
depends what you need, but what i like with usb (d21) is i just connect the cable and i can program it easily and at same time can have serial monitor (no ftdi needed). You need to burn a bootloader for that by using a swd programmer first.
or then use the cheaper version, program it through swd, but then need an ftdi for uart
depends.
perhaps i should release some design for it, but i think there are already a lot on internet
-
@scalz said in 8Bit or 32Bit processors:
@NeverDie i'm using atsamd21 with mysensors since last year, no problem too with VS Studio
And do you have to put a bootloader on it ? If yes what do you use for programming ?
-
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
-
@scalz said in 8Bit or 32Bit processors:
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
Any chance you have a link for purchase of the j-link ? There are a bunch on Ali but you never know what you get.
-
those at ali are the same. i bought it at the french Ebay because wasn't patient and the few bucks were worth it
-
@Nca78 said in 8Bit or 32Bit processors:
@NeverDie you can check that for "pro mini" style board: https://www.sparkfun.com/products/13664
Awesome! That greatly lowers the barriers to trying it. I just ordered one from Amazon: https://www.amazon.com/SparkFun-LYSB018RKKRVG-ELECTRNCS-SAMD21-Mini-Breakout/dp/B018RKKRVG/ref=sr_1_1?s=electronics&ie=UTF8&qid=1496436449&sr=1-1&keywords=samd21
There's a good chance I'll receive it this Sunday.It looks as though the Adafruit Feather is more or less the same type of SAMD21 board: https://www.amazon.com/Adafruit-Feather-M0-Basic-Proto/dp/B019MGQE8Y/ref=sr_1_6?ie=UTF8&qid=1496437154&sr=8-6&keywords=adafruit+feather
-
Took a closer look at the Sparkfun SAMD21 PCB. It's actually a four layer PCB, not the more ordinary two layer PCB. On the other hand, the Adafruit SAMD21 is a two layer PCB. The four layers explains why the Chinese knock-ffs look different from the Sparkfun version: https://www.aliexpress.com/item/SAMD21-M0-Mini-32-bit-ARM-Cortex-M0-core-Pins-soldered-Compatible-with-Arduino-Zero-Arduino/32779698644.html?spm=2114.01010208.3.10.0u636X&ws_ab_test=searchweb0_0,searchweb201602_5_10152_10065_10151_10130_10068_5010013_10136_10137_10060_10138_10155_10062_437_10154_10056_10055_10054_10059_303_100031_10099_10103_10102_10096_10052_10053_10107_10050_10142_10051_5030014_10084_10083_10119_10080_10082_10081_10178_10110_519_10111_10112_10113_10114_10182_10185_10078_10079_10073_10123_10120_10189_142-10050,searchweb201603_9,ppcSwitch_4&btsid=36be8280-4e44-474b-b3e4-2c9eef009d58&algo_expid=09284286-c141-4a88-bce8-2d8bb9d233d6-1&algo_pvid=09284286-c141-4a88-bce8-2d8bb9d233d6
-
I think it will be important to see how big a minimalist SAMD21 board needs to be while still remaining 2-layer. I'm guessing about half the size of the Adafruit board, since a lot of that board real estate is just prototyping area plus pinouts from the SAMD21.
Anyhow, I'm looking forward to not worrying about how many libraries I can load before running out of memory! Even that alone--at least during development--is worth spending some extra money.
-
What kind of hardware have people here had success in using for burning a bootloader and changing fuses on a SAMD21? For instance, will I need Atmel's ICE, or do these work just as well:
https://www.aliexpress.com/item/1PCS-AVR-JTAG-USB-Emulator-Debugger-download-AVR-JTAG-ICE-Download-Programmer-Atmega/32789255835.html?spm=2114.01010208.3.26.iO9ONh&ws_ab_test=searchweb0_0,searchweb201602_5_10152_10065_10151_10130_10068_5010014_10136_10137_10060_10138_10155_10062_437_10154_10056_10055_10054_10059_303_100031_10099_10103_10102_10096_10052_10053_10107_10050_10142_10051_5030014_10084_10083_10119_10080_10082_10081_10178_10110_519_10111_10112_10113_10114_10182_10185_10078_10079_10073_10123_10120_10189_142-10052_10152_10113_10120,searchweb201603_16,ppcSwitch_4&btsid=f5ac2ded-aae9-478c-a52d-08f2e72cc936&algo_expid=44d9bdb3-4da4-4810-a84b-23ba1337c57b-3&algo_pvid=44d9bdb3-4da4-4810-a84b-23ba1337c57b
-
@NeverDie you need SWD interface for burning a bootloader to them.
ST-link v2 should be ok and you can find cheaper clone, no idea for your other link.
Otherwise, like i said above, i'm using a Segger Jlink OB like this one http://www.ebay.com/itm/New-J-Link-OB-ARM-Debugger-Programmer-Downloader-replace-v8-SWD/141854905580?_trksid=p2047675.c100623.m-1&_trkparms=aid%3D222007%26algo%3DSIC.MBE%26ao%3D2%26asc%3D41375%26meid%3D188c2e52c5484de68b250d6f7dfb4d72%26pid%3D100623%26rk%3D2%26rkt%3D6%26sd%3D400943523132
Again you can find them cheaper at aliexpress, on my side i keep the insulating plastic cover in place
-
A bit off topic, but I like what this guy did with putting an OLED onto his SAMD21 board. Not sure where to get them, but they must be cheap, because his whole board costs $15 on Tindie.
https://www.tindie.com/products/microwavemont/ultra-zero-a-successor-of-sduino-zero/?pt=full_prod_search
-
@NeverDie don't they have something similar on adafruit?
-
-
This is the most "similar" one I've found on Adafruit:
https://www.adafruit.com/product/2900
That and the one that mfalkvidd just posted look a lot bigger to me.
-
well it is similar
maybe I confused another one that has a different processor, I remember they had one with a small LCD and processor together
-
The Adafruit one is 128x32. From the picture, it looks to be about twice the width of the one on the tindie board. So maybe it is 64x32? Like this one
https://www.aliexpress.com/item/White-0-49-inch-OLED-Display-Module-64x32-0-49-Screen-IIC-for-Arduino-AVR-STM32/32779893498.html
-
@mfalkvidd Looks like you nailed it.
-
So, back to the main topic: does SWD completely replace JTAG and everything else as a kind of all-in-one interface to the SAMD21? Is there even any point to using USB at all anymore? Can everything be done just through SWD?
-
SWD is the "jtag" interface for ARM Cortex processors.. Consider it as the atmel programmers for the atmega processors.. Only thing is that the SWD interface is common between all cortex processors, regardless of the vendor (STM, Atmel, Intel etc)
For the average john doe, that is used to Arduino (the IDE), USB is making things a lot easier, as you do not need to connect an external programmer to your device..
-
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.
-
@scalz
That would be just the top four pins in:
I guess one simply hand wires the connections every time one connects?
-
yep exactly
-
@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.
-
@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?
-
@scalz said in 8Bit or 32Bit processors:
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
Is this one any good ?
Ebay link
-
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.
-
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.
-
@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:
@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.
-
@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.
-
1.27mm headers 5x2 (.05in) Mouser 855-M50-3500542 made by Harwin
-
So as not to derail this thread, I've started a new thread here: https://forum.mysensors.org/topic/6961/minimalist-samd21-tqfp32-pro-mini
for further discussion related to the SAMD21.
-
@scalz said in 8Bit or 32Bit processors:
Arrow.com is nice too as it's 20€ minimum order for getting free express shippingJust received my first order today, delivered only 4 opening days after order in Vietnam, and ... no taxes not even VAT
In total i ordered 12 SAMD of 3 kinds, a few atsha and some 0603 ferrite beads my local sellers don't have. I was a bit surprised to see a 505010cm box. But then when I opened the box I understood. This is the packaging for 4 ATSAMD20: carton box containing a giant antistatic bag containing 2 plates made for 260 MCUs each and only 4 in the middle. Missing on the picture is the bubble wrap that was around the antistatic bag.
Packaging for other parts was not that delirious but still excessive imho, I guess they're not trying to be awarded a green labelIn the end a very positive experience: reasonable prices, not cutting corners on packaging, great express shipping (now I'm sure I'll never use DHL again...). I just need to buy another apartment for storage before I make a new order