Tuesday, February 10, 2026

Tecsun M-801 media player review

I acquired a used Tecsun M-801 music player.

The good,

  • Built-in FM antenna with decent reception.
  • User replaceable 18650 battery.
  • USB-C port supports changing and acting as a USB speakerphone.
  • It can record audio into a TF card.
  • The built-in mic can be used for answering phone calls via bluetooth.
  • It exposes its battery level to phones through bluetooth. 

The bad,

  • The recorded audio is in MP2 format at 160 kbps instead of MP3.
  • The only knob has two functions. I prefer a dedicated volume knob.
  • The USB-C port is not implemented properly to work with USB-C adapters. 
  • No AM reception. 
  • The speaker has a noticeable noise floor.
  • Volume is not synced to phone in bluetooth mode. 

 

Wednesday, October 8, 2025

Ricoh GRIV camera review

 I used a GRIV for three days. Here is my take.

The good,

  • Very sharp lens
  • Lightweight and compact body
  • 50GB internal storage
  • The RAW format is DNG.
  • Crisp display
  • UI is clean and intuitive.
  • Built-in ND filter
  • Superb image stabilization

The bad,

  • Video recording is limited to 1080p at 60fps.
  • Does not support HEIF.
  • Display is fixed. It does not flip or articulate.
  • Only supports UHS-I microSD card.

The ugly,

The camera freezes after taking dozens of pictures on a moving vehicle. I ruled out SD card incompatibility because I did not insert one. I had to pull out the battery to reboot the camera. This is why I only kept it for three days.

 


 

 

Monday, April 14, 2025

Making UEFI bootable Win 11 USB drive on Linux

I searched for making bootable win 11 drive on Linux. Many results point to WoeUSB. I read WoeUSB's code and found out I can do it manually.

Steps,

  1. Format the USB drive with MBR.
  2. Create two partitions, one 10MB, the other bigger than Windows installer ISO.
  3. Write this image into the first partition. 
  4. Format the second partition in NTFS/exFAT.
  5. Copy everything inside the ISO into the second partition.
  6. Umount the second partition.
  7. Remove USB drive.

Monday, March 31, 2025

JetKVM review

Update on Apr 29, 2025

The device suddenly stopped working. The screen went blank. The case got very hot. I presume it had a short circuit. I emailed JetKVM but have no receive a response.

###

I received a JetKVM last week. Here is my take.

the good,

  • the metal casing feels nice
  • Web UI is clean, responsive, and intuitive. 

the bad,

  • Although it supports IPv6 SLAAC, the IPv6 address is not shown anywhere in the Web UI or on-device screen. I had to enable developer mode and SSH into it to see the address.
  • Virtual media does not support loading media from the browser yet.
  • It uses a mini-HDMI port instead of a regular one.
  • Its only USB-C port is for both power and data (HID and storage emulation). So it comes with a special USB-C cable that splits a USB-C port to a data port and a power port.
  • It does not support WiFi. Good for security but bad for convenience.
  • Its irregular form factor makes it difficult to mount on a rack.

I recommend it at a price of 88 USD. But if you can wait, GL.iNet's GL-RM1 might be a better choice.



Monday, February 17, 2025

Block clients of a specific AP from accessing WAN on OpenWrt 24.10

I wrote a post on blocking clients of AP from Internet access on Mikrotik router a while ago at https://jim-think.blogspot.com/2023/04/block-internet-access-for-iot-devices.html

I have become dissatisfied with MikroTik's WiFi compatibility. So I switched to Openwrt.

Steps

0. opkg install kmod-nft-bridge

1. Add a WiFi interface for restricted devices.

config wifi-iface 'wifinet2'
    option device 'radio1'
    option mode 'ap'
    option ssid '<redacted>'
    option encryption 'psk2+ccmp'
    option key '<redacted>'
    option ocv '0'
    option network 'lan'   // bridged to lan
    option ieee80211w '1'
    option ifname 'no-internet'  // remember this

 

2. Create a file at  /etc/nftables.d/bridge.sh with following contents.

nft add table bridge filter
nft flush table bridge filter
nft add chain bridge filter prerouting { type filter hook prerouting priority dstnat\; }
nft add rule bridge filter prerouting iifname no-internet mark set 0x1984


3. Add firewall rules in /etc/config/firewall

config rule
    option name 'block-no-internet'
    list proto 'all'
    option src 'lan'
    option dest 'wan'
    option target 'REJECT'
    option mark '0x1984'

config include
        option type 'script'
        option path '/etc/nftables.d/bridge.sh'

4. Reboot or run service firewall restart.

5. Run nft list ruleset to verify. 

References

https://wiki.nftables.org/wiki-nftables/index.php/Setting_packet_metainformation#packet_mark

https://openwrt.org/docs/guide-user/firewall/fw3_configurations/bridge 

https://openwrt.org/docs/guide-user/firewall/firewall_configuration#includes_2203_and_later_with_fw4

Sunday, January 26, 2025

Viltrox 28mm F4.5 E mount AF lens review

I have been using a Viltrox AF 28mm F4.5 FE on Sony A6400 for a while. Here is my review.

Good,

  • extremely thin and lightweight
  • auto focus
  • AF motor is quiet
  • affordable
  • built-in lens cover

Bad,

  • Aperture is fixed at f/4.5 which is too wide for landscape.
  • No manual focus mode
  • No filter attachment threads
  • Prominent flare
  • AF motor can be heard on video recordings
  • No optical stabilization (not unexpected given the price)


Monday, January 20, 2025

Remeber screen brightness in Fedora

My laptop's screen is always at the lowest brightness when resuming from sleep. It is very annoying. I found a fix.

 

Create an executable file at /usr/lib/systemd/system-sleep/brightness with following contents,


#!/usr/bin/sh

case $1 in
    pre) cp /sys/class/backlight/intel_backlight/brightness  /tmp/saved_brightness ;;
    post) cp /tmp/saved_brightness /sys/class/backlight/intel_backlight/brightness  ;;
esac