Posted on

Installing nVidia driver and CUDA toolit for GeForce GTX1050 Ti in Ubuntu Studio 20.10

CUDA allows the GPU on the graphics card to be used for general computing.

System info:

Installation instructions here:

But then I found these instructions and followed them:

I didn’t do the verification step at the end, but after a reboot following installation I can now select CUDA as the Cycles render device in Blender.

Posted on

Side tables

1. American cherry boards

american cherry boards

2. Wood cut list

cut list

3. Thicknessing the boards


4. Ripping the legs

5. Using a jig to cut the legs to length

6. Unshaped legs, cut to length

7. Shaping the legs with a round-over cutter on the router table

8. Shapely legs

9. Routing the leg mortises

10. Tidying the mortises

11. Cutting the side tenons

12. Legs and side aprons

13. Machining the end mortices

14. Shaping the edges of the top with an ogee cutter

15. Gluing the legs

16. Oiling the top, first coat

17. Marking the positions of the top clamps

18. Completed tables

Posted on

Duplicating a WordPress site locally

Use the Snap Creek Duplicator plugin. The plugin generates a zip file and an installer.php script. First, delete all the files and folders in the local WordPress root folder. Then copy the zip file and the installer script to this folder, and browse to installer.php. Click ‘next’ a few times, enter the database details, done.

Posted on

Midi with Ardour on Linux

Here’s how to get Ardour set up so that the DAW can control a MIDI synthesizer. I’m using Ubuntu Studio, Ubuntu 20.04.1 LTS, Ardour 5.12.0.

  • Start Jack (I use QjackCtl).
  • In a terminal, type

a2jmidid -j default

a2jmidid is a bridge between the ALSA MIDI system and JACK.

  • Start Qsynth (a front-end to the fluidsynth MIDI synthesizer) and make sure a soundfont is loaded.
  • In the QjackCtl MIDI connections tab, connect the Output Port ‘midi_out’ of the MIDI track in Ardour to the Input Port a2j ‘FLUID Synth’.
  • In QjackCtl Audio tab, make sure that the qsynth left and right channels are connected either to a system audio output (for listening) or to an Ardour audio track (for recording).

Posted on

A DIY reflow oven

A Raspberry Pi with an Adafruit MAX31855 thermocouple interface board and a solid-state relay is used to control the temperature profile in an oven for reflow surface-mount soldering. The software running on the Raspberry Pi is here: The instructions in the file in the picoReflow project are good, with one modification needed: to auto-start on power-up, the reflow script in lib/init needs “#! /bin/sh” on the first line of the file, not line 12 as given.

I set my Raspberry Pi with a static IP address of, so the address to browse to see the oven interface is

The oven used is an Argos Cookworks 20L 1380W model with top and bottom heaters. The heaters are connected in parallel. Extra insulation is added around the top and sides of the oven chassis and in the door. The seams are sealed with high-temperature putty. Some cross-bars in the rack are removed to reduce thermal mass.

The unmodified oven
Resistance of bottom elements
Door insulation
Complete: gold reflective tape covers seams and glass surface of door
Rear label
Resistance of top elements (two in series)
Sealing the joints
Internal wiring

Posted on

An audio frequency response tester

Using the Digilent Analog Discovery 2 to automatically test audio frequency response

An Analog Discovery 2 (AD2) signal generator is configured to generate a sine wave through a range of frequencies. The sine wave is fed into the Unit Under Test (UUT) and an AD2 oscilloscope channel is used to sample the UUT’s output. A Python script automates the whole thing and produces a .csv file and graphical plot of the results. Python script details are here.

The AD2 mounts conveniently on a standard die cast aluminium enclosure (e.g. Hammond 10758). The enclosure houses connectors to route the signals and a switch and LED to select jack or XLR inputs.

Analog Discovery mounted on Hammond 10758 enclosure, output connected to input

Scope channel 1 connects to either a 6.35mm jack or the positive pin of a balanced XLR, selected with the switch. Channel 2 connects to the negative pin of the XLR.

Adapter wiring diagram
Adapter wiring diagram

The signal generator is fed to the UUT and directly back into channel 2 of the oscilloscope so the phase delay between channel 1 and channel 2 can be calculated, for the phase response measurements.

Adapter schematic
Adapter schematic

The first thing to do is connect the signal generator output directly back into the ‘scope input, as shown in the photo above, in order to check the frequency response of the tester. The test script produces the following plot:

Frequency response of test equipment

The plot is reassuringly flat from 10Hz to 200kHz, with a negligible but consistent gain offset of around 0.2dB throughout.

Posted on

Installing Scilab on Ubuntu 20.04 LTS

The default install of Scilab doesn’t work on Ubuntu 20.04. I downloaded Scilab 6.1.0 from the Scilcab website. When executing the scilab executable, the following error occurs:

error while loading shared libraries: cannot open shared object file: No such file or directory

Turns out I have installed, so the fix is:

sudo ln -s /usr/lib/x86_64-linux-gnu/ /usr/lib/x86_64-linux-gnu/

Posted on

Scripting the Analog Discovery 2 with Python in Linux Part 2

Now that Python and the Digilent DWF Python wrapper are installed (link), we can start using the Analog Discovery 2 to do something useful. The Waveforms SDK provides access to an API that allows the creation of custom applications using the Digilent Analog Design hardware (e.g. the Analog Discovery 2). The reference manual is here.

Working code examples are installed in /usr/share/digilent/waveforms/samples/

I used as a basis, and along with it copied to the project folder.

For a multi-threaded front-end, I used the good example here:

The script generates a sine wave at a range of frequencies on signal generator channel 1 and samples the input on scope channel 1. Gain is calculated for each frequency, with the aim of evaluating the frequency response of some audio hardware. Some flakiness with the USB connection was solved by switching the PC connection to the Analog Discovery 2 from a USB 2 to a USB 3 port. Code is available here: I used the PyCharm IDE.

The first test to run is with the Analog Discovery 2 output connected directly back to its input, i.e. with no test hardware in the circuit, to establish the frequency response of the test kit.