nRF5 action!
-
@neverdie I have ordered 10x nRF52832 and 2x nRF52840 from EBYTE (E73-xxxB/C). I will join you once I got them (they are on they way since 2 weeks). I'll also work together with ransyer to get new PCB's (the last we maybe together are for the ESP32).
I'm curious what distance I can get indoor with the BLE 4.2/5.0 (no extra radio) and if required, I will combine it with a LoRA RFM95 (that is also what our PCB's is made for RFM69/95 and CC1101).
I'm still working on the sensor with the 1,54" ePaper (where the ATMEGA328p is lost with its 32kB flash and even worse with the 2k RAM)this one will be tricky to solder (I'm trying to get something better to solder)
https://de.aliexpress.com/item/NRF52840-Bluetooth-5-0-240-mhz-RF-Transceiver-CDSENET-E73-2G4M08S1C-8dbm-Keramik-Antenne-BLE-4/32906661666.html?spm=a2g0s.9042311.0.0.1d174c4dKW9mAo -
@heinzv said in nRF5 action!:
this one will be tricky to solder (I'm trying to get something better to solder)
https://de.aliexpress.com/item/NRF52840-Bluetooth-5-0-240-mhz-RF-Transceiver-CDSENET-E73-2G4M08S1C-8dbm-Keramik-Antenne-BLE-4/32906661666.html?spm=a2g0s.9042311.0.0.1d174c4dKW9mAoAlready out of stock it seems, it's not possible to order them any more.
They seem to have both 32K crystal and inductances for DCDC, that's pretty convenient. -
The answer I got on the Sandeep library made it sound rather iffy as to whether it would work for the nRF52840: https://github.com/sandeepmistry/arduino-nRF5/issues/310
or that the coverage might be rather spotty.So, I think I may give mbed a try for programming the nRF52840, because mbed claims to support the nRF52840-DK. Also, I found what seems like a nice and simple youtube tutorial series for how to use mbed: https://www.youtube.com/watch?v=kP_zHbC_5eM
If I have success with mbed, I may circle back to the Sandeep library and the mysensors implementation, but I'd like to start with something solid, and it appears that mbed might be.
The other nice thing is that it appears mbed provides an abstraction layer which makes easy to program a whole range of different mcu's, incuding many of the stm32's.
Anyone here familiar with or tried mbed before?
-
The answer I got on the Sandeep library made it sound rather iffy as to whether it would work for the nRF52840: https://github.com/sandeepmistry/arduino-nRF5/issues/310
or that the coverage might be rather spotty.So, I think I may give mbed a try for programming the nRF52840, because mbed claims to support the nRF52840-DK. Also, I found what seems like a nice and simple youtube tutorial series for how to use mbed: https://www.youtube.com/watch?v=kP_zHbC_5eM
If I have success with mbed, I may circle back to the Sandeep library and the mysensors implementation, but I'd like to start with something solid, and it appears that mbed might be.
The other nice thing is that it appears mbed provides an abstraction layer which makes easy to program a whole range of different mcu's, incuding many of the stm32's.
Anyone here familiar with or tried mbed before?
-
Update:
I received some nRF52840 dongles. I confirmed with Nordic that the recommended way to program them over USB is to use nRF Connect v2.5.0 which contains the nRF Programmer v1.0.0-experimental.5 application. I tried that, but I may have somehow bricked my first dongle by not pressing reset first before the upload. Either that, or because my simple program didn't initialize the USB, maybe it can't be found for that reason (I suspect so).Luckily, I live not too far from Mouser. I should be receiving the nRF52840-DK today, so I figure that way I can unbrick the dongle.
Yesterday I played around with mbed on an nucleo board. Seems to work well (no bricking). Unfortunately, the dongle isn't an mbed device, so the methods above are required unless you program it with a DK or similar. The good news, though, is that the DK is an mbed board, so hopefully that will be smooth sailing. It turns out that USB is built into the nRF52840 chip, so it doesn't require a separate chip like a CP2102 to communicate over USB. I guess that can be good or bad depending on how your write your code.
-
By the way, the nRF52840-DK is even easier to program thant the nRF52832-DK. When you attach it to your PC, it shows as an additional drive in your directory. Any hex file that you copy to that drive gets uploaded and programmed onto the nRF52840. Easy. :)
-
By the way, the nRF52840-DK is even easier to program thant the nRF52832-DK. When you attach it to your PC, it shows as an additional drive in your directory. Any hex file that you copy to that drive gets uploaded and programmed onto the nRF52840. Easy. :)
-
Luckily, it looks as though I can manually set any GPIO pin I want as the UART TX pin for debugging output from an nRF52840 by setting PSEL.TXD. That means I can probably re-use my PCB's from nRF52832 for the nRF52840 with just a few software adjustments even if I use mbed without the convenient pin mapping afforded by the mysensors code. So, this is starting to look more and more feasible. :)
-
@NeverDie How do I know which nRF52832 board I should use?
Does the CFsunbird-nRF52832 has the DC/DC inductors?
Or can I use nRF51822?Want a cheap chip, easy to solder (Have a couple of Ebyte e-73 but they take some time to solder :( and if I understand correctly, the DC / DC inductors are missing?)
-
@NeverDie How do I know which nRF52832 board I should use?
Does the CFsunbird-nRF52832 has the DC/DC inductors?
Or can I use nRF51822?Want a cheap chip, easy to solder (Have a couple of Ebyte e-73 but they take some time to solder :( and if I understand correctly, the DC / DC inductors are missing?)
@smilvert It really depends on what you want to do, but if you want a blanket recommendation, I would recommend the Fanstel modules. For one thing, they're FCC approved, and most of what you'll find on aliexpress isn't and probably wouldn't pass if it tried.
Also, the Fanstel F series has superior range compared to anything I've ever found on Aliexpress.
-
Even better, it turns out mbed solves the problem of handling multiple different interrupts, which no one here could figure out with the sandeep build. With mbed, it looks pretty simple in fact:
InterruptIn button1(P0_11);//(USER_BUTTON nRF52840 DK); InterruptIn button2(P0_12); InterruptIn button3(P0_24); InterruptIn button4(P0_25); void button1_pressed() { led1 = led2 =led3 =led4 = 1; led1 = 0; } void button1_released() { led1 = led2 =led3 =led4 = 1; //led1 = 0; } void button2_pressed() { led1 = led2 =led3 =led4 = 1; led2 = 0; } void button2_released() { led1 = led2 =led3 =led4 = 1; //led1 = 0; } void button3_pressed() { led1 = led2 =led3 =led4 = 1; led3 = 0; // wait(0.1); } void button3_released() { led1 = led2 =led3 =led4 = 1; //led1 = 0; } void button4_pressed() { led1 = led2 =led3 =led4 = 1; led4 = 0; } void button4_released() { led1 = led2 =led3 =led4 = 1; //led1 = 0; } int main() { led1 = led2 =led3 =led4 = 0; button1.fall(&button1_pressed); button1.rise(&button1_released); button2.fall(&button2_pressed); button2.rise(&button2_released); button3.fall(&button3_pressed); button3.rise(&button3_released); button4.fall(&button4_pressed); button4.rise(&button4_released); while (true) {} } -
By the way, the nRF52840-DK is even easier to program thant the nRF52832-DK. When you attach it to your PC, it shows as an additional drive in your directory. Any hex file that you copy to that drive gets uploaded and programmed onto the nRF52840. Easy. :)
@neverdie said in nRF5 action!:
By the way, the nRF52840-DK is even easier to program thant the nRF52832-DK. When you attach it to your PC, it shows as an additional drive in your directory. Any hex file that you copy to that drive gets uploaded and programmed onto the nRF52840. Easy. :)
That's exactly what I'm doing with the NRF52832-DK already. How do you program yours ?
-
@neverdie said in nRF5 action!:
By the way, the nRF52840-DK is even easier to program thant the nRF52832-DK. When you attach it to your PC, it shows as an additional drive in your directory. Any hex file that you copy to that drive gets uploaded and programmed onto the nRF52840. Easy. :)
That's exactly what I'm doing with the NRF52832-DK already. How do you program yours ?
-
@neverdie Im guessing that the BT832 dosen't have the 32.768 khz crystal but the inductors?
The datasheet says
Standby current consumption is important for battery-powered product. We suggest adding a 32.768 kHz crystal and 2 capacitors as shown in the upper left corner of the evaluation board schematics. The 32MHz main clock won’t be active at idle state to save power. Two inductors required for DCDC converter are inside BT832 module. You can enable DCDC to lower power consumption. -
@NeverDie
cool. already tried it too. and i agree with you on this, arduino is fun at the beginning, but then you discover its limits. compatible with lot of things but incomplete ;) That said, then you may end up converting some of your arduino libs/stuff to the new toolchain. On my side I like TI toolchain (free, tailored for iot with lot of nice tools, for debugging etc), not using it for nrf of course..
On other side, arduino is maybe "easier" to read for someone discovering coding. -
@NeverDie
cool. already tried it too. and i agree with you on this, arduino is fun at the beginning, but then you discover its limits. compatible with lot of things but incomplete ;) That said, then you may end up converting some of your arduino libs/stuff to the new toolchain. On my side I like TI toolchain (free, tailored for iot with lot of nice tools, for debugging etc), not using it for nrf of course..
On other side, arduino is maybe "easier" to read for someone discovering coding.@scalz said in nRF5 action!:
@NeverDie
cool. already tried it too. and i agree with you on this, arduino is fun at the beginning, but then you discover its limits. compatible with lot of things but incomplete ;) That said, then you may end up converting some of your arduino libs/stuff to the new toolchain. On my side I like TI toolchain (free, tailored for iot with lot of nice tools, for debugging etc), not using it for nrf of course..
On other side, arduino is maybe "easier" to read for someone discovering coding.Interesting! Does that mean you're using TI's' MSP430 as your primary mcu now?
-
@neverdie Im guessing that the BT832 dosen't have the 32.768 khz crystal but the inductors?
The datasheet says
Standby current consumption is important for battery-powered product. We suggest adding a 32.768 kHz crystal and 2 capacitors as shown in the upper left corner of the evaluation board schematics. The 32MHz main clock won’t be active at idle state to save power. Two inductors required for DCDC converter are inside BT832 module. You can enable DCDC to lower power consumption.@smilvert said in nRF5 action!:
@neverdie Im guessing that the BT832 dosen't have the 32.768 khz crystal but the inductors?
The datasheet says
Standby current consumption is important for battery-powered product. We suggest adding a 32.768 kHz crystal and 2 capacitors as shown in the upper left corner of the evaluation board schematics. The 32MHz main clock won’t be active at idle state to save power. Two inductors required for DCDC converter are inside BT832 module. You can enable DCDC to lower power consumption.yup
-
@scalz said in nRF5 action!:
@NeverDie
cool. already tried it too. and i agree with you on this, arduino is fun at the beginning, but then you discover its limits. compatible with lot of things but incomplete ;) That said, then you may end up converting some of your arduino libs/stuff to the new toolchain. On my side I like TI toolchain (free, tailored for iot with lot of nice tools, for debugging etc), not using it for nrf of course..
On other side, arduino is maybe "easier" to read for someone discovering coding.Interesting! Does that mean you're using TI's' MSP430 as your primary mcu now?
@neverdie said in nRF5 action!:
Interesting! Does that mean you're using TI's' MSP430 as your primary mcu now?
nope, as usual I prefer the very best ;) 430 isn't rf.
But I don't want to make OT (nrf, mysensors). just said this to say, you can usually get all power of a mcu by using the right tools like you noticed (pros&cons) -
Unfortunately, the problemm with mbed is that it provides no real support for using the nRF52 radio in proprietary modes. I would have to code all of that from scratch.
-
Good news. I hadn't bricked the dongle after all. Yesterday I wrote some rather primitive code to send packets using the Nordic proprietary code and this morning I loaded it onto the dongle using its USB connector and USB Bootloader. I'm now receiving the packets on the nRF52840-DK, so that satisfies proof of concept. i.e. it works! :)