Comment by amelius

3 hours ago

I wish more software engineers found out how easy hardware actually is.

is there any hope for someone to become a professional in the field without an electronic/computer engineering degree? I'd love to do stuff that I can actually hold in my hand (did some reverse engineering for a usb sound card and it felt rewarding cause I could quite literally hear the success), but I only have a computer science adjacent degree (BBa in Business Information Technology).

  • You can learn enough CAD to design your first thing in a day, enough about electronics to design your first thing in a week. A 3D printer and an order to jlcpcb.com will get you started. There are a very large number of avenues to go down but those are a couple.

Given how many idiotic ideas are ‘patched’ or worked around in software, it’s probably pretty easy. Especially in the world of modern GPUs when only a handful of people at the factory are able to write drivers for it.

Hardware vendors lost the plot in the Winmodem era.

  • Winmodems are a very sensible idea. You know software-defined radio? They are that, but for modems. Expandable to support any current or future protocol, at the cost of CPU time. Why do we like SDRs but hate SDMs? That's an irrational position.

    The actual problem with winmodems was them breaking the established software/hardware boundary, and the Linux community not having the resources to follow suit.

    Nothing stops someone from taking the free Windows Vivado and making it run on Linux, or taking a Winmodem driver and making it run on Linux, or writing a from-scratch software implementation of a 56k modem that can run on any sound card plugged into a phone line (which is what a Winmodem is), or reverse engineering the bitstream format for these FPGAs and writing a compiler from scratch (or even just the device-dependent backend - the frontend and middle-end can be developed in a more normal way and can be shared with other toolchains). But nobody actually stepped up and did it, which I think is proof that the free software community is a lot weaker than it thinks it is.

    You could even do it right now, if you wanted to. You're not, and I'm sure there are good reasons for that. Extrapolate it across all developers, and it's unfortunate that it seems none of them have enough reason to do it. On the flip side, if anyone reading this does suddenly decide they have enough reason to do it... (Incentive: FPGAs are fun to play with!)

    • > Nothing stops someone from taking the free Windows Vivado and making it run on Linux

      The EULA and the fact that the linux versior runs faster & has fewer bugs.

      > just the device-dependent backend would be a major improvement and the frontend and optimizer could be shared with other toolchains

      That's yosys and it's used by smaller commercial vendors.

      > or reverse engineering then bitstream format for these FPGAs

      Getting the timing is the hard part (+ good routing afterwards). The bitstream format has AFAIK mostly been reversed. 7 series has mediocre support , but US, US+ and Versal doesn't (probably because they're too expensive for personal usage).

    • It's a practical position. The era of Winmodems was a long time ago, and the hardware was terrible compared to what we have now. Today, SDR is a fun thing anybody can pick up as a hobby. If it doesn't work, I have three other ways of accessing the Internet. If your winmodem didn't work, you didn't have a smartphone or a tablet to connect to ChatGPT (well, Altavista at the time) with and look for help. Then, when they did work, they were really bad because the single core CPUs of the day didn't have multiple cores to have the CPU cycles to run the software end of the modem and do anything else at the time. Which meant if you were running a game (Tuxracer, perhaps? Linmodem support wasn't broad, but it existed) at the same time, you lost. That tends to cause people to not like the product.