Embedded Software Developer

But there is no way that a university that adheres to the Washington accord would be able to offer the requisite modules for any engineering degree and squeeze computer science in there.
There is too much material to cover in 4 years for
When I was at UCT in the 90’s engineering students could do all of CS 1, 2 and 3 as part of their degrees.
 
While I agree with a lot you are saying there are a lot of companies doing embedded work that require custom boards to be built and matched with the firmware/software. In such a case understanding the electronics side of things is far more important as it can change quite a bit depending on the implementation.
It is definitely true that complex hardware probably needs a couple of electronic engineers and probably a mechanical engineer too.
But unless you are building a complex analogue circuit, your complexity is largely dominated in software.
I can't think of a single complex non-analogue circuit where your software would be simpler than your hardware.
Even complex analogue components these days relay on software (ie. oscilloscope is by far dominated by software complexity)
The end result is that your software team usually dominates in size.
In my opinion, electronics design has become super niche.
You mostly end up these days just buying off the shelf chips and putting them together the way the data sheets suggest (ie. reference implementation) and maybe tweak a thing or two.
And if you can avoid needing to create your own PCB even better.

An STM32/ARM micro and a few extra things on a board is 99% of the designs we see anymore.

What I have seen locally are products like Geyser wise/Security stuff like gate control, etc. still using micros like Pic with a lot of problems solved in hardware.
It is clear those folks are centered in the hardware design space and they try to solve problems in hardware.
Although that is totally possible it has several significant disadvantages
1) It costs more per device
2) it limits the ability to change things later
3) Uses more expensive chips like PIC micro controllers.

Another side affect is lack of features for above. For a lot of security products the idea that something is IOT and can be accessed through a web-UI is like unheard of, or packaged as an "commercial" product with outrageous price tags.
 
When I was at UCT in the 90’s engineering students could do all of CS 1, 2 and 3 as part of their degrees.
Yeah I'd pin that on 1) Their program sucked, 2) A lot has changed since the 90s.

But your debate is laughable.
If it was so simple, why doesn't the MIT open courses degree for EE and CS look the same for example?
Why do universities even bother offering computer science then?

You think it is some kind of watered down EE degree, is that basically the implication?
 
Yeah I'd pin that on 1) Their program sucked, 2) A lot has changed since the 90s.
Still the same:

But your debate is laughable.
What are we debating?

If it was so simple, why doesn't the MIT open courses degree for EE and CS look the same for example?
Why do universities even bother offering computer science then?
I have no idea why you think any of the above questions even vaguely make sense to ask.

You think it is some kind of watered down EE degree, is that basically the implication?
No, and no…
 
In the eighties at UCT remember doing a couple of years CS as extras whilst doing act sci. Still remember Gary Bailey pitching up one semester after retiring from Man U.. Also, why did the Canadian CS lecturer never pitch up for three months without telling anyone. The mysteries of CS.
 
I can't think of a single complex non-analogue circuit where your software would be simpler than your hardware.
Even

A complex digital circuit would rely on firmware, not software. For a simple digital circuit, software would probably suffice.
 
Put it this way, if you’re advertising for a software engineer, would you expect them to know vhdl?
Not at all but being proficient in x86-64 assembler wouldn't spring to mind either. I get the distinction you're trying to make but I don't think a neccessary condition for writing "firmware" would be the presence of an FPGA as an example.
 
Studied computer science but at this point I have an electronics lab at home that would make you jealous, if I can put it that way.
Pics or I don't believe you.
At any rate I was one of these engineers. BB-BEE and AA made me redundant so I went to work for the banks and wrote software that processes transactions. A few years later it got me a ticket out of SA.
 
Put it this way, if you’re advertising for a software engineer, would you expect them to know vhdl?
VHDL is not a programming language. Its a Hardware Description Language.
Here is a simple hack job pieced together to test the toolsuite I recently had issues with.
Code:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity ring_counter_top is
    Port ( CLK : in   STD_LOGIC;
              DIR : in   STD_LOGIC;
           LED : out  BIT_VECTOR (3 downto 0));
end ring_counter_top;

architecture Behavioral of ring_counter_top is
    signal counter : integer := 0;
    signal shift_reg : BIT_VECTOR(3 downto 0) := X"7";
begin

    -- clock divider: divide clock input sufficiently
    process (CLK, counter)
    begin
        if rising_edge(CLK) then
                counter <= counter + 1;   -- increment clock_div by 1 for each edge of CLK that is rising i.e. = 1
                if (counter > 524288) then
                  counter <= 0; -- constrain count to 24 bits i.e. when it hits 524288 it rolls over to 0
                  end if;
                  
          end if;
    end process;
    
    -- ring counter
    process (counter, CLK, DIR)
    begin
     if (CLK'event and CLK = '1') then
        if (counter = 460800) then  -- with 4MHz input clock, this will generate approx 100mS
              if (DIR = '1') then
                    shift_reg <= shift_reg ror 1;
                else
                    shift_reg <= shift_reg rol 1;
               end if;
           end if;
      end if;
    end process;
    
    -- hook up the ring counter register bits to the LEDs
    LED <= shift_reg;

end Behavioral;
 
Pics or I don't believe you.
At any rate I was one of these engineers. BB-BEE and AA made me redundant so I went to work for the banks and wrote software that processes transactions. A few years later it got me a ticket out of SA.
My PSU and load tester
1671817240322.png

Variac (4kVA), hot air station and quick test + hot glue guns and various hot glues for electronics (heat shrinks too I guess)
1671817282844.png

Fume extraction, actual industrial fan I happened to get for super cheap (lucky mislabelling of the price)
1671817366860.png
Genuine JBC T-245 and genuine JBC tips
1671817410424.png
One of my shelves with stuff on it. The rest (about the same amount) is in a cupboard including tons of transformers but I don't have space for them on my work desk
1671817481893.png

IMO you can't say you are doing electronics anymore without a 3d printer. It is a huge part of rapid prototyping
1671817595466.png

Scope and signal generator
1671817910235.png

Some of my multimeters in a mess (rest are all over, it is a mess)
1671817943624.png

Have a bunch of tools I didn't photograph. I have a sh#t ton of mechanical tools. Table saw, cutting saws, precision callipers (mitutoyo), various precision thermal measurement devices.
All of my electronics "lab" and printer is hooked up to a double conversion UPS so it runs throughout load shedding.

I also have things like PCB development tools and so on, but I rarely use that anymore

I took closeups because the place is a mess. I struggle to keep a clean workspace (hence taking so long to post pics)
 
Last edited:
Still keen on pics. Just for some Friday test gear pron
^^

There is a lot more but I can take more if you list specific things you are interested in.
ie. my mechanical workshop is extensive too but that is not on this property (not enough space)
There I have a routers, router table, table saws, various angle grinders, chop saws ... things I'm forgetting
 
Last edited:
Not at all but being proficient in x86-64 assembler wouldn't spring to mind either. I get the distinction you're trying to make but I don't think a neccessary condition for writing "firmware" would be the presence of an FPGA as an example.
Nobody writes code in assembly anymore; at least not if they want to be commercially successful.
Customers don't care what language you use, they care about results and cost.
Assembly isn't conducive to low cost and high speed product turn-around
We've even started writing firmwares (runs on bare metal ARM chips) in Rust just to make things go faster.
 
if (counter > 524288) then
counter <= 0; -- constrain count to 24 bits i.e. when it hits 524288 it rolls over to 0
end if;
That’s 19 bits. :p (or technically 20, since you wrap when > 2**19 instead of equal to 2**19-1).
 
When I was at UCT in the 90’s engineering students could do all of CS 1, 2 and 3 as part of their degrees.

I was at UP and they had very few rules as to what you could or could not take. As a result a number of CS peeps took Eng, and reverse (although most usually only for the first year).
 
Top
Sign up to the MyBroadband newsletter
X