Тёмный
Circuit Dojo
Circuit Dojo
Circuit Dojo
Подписаться
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
One Code Base, Multiple Targets
48:54
2 года назад
The nRF9160 Feather
1:12
3 года назад
The nRF9160 Feather
0:59
4 года назад
Particle Mesh into Listening Mode
0:11
5 лет назад
The Dondi Lib Project
0:35
6 лет назад
Drilling and Tapping
1:56
6 лет назад
EagleCAD Library Management
3:32
6 лет назад
Device Recovery Using RC Circuits
3:45
6 лет назад
Check your PCB gerbers with Gerbv
4:41
6 лет назад
Prototyping using Wire Wrap
3:47
6 лет назад
Latching Switch PSpice Simulation
14:03
6 лет назад
Комментарии
@ajm7745
@ajm7745 2 дня назад
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>; }; }; };
@ajm7745
@ajm7745 2 дня назад
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?
@ajm7745
@ajm7745 День назад
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 😅😁
@RajendraBala-j6f
@RajendraBala-j6f 8 дней назад
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.
@shuojinbecool4778
@shuojinbecool4778 12 дней назад
Amazing video. This channel is gold! Thank you so much!
@jonnino78
@jonnino78 12 дней назад
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?
@Swap14327
@Swap14327 14 дней назад
Can you mention the part number of the TI Eval kit used? - "Unity Gain Differential Amplifier"
@ajm7745
@ajm7745 19 дней назад
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; }; };
@pavankumarcr1
@pavankumarcr1 19 дней назад
where can i find the repository of this code
@TheOrninn
@TheOrninn 21 день назад
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.
@gravisan
@gravisan 25 дней назад
Nice, this reminds me of Erlang / Elixir where processes communicate with each other using messages that are copyed.
@arthurchow-h8t
@arthurchow-h8t Месяц назад
英文听起来太费劲, 能有英文字幕最好. 感谢分享.
@rayy6100
@rayy6100 Месяц назад
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!
@陳思妤-w3w
@陳思妤-w3w Месяц назад
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?
@ntn888
@ntn888 Месяц назад
hooray for GNOME!! 😁
@CircuitDojo
@CircuitDojo Месяц назад
Yea!
@nazarottto
@nazarottto Месяц назад
What text editor were you using at 25:10?
@CircuitDojo
@CircuitDojo Месяц назад
I've been playing around with Zed. zed.dev/
@nazarottto
@nazarottto Месяц назад
@@CircuitDojo Noice!
@firstuser5448
@firstuser5448 2 месяца назад
this is such a niche channel but so incredibly helpful for beginner firmware devs like myself. Please keep it up!
@embeddedpilot
@embeddedpilot 2 месяца назад
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?
@arthurchow-h8t
@arthurchow-h8t 2 месяца назад
希望可以增加字幕, 对于英文听力口语不好的外国人,学起来更容易
@arthurchow-h8t
@arthurchow-h8t 2 месяца назад
作者的视频,适合入门, 对新手来说,非常有用, 感谢分享, very good
@arthurchow-h8t
@arthurchow-h8t 2 месяца назад
能不能配上字幕, 英语不好的人, 更容易理解
@hamdanali7716
@hamdanali7716 2 месяца назад
can you give working example ?
@hankhule1639
@hankhule1639 3 месяца назад
A god sent video, thank you !
@Jatsekku2
@Jatsekku2 3 месяца назад
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.
@AkosLukacs42
@AkosLukacs42 3 месяца назад
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!
@HarmanDubb-b9w
@HarmanDubb-b9w 3 месяца назад
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?
@AndersNelson-bc5wi
@AndersNelson-bc5wi 3 месяца назад
This is exactly what I need, thank you!
@davidpatton3679
@davidpatton3679 4 месяца назад
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?
@anouarraddaoui3568
@anouarraddaoui3568 4 месяца назад
Very helpful. Thanks!
@manish_updates
@manish_updates 4 месяца назад
How to use timer in critical battery voltage plz give example code.
@nodelayfordays8083
@nodelayfordays8083 4 месяца назад
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.
@markuscwatson
@markuscwatson 4 месяца назад
Why did you not talk about DTS config of flash partitions?
@CircuitDojo
@CircuitDojo 4 месяца назад
Good point. Most of the shelf boards already have the slots configured but for ones that don’t I’ll have to do a follow up. Thanks again
@mikeaustin2669
@mikeaustin2669 4 месяца назад
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
@CircuitDojo
@CircuitDojo 4 месяца назад
You’re right. I still wanted to highlight what was minimally necessary since not everyone uses NCS though. Thanks Mike!
@chkenkens
@chkenkens 4 месяца назад
thanks for create zephyr protocol it solves trillemma and replaced bitcoin
@patil29066
@patil29066 5 месяцев назад
Thank you so much for the video!! It’s very helpful!
@CircuitDojo
@CircuitDojo 5 месяцев назад
You’re very welcome!
@patil29066
@patil29066 4 месяца назад
How did you create that firmware which was transferred via BLE? ​@@CircuitDojo
@CircuitDojo
@CircuitDojo 4 месяца назад
@@patil29066 if you're using NCS it gets automatically built. It will be located in you build/zephyr folder and is called app_update.bin
@patil29066
@patil29066 3 месяца назад
@@CircuitDojo If I use hello world program as new firmware and if I update the firmware, will it replace BLE functionality?
@CircuitDojo
@CircuitDojo 3 месяца назад
@@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. 😎
@rogerarchibald
@rogerarchibald 5 месяцев назад
Appreciate the videos, these are great!
@CircuitDojo
@CircuitDojo 5 месяцев назад
Glad you found it useful!
@muhammadhaziq1255
@muhammadhaziq1255 5 месяцев назад
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
@muhammadhaziq1255
@muhammadhaziq1255 5 месяцев назад
It's only benefit is that we don't have to write same program from start for other some other controller. I can't think of it's other possible purpose
@CircuitDojo
@CircuitDojo 5 месяцев назад
All points well taken! It’s a ton easier now with the device_dt API compared to the past. I do feel your pain though!
@rruksana307
@rruksana307 5 месяцев назад
hello, I can't fins that switch in my parts list. Can you help?
@AmitSharma-bm2qj
@AmitSharma-bm2qj 5 месяцев назад
Sir, do you know how to add custom board support on Zephyr rtos if there isn't any support for that
@CircuitDojo
@CircuitDojo 5 месяцев назад
Hi Amit I just did a video on this: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-e_uI4Nwd7kA.html
@AmitSharma-bm2qj
@AmitSharma-bm2qj 5 месяцев назад
@@CircuitDojo thank you... I will look at this
@MarkusSchwingshandl
@MarkusSchwingshandl 5 месяцев назад
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
@CircuitDojo
@CircuitDojo 5 месяцев назад
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
@MarkusSchwingshandl
@MarkusSchwingshandl 5 месяцев назад
@@CircuitDojo Thanks. I had a look and I do call the same function. Thanks for the fast reply and the link!
@svendepoorter620
@svendepoorter620 6 месяцев назад
Great video! Probably this can be more low power using HCI over SPI?
@CircuitDojo
@CircuitDojo 6 месяцев назад
I’m not sure that exists. There is a low power UART implementation by Nordic which is extremely low power in comparison with normal HCI UART
@muhammadhaziq1255
@muhammadhaziq1255 6 месяцев назад
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.
@CircuitDojo
@CircuitDojo 5 месяцев назад
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?
@muhammadhaziq1255
@muhammadhaziq1255 5 месяцев назад
@@CircuitDojo i was able to use mcuBOOT with rpi_pico. I needed mcuBOOT because of ota update. I was using pico probe to print on console
@mapymap9217
@mapymap9217 6 месяцев назад
Excellent videos, thank you very much.
@CircuitDojo
@CircuitDojo 6 месяцев назад
Thanks for watching!
@manavkashyap91
@manavkashyap91 6 месяцев назад
hey how can i start or stop the thread defined in one file from another file
@blobglo
@blobglo 6 месяцев назад
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.
@CircuitDojo
@CircuitDojo 5 месяцев назад
Zephyr is a moving target. The latest documentation for PWM usage can be found here: docs.zephyrproject.org/latest/hardware/peripherals/pwm.html
@FaizurRahman-q4k
@FaizurRahman-q4k 7 месяцев назад
I am using Zephyr for esp32 wroom where ADC1 Channel4 (GPIO32) but ADC reading not working. Can anyone give a tutorial link or example?
@crouchingchicken007
@crouchingchicken007 7 месяцев назад
Hi do you ship world wide?
@crouchingchicken007
@crouchingchicken007 7 месяцев назад
I'd like to try 12-15 units please :)
@CircuitDojo
@CircuitDojo 7 месяцев назад
We do ship worldwide minus countries that may have export restrictions.
@isd-oj4zr
@isd-oj4zr 7 месяцев назад
can you make a video on BMI323?
@danwill6469
@danwill6469 7 месяцев назад
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
@CircuitDojo
@CircuitDojo 7 месяцев назад
These instructions should work for the latest cellular monitor. Thanks for watching!
@Jo11e
@Jo11e 7 месяцев назад
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
@marianmunn8319
@marianmunn8319 4 месяца назад
Had the same issue on the ESP32-2432S028 with an ESP32-WROOM. Increasing the Stack size fixed it for me.
@saumilpatel265
@saumilpatel265 7 месяцев назад
Hi! Thanks for the video. It really helped. Only thing I cant figure out is how do I name a custom service and a custom attribute?
@CircuitDojo
@CircuitDojo 7 месяцев назад
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
@saumilpatel265
@saumilpatel265 7 месяцев назад
@@CircuitDojo That helps a lot. Thank you
@smarino60
@smarino60 7 месяцев назад
Hi Jared, in my custom board, similar 9160feather, I've this result with my 32MB qspi flash: [00:00:08.617,095] <wrn> littlefs: can't mount (LFS -84); formatting [00:00:08.803,375] <inf> littlefs: /lfs mounted [00:00:08.811,462] <inf> qspi: bsize = 16 ; frsize = 4096 ; blocks = 6 ; bfree = 4 [00:00:08.822,753] <inf> qspi: Erasing storage! [00:00:08.830,596] <inf> littlefs: /lfs unmounted [00:00:08.838,684] <inf> qspi: Area 11 at 0xf0000 for 24576 bytes [00:00:08.848,236] <inf> qspi: Erasing flash area ... [00:00:09.378,753] <inf> qspi: Done. Code: 0 [00:00:09.386,383] <inf> littlefs: LittleFS version 2.5, disk version 2.0 [00:00:09.396,697] <inf> littlefs: FS at flash-controller@39000:0xf0000 is 6 0x1000-byte blocks with 512 cycle [00:00:09.410,308] <inf> littlefs: sizes: rd 16 ; pr 16 ; ca 64 ; la 32 the size is only 24576 bytes... 😞
@CircuitDojo
@CircuitDojo 7 месяцев назад
There is some reserved space on the chip. Feel free to open a post here if you have other concerns/questions: community.circuitdojo.com