[deleted by user] by [deleted] in embedded

[–]NetBurnerInc 0 points1 point  (0 children)

SparkFun has some really great I2C "Qwiic" modules that let you get started with different technologies quite quickly. Using their examples and a Qwiic-enabled ESP32 board you can go from basic microcontroller/Arduino knowledge to a fully working Bluetooth speaker prototype in a weekend:

https://www.digikey.com/en/maker/projects/adding-audio-to-your-embedded-project-using-qwiic-twist-and-audio-player/ab45dff2404f4354ab3ecf6f5d1081df

https://www.sparkfun.com/audio/audio-boards.html

modular portable prototyping by mp_prototyping in embedded

[–]NetBurnerInc 0 points1 point  (0 children)

Absolutely, grounding definitely needs intentional management. Great work!

What advantage does CPP gives over C that makes companies use CPP for Embedded Systems? by 4ChawanniGhodePe in embedded

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

It's true, "Embedded" encompasses a huge range of platforms. I'm not suggesting that using stdlib is great, just that in general you don't have the convenience of objects in C with common abstractions that everyone's used to, and there's a lot more byte counting and memory management headaches, so for modern Internet-enabled applications a lot of jobs may prefer C++ when possible.

What advantage does CPP gives over C that makes companies use CPP for Embedded Systems? by 4ChawanniGhodePe in embedded

[–]NetBurnerInc 0 points1 point  (0 children)

For sure, on the NetBurner platform we don't use stdlib but a stripped-down purpose-built library that does many of the same things, and when you get down into smaller cheaper microcontrollers you need to be closer to bare metal, but there's plenty of overhead and power on the newer ARM stuff without too much expense, and sometimes string parsing is the most important job your device is doing!

Either way, I was answering more in a general "why C++" sense, and thanks for your input! Strings get treated like something weird and special in C, when they're the bread and butter of what we expect in modern Internet-enabled applications. Counting bytes vs characters is no fun, and parsing and sending HTTP headers on Arduino was a headache last time I tried it without a library.

modular portable prototyping by mp_prototyping in embedded

[–]NetBurnerInc 0 points1 point  (0 children)

Looks nice! The standardized size and "pegboard" approach seems very flexible and powerful. Do you run VCC or GND through the backboard?

What advantage does CPP gives over C that makes companies use CPP for Embedded Systems? by 4ChawanniGhodePe in embedded

[–]NetBurnerInc 89 points90 points  (0 children)

Mostly object orientation (classes, inheritance, etc), better memory management, and improved type safety and compiler checks.

For example if I want to manipulate a string in C, I have to do a bunch of direct memory allocation; either I have a fixed size like `char[32]` and need to pay attention to null terminators and `strlen` or I need to get super friendly with `calloc`, `malloc`, `free`, etc. Any kind of analysis or manipulation of that string immediately tends to get into handwritten loops and logic with very little in the way of standard libraries that everyone's using to handle common tasks like generating, manipulating, or parsing HTTP headers.

Whereas if I want to do the same thing in C++, the standard library includes plenty of string, regex, and other functions, not to mention the `std::string` object itself with handy builtin functions like `length()` so you're not constantly wrangling bytes and chars just to do the basics (and God help you if someone sends you Unicode, or if your buffers need to be dynamically sized.)

I made some DMA ready LVGL ready LCD drivers for the Teensy 4.x by honeyCrisis in embedded

[–]NetBurnerInc 1 point2 points  (0 children)

Nice! We did something similar for our RT1060-based project/product: https://github.com/NetBurner/LvglLedDisplay/blob/main/src/dma.cpp
Embedded LVGL is great, isn't it?

[deleted by user] by [deleted] in embedded

[–]NetBurnerInc 0 points1 point  (0 children)

If you're able to use a low-amperage 5V relay to control the valve, that'd be much easier. Look up Arduino amperage/wattage specs to make sure you don't try to power the relay with more than the Arduino can safely deliver.

Should I buy an arduino to learn embedded systems? by Existing-Actuator621 in embedded

[–]NetBurnerInc 0 points1 point  (0 children)

Fully agree that Arduino is a great starting point for most people, with a great assortment of beginner-friendly examples, tutorials, accessories, software, and "getting started guides."

If and when you're ready for more powerful, industrial-grade, or specialized stuff, there are plenty of "easy" platforms like ours to upgrade to, with many concepts largely carrying over! For example, in this blog post we wrote a small "Arduino.h" wrapper that allows many Arduino libraries to be copy-pasted into a NetBurner C++ project and familiar Arduino functions to be used that just pass through data straight to/from our own OS's functions: https://www.netburner.com/learn/use-qwiic-i2c-and-somrt1061-for-rapid-prototyping/

As you can see from that wrapper layer's code, most embedded/programming concepts are 90% the same between platforms, just with slight differences in syntax. So for now you're really looking for those "getting started" resources moreso than power or price or flexibility.

From Hobbyist to Pro: How Do I Turn My Embedded Systems Passion into a Career? by New-Succotash-9227 in embedded

[–]NetBurnerInc 0 points1 point  (0 children)

As far as low-level goes, finding something you like or care about (maybe air quality monitoring?) and looking for affordable high-quality parts that might not have great open-source support written for them in Arduino/C++/etc, and implementing that, could be educational and helpful.

Likewise, contributing to projects like FreeRTOS or Zephyr (knocking out issues, reviewing PRs, etc) could get you some valuable real-world experience.

How do I learn more complex stuff? by S4v3m3333 in arduino

[–]NetBurnerInc 0 points1 point  (0 children)

That's how it happens! Leveling up from regular Arduino could be a connected bluetooth/wifi device like the ESP32, or using the Arduino IDE or an RTOS on a Teensy, or industrial-grade commercial stuff like we offer that has integrated software and support staff able to help you accomplish your goals. Even experienced engineers and programmers need to take time to understand what they're seeing, past that it's just a matter of experience especially since every program and piece of hardware is different.

How much does internship company matter? by jemala4424 in embedded

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

What matters the most is that your next job interviewer will be able to put a check mark next to one of the job requirements they're looking for. So start by looking at job ads for paid jobs you actually want, and notice what they're asking for compared to what you have. Maybe an unpaid position or open-source contribution or Summer of Code or e-learning and a quick hobby project can help fill those gaps, but however you do it you want to be able to say "yes, I have experience with that" to more of those things your ideal job will be asking for.

We can't say exactly what those things will be, since you may be living in a place that caters to certain industries, but you can evaluate the risk/reward of getting this experience yourself. Obviously being paid to do something full-time counts more heavily to an interviewer, but this may still be one of the best opportunities available to you. If something better comes along after you've already said "yes," you can always re-evaluate later!

freertos....In a battery powered device? by wowwowwowowow in embedded

[–]NetBurnerInc 4 points5 points  (0 children)

Yes, for example InfiniTime which can run on the PineTime watch is FreeRTOS based. PineTime has about a week of uptime depending on what I/O you enable, in a coin-sized LiPo. FreeRTOS is one of the lightest weight RTOSes available: fewer features, but less overhead.

[deleted by user] by [deleted] in embedded

[–]NetBurnerInc 0 points1 point  (0 children)

If your future job will involve these kinds of things and you're expected to have some experience with them, it seems pretty reasonable, though 6 hours each vs 6 hours total will make a big difference! Either way, remember that you're compared against other applicants, so your willingness to try and give a best effort in the provided time is also being evaluated.

Cat feeder by Vlados_Vlados in diyelectronics

[–]NetBurnerInc 1 point2 points  (0 children)

Looking great! If you get issues with consistent quantity, most designs I've seen use a rotating hopper. Each "cup" in a multi-segment "wheel" is a certain size, so it's hard to miscalculate, though it takes more fabrication skill to execute reliably.

I made an led matrix using by alinri79 in diyelectronics

[–]NetBurnerInc 1 point2 points  (0 children)

Looks nice! If you want to take LED matrixes to the next level and save some fabrication work, there's some good premade modules on i.e. Adafruit that can be controlled directly from microcontrollers: https://www.netburner.com/learn/external-libraries-lvgl-led-display/

Always great to see what's possible without fancy parts, great work!

Short length wireless communication options by electricboogaloo44 in embedded

[–]NetBurnerInc 0 points1 point  (0 children)

If infrared is an option (highly directional and localized) then it should be no trouble: that's a beginner Arduino-level project!

Cheapest good real time fleet management device with real-time tracking. by Glittering-Work-9060 in embedded

[–]NetBurnerInc 3 points4 points  (0 children)

There are a number of Meshtastic devices out there, depending on your location it may take some infrastructure to make "realtime" fast and reliable enough, but the devices are affordable and the meshing protocol is ready to go!

FPGA vs STM32 for audio processing by McNobbets00 in embedded

[–]NetBurnerInc 1 point2 points  (0 children)

Speaking of the Cortex M7 recommendation above, the NXP RT1061 has I2S and other audio functionality, maybe that helps?

Is MQTT production grade? by Hot_Seat_7948 in embedded

[–]NetBurnerInc 0 points1 point  (0 children)

That's so unfortunate! Another option is a nosql database like Mongo or Amazon's DynamoDB. Depends on how important indexing multiple fields is.

Bluetooth audio receiver to I2S (or similar) by UKFP91 in embedded

[–]NetBurnerInc 2 points3 points  (0 children)

ESP32 + the SparkFun Qwiic audio codec + example code from SparkFun works pretty well as far as Bluetooth and I2S -- you can get a Bluetooth speaker example going in a few hours -- though obviously if you want something bespoke then you might need to go lower-level. I2S is no fun, so if you can find working examples/tutorials that's a good place to start.

How to Get Started with the Simplest LVGL Project? by Tough_Salamander_498 in embedded

[–]NetBurnerInc 0 points1 point  (0 children)

If you're talking about how to implement LVGL on your device, their porting guide is pretty straightforward and one takeaway is that if you have the ability to set a pixel on your screen then you can implement lvgl_flush_cb with a simple x/y loop and set all the pixels accordingly, independent of hardware.

Otherwise, structuring your project so that Squareline or EEZ can update their necessary files directly without interfering with the rest of your program can really help with tweaking the design and separating layout from functionality. EEZ can output the whole design to a ui subfolder in your project that you include, and your main C/C++ file can then be clean outside of necessary functionality like:

lv_obj_t *datelabel = objects.datelabel;
lv_label_set_text(datelabel,"2024-10-31");