Graeme Winter

Blog

Nonsense that I’ve recently been doing, some of which could be useful to others…

Work

2021 03 29 HDF5 / NeXus renaming

2021 04 30 Sidewinder

Play

2021 03 18 Plotting Numbers

2021 04 06 Scrolling Text

2021 04 08 Scrolling Text Redux (extend C API)

2021 04 19 Sidewinder

2022 09 04 Real time / DMA etc.

2023 - exploring the RP2040

Collection of posts investigating the rp2040 microcontroller (via the Raspberry Pi Pico development board) in C and micropython…

2023 01 01 IRQ timing 1/2

2023 01 02 IRQ timing 2/2

2023 01 03 Real-time in µPython day 1

2023 01 04 Real-time in µPython day 2

2023 01 05 Real-time in µPython day 3

2023 01 06 µPython register bashing

2023 01 07 µPython register bashing and memory reads

2023 01 08 µPython DMA and ADC

2023 01 09 low level PWM

2023 01 10 low level PWM day 2

2023 01 11 drive DAC from PIO

2023 01 12 read virtual DAC from PIO

2023 01 13 basic UART

2023 01 14 more UART

2023 01 15 applied DMA and ADC pacing

2023 01 26 DMA chaining for signal generator

2023 01 27 integration

2023 01 31 PWM DAC (analogue is hard)

2023 02 04 byte swapping

2023 02 05 fonts

2023 02 08 GPIO and assembly

2023 02 09 GPIO and assembly, PIO timer

2023 02 10 explore ADC some more

2023 02 12 assembly / data

2023 02 15 integer Mandelbrot set (part 1)

2023 02 28 bare metal assembly on rp2040

2023 04 28 overwrite IRQ handler in µPython

2023 05 23 clock comparison

2023 07 31 frequency counting

2023 08 08 PIO quadrature encoder

2023 08 12 PIO counting and DMA

2023 08 20 Times are hard

2023 08 25 PWM precision

2023 08 30 Count Zero Interrupt

2024 - exploring the RP2040 some more

2024 02 27 Debug PIO

2024 03 05 Switching programs

2024 - Zephyr

2024 04 01 Zephyr day 1 on micro:bit

2023 - zynq7000

Working on a ZYBO z7-20 board… from the basic upwards.

Getting started

2023 - SAMD51 (Adafruit M4 boards)

Working in µPython (including my own port 🤓)

Checking the TRNG with much assembly

Leaning on the Assembly for Mandelbrot sets and redux

Thumb2 imm12 compiler

Assembly toggling GPIO

Assembly RNG to disk

Starting to DMA, bashing registers

DMA register bash to flicker LED

Clocks, investigation of

Clocks, continued

Clocks for DMA

Clocks to GPIO

Extending MicroPython in assembly

Timing IRQ (Python)

Timing IRQ (C, with on-the-road tyre change)

As above, looking at clocking domains

Spot finding on MCU

Spot finding on MCU including connected components

Hacking CircuitPython

CircuitPython with uctypes

Python CMSIS

CircuitPython / MicroSD / Mandelbrot

CircuitPython / SAMD51 / FREQM

BCM2835 (π)

Clocks

Bare Metal

Hello, World!

Kernel modules

i.MX RT1060 / Teensy 4.1

Get started