Continue reading
  • Working on the 4–20mA Current Loop Rain Water Tank Sensor
  • No galvanic insulation on the ESP32-POE
    • Dangerous to connect USB and PoE ethernet at the same time
    • Found a non-PoE switch to put in between
      • Powered that with PoE
  • Can’t use the ESPHome dashboard on HA deployed in Docker
  • Can’t use the Web Dashboard in Firefox anyway, due to the lack of WebSerial support
  • Can work from within the container, and expose the USB device to it by mounting it as a volume
    • privileged mode is likely mandatory
version: '3'
    container_name: esphome
      - ./config:/config
      - /etc/localtime:/etc/localtime:ro
      - /dev/ttyUSB0:/dev/ttyUSB0
    restart: always
    privileged: true
    network_mode: host
      - USERNAME=test
      - PASSWORD=ChangeMe
  • run and connect to it
~/water-tank-sensor$ docker-compose up -d                                                                                                                    ~/water-tank-sensor$ docker-compose exec esphome bash                                                                                                          
root@docker:/config# esphome wizard water-sensor.yaml
<interactive questions>
(name): water-tank-sensor 
(ESP32/ESP8266/BK72XX/RTL87XX): esp32
(board): esp32-poe
(ssid): narf-guest
(PSK): hunter2
(password): hunter2
root@docker$ esphome compile water-tank-sensor.yaml 
root@docker$ esphome upload water-tank-sensor.yaml 
  • “the usable ADC range was from ~0.075V to ~3.12V (with the attenuation: auto setting)”
    • R_min=0.075/0.004=18.75 ohm; R_max=3.12/.02 156 ohm
    • will probably need to use 100 ohm
  • Got it going in Home Assistant; the data is rubbish because it needs calibration, and likely because the sensor is running below nominal voltage
  • Next steps: find where to find enough voltage to drive the sensor, change resistor, calibrate
Continue reading
  • Found an annotated list programming guide for the 2m AWA RT85 by VK2KJF:
  • Realised I had an off-by-one error between the frequencies and the dumped codes in the EEPROM
    • Which means I was wrong about where channel 0 is. Channel 0 is… at index 0
  • There is generally a gap of 0x5 or 0xA between programmed frequencies,
    • This lines up with a 25/50kHz gap and the 5kHz channel width (also fref)
    • This is not always the case, even if the MSB (0xC00xC6) doesn’t change
  • RX and TX frequencies aren’t encoded in the same way
    • simplex channels have different values,
    • e.g., 146.450MHz is 0xC332 RX but 0xC4AA TX
Continue reading
  • Pages B.1-3 to B.1-7 of the RT-85 handbook have information about how the frequency is generated from the information in the EPROM
    • Covers UHF, VHF(LB) and VHF(HB). The 2m band is VHF(HB) (148–174)
    • Xtal @5.12Mhz
    • fref = 5 kHz channels
    • M = 63
    • fout = ( a (M+1 )+ M (na) )fref
      • n is the 10 LSbs of the 3-byte frequency code
      • a is the next 7 LSbs
    • fout then get mixed some more
    • f0 = fL + N2/N1 * fs
      • fL may by the same as fout
      • N1 = 4
      • N2 = 16
    • not everything lines up yet
  • Got my half taken-apart BF-F9 to scan for a receive tone and confirmed that the CTCSS module outputs a 91.5Hz tone (and that both TX and RX work)
Continue reading
  • Received the handy header for the BusPirate
  • Wired everything, and somehow fried the ATMEGA328
    • When programming from the Arduino IDE, it now complains as follow

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
Problem uploading to board.  See for suggestions.
An AWA RT85 radio

Shortly after getting my amateur radio license, I bought an old AWA RT85 2m radio from my club. It was already programmed for the local (VK2) repeaters, and all was good. Then I moved interstate, and the radio has been collecting the proverbial dust ever since.

I recently decided to get it back in service, which mainly means reprogramming it to local (VK7) channels.

µblog tag: AWA RT85

Continue reading
A Watchy Armadillonium with a Leatherman Tread LT watchband.

A few years back, I got a Pebble Steel. Some years later, I also got myself a Leatherman Tread LT. The two obviously needed to be put together, using the Tread as the watchband for the Pebble. Unfortunately, the Pebble had a weird band attachment, which led me to try to mush two Thingiverse designs (a Pebble NATO attachment and a Tread watch attachment) into something that almost worked. Ultimately the plastic proved too brittle, and I got distracted by other things.

Fast forward a few years, and my Pebble, quite sadly, is a bit unhealthy. As a replacement, I received a Watchy with an Armadillonium case. So the question reemerged. This time, I pushed back the not-invented-here syndrome, and looked around for existing solutions. I discovered ChronoLinks, which looked perfect, but I wasn’t sure whether they would fit my case. At the price tag, I didn’t want to risk it.

Ultimately, I resorted to searching on eBay, then AliBaba, and found something that looked like it would do the job, at a price that wouldn’t make me too sad if it didn’t.

tl;dr: It did! (mostly)

Continue reading

Until last year, work had Mitel 5212 softphones as the main devices on desks. This was the case since 2008, and was apparently high time to replace them. As they had nowhere to go but the bin, I grabbed a few in the hope to use them at home. While Mitel has a proprietary protocol (MiNET), they also support standard SIP through another vendor firmware, which allowed me to add a few more physical phones behind my FRITZ!Box.

Continue reading

I recently realised that the QNAP TS-212 NAS (running the latest QTS 4.2.0) can be used as a print server. No need to keep another machine on to print from anywhere!

Remote printing is easy

Both UNICES, through CUPS, and Windows, through Samba, can use the printer straight-away. In the case of the Samsung SCX-3205, the driver under ArchLinux is the samsung-unified-driver (from AUR) which, fortunately, doesn’t install any useless binary beyond those needed by the PPD used by CUPS.

client$ pacman -Qs samsung
local/samsung-unified-driver 1.00.36-2

Remote scanning is harder

The problem is that this is a combo printer/scanner. Moving the printer to the NAS requires a similar solution to CUPS to scan from the network. Fortunately, SANE can do this, and there is some documentation about setting it up on a QNAP NAS. In this case, however, this did not work smoothly, so I had to fix a few things.

Continue reading