Posts
In case you care what I'm doing
Recent Posts All posts
- Astro Slide Early Impressions The keyboard is bad, and Planet Computers should feel bad
- ScreenMachine FLM images In which I try to recover microscope images from 1993
- 3D printed terrain models using OS Open Data Playing with Ordnance Survey Open Data to make topographical things
- M0o+ Shepherd's Pi How M0o+ completes Shepherd's Pi
- M0o+ Nature's Bounty How M0o+ solves Nature's Bounty
Browse by year
2023 1 post
- Astro Slide Early Impressions The keyboard is bad, and Planet Computers should feel bad
2022 12 posts
- ScreenMachine FLM images In which I try to recover microscope images from 1993
- 3D printed terrain models using OS Open Data Playing with Ordnance Survey Open Data to make topographical things
- M0o+ Shepherd's Pi How M0o+ completes Shepherd's Pi
- M0o+ Nature's Bounty How M0o+ solves Nature's Bounty
- M0o+ Hungry Cattle How M0o+ solves Hungry Cattle
- M0o+ Computer Vision The only computer vision routine on M0o+
- M0o+ Software Overview An overview of the Pico code for M0o+
- M0o+ Boom - Part 3 Inverse kinematics for M0o+'s boom
- M0o+ Boom - Part 2 Forward kinematics for M0o+'s boom
- M0o+ Boom - Part 1 The mechanical and electronic design of M0o+'s boom
- Pico PIO Camera Hooking up an OV7670 to Pico's PIO
- M0o+'s Chassis The chassis design for M0o+
2021 4 posts
- ESP32 WiFi/Bluetooth Bridge ESP32-based WiFi and Bluetooth bridge for M0o+
- Pico serial bootloader Serial bootloader for the Raspberry Pi Pico (RP2040)
- M0o+ - Pi Wars at Home 2022 Initial post for Pi Wars 2022
- M5Stack Core2 early impressions Initial impressions of the M5Stack Core2
2020 6 posts
- Un-replaceable Belling oven switch replacement Hacking together a replacement for an unobtainable part
- Failsafe Pi Dual-boot with GPIO tl;dr (top) Add this to /boot/config.txt: # Set GPIO 26 to pull-up gpio=26=pu # If GPIO 26 is high, the kernel, dtb and cmdline will be taken from /boot/other/ [gpio26=1] # Note …
- Reverse Engineering keyboard firmware with Ghidra - Part 4 (Conclusion) This post has been a bit delayed for noe reason in particular (except perhaps fatigue with the project). It brings the Ducky reverse engineering adventure (mainly) to a close. At …
- Reverse Engineering keyboard firmware with Ghidra - Part 3 In which we succeed, and fail - and take a break to play through Half-Life: Alyx At the end of Part 2, we’d found and extracted the “firmware blob”, which is the …
- Reverse Engineering keyboard firmware with Ghidra - Part 2 Last time, in Part 1, we found out the super-secret XOR key for the Ducky One firmware updater and used it to obtain its file header describing the firmware version and keyboard …
- Reverse Engineering keyboard firmware with Ghidra - Part 1 In March 2019, the NSA (yes, that NSA) released a reverse engineering tool called Ghidra. This is pretty cool, as it’s relatively easy to use, pretty powerful, and free as in …
2019 13 posts
- Run at Startup (without rc.local) A question that comes up quite frequently in Pi Wars circles is “how do I make my robot program run at start-up?” Someone asked me that directly at the Pi Wars …
- Google Home Headphone Jack Adding a 3.5mm jack to a Google Home Mini - the hard way
- Making Jewellery Towards the end of 2018, I got engaged (woop!), but that’s not really what this post is about. This post is about the ring. The ring is designed in OpenSCAD and printed/cast …
- Pi Wars: Post Mortem Pi Wars happened! It’s over! I can start doing something else with my life! I had an awesome time at Pi Wars today and yesterday, with Mini Mouse performing pretty solid …
- Pre-Competition Status Report With two days to go until competition day (only one day for schools and clubs!), I thought I’d capture the status of Mini Mouse, for posterity and for something to compare …
- Battery Discharge Profile Earlier, on the PiWars Discord, we were having a spirited discussion about the discharge profile of lithium batteries, disagreeing about the relationship between cell voltage and …
- Autonomous Challenge: Hubble The Hubble Telescope Nebula Challenge (previously Somewhere Over the Rainbow) is one of the autonomous challenges, requiring the robot to visit the four corners of a square arena, …
- Setbacks Three weeks ago, I got a basic implementation of The Hubble Telescope Nebula Challenge working, which made Mini Mouse’s code “feature complete” from the point of …
- Mini Mouse's Armament Now, irrespective of personal views on arming robots, unfortunately one of the Pi Wars challenges requires1 that we weaponise them. For Space Invaders we have to be able to knock …
- Edge Detection Identifying edges is one of the key “features” of the human vision system. Our brains have evolved to identify edges and it’s one of the things which lets us …
- Autonomous Challenge: Blast Off Blast Off: the Straight-ish Line Speed Test is, to my mind, the easiest of the three autonomous challenges in this year’s competition. As such, it’s the one which I …
- Mini Mouse's Software Before I dive in to details on individual challenge implementations, I thought it would be sensible to describe how the software on Mini Mouse sits together. Some of this …
- Final Hardware It’s been a few frantic months of robot building between my last post and now, a decent portion of it being focussed on finalising the chassis. Since around September …
2018 6 posts
- (Quite) Robust Thresholding Today, I’m detailing the method I’m using to threshold images for line detection. Also included are some hard-learned lessons about premature optimisation and the …
- We're in! So last weekend Mike and Tim sent out the confirmations for Pi Wars entries, and Mini Mouse made the cut! We’re going to Pi Wars! Doug on the Discord suggested the idea of …
- PCBs For Mini Mouse, I’ve designed two PCBs - one for motor drivers, and one for the power supply/control circuitry. These were my first boards using the open-source KiCad suite …
- Power Every robot needs power, generally at two or more voltages - one “high” voltage directly from the battery to feed the power hungry motors, and one “logic” …
- Motors Motors were the first thing I worked on selecting at the start of the development process. Given the space constraints I’m working with, motors would be a critical component …
- Mini Mouse In the past 12 months, I built Bot Matrix, aiming for PiWars 2018 (though unfortunately I wasn’t selected as a competitor). It was the first chassis I built from scratch, and …