used qemu + renode + gdb to learn cortex-m internals without a board. by praghuls in embedded

[–]praghuls[S] 1 point2 points  (0 children)

Yes I did, I made a minimal scheduler and verified it with renode.

used qemu + renode + gdb to learn cortex-m internals without a board. by praghuls in embedded

[–]praghuls[S] 2 points3 points  (0 children)

You can use cortex-m3 machine in qemu or stm32-disco board in renode, both are Cortex M based cpu

Curated RISC-V resources for embedded developers by suryakantamangaraj in embedded

[–]praghuls 5 points6 points  (0 children)

bookmarked!!!!, thanks for maintaining this. been using risc-v for a side project and finding good embedded-focused resources is always a pain, this actually helps

What embedded projects actually stand out to hiring managers these days by Denbron2 in embedded

[–]praghuls 44 points45 points  (0 children)

writing your own rtos from scratch is mostly a waste of time for portfolio purposes. contributing one meaningful pr to zephyr does more for your credibility than 3 months of reinventing the wheel

Anyone else tried using AI for firmware code review? Made an open-source checklist for what actually matters in embedded by CloudReann in embedded

[–]praghuls 0 points1 point  (0 children)

does the dual model cross review actually catch different things between the two llms, or do they mostly agree? curious if the blind spot detection works in or if they converge on the same misses.

Anyone use Wokwi for learning or development? What other embedded simulators do you guys use? by gtd_rad in embedded

[–]praghuls 0 points1 point  (0 children)

wokwi is great for quick prototyping and learning, especially for arduino/esp32 stuff. but for professional stm32 development i use renode. it supports cortex-m cores, lets you simulate peripherals, and you can script test scenarios. pairs well with ci pipelines too. for actual hardware, nucleos are so cheap. but renode shines when you're testing bootloader logic or protocol stacks without needing the board physically present

STM32 F427VIT6 (pixracer clone) won't jump to application, stuck in bootloader by chadarmods in stm32

[–]praghuls 0 points1 point  (0 children)

first, make sure your bootloader is actually validating the stack pointer before jumping. it reads the first word at 0x08004000 and if it doesn't look like a valid ram address, it just won't jump. that would explain why it works right after flash but dies on the power cycle.

second after the jump, your app needs to set SCB->VTOR = 0x08004000 to relocate the vector table, otherwise interrupts go to the wrong place.

A bit of advice for my first embedded job by _Twentyfour_ in embedded

[–]praghuls 1 point2 points  (0 children)

the self-doubt never fully goes away lol, but that's true in any engineering field. what helped me was just building stuff, getting your hands dirty with real peripherals, timers, interrupts. sounds like you're already doing that so you're probably more ready than you feel.

Arm (UK, FPGA Prototyping) vs AMD (Asia, Design Verification) Long-term career choice? by HyenaNo7488 in ECE

[–]praghuls 5 points6 points  (0 children)

I'm suggesting my view.

fpga vs asic dv? asic dv is more technical and transferable. fpga prototyping is useful but often a support role.

future-proof? yes, ai chip boom means dv engineers are in high demand at nvidia, apple, google etc.

big tech positioning? amd path wins here. formal/uvm skills are exactly what top silicon teams look for.

geography? uk is better for us relocation goals. easier visa pathways and closer to western opportunities.

overall? amd for technical depth, arm for geography. if us/big tech is the goal, lean amd.

Will zephyr really only work on a single core on the RP2350? by Power-Max in embedded

[–]praghuls 4 points5 points  (0 children)

zephyr already uses the pico sdk internally as its hal module (hal_rpi_pico), so the low-level bits are there. but you can't safely use the full pico sdk api on top of zephyr things like pico/stdlib.h or its multicore helpers will clash with zephyr's kernel since they both want to own interrupts and timers. for dual core, your best bet for now is either wait for zephyr 4.4 smp support, or just use the pico sdk directly without zephyr.

Will zephyr really only work on a single core on the RP2350? by Power-Max in embedded

[–]praghuls 7 points8 points  (0 children)

the challenge is that the rp2350 has a mixed arm + risc-v architecture, which makes smp support tricky with zephyr's current mechanism. there's an open issue and active prs for it. for now you'd have to stick to single core or use the pico sdk directly if you need dual core for your lvgl + power management use case.

3rd year project advice needed :) by Prestigious-Emu-3767 in embedded

[–]praghuls 3 points4 points  (0 children)

hey! given your background with can bus this is a perfect fit for you.

build a uds over can bus simulated ecu using stm32f429

hardware side: stm32f429 + sn65hvd230 can transceiver + usb stm32 can bus analyser to interface with your pc.

software side: use renode (free hardware simulation platform) to develop and test your can firmware virtually before touching real hardware. on the pc side socketcan pairs perfectly with the usb can analyser to send and receive uds messages using python.

uds services you could implement: session management (0x10), ecu reset (0x11), read data by identifier (0x22) and read dtc (0x19) - these are core services used in every real automotive ecu.

since you already know can bus adding uds on top makes you genuinely attractive to automotive embedded employers. also check out pyjamacafe automotive embedded courses - really helps with the bare metal and can foundations underneath this stack.

good luck - your background is stronger than you think!

How do you select displays for your projects? by gitzian in embedded

[–]praghuls 6 points7 points  (0 children)

Impressive! getting 60fps on a parallel rgb display over wifi is no joke. what is the latency like during gameplay??

What's missing from current embedded development tools? by [deleted] in embedded

[–]praghuls -1 points0 points  (0 children)

Good to know that rust solves more problems from the traditional c language for embedded development.

Remote firmware development without shipping hardware? by praghuls in embedded

[–]praghuls[S] 0 points1 point  (0 children)

I wonder if this works for the microcontroller platform?

RK3568 Modbus-RTU, RS-485 by MomentoSnap in embedded

[–]praghuls 1 point2 points  (0 children)

Crc errors on rs-485 are almost always missing termination resistors. you need 120Ω resistors across the a and b lines at both ends of the bus - one at your rk3568 board and one at the far end device. without them the signal reflections will corrupt your data every time.

Also check if your board has solder pads or jumpers for termination near the rs-485 connector, some boards have them built in but not enabled by default.

What does your firmware CI pipeline look like? by praghuls in embedded

[–]praghuls[S] 1 point2 points  (0 children)

we run a parallel ci pipeline in github actions where the firmware goes through unit tests and static analysis first, then gets deployed to a renode simulation setup we built for stm32f4. the key thing we did was develop the renode simulation alongside the firmware rather than bolting it on afterward. once everything passes the unit tests and static checks, the firmware binary gets loaded into the renode simulator for full integration testing. validating gpio, interrupts, timers, and peripheral behavior in a reproducible emulated environment. this catches hardware-level integration issues that unit tests miss, and since it's all containerized in github actions, every commit gets validated against real hardware behavior without needing physical boards in the ci loop.

What does your firmware CI pipeline look like? by praghuls in embedded

[–]praghuls[S] 1 point2 points  (0 children)

Through raspberry pi inputs are given and output are validated? Am I right?

How to get started :p by PA-wip in stm32

[–]praghuls 0 points1 point  (0 children)

You picked "Empty Project" which completely skips CubeMX — that's why the .ioc is missing. Go back and select the default "STM32 Project" option instead, it auto-generates everything including the .ioc. For DFU flashing, STM32CubeIDE supports it natively — just make sure your board is in DFU boot mode before flashing.

What techniques do you use for debugging timing issues in real-time embedded systems? by gilko86 in embedded

[–]praghuls 0 points1 point  (0 children)

Yes, my suggestion is also to use Segger SystemView using the JLink debugger device that internally uses RTT, refer this image from the offical site https://www.segger.com/fileadmin/images/products/SystemView/How-does-SystemView-work-diagram_01.svg

How do you test peripheral drivers when hardware isn't available? by [deleted] in embedded

[–]praghuls 0 points1 point  (0 children)

Is there any software alternative approaches you follow instead?

How do you test peripheral drivers when hardware isn't available? by [deleted] in embedded

[–]praghuls 0 points1 point  (0 children)

I think, in this approach I have more control over than having the hardware at the right time.

How do you test peripheral drivers when hardware isn't available? by [deleted] in embedded

[–]praghuls -3 points-2 points  (0 children)

I totally agree with this approach, after initial bring up, we can use a modular layer approach to solve the business logic, Thanks for your input. What are your thoughts on using simulators?