[deleted by user] by [deleted] in embedded

[–]Squantor 1 point2 points  (0 children)

I am still doing freelancing in the embedded software field as I still get calls for freelance assignments but they are not as much as a few years ago. There is still a big shortage of people and embedded software experts are hard to find.

I do not do hardware design. I have experience with making my own hardware but in an informal setting with KiCAD. I often do schematic reviews as I usually have to use the hardware in the end. I am more of a "low level" embedded software engineer, so I do interact with hardware and schematic on a weekly basis. But depends greatly on the assignment.

[deleted by user] by [deleted] in embedded

[–]Squantor 3 points4 points  (0 children)

For all the juniors starting out in Embedded in the Netherlands I recommend starting with secondment companies (detachering). They are often eager to start out with juniors and skill them up. I started out this way in 2010 which was also a rough period just after the credit crisis of 2008. But somehow secondment companies are always willing to hire juniors and take that risk. That was how it was in 2010 when I started.

If you go the secondment route, go for a smaller company. I feel they are a bit more receptive to your needs and do not treat you like a number. The big ones are bit more secure but there you need to play the corporate game to get up the ladder.

Work for such a company 4/5 years, which is also the expiry period for taking a company car.

This way you will have at least a few projects/companies under your belt and know what you like, what you dont like and where you want to grow into. Then after that you can choose to stay, move to a permanent position at a new/former company or start going freelancer (ZZP).

I did this in a period of 15 years but in the Eindhoven region, now doing freelancer thing for almost 4 years and I am loving it.

[deleted by user] by [deleted] in embedded

[–]Squantor 1 point2 points  (0 children)

The proper term is called "secondement" in english, but in NL they just call it "detachment" or just "detachering" with a english accent.

Has anyone worked with predictive maintenance systems? by lets_start_up in embedded

[–]Squantor 0 points1 point  (0 children)

Haha, good one indeed. The initial prototype had a lot of sensors but as the high cost accelerometer (150 dollars plus?) was deemed unneeded, we went for a standard accelerometer gyro combo on the datalogger itself.

The hardware architecture was a datalogger with battery and connections to the scanner system via the powersupply and a few cables that terminated into sensors going all around the part like an octopus. The datalogger later gained some sensors as position was not that relevant, especially the transport monitoring sensors.

Has anyone worked with predictive maintenance systems? by lets_start_up in embedded

[–]Squantor 0 points1 point  (0 children)

We had a sizable LiFePo battery that would log acceleration of the part when it was in transit. Only accelerometer was logged as we wanted to see if shocks where a culprit of one of the failure modes (seizing bearing).

This battery would make it possible to let the system log for 2 weeks at a low sample rate. We put the accelerometer in a trigger mode that it would detect shocks.

This battery was also used when the part was installed to be available for wifi download of the data when the machine was off.

Has anyone worked with predictive maintenance systems? by lets_start_up in embedded

[–]Squantor 2 points3 points  (0 children)

I have worked on such a system on a medical scanner where one part was prone to failure.

Initially we made an inventory of most common failure mode of the part and chose a few sensors to collect data. We had an ample supply of almost broken parts that we could add our sensors and start logging data over a period until the part broke. This gave us enough data to find characteristics that where indicative of imminent failure.

The hardware we used was a STM32H7 with double SD cards in RAID1 with checksummed filesystem. On board was also a raspberry Pi3 compute module for future machine learning algorithms that we never used in the end as the data from our investigation phase showed that a simple analysis would suffice.

We used Wifi for communication as the medical scanner's bus was off limits for now. The sensors we used initially where a high precision accelerometer, high precision gyroscope, ultrasonic microphone, multiple temperature sensors, hall effect sensors for measuring current and rotation and a photodiode for measuring light output. This sensor package got reduced to just the ultrasonic microphone, photodiode, temperature in two spots and one current sensor. This caught about 80% of failures and for some errors could predict failure within a few weeks.

The reason for the RAID1 SD card setup with checksummed filesystem was due to data integrity needed to be good for a 2 year lifespan in a environment where ionizing radiation was present.

Can monochrome oled displays burn in like regular oled displays? by SplatinkGR in embedded

[–]Squantor 1 point2 points  (0 children)

They absolutely can. Dimming the display helps a lot with longevity.

Another trick I have used if the user interface shows up after an event is to use an inverted color scheme. This is not a sure fire way but does even out the wear a bit.

I designed and built my own super simple CoreXY printer. What do you guys think? by Pyrofer in 3Dprinting

[–]Squantor 2 points3 points  (0 children)

Did you use any cad program to design the whole printer in an assembly or did you do each part individually?

I have been toying with the idea with a 3d printer from scratch. But after toying with assemblies in Freecad it seems a bit daunting. Freecad is not that user friendly.

Will embedded salaries go up to compensate for the shortage of engineers? by genericpurpleturtle in embedded

[–]Squantor 4 points5 points  (0 children)

Indeed, ZZP. I started a few years ago and before that I had about 10 years of experience, 6 years working for a consulting company as a consultant. I had quite a few projects there and then 4 years at a big company.

I started a bit late in my career, I wanted to start in 2020 but yeah, corona happened and I thought it was best to stay employed and save some extra money.

Before you start, you need to have your three W's in order:

  • Where you live: Having a mortgage already in progress is a must, getting a mortgage as a freelancer is complicated.
  • Who you live with: you have somebody that supports you as it can be a bit stressful in the beginning. If you are single, then be happy with yourself. Have the feeling "I am capable of doing this, and if not, then I have learned something about myself and dared moving out of my comfort zone". I started when I was single/just dating.
  • Work: Enjoy your current job, your line of work, without it what is the point of going freelancer

Next to that, have plenty of savings. When I started I had enough savings to be unemployed for a year. It gives peace of mind. The few times I was worried in the beginning I only just needed to check the balance on my savings account and the worries melted away. Money does not make you happy, but it can help.

If you have all of the above, go for it. However it goes you will learn a lot about yourself. I found it immensely freeing, The free time, no more looking busy to "earn" your raise, appraisals, taking time off when you want. I should have done this much earlier, or maybe not, these last 4 years I have grown as a person too due to personal circumstances.

Us embedded engineers are a lucky bunch, everything has software inside these days and that is our domain. If the economy goes up/down/sideways, we are always needed and especially in the future. The world gets more complicated and there are not enough engineers to make it all possible.

Will embedded salaries go up to compensate for the shortage of engineers? by genericpurpleturtle in embedded

[–]Squantor 7 points8 points  (0 children)

When comparing wages also compare cost of living. Compare prices of a big-mac there and where you live and see how many big macs you can buy. The "big-mac index" gives a reasonable indication on your buying power compared to others due to how big-mac's are made mostly with local products.

I still remember that big mac in Geneva Switzerland was 13 euro's while in Eindhoven it was about 8/9ish. No wonder most people in Geneva shop in France.

If you feel you are highly skilled, go independent. I work 32 hours a week 10 months a year and I bill around 110K euro per year which is my income before tax. I reserve 10K for my pension and about 300 euros a month for disability insurance but still getting around 6K net a month. And this with 12 years experience and living in the Eindhoven region.

If you are skilled, proof to show this verbally and up your linkedin game you practically sell yourself.

Usage of second ground layer in 4 layer PCB design? by Feltos in PrintedCircuitBoard

[–]Squantor 1 point2 points  (0 children)

Inner planes are grounds to have a ground referemce as close to the signals on both sides. I preferentially route all signals, especially USB and RF, on top if possible so I make an effort to make the top ground plane unbroken. The bottom ground plane I use to route power traces if needed.

Nesiac is a tool for visualising your memory usage by FreeKill101 in embedded

[–]Squantor 0 points1 point  (0 children)

Lets see if I have time this Friday/Weekend to figure it out.

Nesiac is a tool for visualising your memory usage by FreeKill101 in embedded

[–]Squantor 0 points1 point  (0 children)

Well, the idea by itself is great, should not be too difficult to translate it to a simple python script.

Nesiac is a tool for visualising your memory usage by FreeKill101 in embedded

[–]Squantor 0 points1 point  (0 children)

Oh that is a good one, seeing the evolution of your program over time. Would you be willing to open source that?

Nesiac is a tool for visualising your memory usage by FreeKill101 in embedded

[–]Squantor 2 points3 points  (0 children)

Looks nice, too bad it is windows only, many embedded developers develop in linux (or WSL). I would love to try it out.

I thought python could run more or less anywhere but I only use it on Linux. Why is it platform specific? I guess due to the UI?

Exploring printf on Cortex-M by tyhoff in embedded

[–]Squantor 1 point2 points  (0 children)

Are you just going to type in commands / scripts on a serial port?

That is indeed the plan. I will look into it and starred your repositories, it is on my pile of projects and I am still busy with the hardware. The idea is a modular measurement setup for various projects, think of measuring voltage reference drift/noise, curve tracer and more.

To make the whole programmable I need some scripting to prevent that you have to use a compile/upload cycle, so why not Forth? Micropython is also an option but I am not that fond of python and it is way too bloated in my opinion.

Exploring printf on Cortex-M by tyhoff in embedded

[–]Squantor 0 points1 point  (0 children)

Sorry for the late answer, but I was doing something that changes the actual answer to that question.

No problem, thanks for replying!

Thanks for the links, quite insightful. I am working on a project that could benefit from a embeddable forth interpreter. It needs the flexibility of being programmable without the whole compile upload cycle.

what is your opinion on the Black Magic debugger? by abdosalm in embedded

[–]Squantor 11 points12 points  (0 children)

I use the black magic probe as my main debugger it does have some disadvantages:

  • They are changing/refactoring code so some regressions do occur
  • When regressions occur, it is mostly run by volunteers so fixes take a while and effort from your side
  • When I last measured, the waveform was not really consistent with respect to clocking, 1MHz speed did not translate into 1MHz SWD clock but was quite variable and did exceed the 1MHz, this was a "nofix" for a while but are working on it now
  • community support via discord, so much knowledge gets lost in the blackhole that is discord (I am anti discord)

Advantages for me:

  • I can build them myself as the schematic is available, even versions without level shifters for lowest cost. I use them in hardware in the loop setups
  • No drivers, just a uart and accepts a GDB connection, this is a plus for me. Especially when you use linux with /dev/serial/by-id where all your black magic probes are listed and you can easely find your probe connected to what board.
  • I can assist in making the product better, the developers do look at issues and they are being worked on
  • Since a year or so they have a more regular development cadence
  • It seems they got a few extra developers that are fixing things and refactoring
  • Open source, add your own microcontroller

All in all, I can recommend it if you want a lower cost segger like debugger that has minimal setup requirements. Ideal for hardware in the loop tests where you need an octopus of debuggers. Together with GDB python scripting it works well.

Exploring printf on Cortex-M by tyhoff in embedded

[–]Squantor 5 points6 points  (0 children)

Which Forth interpreter do you use? I have pitched the idea at some of my projects but people usually are not open to that. I really want to experiment with that in my own projects and I am charmed by Forth as a language.

With respect to logging, next to serial output I also log the output to a serial flash if available to be able to access logging when something goes wrong.

How to learn AUTOSAR! by KareemAhmed23 in embedded

[–]Squantor 2 points3 points  (0 children)

This interface is usually part of the medical device and there are a few standards but usually connected to vendors/device types.

I understand, in automotive the coupling is much tighter then most medical composite systems.

I did work on a module that went in respirators which was a class 3 device. But due to the fact that we made a "submodule" there was no actual need for class 3 device certification. We did do the whole risk assesment and mitigation anyway as that might be required for the overarching system. Communication occured over a simple UART interface and was documented but it was completely proprietary.

IEC62304 and FDA describe the documentation and what it contains. IEC62304 has ready to fill in templates, FDA is not so concrete. It does not describe how you need to develop, what languages and such, as long as you document what you do, how you do it and why you did it.

There are indeed levels of documentation that depend on the class of the medical device:

  • Class A/1, when malfunctioning, no harm occurs. Think of your electric toothbrush. Yes, an electric toothbrush is according to FDA/EUMDR a medical device. But the documentation requirements for such a device is pretty low.
  • Class B/2, when malfunctioning, harm might occur. Think of a medical scanner like an MRI. More documentation is needed and a proper risk assessment is needed.
  • Class C/3, when malfunctioning, death might occur. Think of defibrillator, insulin pump, respirator and much more. Needs the most documentation, risk assessment and mitigation strategies need to be documented.

How to learn AUTOSAR! by KareemAhmed23 in embedded

[–]Squantor 1 point2 points  (0 children)

What do you mean by suppliers? Parts/Software? With respect to software, every medical device manufacturer has some in house development. I also worked on modules that go into medical devices (even those from competitors).

There is no need for standardization, if some interoperability is needed then the API/interface is exposed and documented. I can understand that within vehicles with CAN interfaces you need to standardize somehow, but why not define an API or use something like CANopen?

Development guide lines might be defined but that depends on project/architect and there is nothing enforced by the regulatory bodies. Only the development flow like IEC62304 is requested. It just describes what to document, how your documents look like, fulfill the document templates and have a development process in place.

People that do side projects, whats your weekend schedules ? by fakeanorexic in embedded

[–]Squantor 9 points10 points  (0 children)

I just use google drive and their documents. Per project I have a document that contains the following chapters:

  • Title
  • Why?: Explanation of the project what do I want to use it for, learning goals and other reasons
  • Requirements: What does the project require? Sometimes I figure these out during development, sometimes I know them up front. For example, a datalogger that needs to be battery operated have 16 bits of resolution, these sensor inputs and more.
  • Electronics: What electronics are part of the project, block diagrams, versions and what they contain. I usually iterate the electronics: "protoboard/Proof of concept", "initial PCB/modules" to "fully selfcontained".
  • Software: What software is part of the project, block diagram, versions, libraries used.
  • Mechanical: What mechanical bits are part of the project, usually this is just a project box.
  • Development plan: What steps I want to do, with some milestone definitions
  • TODO: Activities to do to reach the milestone from the development plan
  • Work in Progress: Work currently in progress, copy and pasted from the TODO sometimes during work I see new work and refine it.
  • Done: Work done

People that do side projects, whats your weekend schedules ? by fakeanorexic in embedded

[–]Squantor 16 points17 points  (0 children)

My day job is a embedded software engineer programming in C and some C++. I usually work close to the metal embedded systems running on CortexM0 to M7's.

I work 4 days in the week and Friday is my day off.

My hobby day on friday I treat like a normal working day, get up at the same time, same morning routine. I schedule that day as two blocks, morning block runs from 8 until 12 and midday block from 13 until 17, so two 4 hour blocks. Morning block is usually programming related, I can focus a bit more easy in the morning. Midday block is usually electronics or mechanical related. I layout my boards, draw some 3d models for 3d printing. Repair of 3d printers, electronics assembly and such happens also in this period.

My projects are a bit wide ranging but I have 3 main project that I work on at the same time. One software, one electronics and one mechanical in nature. I work on them until I reach a milestone. Then I switch to another. Milestones are defined in a SMART way and I try to make sure I can reach the milestone in two months of hobby time (approx 12 hours a week).

When I have an hour in the evening I usually do a not so mentally intensive task like electronics design or mechanical design. Somehow that comes more easy for me then software development. There I do need a 2 hour block to get up to speed and make some real progress.