Skip to content

Instantly share code, notes, and snippets.

The Problem

If you've found your way here, it's probably because you've got a shiny new Firebeetle ESP32-E and discovered (at the time of writing this gist) that it doesn't work under Big Sur, this is thanks to the CH340 USB->SERIAL bridge not having any drivers for Big Sur.

The reason for this is that Apple has deprecated kernel extensions in Big Sur, and therefore the existing driver for the CH340 does not work and needs to be re-written to support Big Sur. A fairly lengthy gap has existed since Big Sur and now with no hint of drivers on the horizon, so you probably are going to have to use an alternative solution.

My Solution

Use JTAG. If you have the JTAG pins free on the firebeetle, then with the aid of a JTAG adaptor you can use that to flash the device, and then, with the help of a different USB->SERIAL bridge (FTDI is a good bet, or silicon labs) you can tap the TX line (TTL 3.3 levels) on the firebeetle to the RX line on your serial adaptor.

Pi-KVM Bus Powered

You can use Pi-KVM bus powered, this reduces the need for splitters and/or other "hacks" to make it work, the following instructions will allow you to achieve this.

Note as the pi is bus powered, it cannot control the PC or show the output until the Raspberry Pi 4 has booted, I would recommend that you at the minimum ensure that your host machine is configured to boot up when power is restored. A self powered Pi-KVM would still have the same issue after power is restored, but have more flexibility as it is independant of the host system.

I have tested this on a 2016 MacBook Pro and an M1 Mac Mini and haven't seem any issues with either Mac not being able to source enough current to power the Raspberry Pi 4.

The instructions for early & later revisions vary.

@fizzyade
fizzyade / Caddy 2 Cloudflare DNS Example.md
Last active March 25, 2024 22:58
An example of a Caddy 2 JSON configuration file for a reverse proxy that uses the Cloudflare DNS module
{
  "apps": {
    "http": {
      "servers": {
        "example": {
          "listen": [
            ":80",
            ":443"
          ],
@fizzyade
fizzyade / deploy.py
Last active September 26, 2020 17:07
Python script to automate deployment of a Qt based application as a macOS DMG, Windows Installer and Linux AppImage
#!/usr/bin/env python3
#
# Copyright (C) 2019 Adrian Carpenter
#
# Multiplatform Qt Deployment Tool
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
@fizzyade
fizzyade / go
Last active September 20, 2020 22:04
simple script to assemble, insert executable into mmc image and then start the emulator for ZX Spectrum Next development
#!/usr/bin/env sh
# this script has only been tested on macOS.
# (C) 2020 Adrian Carpenter
#
# This script will assemble and then launch an application in CSpect. The assembly file should be named the same as the
# folder, for example if the folder "mygame" holds the source code, then inside that folder should be a file named "mygame.asm",
#
# This negates the need to modify the script for a new project, you just have the have the folder and the main assembly file
# named the same.
@fizzyade
fizzyade / CloneSiliconLabs.md
Created April 3, 2020 20:20
Clones all Silicon Labs (formerly Micrium) uc- library repositories

Clone Silicon Labs Repos

A convenience command to clone all Silicon Lab (Formerly Micrium) uc- related library repos. These libaries were closed source and high quality libraries for USB, Networking, Filing Systems etc that are portable to many platforms and different operating systems.

curl "https://api.github.com/search/repositories?q=uc-+user:SiliconLabs" | grep \"clone_url\" | awk '{print $2}' | sed -e 's/"//g' -e 's/,//g' | xargs -n1 git clone

@fizzyade
fizzyade / qt_fontawesome.md
Last active February 18, 2020 23:01
QString (Qt) utility to allow strings to use Font Awesome icons alongside regular text easily.

Glyphs in Rich Text

Here's a small utility class that uses a simple markup extension to easily allow you to use Font Awesome glyphs in rich text on Qt. This allows widgets such as QLabel to use glyphs from the excellent Font Awesome font.

You will need:

Loading the font

@fizzyade
fizzyade / nvidiaheadend.md
Last active February 27, 2024 22:43
tvheadend container + nvidia ffmpeg under Unraid

NVIDIA+TVHEADEND+UNRAID+ACCELERATED FFMPEG

I recently had a need to get hardware accelerated ffmpeg running on tvheaded under unraid, I eventually achieved this with a few tricks, here are my notes on what I did to achieve this.

First up, Unraid NVIDIA support

Install the Nvidia plugin under Unraid, this installs a custom kernel complete with the nidia drivers and docker runtime to support thiese.

Next install a hardware accelerated FFMPEG

@fizzyade
fizzyade / pve-patcher.sh
Created October 21, 2019 09:20
Disable nag screen for Proxmox community edition
cat > /etc/systemd/system/pve-patcher.service <<EOT
[Unit]
Description=PVE subscription popup disabler
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/sed -i '/\sProxmox\.Utils\.checked_command\(.*\); \/\/ display subscription status/ s/\(\s*\)/\1\/\//' /usr/share/pve-manager/js/pvemanagerlib.js
[Install]
@fizzyade
fizzyade / untangle_letsencrypt.md
Last active January 22, 2022 02:10
Set Untangle certificate to an auto renewing LetsEncrypt certificate

This uses acme.sh to generate a certificate which replaces the one shown in the certificate section in the Untangle UI.

It updates on each run and if the certificate is renewed it replaces the one used by untangle and restarts apache.

if the certificate isn’t renewed, it still checks if the certificate untangle is using is the one cached by acme.sh and it will replace it and restart apache if necessary.

The crontab entries allow it to do a certificate check at reboot and also at 4am every morning.

You’ll need to download acme.sh, but it requires no extra dependencies over what is supplied in untangle, you will need to edit the acme.sh configuration file to match how you update the cert.