nRF5 action!
-
[Edit: skip forward toward the end of this thread for the bluetooth action. The thread started on a different topic. ]
Objective: Start with the design of the Sparkfun SAMD21 mini board (https://www.sparkfun.com/products/13664) , which is a TQFP48, and see if I can port it to the SAMD21 TQFP32. Why? Pitch on the TQFP48 is 0.5mm, whereas on the TQFP32 it's 0.8. So, I'm theorizing that the TQFP32 will be easier to solder.
Motivation: If I can get this working, then I hope to use it as a basic building block for making wireless nodes.
Approach for first attempt: I started with the Sparkfun schematic (https://cdn.sparkfun.com/datasheets/Dev/Arduino/Boards/sparkfun-samd21-mini-breakout-v10.pdf and tried maintaining the same pin mapping using the TQFP32. The result was:0_1496686682351_Schematic_for_SAMD21_TQFP32_Pro_Mini _v001.pdf
From this it becomes evident that the TQPF32 version is lacking four pins that the TQFP48 version has, namely, pins: PA20, PA21, PB08, and PB09. However, the TQFP32 version has seven pins that aren't presently being used, namely: PA05,
PA22, PA23, PA24, PA25, PA27, and PA28.So, I'm thinking I will simply use four of the seven pins to cover for the 4 pins which the TQFP32 lacks that the TQFP48 has.
Questions:
- Does it matter which of the six pins I use for this purpose?
- What is the value for the inductor shown in the sparkfun schematic? It shows "30 ohms," but shouldn't the unit of measure be in Henries?
-
Correction: six of those seven "unused" pins are intended for other purposes.
PA22: SDA
PA23: SCL
PA24: USB_D-
PA25: USB_D+
PA27: TX_LED
PA28: USB_HOST_ENABLEAlso, in theory PA05 is wired to A5, which doesn't have a pinout on the board.
I could probably re-assign PA27, because I don't definitely need a TX_LED. Likewise, I could re-assign PA05, because it doesn't have a pinout.
However, that leaves us two pins short.
I suppose if we were to give up the USB by using the SAMD20, we'd get another 3 pins?
I think for now I'm inclined to keep the USB connection at the cost of losing two pins. Otherwise, I'm not sure how the "two" USB connections (one for programming and one for consol) that are already mapped onto the one USB connector will get sorted out, or even if it can be.
In fact, I'm not even sure if the existing pins can be remapped or not. So, for now, I'm just going to drop 4 of the exposed pins from version 1 of the TQFP32 SAMD21 Pro Mini.
-
Doing the above leads me to version 2, which is this: 0_1496699755570_Schematic_for_SAMD21_TQFP32_Pro_Mini _v002.pdf
Wiring up USB remains to be done, but before I do that, I want to see how the layout looks, because I want to see if I can avoid using a 4-layer PCB, which is what Sparkfun did.
-
Have you checked this ?
https://hackaday.io/project/10208-winxi-arduino-zero-pro-m0-stick-atsamd21e18And this one which I think is the closest to what you want to do ?
(32 pins chip, 2 layers, usb and basically the size of a nano)
https://hackaday.io/project/6276-sam-d20d21-breakout-boardIt probably would benefit from a few improvements but it's a good start I think ? Especially when author provides eagle files...
-
Thank you! Those are great finds. Yes, the second one has fewer parts than the first, and therefore closer to what I want to do.
Also, it's now clear that Sparkfun went through a lot of effort (and resorted to a 4-layer PCB) in order to maintain the "pro mini" style pinout on its board. I'm realizing now that--for present purposes--it's not worth the extra cost and effort of doing that. Instead, just doing a simple "breakout" type mapping, as the second Hackaday project did, is sufficient.
-
i agree with you for 4layers, it's not needed.
personally, i wouldn't go too much minimalist with decoupling, or usb, because it depends on what you connect then to your mainboard.. I see this on lot of boards, not following basic usb specs..
-
Yes that's why I say it needs some improvements.
Most of SAMD2x boards I see use some ferrite beads in addition to a bunch of capacitors.
-
Looks as though the second one he didn't even bother with USB, even though he had the pads for it on his board. He did it all through the SWD connector. I'm planning to reduce that 10 pin debug connector to just 4 pins, since that's all my ST-LINK V2 interface has anyway. It should be arriving today:
https://www.amazon.com/gp/product/B0722WMDFQ/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1
-
Now that I think about it, I think I'll make a completely "dumb" breakout board, where it's just every pin of the SAMD21 mapped to a post, and it's only just the SAMD21 chip on the board. Then I can experiment on breadboard and figure out what I want and what works before finally reducing it to a subsequent PCB.
I suppose it makes sense, though, to put the 32.768khz crystal on the board though.
-
@NeverDie it would also make sense to make at least the "basic" decoupling capacitors/pullups/...
-
You're right. So, I think this will probably be it then: 0_1496760742368_Schematic_for_SAMD21_TQFP32_Pro_Mini _v003.pdf
It's the guts of the sparkfun design, but with just one LED, and minus the usb, and with a 4 pin SWD connection, and the easiest possible mapping of chip pins to external pins.
What do you think?
-
On the other hand, at least during development, it seems a shame to lose the USB connection. I suppose maybe (?) the USB could be pumped through some kind of external 5v to 3.3v level shifter, and then I wouldn't need to put voltage converters on the board itself. It wouldn't any longer meet the official USB spec, but maybe it would work just the same. That in turn would help reduce the size and costs. Never tried that before with USB though, so it's an unknown to me as to whether it would work or not.
-
I can probably make it a bit more compact, but without the USB, this will be the approximate shape of it: 0_1496774768997_SAMD21_TQFP32_Breakout_v003.pdf
-
The whole thing is less than one square inch in size, so I went ahead and ordered the non-usb version from osh-park:
The silkscreen could be better, but it's good enough to test whether or not it's going to fly.
It appears there's plenty of space at the bottom for adding a USB connector, so I guess that will be next....
-
I don't see any decoupling capacitors or ferrite beads on the USB data circuit. According to the schematic ( https://cdn.sparkfun.com/datasheets/Dev/Arduino/Boards/sparkfun-samd21-mini-breakout-v10.pdf), USB_D- and USB_D+ just connect directly to pins PA24 and PA25 on the MCU.
-
What size pads are you guys using for your SAMD21 land pattern? Mine don't look right. The SAMD21 datasheet didn't actually give a land pattern. It just gave the size of the legs, and so I just made up a land pattern that was close to that. Looks too small compared to others that I'm seeing (e.g. on the Hackaday).
-
@NeverDie said in Minimalist SAMD21 TQFP32 Pro Mini:
What size pads are you guys using for your SAMD21 land pattern? Mine don't look right. The SAMD21 datasheet didn't actually give a land pattern. It just gave the size of the legs, and so I just made up a land pattern that was close to that. Looks too small compared to others that I'm seeing (e.g. on the Hackaday).
Nevermind. I found the answer on page 10 of http://www.atmel.com/Images/Atmel-8826-SEEPROM-PCB-Mounting-Guidelines-Surface-Mount-Packages-ApplicationNote.pdf
-
@NeverDie said in Minimalist SAMD21 TQFP32 Pro Mini:
I don't see any decoupling capacitors or ferrite beads on the USB data circuit. According to the schematic ( https://cdn.sparkfun.com/datasheets/Dev/Arduino/Boards/sparkfun-samd21-mini-breakout-v10.pdf), USB_D- and USB_D+ just connect directly to pins PA24 and PA25 on the MCU.
I saw that on the Adafruit board I think, and on the SenseBender gateway.
-
you should not add decoupling /ferite beads to the D+/D- lines.. At most, add a protection resistor of 30R (or there about) inline, to limit current flow. Also you can add a USB protection circuit with diodes externally..
The ferite bead / capacitors on the sensebender, is between the cable shield, and gnd on the device, to limit EMI on the cable shielding..
-
Just realizing that if I'm going to hand patch the 4 SWD wires onto the board anyway, then I really don't need an SWD block. Consequently, I'm now thinking the Hackaday guy had the right idea with making his entire node the width of a USB connector:
-
@NeverDie >> I'm now thinking the Hackaday guy had the right idea with making his entire node the width of a USB connector:
Really good idea. Just plug it into your box.
-
@Terrence
Yes, and by making the node the width of a USB connector, there's no wasted PCB that you'd get if the PCB were wider.
-
@NeverDie Event though there seem to be many benefits to going narrow, what about enclosure sizes, where longer may not be as good as a smaller square?
-
@Terrence said in Minimalist SAMD21 TQFP32 Pro Mini:
@NeverDie Event though there seem to be many benefits to going narrow, what about enclosure sizes, where longer may not be as good as a smaller square?
I'll cross that bridge if I come to it.
Meanwhile, what I'm wondering is: just how wide should the PCB be? I tried looking up USB dimensions, but I get conflicting info:
I also tried measuring some with a micrometer. I think it's going to be something around 12mm. My PCB needs to be a minimum of 12.12mm wide in order to avoid pads of the SAMD21 being too close to the edge of the PCB. Is that too wide, or is it within tolerance?
-
Maybe you can file the pcb near the usb connector if it is too wide
-
i saw this board too, it's nice one and we can see there is nothing for usb... no fuse, no esd protection, and you touch it and play with it when it's plugged.
I know this works like this, i did it too for proto. i think maybe computers usb ports are perhaps better protected now, but who knows what can happen, so on my side i prefer to have some basic security to not fry my usb ports
If you're doing a proto, this pcb size should be ok, but if it's for using with a radio, especially RFM, then the radio module is wider than the board. I know it because i made my atsam RFM dongle for serial gw.Last advice if i can :), it's a good practice, to route usb datalines in a // way, and like differential lines, meaning they should be almost the same length (with a few % error). That will work sure, without too much care on a small board like that, but still good to know. you should have a tool in your CAD software for this.
-
@scalz said in Minimalist SAMD21 TQFP32 Pro Mini:
if it's for using with a radio, especially RFM, then the radio module is wider than the board.
Good point. That might make connecting it a bit difficult! I suppose this form factor is a better match for a surface mount NRF24.
-
@NeverDie said in Minimalist SAMD21 TQFP32 Pro Mini:
Just realizing that if I'm going to hand patch the 4 SWD wires onto the board anyway, then I really don't need an SWD block. Consequently, I'm now thinking the Hackaday guy had the right idea with making his entire node the width of a USB connector:
I notice that the Hackaday guy's labeling of D- and D+ as pins 28 and 29 conflicts with what Sparkfun has. Sparkfun has those as pins PA24 and PA25 respectively. Is he wrong? I know from direct experience that the Sparkfun board works, so for now I'm going with the Sparkfun pin mapping.
I hear that the PIC MCU chips have a switching fabric that allows you to map any logical pin to any physical pin. I wish the Atmel chips had that. Do maybe these ARM chips have some of that as well?
-
yes it depends what ARM mcu you use, some have more freedom regarding pin mapping and peripherals, but atsam can do that too. Very useful.
There are some rules for atsam how to change the mapping for spi or other periph, versus arduino core files and datasheet. But if you don't want to dig in that, you can just follow a mapping from a board which already exists in Board manager.
-
I finished the first pass, and it looks as though everything will fit:
A bit more work to do, but this is the approximate form it would take.
-
@NeverDie NRF or RFM?
-
@Terrence said in Minimalist SAMD21 TQFP32 Pro Mini:
@NeverDie NRF or RFM?
Neither. This is just the MCU. If I can get it to run blink, then as a next step I'll add a radio.
It's basically a subset of the sparkfun board, but in a different form factor, with a different USB, and all in 2-layer rather than 4-layer. This will be my first ARM board, so I'm just trying to keep it as simple as possible. The razzmatazz can come later.
-
I polished up the USB and re-positioned the headers so they'd fit on a breadboard:
The irony is: after having done all that, I can now more clearly see that it's just not a very efficient form factor. I think for future versions I'll make it not so narrow.
-
@NeverDie It is an interesting exploration. It seems you don't see it until you get there.
-
I just now sent this to OSH Park:
to see whether or not it works. I still don't know how many uH are the value for the one inductor that Sparkfun used though. Any guesses?
-
@NeverDie said in Minimalist SAMD21 TQFP32 Pro Mini:
I still don't know how many uH are the value for the one inductor that Sparkfun used though. Any guesses?
I see no inductor on Sparkfun's schematic ? Only a 30 Ohm ferrite bead.
-
Thanks! I guessing this part should do the business then: https://www.digikey.com/product-detail/en/wurth-electronics-inc/742792601/732-4659-1-ND/4310409
-
Argh. For only a little more than what I paid for the Sparkfun SamD21, I couldn't have gotten the same MCU with an RFM69HCW! And it's already on a 2-layer board, not a 4-layer board:
https://www.adafruit.com/product/3176
https://www.amazon.com/Adafruit-Feather-RFM69HCW-Packet-Radio/dp/B01K62LWBC/ref=sr_1_1?ie=UTF8&qid=1497022595&sr=8-1&keywords=Adafruit+Feather+M0+RFM69HCW<insert facepalm icon> I should have started with that instead, because that's already probably close to what I'll end up with.
-
It's a very good price. If you do it yourself you have a 3$ MCU, 3$+ radio, 1$ PCB and a few US$ for other components (like lipo charger). Leaving only 10$ left for assembly but if you do it yourself you need a lot of time even with a stencil.
-
And believe it or not, the LoRa version can be had for as little as $15.99 each with Prime delivery:
https://www.amazon.com/gp/product/B01LHTU14W/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1Yeah, at that price I think this becomes a buy, not build, decision.
-
@NeverDie be careful this is a "featherwing" = "shield" style board that you add to the basic "feather" board.
So you need 20$ for feather board + 16$ for radio ... not so cheap anymore
-
if i remember well, the adafruit board is SAMD21G.
Here another example, sort of feather i made a while for testing SAMD21E. The same it's rechargeable, and I added some features like a rgb led, sma connector for RFM69/95, flash, signing, MYSX etc..
mounted with a weather extension board i made. If there is an interest, i can clean a bit my files and upload it, it's working well
-
-
@scalz
I'm very interested too. It probably beats my bumbling attempts at making a Sam21DE18, and if it's already working well, what's not to like?
-
@NeverDie I love the Feather boards. Currently working with the RFM69 feather. Build in battery connector/charger is very nice to have.
-
@NeverDie @Nca78 oki noted!
@Terrence yeah, agree too. i have assembled one for testing as it was new and not available. Unfortunately, regarding Mysensors use, there are no flash for ota (in case for future), no signing, no eeprom for routing table (atsam has no eeprom, only emulation if i remember), no sma connector ...
-
@Terrence said in Minimalist SAMD21 TQFP32 Pro Mini:
@NeverDie I love the Feather boards. Currently working with the RFM69 feather. Build in battery connector/charger is very nice to have.
Good to hear! I ordered one today (after my posting above). There's a good chance I'll receive it on Sunday. I look forward to trying it out.
-
@scalz >>Unfortunately, regarding Mysensors use, there are no flash for ota (in case for future), no signing, no eeprom for routing table in mysensors, no sma connector ...
Well so one of you brilliant guys will come up with a FeatherWing that will add all of that functionality right?
-
@Terrence and no usb goodies for protection. woops can't be added on an external board I'm kidding, well, i let others make this featherwing, enough busy on my side
-
@scalz Are you still working on that great looking PIR board?
-
@Terrence that's a bit OT yep among others things, and i'm quickly distracted so i need to stay focused
-
@scalz I think there is HUGE interest in a good working PIR solution. That gets my vote.
-
@Terrence said in Minimalist SAMD21 TQFP32 Pro Mini:
@NeverDie I love the Feather boards. Currently working with the RFM69 feather. Build in battery connector/charger is very nice to have.
Have you found a cheaper source than Amazon for buying them?
-
@NeverDie No, Adafruit is the maker/seller and before just recently you had to buy them from them and pay the shipping and slow order fill process.
I have Amazon Prime, so shipping is "free" and they show up in 2 days.
I have never seen them for lower than MSRP.
-
Just discovered this, bought with no wifi (no need for it) and usb adapter. It's using a SAMD21E17 (so 16k/128k) but should be enough for playing a bit and I love the stackable usb adapter that you need to buy only once for all your boards.
http://www.wino-board.com/store/en/basic-modules/16-winoboard.html
-
What do you guys think of the NRF51822?
https://www.aliexpress.com/item/NRF51822-2-4G-Wireless-Module-Wireless-Communication-Module-Bluetooth-module-zigbee-module-DMX512/32726191346.html?spm=2114.01010208.3.16.u9URcX&ws_ab_test=searchweb0_0,searchweb201602_5_10152_10065_10151_10068_10130_10136_10137_10060_10155_10062_437_10154_10056_10055_10054_10059_303_100031_10099_10103_10102_10096_10052_10053_10142_10107_10050_10051_5030014_10084_10083_10119_10080_10082_10081_10178_10110_519_10111_10112_10113_10114_10182_10078_10079_10073_10123_10120_10189_142,searchweb201603_1,ppcSwitch_4&btsid=bdb83fff-e500-45cf-becd-3dfdfd896dad&algo_expid=5ab8c3b2-cd02-4c0a-8ea8-941792ebfedc-2&algo_pvid=5ab8c3b2-cd02-4c0a-8ea8-941792ebfedc
The dev boards are really cheap, and they come with a capable mcu.
-
-
What I find even more interesting than that, though, is "extended range" Bluetooth, which might very well be the all-in-one tiny module that does it all: http://www.cypress.com/blog/psoc-creator-news-and-information/design-long-range-bluetooth-applications-new-ez-ble-psoc-xtxr
No need to add an NRF24L01 or an RFM69 module, because for home automation, the extended range version of bluetooth should have adequate range already. And it has a capable ARM MCU built in.
-
@NeverDie radio mcus are nice
-
@NeverDie I love the new 51840 (the one that does the long distance, the 832 is the High throughput chip) Please work with the 840.
I have the nRF52840 Preview DK, but have not fired it up yet. Still trying to understand how to code Bluetooth.
http://www.nordicsemi.com/eng/Products/nRF52840-Preview-DK.SiLabs has an interesting Gecko BT5 chip as well.
http://www.silabs.com/products/wireless/bluetooth/blue-gecko-bluetooth-smart-socs
-
1 megabyte of flash and 256K of RAM! And long range too! Wow, that NRF52840 takes things to a whole new level. When will we be seeing regular modules with it beyond just the developer kits?
Also, the inevitable question: is it programmable through the Arduino IDE? I sure hope the answer is yes.
-
840 is pretty new, and if i'm not wrong, final version is planned in few month for end of year (it's a bga package, and preview version), there are a very few modules actually, but expensive to order, for a beta though. So if there is a support for it in Arduino, it could be not complete yet. i'll tell you more when i'll get mine
-
OK, so if we wanted to make something today (or, at least before the end of the year), what module should we use now such that the nRF52840 will be an easy upgrade when it arrives later and sells for (hopefully) cheap on Aliexpress? Would it be the nRF51422 (which I don't believe does long range)? In fact, I'm not sure whether Nordic has anything long range before this nRF52840. That's kinda why I was looking at the cypress or silicon labs product lines, not knowing that Nordic had something in the wings already.
When it does become available, it looks as though it will be around $7 for quantity 1: http://www.mouser.com/ProductDetail/Nordic-Semiconductor/nRF52840-QIAA-R7/?qs=sGAEpiMZZMve4%2FbfQkoj%2bGh7uW9JJ8VYnj7XFjezTdQ%3D
Actually, it says 16 week lead time, so that's more or less consistent with what Scalz said.
-
This whole topic has been brewing in the back of my mind for a couple years now:
https://forum.mysensors.org/topic/1788/nrf51822-as-an-all-in-one
and
https://forum.mysensors.org/topic/3836/anyone-besides-me-looking-into-long-range-bluetooth-for-their-wireless-nodesWith the nRF52840, it looks as though the moment has finally arrived to tie it all together and give it a try.
I just have no idea where to even begin though. Just order the nRF52840 preview DK? Is it fairly quick to get something up and running, or is it a fairly steep learning curve?
-
@Terrence said in Minimalist SAMD21 TQFP32 Pro Mini:
@NeverDie I love the new 51840 (the one that does the long distance, the 832 is the High throughput chip) Please work with the 840.
I have the nRF52840 Preview DK, but have not fired it up yet. Still trying to understand how to code Bluetooth.
http://www.nordicsemi.com/eng/Products/nRF52840-Preview-DK.SiLabs has an interesting Gecko BT5 chip as well.
http://www.silabs.com/products/wireless/bluetooth/blue-gecko-bluetooth-smart-socsEven though you said 840 rather than 832, might the 832 yet still be a decent way to get started?
https://www.adafruit.com/product/3406
And then transition to the 840 when it becomes more available? At least the 832 is in the same nRF52 samily as the 840.My hunch is that bluetooth long range is going to win, because regular bluetooth is already baked into everything.
-
@NeverDie I think the 832 would be a good start until the 840 is available. I think all programming will be the same for when we switch over the 840. I am not 100% sure though.
I have been looking at the AdaFruit 832 since it came out, but have not pulled the trigger yet, as I have not yet opened my 840 dev kit.
We can definitely program the AdaFruit 832 with Arduino.
I agree with you that BT5 long range is the way to the future due to it's low energy, great built in security, long range and no additional chip required.... and >>because regular bluetooth is already baked into everything.
-
I agree with @Terrence
For end users, i think you won't see a big diff in Arduino when 840 will be released. but they are not really the same inside..
Also 840 is Nordic flagship, so it won't be as cheap as nrf51 series soon. And the same applies to 832 which is still affordable regarding specs. That's why they've released the 810, for lower cost, same RF perf as 832, but less memory.
-
@scalz said in Minimalist SAMD21 TQFP32 Pro Mini:
same RF perf as 832, but less memory
but no long range right?
So scalz it is your understanding that the coding will be the same on the 832 and when we start getting the 840, but the distance will just increase?
-
I tried looking at the description on Mouser for the nRF52840 Preview Development Kit,
and it's not obvious as to whether it even comes with any of the modules. So, I guess I could get it to do mcu tricks, but I'm wondering now whether it can even communicate with anything wirelessly until 16 weeks from now?
Also, it's not clear to me yet whether the Nordic modules are truly "long range" rather than just better range. I get the impression they do some coding gain without actually increasing transmit power. That's fine, I suppose, although the datasheet (http://www.mouser.com/ds/2/297/nRF52840_OPS_v0.5-1074816.pdf) does describe the link budget (with coding gain?) as being only 104dB, which isn't exactly awesome.
-
@NeverDie
The nRF52840 PDK is a versatile single board development kit for Bluetooth 5, Bluetooth low energy, ANT, 802.15.4 and 2.4GHz proprietary applications using the nRF52840 SoC. This kit supports development for the nRF52840 SoC.http://www.nordicsemi.com/eng/Products/nRF52840-Preview-DK
https://devzone.nordicsemi.com/blogs/1093/Cool drone video of 840 long range.
Nordic Semiconductor – Bluetooth 5 Long Range Test with nRF52840 – 04:03
— Nordic Semiconductor
-
That's pretty impressive..
-
A better test would have been to test the range while still maintaining a sufficiently low packet error rate. Their test criteria was just "still receiving packets," which could have meant a very high packet error rate, which isn't really useful information.
At the end of the day, it's the link budget that seems to matter most in comparing different radios. The higher the link budget, the better the range (in apples to apples comparison, where a particular packet error rate is what determines practical "range").
So, for comparison, a LoRa radio has a link budget as high as around 156dB (that's with the lowest bitrate and the highest coding gain). It's arguably far more than you need for home automation, but then again, I'd rather have overkill than underkill.
-
@NeverDie said in Minimalist SAMD21 TQFP32 Pro Mini:
A better test would have been to test the range while still maintaining a sufficiently low packet error rate. Their test criteria was just "still receiving packets," which could have meant a very high packet error rate, which isn't really useful information.
I think at the moment the guy says he doesn't see a single drop, or something like that. I understood "all packets arrived".
-
I notice though that they show the link budet for the 840 is 111dB. Well, that's encouraging. The datasheet says "104 dB link budget for Bluetooth low energy," so I guess they're using a different mode.
-
I was really keen to try the nrf52832, in lieu of the nRF52840 until it became available, because of the OTA wireless update capability. Then I dug a bit further, and on the Adafruit website (https://learn.adafruit.com/bluefruit-nrf52-feather-learning-guide/using-the-bootloader) it says "This option is not actively support nor recommended by Adafruit, and we are still working on making this as safe as possible for users via our Bluefruit LE Connect application. Use OTA DFU at your own risk knowing you can brick your device and may need a Segger J-Link or similar device to regain control of it!"
-
I have the Adafruit Feather M0 RFM69 nominally working doing Blink plus a little more. Adafruit appears to provide zero demo code for the LowPowerLab library, though it does for the RadioHead library. Therefore, I haven't yet figured out what I need to change in my code to make it talk to the Radio, but that's next.
So far I'm not at all liking the "two in one" usb connection: one for programming it and one for the serial console. The transition and sharing between them only rarely goes smoothly. Not sure if that will ever get ironed out over time or whether two physically different usb connections (as some of the other arduino boards provide) would be better.
-
OK, I've got the Adafruit Feather M0 RFM69 radio working now. To make it work with the LowPowerLab library, you need to delete the following from the RFM69.h file:
#elif defined(__arm__)//Use pin 10 or any pin you want #define RF69_IRQ_PIN 10 #define RF69_IRQ_NUM 10
and replace it with:
#elif defined(ARDUINO_SAMD_FEATHER_M0) // Feather M0 w/Radio #define RF69_SPI_CS 8 #define RF69_IRQ_PIN 3 #define RF69_IRQ_NUM 3 #define LED 13
That's all there is to it!
-
@NeverDie
all you have to do is set your defines for mysensors and this should work out of the box
about the usb, weird, i've no problem here. what problem do you have? here it works smoothly (with custom board, but i have also an adafruit m0 proto, worked well too)
-
@scalz
Well, first, for the benefit of others who may be reading this but who aren't familiar with the two USB paradigm, this is how it looks on the Arduino Due:
There are two physically distinct USB connections, but you can have both connected to your computer at the same time. The "Native USB Port" lets you read the console output, and the "Programming port" is for uploading new sketches. It works fine. I like it.So, with that as background, on both the Adafruit Feather M0 SamD21 and the Sparkfun M0 SamD21, there is the same concept, but only one physical USB port. So, let's say I just uploaded a sketch and then want to immediately switch to the "Native USB Port" so that I can read debugging information. Well, that doesn't happen automatically (as it should really). Instead, I get an error message which reads, "Couldn't find a Board on the selected port. Check that you have the correct port selected. If it is correct, try pressing the board's reset button after initiating the upload.
processing.app.SerialException: Error opening serial port 'COM45'."
Then, I have to go to the Tool menu and manually select Com44 and then open the serial console. Well, by then, the debug info would have already passed by, because it doesn't reboot upon opening the serial console. So, I've added a delay countdown to give me time to do this.And, by the way, every single time I upload a new sketch, it always reports, "An error occured while uploading the sketch," even though if I look at the details, it shows that it uploaded and even verified the upload, and even--sure enough--it really did upload. So, that part is really beginning to bother me, even though maybe it shouldn't. It's true for both the Adafruit and the Sparkfun Samd21 boards.
Anyhow, it looks like the Hackaday guy did a board with two physical USBs, and maybe that's a good idea?
Or maybe it's still just one USB connection and three different connector types? Not really sure.
-
Anyhow, I guess what I could do is simply write my serial debug output to a pair of Rx and Tx pins, and then I could side-step the whole mess without getting entangled in it. Not very elegant, but it would serve the purpose until I learn the ins-and-outs better.
-
You will always have the issue of USB connection, when using a native USB device, because it will re-enumerate on the USB bus whenever you reset the device.
That's also why you have to put the following code
while(Serial) {}
In the setup routine of sketches with native usb devices, if you expect to catch all debug messages from the start. This behavior does not change if you have both native and a programming port.
-
By the way (and it's just an as yet an unverified first impression), but it seems like the RSSI received on the Feather RFM69 is much better than on an atmega328p RFM69 combo. If that bears out, then all by itself it might be reason to switch. Anyone else get this impression, or not?
-
@tbowmo said in Minimalist SAMD21 TQFP32 Pro Mini:
while(Serial) {}
Cool. I just tried it. It turns out it's actually
while(!Serial) {}
but it works great. Thanks!
-
about rfm69 and better rssi, it could also be related to ground plane size of the board.
and for mcu, yep no need of the programming port. native is enough if there is the bootloader.
-
@scalz said in Minimalist SAMD21 TQFP32 Pro Mini:
@NeverDie
all you have to do is set your defines for mysensors and this should work out of the boxI just now noticed that @Sweeman already did: https://forum.mysensors.org/topic/6908/adafruit-feather-m0-rfm69hcw-with-mysensors/6
-
I hadn't noticed it before, but it looks like even Arduino will have an NRF52 board: http://www.arduino.org/products/boards/arduino-primo
Of course, that's a very good thing! Unfortunately, they don't seem to be in stock anywhere, even though they were first released in March, 2016. What's up with that?
So, I've ordered a couple of these to try out:
https://www.amazon.com/Adafruit-Feather-nRF52-Bluefruit-nRF52832/dp/B06XXSVYLC/ref=sr_1_1?ie=UTF8&qid=1498743679&sr=8-1&keywords=nrf52The good news is that NRF52 modules don't seem to require many external parts, and for self-assembly that's a real advantage.
-
Looks like a fully integrated board can be had for <$9, including e-packet delivery:
https://www.aliexpress.com/item/nRF52832-Bluetooth-4-1-BLE-Module-M4-Transparent-Transmission-SMA-512K-FLASH-64K-RAM-pass-through/32798522093.html?spm=2114.01010208.3.17.YON8eD&ws_ab_test=searchweb0_0,searchweb201602_5_10152_10065_10151_10130_10068_5210015_10136_10137_10060_10155_10062_437_10154_10056_10055_10054_10059_303_100031_10099_10103_10102_5290015_10096_5320015_10052_10053_10107_10050_10142_10051_5280015_10084_10083_5250016_10119_10080_10082_10081_10178_10110_519_10111_10112_10113_5240015_10114_5230016_10182_10078_10079_5260014_10073_10123_10120_10189_5270015_142-10120,searchweb201603_49,ppcSwitch_4&btsid=02e4720e-a974-4d92-a890-0cd0f6510022&algo_expid=87b18aca-7c4a-43a5-8995-4d45694a7044-2&algo_pvid=87b18aca-7c4a-43a5-8995-4d45694a7044
-
@NeverDie I was about to pull the trigger on some of those, but I can't seem to get my mind off of the potential long distance of the 840. I wonder when the world will be blessed with those modules?
Looking forward to your experience with the Adafruit BLE boards.
-
@Terrence said in Minimalist SAMD21 TQFP32 Pro Mini:
I wonder when the world will be blessed with those modules?
I wouldn't wait for them. Will probably take at least half a year or so (according to Nordic)
-
@Yveaux You are correct, use what is available, not what will be in the future.
-
@Terrence said in Minimalist SAMD21 TQFP32 Pro Mini:
@NeverDie I was about to pull the trigger on some of those, but I can't seem to get my mind off of the potential long distance of the 840.
Same here, but hopefully (?) most of what I learn with the 832 will be applicable to the 840. The 840 is clearly more desirable, and I probably wouldn't have pulled the trigger on the 832 if I didn't know the 840 was coming.
-
@NeverDie said in Minimalist SAMD21 TQFP32 Pro Mini:
most of what I learn with the 832 will be applicable to the 840
Right. I have been trying to get my head around the BT communication pattern. It is a different beast indeed.
-
Looks as though the 52 Thingy might be a good starting point for some people:
http://www.mouser.com/new/nordicsemiconductor/nordic-thingy-52/
-
What I'm not sure about is whether the NRF52832 will have truly adequate indoor range. Max tx power is 4db, which is better than the 0db of the NRF24L01. Will that be enough? I can only guess. That's why I ordered two of the Adafruit NRF52832 feathers: to see for myself. If they disappoint, then I may shelve them until the 840 becomes more available, and then try again using the 840. On the other hand, if the 832 turns out to be "good enough", then the 840 may not matter so much.
I do like that it apparently is programmable from within the Arduino IDE. That will make trying it out a lot easier. If the OTA uploads are easy to do, then I'll be really happy.
-
@NeverDie
nrf52832 is definitely better than nrf24l01. if i'm not wrong, 4db can double range in theory.
For range, an important point is the antenna, as you already know.
Chip antenna can be ok, depending on the environment and usecase, but can't compete with a rfm69. These antennas are not for long range, so the adafruit board. How to miniaturize antennas without loosing performance..
-
@scalz said in Minimalist SAMD21 TQFP32 Pro Mini:
These antennas are not for long range, so the adafruit board. How to miniaturize antennas without loosing performance..
Good point. Looks as though the aliexpress module I referenced above, though, does have some kind of antenna connector on it:
So, maybe plugging something (?) into that would give better range?Also, I just now read that these 832 modules can communicate with the older NRF24L01's. Is that true? That would be nice.
-
@NeverDie
yes these one looks better. looks like you can also tune ant (there are some footprints).
note the "meandered" antenna. it reduces antenna size, needs some tuning, a bit less efficient vs others type. but maybe better than chip antenna i think. and you have the ipex in case, cool!
Not so cheap (not fcc) but interesting i agree.Yes, indeed! it's compatible with nrf24 thx to @d00616
You should try, i'm using my nrf52 board (aeos) with my esp32 gw (halo)
And the cherry, with VS Micro, and multiple serial monitors in same ide
-
@scalz said in Minimalist SAMD21 TQFP32 Pro Mini:
And the cherry, with VS Micro, and multiple serial monitors in same ide
Guys I have been developing with VS Code (free) for Arduino type coding. been very happy with it. It does not have multi serial monitors (not that I know of).
Anyone else using VS Code?
-
@Terrence said in Minimalist SAMD21 TQFP32 Pro Mini:
@scalz said in Minimalist SAMD21 TQFP32 Pro Mini:
And the cherry, with VS Micro, and multiple serial monitors in same ide
Guys I have been developing with VS Code (free) for Arduino type coding. been very happy with it. It does not have multi serial monitors (not that I know of).
Anyone else using VS Code?What are its advantages that are the reason for your preferring it?
-
@NeverDie I prefer it over the Arduino platform, not VS Micro.
It is a super lightweight editor, but really powerful with added extensions.
In Windows Explorer, right click a folder and click on "Open with Code' and the folder and all code files are there.I have been using Visual Studio for work for a decade. It is a very heavy capable environment, but too heavy for simple ino projects.
I used VS Micro 3 years ago or so, but I can't compare the two.
https://code.visualstudio.com/
Here is a snip showing the Arduino extension.
-
I received the adafruit nrf52 feathers today, and I'm really quite shocked: adafruit doesn't supply any demo code (at least none that I can find) which would allow two nrf52 feathers to talk to one another. In fact, most of the demo code has nothing to do with bluetooth at all! This is very disappointing.