I have tried this multiple times on my 2014 MBA and it works mostly. Unfortunately, my model has some weird hardware(?) issue where the screen starts flickering when the intel i915 driver is loaded AND something communicates on the smbus. So if the cooling fan kicks in, or I use the function keys to change keyboard backlight brightness, my screen starts flickering.
Same thing happened when I tried dual booting Windows. I guess Apple has some workaround for this specific hardware model.
Now this Macbook is running Debian and is relegated to be a headless controller for my 3D printer with Klipper. It's pretty amazing for this, as it boots in like 5 seconds.
This, exactly. I work with similar modems daily. The first thing I do is to run the AT command for enabling adb. From there you can do whatever. The modems are quite beefy, 100s MB of RAM and multiple CPU cores. They even come pre-installed with a http server, ftp client, ALSA and much more.
Also, if you really want to get creative, I think you can just dump the firmware, which is just normal Linux. So just dump it, mount the filesystem and make whatever changes you want then re-flash.
The quality and security of the software in these things is absolutely bottom tier.
The market for cellular modules is very competitive. From a time to market point of view is cheaper and faster to reuse smartphone-grade socs instead of reinventing the wheel.
As far as I know, only u-blox is producing their own SoC (albeit for cat-m/nb-iot only) all the others are using existing solutions from Qualcomm and others.
This is only scratching the surface. I did not talk about certification which is another beast altogether.
As someone who as also spent way more hours on LTE/5G modems than I want to, this post resonates with me. I also learned a few things, namely about the ECM. I will have to look into that. Thanks!
As for the firmware. It seems to just be how these companies do things, unfortunately. At work, we use modems from both Quectel and Simcom and the experience described in OP is very similar. For Simcom we have gotten access to a "secret-but-public" Onedrive share with documentation, drivers and firmware where they put up stuff sporadically. Sometimes the firmware updates even works!
I have a theory that Qualcomm who makes the chipsets used by Quectel and Simcom (at least for the 5G modems) imposes some kind of heavy NDA which prevents free distribution of firmware and documentation. Everything seems very "hush, hush" at least.
Huh, interesting. That "Hunting of a spider" clip almost follows part of the intro sections in Children of Time 1-to-1. Feels like someone took 'inspiration' in someone else's homework. I wonder if it was BBC or Adrian Tchaikovsky who came first.
As "rescently" as 2014 I as involved with an old computer, controlling a pre-processing stage for a high volume composite casting factory.
It turned out the computer had a modem and was connected with its own phone line. It also had Norton pcAnyware for remote operation.
The computer had been running since at least 1992. No one remembered ever getting remote support, so I left it disconnected just for good measure. If anyone had actually wanted, I think you could have done a decent amount of damage using that. Especially since no one knew how and what the software on the computer did anymore. :)
I have used Plant UML a lot and I love it. Anything that can help me draw less figures is a bonus and the markup language they use is pretty flexible and ergonomic.
However, I have one major gripe with Plant UML. About 3-4 years ago, my local install started showing memorial plaques for people who died in a terrorist attack in Paris [1]. While this attack was undoubtedly a horrible event, I still feel it is deeply unprofessional to include stuff like that in a program, and it makes me lose all trust in the developers. If they had just added a memorial section in the program, it would have been fine. However, for every error generating a diagram, Plant UML would show a popup window with a picture and a text in memory of that person.
This is similar to what the Notepad++ developer(s) did back in 2013-ish where they had a memorial build into a new release of the program. On startup, Notepad++ would write (literally type it out) some message into the default empty document [2].
It might be a bit harsh. But in my mind, if the developers of these programs can be so influenced as to push this onto their unsuspecting users, I feel they have misused my trust. It makes me think: "What are they going to put into it next? Malware? Perhaps watermark the output with a statement?"
Since these events, I have avoided Notepad++ entirely and been reluctant to use Plant UML, but used it out of necessity.
While software isn't really the right place for that per se, I can definitely see the temptation. After all, you are providing something absolutely free, and you aren't including ads, tracking people, pestering about payment etc.. all this work has earned you a huge audience, and you want to use it to honor the memory of lives lost. Honoring the dead is pretty universally accepted as good thing.
It's a really big jump to say people who honor the dead with their software are going to insert malware in it next.
Use or don't use whatever you like, it's free and open source, but this seems like a pretty terrible reason to avoid otherwise great software.
A few weeks ago, I tried doing this with the LADSPA version of RNNoise and ALSA, but couldn't get it to work reliably.
I have also experimented with NoiseTorch which routes the microphone through LADSPA using Pulseaudio but it didn't work reliably either. The biggest problem with this is that Pulseaudio will load one CPU thread 100% even when no audio input. This makes it a deal breaker for laptops.
I will definitely check this out. RNNoise is truly amazing tech, but it is not as accessible as I would like. The best use if it is in the Mumble client where it is an optional setting.
It is a shame Nvidia has taken over this space completely with RTX voice. RNNoise does a comparable job without the need for an Nvidia GPU. But I guess it is because RNNoise is just not as easy to setup.
Back in 2012 I worked at a large manufacturing company. They had an old IBM PC running IBM DOS which controlled a vital system at the beginning of their production line. This machine had been chucking along since 1992 and now someone high up had been made aware that it could be a potential risk if this machine stopped working. It was therefore decided that this PC should be replaced/upgrade if possible.
After investigating I learned it communicated with a PLC through the RS-232 interface and ran some special sauce software from a company that stopped existing in 1995. Previous upgrade attempts involved virtualization, but that did not work since the program ran too quickly on modern hardware.
My solution was to copy everything from the old HDD to a new computer, install DOSBox and configure the serial port. The first few attempts caused some sirens and alarms to go off in the building, which was "exiting", but after fiddling with the emulation speed I managed to get it to work.
To this day, unless something drastic has changed, a billion $ company is running DOSBox in production (and I literally mean production).
Also, a side note. The old PC was still connected to a modem with a dedicated phone line. At some point it had been remotely operated through some kind of Norton remote control software. I made sure to turn off the modem and did not bring it over to the new DOSBox setup. Imagine if someone had war dialed into the machine... They could have caused a major disturbance and potentially started a fire.
Where you got very lucky was that the plc or other weird industrial system was controlled over rs232, and not from a manufacturer proprietary 8 or 16-bit ISA interface card that comes with device drivers to load in config.sys, and requires direct memory access. Can only run on bare metal. Yes there's vendors for industrial motherboards you can buy brand new with ISA buses on them...
And that's before you deal with the rarity of an interface card that's literally impossible to purchase at any price today, so you better hope someone has saved spares.
Yup, Home-Brew ISA Cards is a thing. There are people out there who have reverse engineered some to create clones, not only for ISA but for more modern buses too.
on the same vein, in 2008 we have been contracted by a pharma distribution company to replace it's legacy ERP which worked only with DOS. To prove the new ERP is working we had to reproduce the reports from the legacy system bug for bug with the exact same numbers. On my linux workstation, I installed dosbox, a copy of their software and database, and made scripts that exported the data by printing the screen then compared the old and new reports. I did that till I got the reports right. proper TDD.
There's some particulars in your story that sound awfully familiar- I think I might have been involved with the original installation. Was this company in New Jersey by any chance?
We had a Windows 95 machine running our boiler. I was about to go your route, but luckily, we got together the money to put in a modern control system. I was understandably a bit worried when the age of the machine was greater than many of our students. Also, dust and old hard drives are not good for the blood pressure.
Sure! Almost anything would have been a better solution. However, no one knew how the system actually worked, and we were on a shoestring budget.
See, the situation was that IT management, who officially had the responsibility for the PC saw it as a risk because we in IT were unable to do anything if the system died. But the production line management, who had to pay for the upgrade, saw no reason to do it because it was "working fine!".
Sure it was working fine, and had been for almost 20 years. But WHEN it would inevitably give up the ghost they would be completely hosed.
For RS232 connected to a PLC I would assume it to be comparatively easy. Maybe it is not, but it is probably easier than for modern usb or network attached devices, since you can easily spy on transmitted data.
I would also assume that the PLC just gets some commands from the master.
What are you going to do with just the transmitted data? That's just a tiny part of operations, when the machine is working correctly. What if something breaks? Do you know what all the possible error states are? What does the machine have to do if it gets an eg. "machine on fire" alert? Does your software even recognize the data sent by the machine, if it hasn't been sent before and correctly recognized?
Sniffing a protocol to reverse engineer stuff, is like trying to learn a new language by listening to conversations of a ground-level monitor and a crane operator.
You can download the program from a PLC that supplies the logic aside from labels and comments, if that isn't available anymore. Some PLC even supply the complete project, but that is unlikely on such an old device.
Modern USB/TCP connected PLCs just encapsulate RS-232 data into USB or TCP packets, nothing else (for backward compatibility). Also there are encapsulation and decapsulation devices which enables archaic PLCs and other industrial devices to be retrofitted to more modern systems.
Moreover, the OP noted that emulation speed was at critical importance so, the code is CPU speed sensitive. Missing specs, missing company, missing source plus time sensitivity makes this endeavor very risky if not hard.
It might be easy if they had a detailed (and accurate) spec to work to, a good test environment that mimics the current production one sufficiently, and time/money for the required dev/devtest/qa cycles. It sounds like they had none of the above.
I find these kinds of projects very interesting. It is just too bad the site does not talk about the technology they use (or maybe I am just not seeing it?).
I am interested in this because I have recently been working on simulation studies of large Ad Hoc networks where we look at the B.A.T.M.A.N protocol. It was originally built for use in the Freifunk (https://freifunk.net/en/) network in Germany which is similar to Project Waves.
Its fascinating what a bunch of nerds with a mission can put together.
Same thing happened when I tried dual booting Windows. I guess Apple has some workaround for this specific hardware model.
Now this Macbook is running Debian and is relegated to be a headless controller for my 3D printer with Klipper. It's pretty amazing for this, as it boots in like 5 seconds.