At Circuit Dojo, we love open source hardware and software. We also love talking about it!
Our goal is to bring you the most professionally produced and in-depth content available today. Check out our series on Zephyr and stay tuned for more content on embedded and more!
Buy me a coffee ☕: ko-fi.com/jaredwolff Github Sponsors: github.com/sponsors/circuitdojo
anyone created mcuboot for raspberry pi pico ? i was able to build the mcuboot as a 3rd stage bootloader and got the mcu boot banner . but don't know how to add the image to it. i am a beginner so dont know if the image is valid or not because of the sign . &flash0 { reg = <0x10000000 DT_SIZE_M(2)>; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; /* Reserved memory for the second-stage bootloader */ second_stage_bootloader: partition@0 { label = "second_stage_bootloader"; reg = <0x00000000 0x100>; /* 256 bytes for second-stage bootloader */ read-only; }; /* MCUboot starts at 0x100, right after the second-stage bootloader */ boot_partition: partition@100 { label = "mcuboot"; reg = <0x00000100 0x10000>; read-only; }; slot0_partition: partition@10100 { label = "slot0"; reg = <0x00010100 0x90000>; }; slot1_partition: partition@A0100 { label = "slot1"; reg = <0x000A1000 0x90000>; }; scratch_partition: partition@130100 { label = "scratch"; reg = <0x00130100 0x70000>; }; }; };
i am using the debug probe . So far i came to know that we need to put a valid image in slot0_partition without deleting the mcuboot elf file. is it possible to do that in pico? i.e to flash at a particular address without earsing the other address data?
i got it😁 first need to flash the mcuboot elf file . which will print the mcuboot banner . then flash with the zephyr.signed.bin file not the zephyr.elf/bin of the application that we normally use . $ openocd -f interface/cmsis-dap.cfg -f target/rp2040.cfg -c "program zephyr.signed.bin verify reset exit 0x1001010 0" -c "adapter speed 5000" address should match with your flash partitions. anyways thanks for the zephyr.signed.bin 😅😁
Hi Currently, I am working on nRF5340 audio dk board. Here, I am transmitting the sensor data and audio data from nrf5340 audio dk to nrf5340 audio dk. Is it possible. if it is possible could you plz guide me. How to do.
Hello, nice video, very interesting. I have a question. The board circuit_dojo_feather_nrf9160_ns is a custum board, how Twister knows where is defined your custom board?
is it possible to change the default led on a raspberry pico as pwm led and assign it to any other gpio pins . default led is at gpio 25 but the device tree for pwm_led is this : / { leds { compatible = "gpio-leds"; led0: led_0 { gpios = <&gpio0 25 GPIO_ACTIVE_HIGH>; label = "LED"; }; }; pwm_leds { compatible = "pwm-leds"; status = "okay"; pwm_led0: pwm_led_0 { pwms = <&pwm 9 PWM_MSEC(20) PWM_POLARITY_NORMAL>; label = "PWM_LED"; }; }; aliases { led0 = &led0; pwm-led0 = &pwm_led0; }; };
Hi, Is it possible to use the uart async driver api for usb? I have an application using uart async on 2 uart pins on the nrf52840 but I would like to use the USB instead so I don't need a USB to ttl cable.
Thanks for this! I ran into an error whereby my codes task handler was causing the program to crash on an ESP32 board. This was my fault thought, I did not set my display driver as a static variable so it was overwritten. Silly mistake but thanks for the great video!
Thanks for the great video! Do you have a video about what low-power-enable do in pinctrl? Is it possible to turn uart's tx & rx to low when uart device is suspened?
Thanks Jared , that's another useful one since gnss subsystem is started growing :) a few questions, in case we use encoded data and send them through mqtt, is there any platform that supports the decoding part on backend? And last, of course we save data, but in terms of energy consumption, what is the impact?
Great video! One correction though: 7:22 You said that CONFIG_BT_SMP=y is related to the protocol that do the updates. It's not. It is a bit confusing, but this particular config is related to Security Manager Protocol for BLE stack itself. MCUmgr is also using protocol named SMP (Simple Management Protocol). I think there was note on that in Zephyr's docs.
After the stream, I actually read the debug probe's manual, and has some useful information. Like slew rate limiting and some protection by just a couple of resistors. That is cool by Raspberry. Yeah, the debug probe is cheap, but do I need another thing? :) Thanks for the streams!
Perhaps, I missed something. But what is the mechanism that allows him to just use <lib/codec/example_json_codec.h> to import the module? Is this reflected in the testing cmake file?
Awesome video!! What if I want to download the app_update.bin file to my device via a cellular modem and then proceed with the update. I am assuming I would copy the app_update.bin to S1 and then tell the bootloader to activate it?
Is the device running this sample code discoverable via OS scan and can pair/bond that way too? I'm running into an issue where android and windows can discover but not bond and iOS/mac can't even discover.
A lot of those CONFIG settings are now bundled up in(at least in NCS V2.6.0 which is what I'm currently using): CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU_SPEEDUP=y CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU_VALIDATION=y
@@patil29066 Yep. The whole idea of FOTA is you're replacing the application with a new one. If your new application doesn't have BLE, that functionality will be removed. I always recommend testing OTA updates before pushing them to devices out in the field. 😎
It's been 6 months I've been working with zephyrOS. And now I think why they make embedded development difficult in zephyrOS. I still struggle to use gpio for simple led toggling. Adding a node in DTS and when tried to get this node. It's not there. Device pointer is null. And still unable why it is this when i have added a node in dts, the device pointer should not be a null pointer
Hello, After two year I want to know whether this approach of disabling the receiver is still applicable in Zephyr using the lates Nordic SDK v2.6.0. I have used the nRF52840-DK and was not able to disable the receiver using an overlay file. May you share how you do that with the new pincontrol way of handling pin configuration in the devicetree (overlay) file. Thank you :D
I actually disable it in runtime as often I still need to use the console for provisioning, etc. Maybe I'll do a video on that in the future. You can check out this sample which disables it at runtime: github.com/circuitdojo/nrf9160-feather-examples-and-drivers/tree/v2.4.x/samples/active_sleep
Very informative video. Can you help me with a problem? I am trying to flash the mcuBOOT to the controller rpi_pico_w. mcuBOOT was not readily available for the controller. So, I used the information provided in video to flash bootloader. I was able to flash it. and it looks for image in primary slot. After this I compiled a simple hello_world application and flashed to controller. After flashing it there is nothing on console not even boot banner. I am stuck at this for a long time and unable to resolve it. It will be really nice if you can help me better understand it or put me in some direction to solve this problem.
I believe the RPi 2040 has its own bootloader built in. You should be able to use MCUBoot though. It also needs to be configured to use console over USB unless you’re using the debug port. How are you trying to view the console?
I think the API has been changed sometime after this video, because pwm_pin_set_usec results in a "undefined reference to `pwm_pin_set_usec'" error during compilation.
it looks like they have moved from modem trace to cellular monitor.. so this probably needs an update as the new modem firmware 1.3.5 is not supported by trace collector anymore
I have tried running this example with a esp32 wrover and a sh1106(i2c) modified with just the display, no sensor for testing lvgl. But cant get it to work. seems like the program hangs on lv_task_handler(); any idea what could be the issue? my esp32.overlay works with the cfb library
You don't "name" a service/characteristic. You do program the UUID for it though. On your application side, you filter by that known characteristic. If you're using a BLE program on your phone, the "names" are likely hard coded to be matched with the UUIDs. Hope that helps