<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="https://blog.martincowen.me.uk/sitemap.xsl"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
<url>
<loc>https://blog.martincowen.me.uk/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/adding-brightness-control-to-the-ble-lightbulb-example.html</loc>
<lastmod>2020-05-15T10:07:30+01:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/22/nrf52-registers-PWM-mod-0-showing-4-channels.png</image:loc>
<image:title><![CDATA[Registers in the NRF52832 showing PWM channels]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/22/nrf52-registers-groups-showing-pwm.png</image:loc>
<image:title><![CDATA[nRF52 registers Groups showing PWM on]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/22/nRF52-registers-showing-pselout0-pin-18.png</image:loc>
<image:title><![CDATA[nRF52 registers showing pselout0 pin 18]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/22/blelb-on-off-sdk16-build-stats.png</image:loc>
<image:title><![CDATA[Build Stats SDK16 On/Off]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/22/blelb-with-pwm-dim-build-stats.png</image:loc>
<image:title><![CDATA[Build Stats SDK16 PWM dimming]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/22/nRF-Connect-setting-value-20-for-PWM-LED.PNG</image:loc>
<image:title><![CDATA[nRF Connect setting 20 percent]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/22/scope-showing-80pc-pwm.png</image:loc>
<image:title><![CDATA[Scope shot showing 80% PWM]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/adding-cmsis-config-wizard-to-ses-projects.html</loc>
<lastmod>2020-03-30T12:39:08+01:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/15/cmsis-configurator-log-enabled.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/15/cmsis-config-wizard-in-menu.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/15/cmsis-configurator-just-opened.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/15/debug-terminal-showing-ad-started.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/an-include-file-manager-for-segger-embedded-studio-with-nordic-sdk.html</loc>
<lastmod>2021-01-04T14:57:55+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/24/SESIFM_with_rightclick.png</image:loc>
<image:title><![CDATA[SES IFM with right click menu shown]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/24/SESIFM_add_folder.png</image:loc>
<image:title><![CDATA[SESIFM Add Folder Dialog]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/an-unusual-and-fast-bit-reverse-routine.html</loc>
<lastmod>2025-02-18T14:40:04+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/35/bitreverser-results-graph.png</image:loc>
<image:title><![CDATA[Bit reverser results graph]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/35/bitreverser-MSTest-results.png</image:loc>
<image:title><![CDATA[MSTest Results]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/answering-my-own-interview-question-on-integer-maths-in-c.html</loc>
<lastmod>2021-02-17T12:02:28+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/32/deg-F-conversion-naive-version.png</image:loc>
<image:title><![CDATA[Naive version]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/32/deg-F-conversion-multiple-or-divide-first.png</image:loc>
<image:title><![CDATA[Multiply or Divide First]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/32/deg-F-conversion-mult-3.png</image:loc>
<image:title><![CDATA[Deg C to F conversion when multiply by 3]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/32/deg-F-conversion-mult-3-error.png</image:loc>
<image:title><![CDATA[Deg F conversion when multiply by 3, error from exact]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/attempting-to-read-and-write-emproject-files-as-xml.html</loc>
<lastmod>2020-06-11T10:45:07+01:00</lastmod>
</url>
<url>
<loc>https://blog.martincowen.me.uk/building-embedded-c-applications-on-windows-with-gcc-cmake-and-ninja.html</loc>
<lastmod>2025-11-06T15:29:29+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/46/TDM-GCC-Cpp-extension-pack.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/46/TDM-GCC-CMake-Tools-extension-in-marketplace.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/46/TDM-GCC-scan-for-kits-in-vscode-2.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/46/TDM-GCC-cmake-sidebar-run-configure.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/46/TDM-GCC-vsc-cmake-configure-success.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/46/TDM-GCC-vscode-status-bar-build-and-debug-icons.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/46/TDM-GCC-vsc-cmake-build-ok-2.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/46/TDM-GCC-vsc-running-hello-from-ps-terminal.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/46/TDM-GCC-run-from-vsc-status-bar.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/46/TDM-GCC-vsc-delete-cache-and-reconfig-button-in-cmaketoolsbar.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/46/TDM-GCC-vsc-gdb-at-a-breakpoint-in-main.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/choosing-a-scope-for-embedded-use.html</loc>
<lastmod>2019-10-28T15:26:51+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/7/scope-comparison.png</image:loc>
<image:title><![CDATA[scope comparison]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/7/sds1204x-e-1_1_.jpg</image:loc>
<image:title><![CDATA[Siglent SDS1104X-E]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/choosing-a-signal-generator.html</loc>
<lastmod>2020-01-14T16:41:33+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/10/dds-function-gen.png</image:loc>
<image:title><![CDATA[DDS function generator]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/10/tek-afg3252.png</image:loc>
<image:title><![CDATA[Tek AFG2352]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/10/fy6900-ebay-front-panel.png</image:loc>
<image:title><![CDATA[FY6900 signal generator]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/10/fy-screenshot.png</image:loc>
<image:title><![CDATA[PC software screenshot]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/10/psu-in-fy6900-from-sdg.png</image:loc>
<image:title><![CDATA[PSU in FY6900, from SDG Electronics]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/10/10-kHz-sine-1V-typ-harmonics.png</image:loc>
<image:title><![CDATA[10 kHz sine at 1V FFT]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/10/1-MHz-sine-1V-typ-harmonics.png</image:loc>
<image:title><![CDATA[1 MHz sine at 1V FFT]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/10/probe-with-spring-ground.jpg</image:loc>
<image:title><![CDATA[probe with spring ground in ch 2]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/10/1-MHz-square.png</image:loc>
<image:title><![CDATA[1 MHz square]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/10/5-MHz-square.png</image:loc>
<image:title><![CDATA[5 MHz square]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/10/10-MHz-square.png</image:loc>
<image:title><![CDATA[10 MHz square]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/10/20-MHz-square.png</image:loc>
<image:title><![CDATA[20 MHz square]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/10/25-MHz-square.png</image:loc>
<image:title><![CDATA[25 MHz square]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/10/arb1.jpg</image:loc>
<image:title><![CDATA[An Arb waveform in the generator]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/choosing-an-optimal-crc-polynomial.html</loc>
<lastmod>2020-12-16T12:17:22+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/30/PuD-against-BER-for-8-12-16-bits-2.png</image:loc>
<image:title><![CDATA[Pud against BER for 8, 12 and 16 bit CRCs vs limit]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/30/Koopmans-comparison-of-8-bit-crcs.png</image:loc>
<image:title><![CDATA[Comparison of 8 bit CRC polynomials by Koopman]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/30/crc-bit-size-needed-to-protect-data-length-for-hd3-to-6.png</image:loc>
<image:title><![CDATA[CRC bit size needed to protect data lengths for HD=3 to 6]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/30/shortest-crc-for-7-bytes-data-word.png</image:loc>
<image:title><![CDATA[Shortest CRC for 7 bytes data word]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/30/data-bit-length-vs-crc-size-3-to-9-for-HDs.png</image:loc>
<image:title><![CDATA[Data Bit Length limit for CRCs vs HD]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/30/choosing-a-7-bit-crc-poly.png</image:loc>
<image:title><![CDATA[7-bit CRC polynomials sorted by DL at HD=4]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/30/Koopmans-7-bit-crcs-showing-0x5b.png</image:loc>
<image:title><![CDATA[Koopman's page for 7-bit CRCs showing 0x5B]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/30/crc-comparison-answers-sheet-2.png</image:loc>
<image:title><![CDATA[CRC Comparison - Answers sheet]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/clearing-up-crc-terminology-and-representations-of-polynomials.html</loc>
<lastmod>2020-12-17T10:24:29+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/28/definitions-of-codeword-and-dataword.png</image:loc>
<image:title><![CDATA[definition of codeword and dataword]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/28/burst-of-errors.png</image:loc>
<image:title><![CDATA[Effect of a burst of errors]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/28/poly-representations.png</image:loc>
<image:title><![CDATA[polynomial representations]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/28/crc-poly-converter-2.png</image:loc>
<image:title><![CDATA[CRC polynomial converter]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/comment-driven-development.html</loc>
<lastmod>2025-10-30T12:31:10+00:00</lastmod>
</url>
<url>
<loc>https://blog.martincowen.me.uk/comparison-of-47-iphones.html</loc>
<lastmod>2021-04-14T10:55:09+01:00</lastmod>
</url>
<url>
<loc>https://blog.martincowen.me.uk/countdown-timer-for-childrens-games-firmware-design.html</loc>
<lastmod>2025-10-21T17:54:21+01:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/44/countdown-timer-driver-layers-2.png</image:loc>
<image:title><![CDATA[Countdown Timer Firmware Layer Design, drawn in RFFlow by me]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/44/Countdown-Timer-STM32-Table-12-PB15.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/44/Countdown-Timer-ioc-TIM1-PWM.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/44/Countdown-Timer-freq-spreadsheet-extract.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/countdown-timer-for-childrens-games-hardware-design.html</loc>
<lastmod>2025-10-30T09:43:11+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/43/Countdown-Timer-Front-Panel-PCB.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/43/Countdown-Timer-regulator-schematic.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/43/Countdown-Timer-led-drive-schematic.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/43/Countdown-Timer-button-schematic.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/43/Countdown-Timer-wake.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/43/Countdown-Timer-full-schematic.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/43/Countdown-Timer-PCB-v0.2-micro-tracking.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/43/Countdown-Timer-PCB-faceon-v0.2-render.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/43/Countdown-Timer-PCB-oblique-v0.2-render.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/design-of-a-processor-and-board-independent-driver-layer.html</loc>
<lastmod>2025-03-27T15:38:11+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/39/stm32-for-your-children.jpg</image:loc>
<image:title><![CDATA[Tweet from the pandemic saying that you don't order STMs for yourself, you order them for your children]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/39/spi-driver-layer-diagram-2.png</image:loc>
<image:title><![CDATA[SPI driver layer diagram]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/eliminate-useless-timer-interrupts-by-coalescing-timers.html</loc>
<lastmod>2020-04-08T15:05:32+01:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/18/results-table-coalescing-timers.png</image:loc>
<image:title><![CDATA[results table]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/18/timer-coal-off-8-10ms.png</image:loc>
<image:title><![CDATA[Simple 1ms timer]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/18/timer-coal-on-8-10ms.png</image:loc>
<image:title><![CDATA[Coalescent timers scope shot]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/fast-reading-of-excel-worksheets-into-a-net-program.html</loc>
<lastmod>2020-02-14T12:14:40+00:00</lastmod>
</url>
<url>
<loc>https://blog.martincowen.me.uk/getting-a-simple-onoff-ble-peripheral-example-to-work.html</loc>
<lastmod>2020-05-13T14:29:14+01:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/20/nrRF51-vs-nRF52.png</image:loc>
<image:title><![CDATA[nRF51 vs nRF52 features]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/20/some-nRF-chip-pricings.png</image:loc>
<image:title><![CDATA[Some nRF chips features and pricings]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/20/suggested-section-placements-for-lightbulb-MA.png</image:loc>
<image:title><![CDATA[Suggested placement macros]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/20/lightblue-showing-nordic-uart-6e4-not-e54b.png</image:loc>
<image:title><![CDATA[LightBlue showing UART service 6E4 instead of LED service E54B]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/20/nrf-connect-ios-showing-uart-service-not-led-service.png</image:loc>
<image:title><![CDATA[iOS nRF Connect showing Nordic UART service not LED service]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/20/select-nRF-Dongle.png</image:loc>
<image:title><![CDATA[select nRF Dongle in nRF Connect for desktop]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/20/ad-data-ble-lightbulb-as-per-MA.png</image:loc>
<image:title><![CDATA[nRF Connect for desktop showing ad data only device information]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/20/connected-data-ble-lightbulb-as-per-MA.png</image:loc>
<image:title><![CDATA[nRF Connect for desktop showing services after connection]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/20/nrf-connect-for-ios-showing-battery-service-advertised.png</image:loc>
<image:title><![CDATA[nRF Connect for iOS showing battery service advertised]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/20/nrfconnect-desktop-vs-service-only-shown.png</image:loc>
<image:title><![CDATA[nRF Connect for desktop ONLY shows custom service]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/20/Lightblue-showing-3-services-still-with-phantom-uart-service.png</image:loc>
<image:title><![CDATA[LightBlue showing 3 services still with phantom UART service]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/20/iOS-Bluetooth-Off-On.png</image:loc>
<image:title><![CDATA[How to switch Bluetooth Off and On in iOS]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/20/nRF-Connect-for-iOS-showing-correct-3-services.png</image:loc>
<image:title><![CDATA[nRF Connect for iOS showing correct 3 services]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/20/LightBlue-showing-correct-3-services.png</image:loc>
<image:title><![CDATA[LightBlue showing correct 3 services]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/20/nRF52-memory-usage-for-BLE-Lightbulb-on-SDK15.png</image:loc>
<image:title><![CDATA[nRF52 memory usage for BLE Lightbulb application on SDK15]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/getting-started-with-nordic-semiconductors-nrf51-dk-and-segger-embedded-studio.html</loc>
<lastmod>2021-05-26T14:48:57+01:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/14/Nordic-nRF51-DK-photo.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/14/Nordic-relationship-between-boards-and-chips.png</image:loc>
<image:title><![CDATA[Relationship between boards and chips]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/14/Nordic-recommend-SES.png</image:loc>
<image:title><![CDATA[Nordic recommend SES]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/14/segger-public-build-config-inherits-both-internal-and-common.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/14/segger-section-placement-detected.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/14/getting-started-wrong-internal-files-page-21.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/14/nrfconnect-scanner-hrs.jpg</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/14/nrfconnect-rssi-hrs.PNG</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/getting-to-ping-on-stm32h743-with-lwip.html</loc>
<lastmod>2025-06-27T15:31:53+01:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/40/board-selector-h743.png</image:loc>
<image:title><![CDATA[STM32CubeIDE selecting board Nucleo-H743]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/40/init-with-defaults.png</image:loc>
<image:title><![CDATA[STM32CubeIDE initialise using defaults]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/40/eth-defaults-to-low-speed-gpios.png</image:loc>
<image:title><![CDATA[STM32CubeIDE defaults to Low speed on Eth pins]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/40/LWIP-enabled-only-if-Dcache-on.png</image:loc>
<image:title><![CDATA[LWIP Enabled only if D-cache is on]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/40/MPU-settings-for-ethernet-on-H743.png</image:loc>
<image:title><![CDATA[MPU settings for ethernet on H743]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/40/STM32CubeIDE-phy-platform-settings.png</image:loc>
<image:title><![CDATA[STM32CubeIDE PHY platform settings]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/40/CubeMX-Do-you-want-to-regenerate-Code.png</image:loc>
<image:title><![CDATA[Cube asking do you want to regenerate]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/40/cmd-ping-working.png</image:loc>
<image:title><![CDATA[cmd ping working]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/40/wireshark-ping-working.png</image:loc>
<image:title><![CDATA[Wireshark ping working]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/google507d7afb81e94b45.html</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/hitting-the-precision-limit-of-excel-or-15-digits-should-be-enough-for-everyone.html</loc>
<lastmod>2020-07-21T15:40:34+01:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/27/CRCerrorcalcs-showing-xlPrecision-use.png</image:loc>
<image:title><![CDATA[CRC error calcs spreasheet showing xlPrecision use]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/how-to-harness-the-power-of-generated-code-in-stm32cubeide-with-your-custom-code.html</loc>
<lastmod>2025-03-04T15:01:08+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/38/CubeMX-Do-you-want-to-regenerate-Code.png</image:loc>
<image:title><![CDATA[Do you want to regenerate code?]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/38/CubeMX-showing-SPI1-with-DMA.png</image:loc>
<image:title><![CDATA[SPI with DMA being configured in ioc]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/38/CubeMX-part-of-a-clock-configuration.png</image:loc>
<image:title><![CDATA[Clock tree for dual core STM32H745]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/38/CubeMX-dual-core-timers.png</image:loc>
<image:title><![CDATA[Timers being configured on dual core processor]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/how-your-obeng-project-type-affects-your-planning-methodology-and-leadership.html</loc>
<lastmod>2020-04-02T15:14:00+01:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/17/obeng-project-types.png</image:loc>
<image:title><![CDATA[Obeng Project Types]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/improving-frequency-measurement-performance-by-factor-of-three-on-stm32-by-using-dma.html</loc>
<lastmod>2020-02-12T14:42:29+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/12/freq-meas-code-1.png</image:loc>
<image:title><![CDATA[initialised global variables]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/12/freq-meas-code-2.png</image:loc>
<image:title><![CDATA[3 way if statement]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/12/freq-meas-live-vars-at-200kHz-30pc.png</image:loc>
<image:title><![CDATA[ide showing live variables]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/12/freq-measure-interrupt-at-300kHz.png</image:loc>
<image:title><![CDATA[cpu usage using interrupt version at 300kHz]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/12/dma-channels-and-streams-tim2-highlight.png</image:loc>
<image:title><![CDATA[DMA channels and streams]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/12/freq-meas-final-dma-cpu-usage.png</image:loc>
<image:title><![CDATA[scope shot of cpu usage at 1 MHz input]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/my-all-digital-instruments-electronics-lab.html</loc>
<lastmod>2021-01-26T09:09:45+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/26//cropped-IMG_2649.jpg</image:loc>
<image:title><![CDATA[my all-digital electronics workbench]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/my-c-source-file-format-preferences.html</loc>
<lastmod>2026-01-27T10:50:15+00:00</lastmod>
</url>
<url>
<loc>https://blog.martincowen.me.uk/porting-novelbits-ble-central-lightbulb-controller-to-nrf51-and-sdk-version-12.html</loc>
<lastmod>2020-06-29T15:35:48+01:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/25//SESIFM-lightbulb-remote-moved-to-sdk12-showing-29-paths-missing.png</image:loc>
<image:title><![CDATA[SES IFM showing 29 paths missing]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/25//sdk-configs-52-and-51.png</image:loc>
<image:title><![CDATA[WinMerge showing summary of differences between sdk_config.h for nRF51 and nRF52]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/repairing-a-nad-502-cd-player.html</loc>
<lastmod>2019-11-22T12:03:42+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/8/cd-repair-lamps.jpg</image:loc>
<image:title><![CDATA[capsule lamps on pcb]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/8/cd-repair-regs.jpg</image:loc>
<image:title><![CDATA[regulators on heatsink]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/8/cd-repair-leds.jpg</image:loc>
<image:title><![CDATA[replacement LEDs on pcb]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/8/cd-repair-mains-incoming.jpg</image:loc>
<image:title><![CDATA[mains pins and transformer]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/8/cd-repair-display.jpg</image:loc>
<image:title><![CDATA[display backlit]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/8/cd-repair-completed.jpg</image:loc>
<image:title><![CDATA[CD player in situ]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/repairing-a-panasonic-dmr-ex77-pvr.html</loc>
<lastmod>2025-02-27T11:04:57+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/36/pvr-screws-on-paper.jpg</image:loc>
<image:title><![CDATA[Screws stuck to paper with sellotape]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/36/good-esr-cap.gif</image:loc>
<image:title><![CDATA[Good capacitor ESR]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/36/bad-esr-cap.gif</image:loc>
<image:title><![CDATA[Bad capacitor ESR]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/36/ebay-pvr-c1401.jpg</image:loc>
<image:title><![CDATA[Ebay PVR C1401]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/36/ebay-pvr-C1557-bulging.JPG</image:loc>
<image:title><![CDATA[Ebay PVR C1557 bulging]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/36/ebay-pvr-cap-bulging.JPG</image:loc>
<image:title><![CDATA[Ebay PVR cap next to digital board bulging]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/36/pvr-dvd-drive-and-pcb.png</image:loc>
<image:title><![CDATA[PVR RAM drive and digital PCB with warning]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/36/pvr-schem-1-extract.png</image:loc>
<image:title><![CDATA[PVR schematic extract main PSU]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/36/pvr-schem-for-c1557.png</image:loc>
<image:title><![CDATA[PVR schematic extract for C1557]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/36/pvr-schem-for-c1607.png</image:loc>
<image:title><![CDATA[PVR schematic extract for C1607]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/36/pvr-schem-for-c7401.png</image:loc>
<image:title><![CDATA[PVR schematic extract for C7401]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/repairing-an-ikea-drawer-unit.html</loc>
<lastmod>2019-10-22T14:57:45+01:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/6/black-and-cherry-ikea-drawer-unit.jpg</image:loc>
<image:title><![CDATA[black and cherry IKEA drawer unit]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/6/correction-fluid-line-on-black-chipboard.jpg</image:loc>
<image:title><![CDATA[correction fluid white line on black chipboard]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/6/runners-in-drawer-unit.jpg</image:loc>
<image:title><![CDATA[runners in drawer unit]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/replaying-a-captured-scope-trace-using-a-siglent-dso-and-feeltech-fy6900.html</loc>
<lastmod>2020-01-23T15:20:38+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/11/sigfy1.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/11/sigfy2.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/11/sigfy3.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/11/sigfy4.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/11/sigfy5.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/11/sigfy6.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/11/sigfy7.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/11/sigfy8.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/11/sigfy9.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/11/sigfy10.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/sampling-a-pulse-stream-mid-bit-when-the-clock-frequency-varies.html</loc>
<lastmod>2019-12-20T11:00:52+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/9/sampling-digital-diagram.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/9/sampling-digital-nominal.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/9/sampling-digital-known-1pc.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/9/sampling-digital-known-2pc-50pc-sample.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/9/sampling-digital-known-2pc-75pc-sample.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/9/sampling-digital-known-summary.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/9/sampling-digital-same-var-summary.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/9/internal-clock-tol-PIC16F505.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/9/sampling-digital-var-4pc-50pc-sample.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/9/sampling-digital-var-4pc-75pc-sample.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/9/sampling-digital-var-var-50-to-90.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/bluetooth/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/bluetooth/page/2/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/books/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/c/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/c/page/2/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/c/page/3/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/c/page/4/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/career/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/change/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/cmake/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/crc/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/defence/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/development_process/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/dma/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/dso/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/emi/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/equipment/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/ethernet/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/excel/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/freertos/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/fsm/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/hal/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/interviews/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/iphone/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/kicad/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/linker/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/lwip/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/mechanical/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/microsoft/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/nordic/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/nordic/page/2/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/optimisation/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/pcb/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/project_management/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/repair/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/scope/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/segger/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/segger/page/2/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/serial/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/sig-gen/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/smpsu/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/stm32/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/stm32/page/2/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/support/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/tdd/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/teams/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/unit_testing/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/vbnet/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/visualstudio/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/visualstudio/page/2/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/tags/wpf/</loc>
</url>
<url>
<loc>https://blog.martincowen.me.uk/the-case-of-the-field-problem.html</loc>
<lastmod>2025-10-30T09:57:17+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/41/display-board-connector-500h.jpg</image:loc>
<image:title><![CDATA[Fine pitch connector for display wiring]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/41/display-board-open-core-inductor-500h.jpg</image:loc>
<image:title><![CDATA[Drum core inductor near comms transformer, oblique view]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/41/shielded-drum-core-tht-inductor.png</image:loc>
<image:title><![CDATA[Shielded through hole drum core inductor]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/the-product-support-trap-for-development-engineers.html</loc>
<lastmod>2019-08-06T13:26:16+01:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/1/product-support-model-1.png</image:loc>
<image:title><![CDATA[one R &amp; D team, sequential development]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/1/product-support-model-2.png</image:loc>
<image:title><![CDATA[R &amp; D teams alternating]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/trying-to-use-nrf5-sdk-1230-for-nrf51-on-a-freertos-project.html</loc>
<lastmod>2020-03-19T15:48:36+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/16/expected-before-void-in-port_c.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/16/winmerge-of-port_c-between-sdks.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/16/ble_app_hrs_freertos_pca10040_s132-built-ok.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/16/portmacro_cmsis_h-dependencies.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/unit-testing-embedded-c-off-target-with-cpputest-on-windows.html</loc>
<lastmod>2025-10-28T17:28:45+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/47/cpputest-system-vars-backslash.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/47/cpputest-vscode-cpputest-run-cpputesttests.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/47/cpputest-delete-cmake-cache.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/47/cpputest-countdown-running-tests-in-debug-halted.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/unit-testing-embedded-c-on-target-with-minunit-and-off-target-with-ms-test.html</loc>
<lastmod>2021-04-09T11:39:50+01:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/33/MS-Test-Playground-18-passing.png</image:loc>
<image:title><![CDATA[MS Test, 18 Unit Tests passing]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/33/VS-Exception-settings.png</image:loc>
<image:title><![CDATA[Visual Studio 2019 Exception Settings]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/33/VS-Exception-break-when-thrown-CSEException.png</image:loc>
<image:title><![CDATA[Break When Thrown CSEException]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/33/minunit-results-1-test-ctof.png</image:loc>
<image:title><![CDATA[Visual Studio running minunit with 1 successful test]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/33/JG-debug-i2c-Test-String.png</image:loc>
<image:title><![CDATA[Ganssle's I2C method sending &quot;Test String&quot;]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/33/ME-debug-spi-Test-String.png</image:loc>
<image:title><![CDATA[Mikeselectricstuff SPI method sending &quot;Test String&quot;]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/33/ME-debug-spi-with-interrupt-delay.png</image:loc>
<image:title><![CDATA[Mikeselectricstuff SPI method with deliberate interrupt delays]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/using-and-misusing-crcs.html</loc>
<lastmod>2020-12-17T15:57:25+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/31/corrupted-len-problem-with-fcs.png</image:loc>
<image:title><![CDATA[Len in header should point to FCS but might be corrupted]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/31/header-fcs-solves-corrupted-len-problem-2.png</image:loc>
<image:title><![CDATA[Header FCS solves corrupted len problem]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/31/fcs-next-to-header-with-burst-of-errors.png</image:loc>
<image:title><![CDATA[FCS next to header with burst of errors]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/31/burst-of-errors-affecting-FCS-2.png</image:loc>
<image:title><![CDATA[burst of errors affecting FCS]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/31/Typical-BERs-2.png</image:loc>
<image:title><![CDATA[Typical BERs]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/31/iec-61000-4-4-waveforms-from-emcstandards_co_uk.png</image:loc>
<image:title><![CDATA[IEC61000-4-4 FTB from emcstandards.co.uk]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/using-finite-state-machines-to-implement-modal-applications.html</loc>
<lastmod>2026-01-09T13:00:58+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/45/countdown-timer-fsm-pencil.jpg</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/45/countdown-timer-fsm-magjac.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/45/countdown-timer-function-flow-2.png</image:loc>
<image:title><![CDATA[]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/uuid-generator-for-bluetooth-low-energy-products.html</loc>
<lastmod>2020-05-15T10:49:58+01:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/21//BLE-UUID-generator.png</image:loc>
<image:title><![CDATA[BLE UUID Generator]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/visual-studio-2019-1620-xaml0414-xaml-namespace-is-missing.html</loc>
<lastmod>2019-09-25T13:33:20+01:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/3/VS2019-create-new-project-wpf-vb.png</image:loc>
<image:title><![CDATA[Create new project]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/3/VS2019-create-new-project-wpf-vb-main-window.png</image:loc>
<image:title><![CDATA[WPF VB.NET Main Window]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/3/VS2019-mainwindow-xaml.png</image:loc>
<image:title><![CDATA[MainWindow.xaml]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/3/VS2019-application-xaml.png</image:loc>
<image:title><![CDATA[Application.xaml]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/welcome.html</loc>
<lastmod>2020-06-15T18:21:40+01:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/2/zoom-blurred-skills-timeline-40pc.png</image:loc>
<image:title><![CDATA[skills timeline]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/why-cant-you-change-it-its-software-isnt-it.html</loc>
<lastmod>2019-09-27T12:59:44+01:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/5/code-optimisation-slider.png</image:loc>
<image:title><![CDATA[code optimisation slider]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/why-i-wont-do-defence-work.html</loc>
<lastmod>2026-01-27T10:54:32+00:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/37/Dr-Bronowski-on-Parkinson.png</image:loc>
<image:title><![CDATA[Dr Bronowski on Parkinson 1974 BBC iPlayer]]></image:title>
</image:image>
</url>
<url>
<loc>https://blog.martincowen.me.uk/you-are-probably-using-a-sub-optimal-crc.html</loc>
<lastmod>2020-09-15T16:04:20+01:00</lastmod>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/29//comparison-of-0x9c-and-0x97-in-binary-2.png</image:loc>
<image:title><![CDATA[comparison of 0x9c and 0x97 in binary]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/29/crc-summary-size-vs-len-for-HD3-to-10.png</image:loc>
<image:title><![CDATA[CRC summary size vs len for HD=3 to HD=10]]></image:title>
</image:image>
<image:image>
<image:loc>https://blog.martincowen.me.uk/media/posts/29/Pud-vs-data-word-len-for-various-crc-8.png</image:loc>
<image:title><![CDATA[Pud vs data word length for various CRC-8]]></image:title>
</image:image>
</url>
</urlset>