M0AGX / LB9MG
Amateur radio and embedded systems
Ham radio / RFEmbedded / microcontrollersElectronicsLinux / UnixC
- Posts
- 106 from 30 May 2015 to 11 Jan 2026
- Posting
- now and then (2 in the last year)
- Kind
- personal blog
- Feed
- https://m0agx.eu/feeds/all.atom.xml
2026 1
2025 8
- Practical test of TP-Link TL-PA7027P AV1000 Powerline adapters
- Simple hard drive SMART monitoring with collectd
- Detecting file system changes on Linux & BSD
- Connecting a Modbus energy meter to Home Assistant
- Tunneling Zigbee with ser2net and SSH
- Nordic SoftDevice unofficial survival guide
- Keeping LTE connections alive in OpenWRT
- Setting up an LTE link in difficult terrain
2024 18
- X-macros: Not all C macros are evil
- Lab life hack - displaying messages with SCPI
- Best practices in firmware
- Index2
- Thread-safe event passing in wxPython
- Removing SIM card pin with AT commands
- Multiprocessing - Python's best kept secret
- Connecting a high speed parallel ADC to SAM E70
- Triggering DMA from timers (or GPIO) on the SAM E70
- Interrupt remapping on Cortex-M0 (and other small chips)
- Lifehack: detecting debugger connection for Cortex-M0 & Ozone
- Reducing Home Assistant RAM usage
- Very simple stack overflow detection for Cortex-M and RISC-V
- Yet another autossh tutorial
- Index3
- Abusing reserved interrupt vectors on Cortex-M for metadata
- Wiznet W7500 flash programming
- Listing stuck Python threads
2023 18
- Recovering a bricked Wiznet W7500 using the bootloader
- I have been copied on Aliexpress!
- Today I learned: How to read address zero on RISC-V
- Story from the trenches - uninitialized RAM is not random (enough)
- Things you should know about the stack on Cortex-M
- Bug of the day: missing entry point
- Implementing a LIN slave on STM32L011
- Index4
- Home Assistant and HAN port electricity meter
- Interview questions for embedded engineers
- What is inside a Mean Well DIN rail power supply
- Scheduling posts with Pelican
- Migrating to Pelican
- Practical comparison of ARM compilers
- Connecting Modbus RTU to TCP with Waveshare RS485 to Ethernet converter
- Getting Home Assistant uptime in minutes
- Water leak app notification in Home Assistant
- Index5
2021 4
2020 4
2019 4
2018 19
- Debugging runtime memory corruption on Cortex-M
- Preserving debugging breadcrumbs across reboots in Cortex-M
- Reducing firmware size by removing libc
- Fixing Cortex-M startup code for link-time optimization
- Disk space monitoring & e-mail notifications with Bash
- Practical FFT on microcontrollers using CMSIS DSP
- Bell 202 modem for AVR and other MCUs
- Making sinewaves with XMEGA DAC
- Git - checking JavaScript files for debugger statements
- Index7
- EFM32 Cortex-M firmware project from scratch - step by step
- Git - confirmation before commit
- Using the internal EEPROM of STM32L
- Open OBD2 datalogger
- Kinetis E - writing to internal flash
- Making graphics and fonts for embedded systems
- Waveshare ePaper display library
- Hard fault in __libc_init_array
- STM32L151 makefile project
2017 10
- Reading OBD2 data without ELM327, part 2 – K-Line
- Index8
- Reading OBD2 data without ELM327, part 1 - CAN
- FreeRTOS on Kinetis E Cortex M0+ : easy porting tutorial
- XMEGA power down mode for battery powered devices
- Kinetis - relocating variables to upper SRAM
- Practical NodeMCU endurance with a big NiCd battery pack
- XMEGA USART driver with TX DMA
- XMEGA high-performance SPI with DMA
- XMEGA and HD44780 LCD
2016 7
2015 13
- Youkits TJ5A
- MG-log for Android
- Serial port redirection from Windows to Linux with socat
- Gentoo on Banana Pi
- RRDtool - quick tutorial
- Banana Pi on battery power
- Index10
- Small, cheap power supply modules from Aliexpress
- Universal antenna rotator controller
- NodeMCU as a standalone thermometer
- B6AC battery charger teardown
- NodeMCU networked thermometer
- First steps with NodeMCU