Wednesday, November 27, 2019

Beware of macOS malware

I've always felt pretty safe from malware by running macOS but recently three people I know have found that they have unwanted software on their Macs. In each case, they were tricked into installing software that claimed to be an update to Adobe Flash. I saw this scam recently and I think it was launched from an ad on the page. Here's a screen shot:


checkupdate.mainsourceofupgrade.best yeah right, that sounds legit.

This works I think because we've all been well trained to keep Flash up to date.

The most obvious symptom of the infections I've seen is that your default search engine is changed from Google to Bing. I've no idea why that might be done but perhaps the browser extensions it installs is able to intercept your searches to Bing to better target ads at you.

To check for, or get rid of, this unwanted software, I recommend Malwarebytes which will let you do a scan for free and only asks for money if you want it to remain and keep scanning. This seems very fair to me.

I ran it on my machine and am clean, my neighbour had 17 bad things.


If you choose not to purchase then you can remove it via the Uninstall item in the Help menu.



The malware I've personally seen is "Adware" which seems to install browser plugins to show you more or different ads. It's annoying but the terrifying thing is that once on your computer who knows what it might get a look at.

Apple's macOS is getting more secure with more limits on what applications, including browsers, can access and I support this, despite occasional pain with apps that have to ask for lots of permissions.

Be very skeptical of popups on web sites, or even emails, that ask you to authenticate to install anything.

Saturday, November 23, 2019

ESP32-CAM notes to self

Recently I purchased two ESP32-CAM modules from Banggood for under AU$10 each. There is lots of help on line including the excellent Random Nerd Tutorials site but I ran into a couple of problems. Here's the module I received:


I used the "video streaming face recognition" sample code but it reported that the camera found was not supported until I finally chose the CAMERA_MODEL_AI_THINKER.

Programming was done with an FDTI board running at 3.3V and powering the ESP32 board at 3.3V. When I disconnected the programming link and re-booted it would show "brownout detected". The solution was to set the USB serial board to 5V and power the board from the 5V line.

Finally I was up and running but the image was a terrible blur. Both boards were similarly bad. Close inspection showed that the lens is screwed into the sensor housing. In one case it was fully screwed in and glued. In the other case it was cross threaded and glued. Both were fixed with the help of some pliers.

The image quality is surprisingly good.


Face detection and recognition is pretty useless but amazing that it works at all on a tiny computer. The board also has a microSD socket and there's sample code to detect movement and save images to that card.

ESP32 is a great platform and is supported with the Arduino IDE or platformIO. I tend to get things going with straight Arduino and then move over to platformIO for better editing and features like code completion.

Monday, November 11, 2019

MLA-30 active receive loop antenna

After reading a glowing review of the low cost MLA-30 active receive loop antenna, I ordered one from Aliexpress for just AU$55. Here are my initial impressions.

The components are of good quality and you get a generous run of coax.


The phantom power box is good (although the power LED is very bright). It's powered from a micro USB socket which might add to the noise floor.


I installed it on the balcony on a PVC pipe. I haven't done a good job of getting the steel wire to be circular but it's a good start. At least it has a low wind profile.


Comparison here is rather unfair on 40m as I have an excellent dipole. Here's reception on the dipole.


Here's reception on the loop. The noise floor is certainly higher.


Of course, the benefit of the loop is that it covers all of HF so beats the dipole on bands like 80m.

Here's a snippet of the ARNSW Sunday broadcast received on 80m using the loop.



Connectors are SMA which works well with SDR receivers. Here is a recording of 9MHz shortwave using the loop. It's not as good as my big dipole but I'm really impressed with what you can hear with a small loop on the balcony.


I'm impressed with this receive loop. If you have space for a full size dipole then that's the way to go but if you only have a balcony then this is a great way to listen.

G8jnj has reverse engineered the circuit of the MLA-30 here.

Check out this comparison from "Scanner and SDR Radio" between several receive loops, some much more expensive.


The author has replaced the co-ax with better stuff and used a larger loop.

Thursday, November 07, 2019

13 Minutes to the Moon - interesting podcast

Thanks to talented friend Aidan Roberts, I've just listened to a fascinating podcast series from the BBC World Service called "13 Minutes to the Moon". You can get it by searching in your podcast player or downloading here.

The series tells the story of Apollo 11 but in particular examines the final descent to the moon and the things that went wrong, including communications failure and the 1202 (and 1201) overflow alarms from the flight computer.

As well as different versions of the audio from the mission, there are original interviews with some of those involved. I've read several books about the Apollo program and there was new material for me in this.

The music for the podcast is by Hans Zimmer and he's even interviewed about his memory of the landing. You've got to take podcasts seriously now that they have music composed by the guy who wrote themes for Interstellar and many others.

Saturday, November 02, 2019

First experiment with LoRa transceivers

LoRa is a fascinating radio system for low power but long range digital data communications. Low cost transceivers claim a range of 15km. John, VK2ASU, has been working with these for a few months with an application involving reporting activity at a remote site.

I also came across LoRa when talking with the City of Ballarat for a GovHack story. They put a LoRa Gateway up on the town hall and are using it to collect data from all over town including things like rubbish bins reporting their fullness.

Here's my hardware setup. (Receive and transmit sides look the same).


I'm using cheap Arduino Nano Pros. They need to be 3.3V to talk to the LoRa Module.

The modules I purchased are RA-01 SX1278 on 433MHz. They were AU$8.67 each (but cheaper if you buy 2 or more). For starters I'm using ones with the little spring antennas and obviously better antennas help them go further.



With one at the extreme end of the house to the other here's the received packets.


So none are being lost. I'm not sure if the protocol re-sends if there's no ACK.

The Arduino library is one of the ones available right in the IDE. It is by Sandeep Mistry and the source code and documentation is here. To get started I wired up to Arduino Nano Pros using the wiring diagram from this excellent tutorial. The examples titled "LoRaSender" and "LoRaReceiver" work well and the only change is to set the frequency to 433E6 (meaning 433MHz) on each end.

There are many levers to adjust with LoRa and you can trade of data rate for range. John ASU advises that he uses these settings:

TxPower (20,20);
Spreadfactor (12);
Bandwidth (62.5E3);

I'm just using the defaults for now.

The tutorial mentioned that the 3.3V supply from the Arduino wasn't sufficient and that may be the case at higher transmit power levels, but for me it's working from the VCC line on the board which is powered by the USB Serial board I use.

The LoRa physical protocol

LoRa is a proprietary protocol but, naturally, this puzzle has led to some excellent work to figure out how it works.


On a waterfall, the spectrum shows what people call "chirps", that is the frequency sweeps rapidly up or down. Here's a picture from the GRCon16 video above by Matt Knight.


The receiver looks for the regular header at the top and uses that to sync up with the transmitter before the data packet begins. Note that the image above is vastly expanded. I've tried to view this with an RTL-SDR dongle in SDR# and all you see is very brief signals for each packet.