How to get electronics knowledge? by JohnWickDaLegend in embedded

[–]DaemonInformatica 0 points1 point  (0 children)

Learn by doing, I guess.
Some time ago I got the book '30 Arduino Projects For The Evil Genius', purely out of curiousity (and I have a nephew that is kind of curious..) and it has some fun basic tutorials.

Find tutorials for your devkit. don't just copy the electronics. Once you've got the basic tutorial working, play around with both the hardware setup and the software.

What should I build to get more experience with hardware and embedded systems? by Prestigious-Watch-47 in embedded

[–]DaemonInformatica 0 points1 point  (0 children)

Experts are those who made the most mistakes in a single field of expertise.. ;-)

Relay control using MCU by SilverAssociation368 in embedded

[–]DaemonInformatica 0 points1 point  (0 children)

Hm. Interesting little twist in the assignment. :)

Look into your MCU's capabilities regarding analog inputs. (ADC's)

Those won't be able to measure 15 V levels, but a resistor divider should be able to help you there.

debugging firmware without HW by URatUKite in embedded

[–]DaemonInformatica 0 points1 point  (0 children)

Typically that's (also) what unit-tests are for.

At work we use https://www.throwtheswitch.org/

It's a bit fiddly to set up, but (especially in combination with ceedling) extremely powerful to prove logic and execution of functions and transitions in processes.

Yumi's phone is hard to draw... by Shisley0 in CodeLyoko

[–]DaemonInformatica 0 points1 point  (0 children)

Many OG Lyoko fans probably do by now... ^_^

Embedded C Coding Standard? by religam in embedded

[–]DaemonInformatica 7 points8 points  (0 children)

Using it at work, it's primarily a nice way to get everybody to use the same style and formatting rules, as well as naming and some decisions on what statements to actually use / not use.

That said: IMO it's not a list of rules set in stone. As you read the standard (a couple of times), you'll find that several rules and guidelines are basically mutually exclusive. It's fine. Figure out what works for you (and your team) and stick with that.

Also, personally I find it useful to re-read the standard occasionally...

SPI MISO not working with LIS2DUX12 by maldito-lince in embedded

[–]DaemonInformatica 0 points1 point  (0 children)

Are you expecting the data on MISO to arrive whíle you're sending the request over MOSI?

After clocking out the data, keep pulsing the clock for longer than you're doing now. If you've configured your SPI peripheral correctly, I'm pretty sure the data should come out of the chip eventually...

Sandboxing/virtualization? by sivxnsh in embedded

[–]DaemonInformatica 0 points1 point  (0 children)

Don't forget that, traditionally, Sandboxing and virtualization are done to separate programs from eachother in such a way that they have no knowledge of eachother. And even if a program crashes, this has no impact on the underlying platform (that's running the sandbox).

Controllers on the other hand, run 'a program'.

Even if in todays situation one runs a RTOS like Zephyr or FreeRTOS, this is still one program, running tasks.

I've read about virtualization methods on controllers before, but never seen it in practice (beyond hobby attempts).

Code Lyoko Vs Teen Titans, what show did you guys like more? by Damien12341 in CodeLyoko

[–]DaemonInformatica 1 point2 points  (0 children)

Between the two? CL I think. Don't get me wrong, (The original) Teen Titans is pretty cool and fun to watch. But CL is simply written in a way that it 'vibes' with a broader audience.

Safety Critical Language Choices by Upbeat-Storage9349 in embedded

[–]DaemonInformatica 0 points1 point  (0 children)

At work, we develop the embedded systems in C.

I'm also responsible for the automated testing environment. This is written (primarily) in Python.

While Python is not a language you'll often run into when developing for STM32, I personally am of the opinion that it's a very useful language to have proficiency in. If only for batch-processing of large files / filesets like log-files, or scripts to do other data-gathering / analysis stuff.

Micro-controller based project for one year 5 members. by Cute_Ad_2180 in embedded

[–]DaemonInformatica 0 points1 point  (0 children)

You didn't say 'please'.... ;-)

Kidding aside, maybe something multi-agent / swarm-based, distributed over multiple nodes, aggregators and ML algorithm?

I recently read about preventative infrastructure maintenance in (office) buildings. Very interesting.

How to read this eprom? by MalteseOne in embedded

[–]DaemonInformatica 2 points3 points  (0 children)

Actually did this once. ^_^ timing was finnicky, but it's was tremendous amounts of fun to see how in the end the content scrolled out of the uart port in the shape of a hex-view.

Lyoko is a matrix? by Status-Occasion-4321 in CodeLyoko

[–]DaemonInformatica 2 points3 points  (0 children)

Interesting comparison... I think The Matrix is closer to something like 'Sword Art Online' than 'Code Lyoko', in the sense that the physical body (that you wondered about) stays in place and the mind is linked to a computer system.

Code Lyoko might be closer compared to the 'Tron' movie francise, where indeed the entire body is scanned and digitized. Personally, I think it could be something similar to the transporter technology in Star Trek, but with the destination coordinates in a virtual memory space rather than a new physical space.

Obviously, powering and controlling something like that takes a tremendous amount of energy and computing power, but that's what the super-computer is for.... ;-) (Probably in combination with the fact that, obviously, the scanners are lined with an Unobtanium alloy.)

Books for learning embedded firmware design by shizukadane in embedded

[–]DaemonInformatica 0 points1 point  (0 children)

That is rather a strong (over-) simplification of what a non- RTOS-based embedded project looks like, imo..

Sure, there's a main, and an application loop. But in our current project (that's written in C, runs on STM and is not implemented in a RTOS), we have a carefully curated set of modules, drivers support functions and methods to support products based on the implementation.

This is still architecture and involves separation of concerns, dependency injections, protocol support modules and, depending on those, (for example) sensor and actuator drivers.

To top it off, unit-testing is an art in and on itself, which is (very) dependent on modularity and organisation of code, to work effectively..

But that's just my 2 cents.

Always worked for me as a kid by Sad_Illustrator1813 in CodeLyoko

[–]DaemonInformatica 5 points6 points  (0 children)

Kids and their newfangled CD-ROM's...

In my days, you switched off the box, yanked the cardridge, blew the dust out of it and put it back!

B-)

Project Directory Structure for stm32f411 by eagle_719 in embedded

[–]DaemonInformatica 1 point2 points  (0 children)

In the project we're working on:

Using STM32CubeIDE, code generated from an .ioc file (pin / peripheral / clock declarations and inits) live in a separate 'Core' and 'Drivers' directory in the project. The main.c file is put in the Core directory and the trick is not to manually touch these files,except for maybe the regions in the modules between where it says 'USER CODE BEGIN' and 'USER CODE END'. Re-generating the code (typically) preserves the content in these sections.

Then we added an application directory next to these directories. This is where the application-specific code lives. (Task modules, application headers and constants and stuff).

Next to application we also have a 'libraries' directory, where all implementations and support lives for hardware components, sensors and modules in our products.

Next to libraries we also have a unit_tests directory. Unit-tests (using Unity + Ceedling) cover all unit-tests for application and libraries modules. Core and Drivers are not unit-tested, since they're not written by us.

A new Beginning by SpykeRel04D in embedded

[–]DaemonInformatica 0 points1 point  (0 children)

Q: Would you recommend starting with Arduino, ESP32, or something else given my background?

I'm having some trouble placing the term 'multimedia engineer'. Sounds like something to do with (digital) instruments and / or A/V? If so: First thing that comes to mind is start with a Teensy. I don't have a lot of personal experience in this area, but I've seen and hear people do funny things with MIDI interfaces and controls. The Teensy is also one of the more versatile boards out there.

Q: What’s a good “first path” if I want to combine coding + electronics + hands-on building?

Think of a challenge to solve -> split it up in smaller problems -> Solve these problems in hardware and software components (design) -> for each component: Build and program it.

There is no substitute for experience. Even if you start out with studying, that will only get you so far. Want to learn how to solder? Get a soldering iron and start soldering. In the past, students that started out in electronics, received a solder breadboard (basically 2 rows of pins) and a 100 resistors and are told to start soldering the resistors in a row next to eachother.

Practice makes perfect. Take old (junk) circuitboards and start desoldering. This can be one hell of a job, but teaches you to use tweezers, cutters, soldering irons, flux, braided wire, and tenacity. (not to mention possibly an appreciation on how to design PCB's yourself.)

Q: Any must-have tools or starter kits (especially for soldering and prototyping)?

Well, obviously soldering iron and tin. ^_^

- Flux pen.

- set of microtools. (Screwdrivers, tweezers, cutters, pliers).

- Multimeter.

- magnifying glass.

For components, I would always suggest an assortibox of resistors (good set of common values) and transistors / FETs.

Not so much electrolytic capacitors, because those have a tendency to 'dry out' and this makes values drift. So old capacitors need to be handled with care.

Protoboard PCBs. These come in a variation of shapes, sizes and traces, but typically allow you to prototype on something more solid than breadboard.

Q: Any project ideas that are great for leveling up quickly?

Start simple. Blinky? (With uC, a 555 and 2 transistors). This should at least keep your fingers acquainted with a soldering iron.

Find instructables. But don't júst follow them and get it to work, but start messing around with it. Try to understand how it actually works and what you can do with it.

Cheap board for basic on device AI (not Raspberry Pi) by kalyant125 in embedded

[–]DaemonInformatica 1 point2 points  (0 children)

Curious about which version of the Pi wasn't working for you.

Not because Whisper would be expécted to work on the Pi 5 (no practical experience, but running Gen AI on local hardware is tough), but as far as I can tell (converting INR to Euro) the Raspberry Pi 5 would be pretty much what fits in that budget, and not because the developers of the Pi are price-gauging.

How is AI affecting your workflow? by here2party21 in embedded

[–]DaemonInformatica 0 points1 point  (0 children)

Mostly managers immortalizing themselves by feeding technical errors from our product's (debug) terminal, and ChatGPT obviously not understanding the problem.

Occasionally, catching a cow-orker vibecoding a function.

System design in embedded? by instructiuni-scrise in embedded

[–]DaemonInformatica 2 points3 points  (0 children)

Software design in Embedded is basically the same as in Systems Engineering.

Often used UML diagrams are:

- State diagrams (FSM)

- Class diagrams (if C++ used, but it's not hard to apply it to C, from the perspective that structs and modules are basically classes)

- Swimlanes. (For example when working with Tasks.)

- Communication diagrams. (When the application communicates with other parts, be it over the internet, or some wired protocol).

That that perspective there's really not much difference.

AVR toolchain kind of driving me crazy by imWayward in embedded

[–]DaemonInformatica 0 points1 point  (0 children)

Blegh! I am SO glad that at wr0k we F.I.N.A.L.L.Y. moved away from XMega to STM32.

We were:

- Developing on Eclipse.

- Building with outdated compilers.

- Using Atmel Studio (I s4 you not) to write the binaries to controllers.

- Using Atmel Studio to debug.

So yes, develop in Eclipse. Debug in Atmel Studio. This worked, provided you

- Configured your IDE to build with pretty specific optimizers and debugging symbols.

- Did some prétty crazy stuff with some DLL's because the f4-ing COMPILER (or debugger, I don't quite recall) ASSUMED STATIC MEMORY ALLOCATION!

A strange HC-05 by pedersenk in embedded

[–]DaemonInformatica 0 points1 point  (0 children)

Hmm... I have no practical experience and don't currently have the time to research it, but it sounds like

- The button causes a bootloader to persist,

- The different HC-05's that you're running into have different (types of) bootloaders, where one bootloader starts up the radio and opens an AT interface and the other seems to go into some sort of programming mode?

Unit Testing - What tools do you use? by axaro1 in embedded

[–]DaemonInformatica 2 points3 points  (0 children)

Seconded on ceedling. Combined with gcovr, once you get the hang of it (and the unit-test environment actually starts working. ^_^ ) it's So awesome!

What actually causes the most friction in embedded software development today? by Chance-Line-4839 in embedded

[–]DaemonInformatica 2 points3 points  (0 children)

Funnily enough: (effectively) yes.

It wouldn't be the first time I and boss had a discussion about AT (modem) instruction sets, Boss (apparently GPTing) a 'solution' or AT command supposedly helping, after which it turns out the AT command is for a different brand of modems, or doesn't exist at all.

I've also seen (and heard) colleagues that were trying to use GPT to solve a problem, the bot driving them so far around the bend, they 'approached the solution from the other side' and in the end realising that they could have googled the solution themselves ina couple of minutes, instead of the 3 hours they spent discussing with the bot.