r/embedded

How to source AWINIC ICs

I recently stumbled over the ICs of awinic and at least on paper they are pretty damn good and have small footprints. JLCPCB has some of their ICs on stock but for other products where their stock is 0 I was unable to source the components through JLCPCB. I wrote to awinic but they told me that they are unable to conduct business directly with individuals.

Does someone have an idea where I could get them? In particular I'm looking for AWD8912TSR

reddit.com
u/MarinatedPickachu — 1 hour ago

What is the point of ARM TrustZone in MCUs?

From what I understand, ARM TrustZone is a privilege level which allows us to hideaway sensitive operations, etc to a trusted environment and allows us to expose a very small API to systems of our choice.

But what is the point of it exactly? Why would one want to split environments into Secure & Normal world? If someone can modify Normal world's code, Can't they easily interface with the Secure world?

reddit.com
u/FoundationOk3176 — 1 hour ago

How is the developer experience with STM32WB series?

I am thinking of considering STM32WB35CE for a project of mine. My use case requires USB Device & BLE >= 5.0, Readout protection & Enough memory to store a 4-bit 128x96 OLED framebuffer (~6 KB).

STM32WB35CE checks all these marks but I'm seriously worried about the developer experience (DX). My previous experience with STM has been their MPU lineup.

I also don't want to use STM's IDE or whatever they call it. Thus I was wondering if anyone who has used this particular lineup or any STM32 MCU could comment on it.

There's also nRF5340 but their abomination of a packaging aQFN looks like beyond my skill set to design a PCB around.

reddit.com
u/FoundationOk3176 — 14 hours ago

Questions regarding PPS signals

Here is some context before i ask my question:

I will have to design a GPS time synchronisation system for a project. I have 2 option :

  1. squeeze the GPS module on the main PCB and find space on the back panel for a SMA or something small enough for GPS antenna that goes outside. In this case i will have a precise clock source on the PCB and GPS PPS will come with a direct trace from the module to my FPGA. (might need to use a resistor divider to reduce signal voltage, not sure yet if HP or HD banks are needed) in this case i can say i have more or less datasheet PPS accuracy

  2. have the GPS module on another board connected to my main FPGA board with some cable , might be able to negotiate RJ45 for twisted pair cables. Problem in this case is that now PPS signal will travel a lot longer and through cable and potentially pick up tons of noise and also get attenuated. Thing is I hate the idea of wiring something directly in a FPGA , also after a long cable i am not so sure how the signal will attenuate and potentially DC shift.

In this case what type of buffer should i use? Or should i try a differential receiver driver like RS485 or LVDS? I am a bit afraid that anything on the PPS line would severely reduce performance.

Personally i would go for 1) but the decision is not entirely mine and if it is decided to go with 2) what would be a good way to reduce the effects of the long cable (5-10m).

PS since this is early in the project expected performance was not decided but i guessing at least +-1us.

Any thought or advice how to deal with situation/ have some better arguments then what i presented.

reddit.com
u/immortal_sniper1 — 14 hours ago

MSP430 I2C Debugging Questions

Hello!

BACKGROUND:

I'm working on an MSP430F2616 microcontroller and noticed some weird issues related to I2C. I was hoping I could get some clarification or thoughts on some things.

I have a self-test LED that lights up when everything is good, and blinks for errors. It checks a couple DAC outputs and whether the I2C display is connected and working. If there is no display, it continues working as normal. Display is not required.

I noticed an issue where after flashing the board some would light up just fine, but others would not light up at all which shouldn't happen in the code. I looked through and saw plenty of infinite loops in the i2c transmission method and it was getting stuck waiting for the NACK, since no display was connected.

I was wondering why that might occur on some boards but not all so I looked through the parts and everything on the board is fine.

QUESTIONS:

When debugging I see the data and clock pins go high when initializing, but as soon as I initialize the I2C on them they go low. I'm using pins 1+2 and port 5. I'm watching P5IN to see the level of the pins. I was wondering if I can't get an accurate view of those pins through the debugger when they are in I2C mode? Is that normal when setting the pins as I2C?

Also, is it possible if I don't properly perform an I2C reset that the bus can be put into an unstable state, and cause the NACK to not occur when testing to see if a display is attached?

Sorry for the long message, but thanks for any ideas!

reddit.com
u/skilfulsun — 11 hours ago

Planning to create a Visual programming language for embedded devices, How viable is this?

Let's take an ESP32 for example. The user will be able to program the ESP32 using the Desktop Software OTA. A firmware (Small C++ program) will be flashed to the ESP32. After that the VPL (Visual programming language) software and the ESP32 will be able to communicate wirelessly.

Users will be able to quickly prototype and create programs by connecting blocks. They can execute the code, can see live execution (which node is being executed) with detailed logs and visual data. The communication can be done via Bluetooth or Wifi.

How viable is this as a project Idea? Is it practical? And would it be actually useful?

I am a beginner/intermediate at embedded, made a few ESP32 and RPi projects, but I am quite good at Desktop development in Java. Was looking to create meaningful projects and expand my skill level.

TLDR : want to create a Visual coding tool for ESP32 (and possibly other micro-controllers) how viable is the project idea

reddit.com
u/gufranthakur — 20 hours ago

FreeRTOS experiments question

Hello,

Imagine that you have a port of FreeRTOS which does timeslicing, but in a bit different way: conext switch happens not by time quantum but by number of CPU instructions. Assume that our CPU is capable of generating NMI after specified number of instructions was executed, so we use this interrupt instead of systimer interrupt

What do you think about this kind of scheduling?

Can it be useful in a hard realtime code?

Do you see any advantages or obvious problems in such scheduling mode?

Thanks!

reddit.com
u/Low_Lawyer_5684 — 20 hours ago

Circuit Cellar Magazine Eco-Blend?

Although I stopped getting this magazine in print or digital some time ago, I always kept my eyes on it for the occasional sale. It looks like half of the issues are digital-only now ('eco-blend")? No option to subscribe to 12 print issues a year. There aren't many magazines that cater to embedded, so I hope this one can survive. It's been around forever.

reddit.com
u/mtechgroup — 14 hours ago
▲ 7 r/embedded+1 crossposts

Light Tasking Ada Runtime for Zephyr on Arm Cortex M

I am a big fan of the Zephyr RTOS, of Home Assistant and of the programming language Ada SPARK and the use of formal methods to deliver better software to the world.

There was limited support for Ada on Zephyr, so I sat down this weekend and vibe-coded a light tasking runtime for Zephyr. The substack post with the backstory is here:

The actual repository is here:

https://gitlab.com/close-hauled/light-tasking-zephyr

What does this give you? The opportunity to write better software on Zephyr and statically (during compile time) prove the absence of runtime errors and prove functional correctness of (parts of) an algortihm.

I used it on a Pico 2W to report pH and TDS values to my home assistant setup.

Interested in Ada and want to give it a try, all the tools are open source, lots of getting started materials are here https://ada-lang.io/.

open.substack.com
u/Shot-Confusion8356 — 14 hours ago

Is starting as a Field Application Engineer a good entry point into the embedded industry?

I’m a fresher trying to start my career in embedded systems, and I recently got an interview for a “Field Application Engineer” role at a company.

The role is more customer facing and field oriented rather than pure development/testing. Responsibilities include:

  • Supporting customers with embedded design & debugging tools like cross compilers, assemblers, in-circuit emulators, GUI toolchains, etc.
  • Assisting customers in developing drivers and BSPs under RTOS
  • Understanding customer technical requirements and suggesting industry-specific solutions
  • Travel and customer interaction are part of the job

The company mainly works in electronic components distribution, embedded tools, and technical sales/support.

I want to eventually grow deeper into embedded systems/firmware development, RTOS, drivers, and low-level programming.

Will this help me build strong technical skills and open paths toward firmware/embedded development later, or does it push more toward technical sales/support long term?

I’d really appreciate honest opinions from people already working in embedded systems or FAE roles.

Thanks!

reddit.com
u/Evening-Peach3412 — 14 hours ago

I am not able to get MCAN working in SAMV71 board

I am using SAMV71 xplained pro board, I am not able to get MCAN in interrupt mode, my god it is too difficult to get even their examples to run, I have to disable all the cache, please help me by sharing any repo with explanation

reddit.com
u/appustar123 — 19 hours ago

WFH is not an impossible dream.

Everyone knows that for a long time, the embedded industry was limited to supplying Windows-only toolchains due to interference from those damn chip vendors. That is why the ThinkPad was the "standard" device in this field for so long. It was only recently that it began supporting macOS and Linux. In this situation, I came up with an idea of ​​my own. It was this:

"Since embedded systems have to interface chips with computers and connect measuring instruments to pins anyway, why not just connect the development environment, JTAG, and oscilloscope to a server and access them remotely?"

I know this sounds crazy. However, before you refute it, please listen. We can self-host VS Code on a server using Docker. Through this, we can access it via a web browser and complete the compilation process. Theoretically, using tools like Moonlight, we can run KiCad, FreeCad, CubeMX, and others at smoother refresh rates than VNC (I really wish ST would handle pin mapping within VS Code, just like Nordic Semiconductor does). While instrumentation might seem like a tricky issue, most instruments are accessible via LXI or web pages; all you have to do is set up debugging pins on a board or breadboard beforehand and connect a logic analyzer or oscilloscope. In that case, all we need is a device with a keyboard that supports Tailscale, and we are ready to perform WFH. I wonder why we are unable to work from home despite having these means in place.

reddit.com
u/Jolly-Speed-3942 — 1 day ago

SFP Module Failure Impact Different Layer Protocol

Hi all,
I’ve recently been deep-diving into SFP module hardware architectures and Linux network driver source code. I've been tracing what happens when a physical layer failure occurs—such as an optical fiber snap or an internal transceiver hardware fault (TX_FAULT).

While I can clearly see how the low-level Linux kernel driver (drivers/net/phy/sfp.c) handles the physical pin interrupts and handles the internal state machine transitions to drop the interface link, I have a big-picture architectural question about the cascading impacts on the rest of the network stack.

When an SFP link drops out of nowhere, it obviously ripples upward. For example:

  • Layer 2: Spanning Tree Protocol (STP/RSTP) must recalculate the topology, LLDP needs to tear down neighbor mappings and update its MIB, and LACP must instantly shift traffic away from the dead port.

I have two core questions for the network architects and firmware engineers here:

  1. Where does the responsibility lie? How much of this error handling and cross-protocol signaling is natively handled by the standard Linux kernel, versus how much must be explicitly implemented, tuned, and glued together by a network product designer or NOS (Network Operating System) developer?
  2. Is there a standard specification? Is there an industry-standard framework or RFC that comprehensively maps out exactly how physical transceiver faults must propagate through Layer 2, 3, 4, and above to ensure deterministic high-availability? Or is it mostly up to proprietary vendor implementation details?
reddit.com
u/Eagle_TW — 24 hours ago

Use of AI in embedded systems project

I am a rising junior studying computer engineering (hardware). I've done an embedded systems class which introduce me to the RP2350B microcontroller and taught me various peripherals (ADC, SPI, UART, etc...). I want to now do my own project during the summer.

The only problem is I had an entire walkthrough of the lab manual which helped me design the breadboard, write the drivers, etc. Now starting from scratch is a bit intimidating, as I will:

  1. Use the ESP32-IDF kit for wifi capabilities

  2. Use a BME sensor and a amplifier breakout (new peripherals for me)

  3. Have to set-up the extension on VSCode, know how to use the manager, etc..

I want to do this the traditional way, by going through the datasheets, looking through source code, iterating on my own so I know what I am designing, but I also want to be efficient.

I know AI could help me expedite the process of setting up the code, debugging code, etc. Should I use it? I have 3 months to work on my self-project so I am willing to give the time, it's just whether I should use AI to help me "expedite" work.

Any clarification from engineers in the field or seniors would be great, thanks!

reddit.com
u/Grouchy_Ad1747 — 1 day ago
▲ 162 r/embedded+2 crossposts

My company tries to sue me for adhering to GPL-V2

Hi, i’m an Embedded Linux engineer at European company. Today i was called to the meeting and heard that I’ve „stolen company’s IP” by publishing linux kernel (without DTS, Secure Processor integration and everything what can be called IP) only preempt patches, merging two FOSS (still publicly available) branches from our vendors to make unified codebase and avoid switching upstream while making downstream changes.

  1. Code was published by me because of adhering to GPL license
  2. I guess I’m not that stupid to public ANY vendor-specific details
  3. Code was published from my own company name and mostly based on my previous experience.

Is the behavior like that acceptable and legal at all?

reddit.com
u/lilmyrmeow — 2 days ago

How many of you -or people that you know or heard about, got sued for making a mistake at work?

Inspired by the post today, about guy who has been sued for publishing something that he wasn't supposed to publish, I wanted to ask the community - how many of you actually know someone who got into legal problems for making a mistake at work or something similar happened to you at some point?

reddit.com
u/con_zoomer — 1 day ago

Help, can't get on-board LED to blink on ESP32

Hello, I'm a complete beginner trying to get into embedded systems with ESP32. I want to get the LED to blink using this code

#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"

// Built-in LED is on GPIO2
#define LED_GPIO GPIO_NUM_2

void app_main(void) {
    // Resets any previous state of the pin (good practice)
    gpio_reset_pin(LED_GPIO);
    // Configure GPIO2 as output
    gpio_set_direction(LED_GPIO, GPIO_MODE_OUTPUT);
    
    // Blink forever
    while (1) {
        gpio_set_level(LED_GPIO, 1);            // Set pin(GPIO2 in this case) to HIGH(3.3V)
        vTaskDelay(pdMS_TO_TICKS(1000)); 

        gpio_set_level(LED_GPIO, 0);            // Set pin(GPIO2 in this case) to LOW(0V)
        vTaskDelay(pdMS_TO_TICKS(1000)); 
    }
}

But the LED does not blink. However when I add printfs before the delay like this, it blinks

// Blink forever
while (1) {
    gpio_set_level(LED_GPIO, 1);            // Set pin(GPIO2 in this case) to HIGH(3.3V)
    printf("LED ON\n");
    vTaskDelay(pdMS_TO_TICKS(1000)); 
    gpio_set_level(LED_GPIO, 0);            // Set pin(GPIO2 in this case) to LOW(0V)
    printf("LED OFF\n");
    vTaskDelay(pdMS_TO_TICKS(1000));
}

Can someone please help me know why this is happening and how can I fix it?

I'm using an ESP32 DEV KIT V1

reddit.com
u/sh_pa_ic_rk_ie_tr — 1 day ago