Saturday, June 22, 2019

PlatformIO Arduino Conflicted extensions with IntelliSense service error

Just a note to my future self... I've been doing some Arduino programming with the ESP8266+Oled board I purchased recently and went back to the Visual Studio Code PlatformIO environment after a break and ran into some weird behaviour including this error:


"Conflicted extensions with IntelliSense service were detected (Arduino). Code-completion, linting and navigation will not work properly."

Yes, I had all sorts of problems and could kind of get it to work by quitting and re-starting VSC.

When getting set up the first thing I'd done was install the Arduino extension and it turns out that this is not only not needed but causes problems. Remove the Arduino extension so you have C/C++ and PlatformIO IDE.

After importing my Arduino .ino file I converted it to "proper" C++ and all works well.

Wednesday, June 19, 2019

5G interfering with satellite reception at ABC in Melbourne

It seems that the rollout of 5G is interfering with satellite reception at the ABC's Melbourne Southbank site.



It's been suggested, in jest, that it might be Huawei equipment that's weaponised, but that's not the case. Probably just desensing due to high local signal strengths but interesting.

Speaking of 5G, there is work being done on a cell tower near my home. I asked one of the technicians if it was 5G.


He told me that there is congestion on 4G here and the upgrade is to add a new 700MHz 4G service. Being a lower frequency it should also penetrate houses better.

Sunday, June 16, 2019

Promised HF-6m Discovery TX-500 looks interesting

Just spotted this teaser for a new amateur transceiver. A very compact and rugged design with two surface mount boards and built-in antenna tuner.

I'm not sure about the choice of connectors but I guess they're going for a rugged water resistant exterior.

Personally I'd love to see something along these lines with a single USB port carrying control, audio and IQ but in a way that it can be used standalone or with a computer if available.

No idea on price or performance but from the video it seems to sound pretty good and the display looks excellent.

Like everyone else in the world, I'm waiting for the QRP-Labs QSX.

Better digital shortwave radios on the horizon

A post on the Digital Radio Mondiale page highlights a new radio receiver module from Starwaves that will ship later this year and could pave the way for consumer radios covering LW, MW, SW and FM with DRM and analog reception.

The DRM receivers I've tried so far have had terrible battery life and been high cost. Let's hope a new generation is on the way. I hope you're on to this Tecsun!

Arduino ESP8266 with on board OLED display

Here's a very handy little board for AU$16 from Banggood. They call it a Wemos® NodeMCU wifi for Arduino. It's an ESP8266, which can be programmed using the Arduino tools with an on-board 128x64 0.96 inch OLED display.


The library you need to drive it is here.

The trick is to download that Git repo as a Zip and then in the Arduino software install the library from local Zip.

The documentation for the display driver is there on GitHub if you scroll down.

There are methods for pixel drawing, text drawing, even some high level routines for building a user interface.

Of course, if you haven't already, you'll need the esp8266 board files by following the instructions here. Choose generic esp8266 and on macOS the serial port was SLAB_USBtoUART.

Out of the box the board was programmed with the simple example from that site, which is a pretty impressive display of text in various fonts and graphics. When I tried the example I got nothing.

After some hair pulling and gnashing of teeth, I figured out that SDA and SCL are reversed for this board compared to the examples on GitHub.

This works: SSD1306Wire display(0x3c, SCL, SDA); // reversed!

Having Wifi and a display suggested a simple Wifi network display project. The esp8266 wifi library is documented here.


Another thing to watch for is that the display is really a pixel graphics display so the x,y locations for text must account for the line height of the text.


#include "SSD1306Wire.h"
#include "ESP8266WiFi.h"
// Initialize the OLED display using Arduino Wire:
SSD1306Wire display(0x3c, SCL, SDA); // reversed!

void setup() {
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);
  
  // Initialising the UI will init the display too.
  display.init();

  //display.flipScreenVertically();
  display.setFont(ArialMT_Plain_10);
  display.setTextAlignment(TEXT_ALIGN_LEFT);
  display.drawString(0, 0, "Starting.." );
  display.display();
}


void loop() {
  // clear the display
  display.clear();
  int height = 10;
  // WiFi.scanNetworks will return the number of networks found
  int n = WiFi.scanNetworks();
  if (n == 0) {
    display.drawString(0, 0, "no networks found");
  } else {
    for (int i = 0; i < n; ++i) {
      int y = i * height;
      String ssid = WiFi.SSID(i);
      String rssi = String(WiFi.RSSI(i));
      String encryption = "Unknown";
      switch(WiFi.encryptionType(i)) {
        case ENC_TYPE_WEP:
          encryption = "WEP";
          break;
        case ENC_TYPE_TKIP:
          encryption = "WPA";
          break;
        case ENC_TYPE_CCMP:
          encryption = "WPA2";
          break;
        case ENC_TYPE_NONE:
          encryption = "Open";
          break;
        case ENC_TYPE_AUTO:
          encryption = "Auto";
          break;
        default:
          encryption = "Unknown";
          break;
      }
      String line = ssid + ": " + rssi + " " + encryption;
      display.drawString(0, y, line);
      display.display();
      delay(10);
    }
  }

  // Wait a bit before scanning again
  delay(5000);
}

Update

John, VK2ASU, points out that there is a similar board for the ESP32 for even less money here. The ESP32 is the successor to the ESP8266 and offers a faster and dual core CPU along with Bluetooth, Hall effect sensor and temperature sensor.

Tuesday, June 11, 2019

Chris Winter, 2JJ and Triple J legend, has died

Chris Winter was a legend in Australian radio. I remember listening to 2JJ on skip in Melbourne in the evenings. He had a deep bass voice, a nickname was "three balls", and he could use that voice to great effect.

In my early 20s I visited Sydney and turned up at the 2JJ studio up William street, I didn't meet Chris then but other staff welcomed me and showed me around.

Much later I was working in ABC training and he attended a course on mainframe word-processing on Dec Vax computers. He said he thought I'd be good on radio and invited me to the studio. From there I was a regular guest for a while on Triple J with Stuart Matchett. We remained friends and he was always right up to date with technology and the issues it triggers in society.

The photo above was taken when Rob Garnsey and I visited his home in Bronte in 2016. I saw from some social media posts that he'd been unwell but it's a shock that we lost him.

The last instagram post is from Winter Feast at Dark Mofo in June.



Old days: that hair!



Looks like his Twitter account has stopped. He tweeted a selfie in hospital recently and I asked if he was ok.


Farewell CW.


There was a very well attended celebration of Chris. He was a positive influence on many people.


Sunday, June 09, 2019

Apple developer conference 2019

Over the past week, Apple has held their World Wide Developer’s Conference (WWDC) in San Jose. I’ve attended quite a few times over many years but in recent years I’ve enjoyed watching the live and recorded videos.

There was a time when it was easy to get a ticket, in fact, Apple really had to work to encourage developers to attend. These days there’s a lottery to get in, which is much better than the system they ran for a few years where we all sat re-loading a web page hoping to get to the booking form.

It’s not cheap for me to go in person, US$1,600 plus accomodation and travel from Australia adds up.

Because of the time zone difference, I have sometimes really struggled to stay awake sitting still in a dark room. I remember one year a friend attended but couldn’t sleep at night and so missed the morning sessions all week.

Being at WWDC in person is a wonderful experience. The buz in the room when big announcements are made, being among developers to discuss the implications of new technologies, meeting developers from well known organisations and learning a bit about the technical dept they carry.

The quality of presentations from Apple is the highest in the industry. Some things that stand out:
  • The slides are minimal and clear
  • Presenters speak well, walk back and forth, and hold up counting fingers
  • Demonstrations almost always work (which is saying something on an alpha operating system) certainly compared to this.
Presentations from past events serve as the canonical introduction documentation for many years.

Apple does a good job to encourage random meetings. I’ve had interesting conversations while queuing and they make it easy to be seated at a lunch table with people you haven’t met.

Labs, where you get to ask questions of Apple engineers, are valuable. In the past I’ve gone with crazy ideas of how to overcome something and been convinced not to waste my time. In one case I demonstrated a bug and was encouraged to log it.

This year was very full of new things. Here's a terrific list from Patrick Balestra of Spotify. As others have noted, WWDC announcements are not just the result of a year of work but the culmination of projects which may have taken many years.

Swift, ARKit, SwiftUI and Catalyst are examples of what must be huge projects.

iOS/iPadOS 13 and macOS Catalina seem like good iterations. I think the splitting out of iPadOS isn’t a big deal this year but is a clue to a future diversion from the phone OS. 

Privacy continues to be a differentiator for Apple and I think they’re on a winner. The sign in with Apple system, which generates a random email forwarder seems like a great idea but the fact that Apple mandates it in apps that offer sign in with Google or Facebook came across as heavy handed. While they can’t mandate it on the web, they’ll have to add it if people have signed up on an Apple device, so it will spread naturally.

Craig Federighi’s interview by Federico Viticci on the AppStories podcast was the clearest explanation I’ve heard of Apple’s strategy on the iPad in that they want to keep it easy to use for new users (even people who’ve never used a computer) and yet add deep functionality required by power users over time. It was great to hear Craig acknowledge that Apple reads what intense users such as Federico write about what they want from the platform.

The Accidental Tech Podcast was fun if only to hear the gang’s positive reaction to the MacPro announcement.

John Gruber’s Talk Show podcast also had Craig on this year but, while interesting,  I felt that John was off his game and didn’t take the opportunity he was given to ask some hard questions. I know Apple has sometimes frozen out commentators who are critical but Gruber has a lot of ethical capital built up and could survive. It was charming to hear Craig acknowledge ATP’s John Siracusa.

Traditional media all had their rundowns of the announcements but really there’s not a lot for the general public until the OSs ship later this year.

SwiftUI looks good. A very small amount of easy to read code is matched with a graphical design tool - changes in either are reflected on the other immediately. I’m sure we’ll still be using UIKit and AppKit for a long time but I can see how this new approach could lead to some amazing optimisation of the UI code and I wonder how long it will be before someone makes a version for non-Apple platforms?

I’m still getting through the videos from this year and it’s also triggered some watching of older sessions.

My free app for ham radio users of Weak Signal Propagation Reporter (WSPR), WSPR Watch, gained dynamic type which means it honours the system setting that lets users crank up the size of type everywhere and my commercial macOS application Transcribe Helper is on the way to Touch Bar support. WWDC has stimulated me to tackle some of the existing technology Apple has already released.

I look forward to attending a future conference in a virtual reality space, the pieces are coming together.

Monday, June 03, 2019

Experiments with OpenWebRX and Airspy HF+

This week I've been experimenting with sharing my Airspy HF+ over the internet using the excellent, open source, OpenWebRX. Here's how 40m looks through a web browser.


I'm running it on a ThinkPad x230 running Ubuntu 19.04. I got the source code from GitHub and followed these instructions to build the app needed to use the Airspy HF+.

I was expecting it to have all the features seen in the KiwiSDR receivers, but that's not the case. There are 147 forks of the original software, which was part of an academic project.

The first thing that users find frustrating with the original version is that you must tune using the mouse to drag the tuning indicator. Because of the long delay (the buffer time is 2 seconds by default) it's difficult to tune in sideband. There is at least one fork with an open pull request that adds keyboard commands to nudge tuning up and down and the KiwiSDR variant also lets you enter frequencies directly.

It's great that there are increasing numbers of web accessible receivers available. In these times of high noise levels in the cities it can be practical to have a contact by transmitting from home and receiving via a remote receiver.