Posts


Bush

The Stupid Car failed it’s MOT on knackered bushes in the shocks and the Panhard rod. I knew this day was coming as they looked pretty ropy last year when I took this photo

Spax shock with a sorry looking bush

This is not something I’d ever done before, so new stuff to learn and maybe an excuse for new tools! First port of call was the Spax website to see if they had suitable bushes. TL;DR was “We don’t support old shocks, want to buy some new ones?” That would be the Answer Of Last Resort. So off I went and did a lot of searching.

Read More


Unbalanced

My plane currently weighs 235g (minus a few grammes of control surface connections), but it has a weight problem.

I used FreeCAD to design and print a simple balance frame. Screenshot of a frame to rest a model aircraft on to check the balance (I should have put a nice chamfer on the joints)

I then removed the battery (27g 600mAh 2S LiPo) and put some scales under the tail. They read 25g. In order to get the plane to balance, I’d need to place the battery somewhere about 300mm in front of the centre of gravity. The nose of the plane is 150mm long. Bugger.

Read More


Is It A Bird? Is It A Plane?

It’s A Plane

An isometric view of a twin boom pusher plane with a skeletal fuselage When I was a teenager, I used to belong to the Chester Model Flying Club (which now appears to be defunct :( ) and I flew electric powered gliders of about 2M wingspan. Typically a balsa framework, with a 540 motor and a 6 cell NiCad battery. Power (& skill) were marginal, weight was high, but I had fun.

Read More


VE Analysis Part 2

After my last post I drank some more wine, read the comments it generated and got down to some jolly good proper thinking. I realised that I was distracting myself with standard deviation and such like, and a more empirical approach may work.

The rough pseudo code is

for each log entry that isn't filtered out by temp/RPM etc
    Find the AFR in the future by doing a bilinear interpolation on a delay table
    Find the actual VE by doing a bilinear interpolation on this record
    Find the target AFR by doing a bilinear interpolation on this record
    Work out how far out of whack the actual AFR is
    For each of the 4 cells involved in the current reading, add a weighted adjustment record depending on where the bilinear interpolation lands

for each cell that has more adjustment records than the minimum number of hits required
    Calculate a weighted average adjustment to apply to the cell

create a new VE table by applying the adjustments to the base table

And it seems to work. Circa a couple of hundred lines of the finest Javascript to run in your browser.

Read More


VE Analysis

I’ve been doing more fiddling with log file and VE analysis, and I’m a little stumped as to where to go with it next.

A Bit Of Background

VE analysis is basically looking at what the air/fuel ratio the car is running at at a specific load/speed, comparing that to what we think it should be, and then fiddling with the fueling to get it closer to the ideal. The authors of the original Megasquirt firmware published a PDF that went in the basic maths of this.

Read More


LogViewer

Two posts in two days? I’m on a roll!

The two main applications in the world of Speeduino/Megasquirt ECU logging are TunerStudio to generate log files and MegaLogViewer to examine them. Whilst they are both very useful applications (I have bought full fat licences for both), they lack position information.

When I’m driving my car and it does something weird, I tend to remember where I was (e.g. approaching the roundabout on the A1081) rahter than when I was (5m20s into the drive). TunerStudio can log GPS information if you have a serial GPS dongle (and have remembered to configure it, and then remembered to check that TS hasn’t lost the config becuase the USB to /dev/tty* mapping has changed) and obviously MSDroid does it natively being an Android application.

Read More


Analysing VE Tables

I’ve recently been trying to improve the efficiency of The Supid Car. Fundamentally, within the ECU is a 16 by 16 table of values. One axis is engine speed, the other is the amount of air the engine is trying to suck in. Each cell in the table contains a value that relates to how long the fuel injectors should fire for. There are a bunch of correction factors thrown in for air temperature, engine temperature, how long the engine has been running etc but simply it’s just a lookup on that table.

Read More


Dashboard Phone Cradle For The Fury

I recently treated myself to a Creality K1C printer with the purpose of being able to print ABS bits for the Fury. It’s a fabulous printer, much more reliable than the Ender 3 Pro I have (and we won’t even mention the Vertex K8800 that has never worked properly)

Anyway, the current mount I have is down on the transmission tunnel, and not easy to glance at. The last time I was in the car, it occured to me I could probably put my phone on the dash behind the steering wheel without blocking the view of anything important.

Read More


Scripting with duck.ai

I’ve found a use for LLMs that I’m comfortable with. Several times I’ve found that I need to write a simple script to do something, but it’s always a grind to do.

Why not get a computer to do the grind then?

At home I have a NAS called luggage (named for the equivalent in Discworld, but so far the NAS has not sprouted feet) and I host git repositories there so I can easily swap between desktop and laptop without a 3rd party service. All these repos live as bare repos in an imaginitively named directory called git

Read More


No Joy Stick

I resurrected a game I half wrote for the Amiga 35 years ago, but I’m struggling with reading the joystick in fs-uae.

  1. If I tell fs-uae to emulate the joystick with the keyboard it works fine.
  2. If I play llamatron on the emulator, it works with my shiny new joystick
  3. If I try to use my joystick with my code that works in 1. it behaves as if it is not there.

To probe this further I took the example code from the VSCode Amiga Assembly plugin and hacked it so that the value of JOY1DAT is written into the blitter so I can see some effect on screen. This works with keyboard emulation, but does not respond to the joystick.

Read More