I am a C# software developer, having written a few libraries/snaps/applications from the projects I'm experimenting on.
My name is Ruhan, curious on how things work (software wise) and a person with deep knowledge on
industrial control protocols, embedded computer hardware and a insatiable itch for diagnosing and fixing problems.
Currently residing in Pretoria, Gauteng, South Africa.
- Have a congenital hearing impairment and wear hearing aids
- Electronics tinkerer and experimenter (includes some hardware/software mods as well)
- Leveraging my experience in Linux systems and hardware–software integration, frequently consulted with to advise on custom hardware design and Linux support considerations.
- Highly practical with a strong inclination for DIY problem-solving.
- No new or current projects or experiments.
- C/C++
- C# and interfacing between Linux and .NET (Marshaling, P/Invoke)
- Some HTML and JS for basic front-end web development
- Bash scripting
- Use and build custom Linux OS images from kernel sources and using Buildroot or a rootfs. Using RAUC for immutable, recoverable OS updates.
- Want to learn a bit of Go and Rust.
- UDPSoundServer - Basic, raw PCM audio streamer from ALSA recording device to UDP socket -> UDPSoundServer
- LGE_R105_Python - A LG-R105 360 camera control application in Python (including web-control, video stitch tool) - LGE_R105_Python
- CirclePiDeskClock - A Baremetal C++ application for a Raspberry Pi as a desktop clock-> CirclePiDeskClock
- ESP-NOW_OTA - ESP8266 OTA updates over ESP-NOW -> ESP-NOW_OTA
- WiFiPacketRadio (WPR) - A experimental project doing WiFi packet injection/receiving codec2 compressed audio -> WiFiPacketRadio
- ESPNOW_Linux - Replicate ESP-NOW methods and data send/receive using raw packet injection on Linux on 2.4GHz Wi-Fi ESPNOW_Linux
- SolisView - Kivy application for pulling Solis solar hybrid inverter data -> SolisView
- Porting Ubuntu-Rockchip for Radxa CM3 -> Links to be added soon
- OpenWRT build for Cambium Force200L-SM -> Cambium Force 200L-SM branch
- Experimental patches for the ONVIF protocol on go2rtc for Hikvision DVR/NVR -> My go2rtc fork
- Contributed to SharpSNMPLib -> Added SHA384 and SHA512
- Building a basic kernel module for "boardinfo" -> Boardinfo driver
- Custom, minimal Ubuntu Linux distro called AAR-OS -> AAR-OS
- Ubuntu RootFS bootstrapper for arm64 using chroot -> Bootstrap ARM64 rootfs
- Custom RTC tool using raw i2c transactions to interact with RTC's -> RTCSyncTool
- Customised flashing OS image tool/script (flashOS) -> FlashOS
- RAUC Update bundler script (internal development) -> RAUC Bundler
- Embstar MP05 router module infodump for new OpenWRT builds -> Embstar MP05
- Custom support for Fortinet FAP321C Access point -> OpenWRT for Fortinet FAP321C
- Arduino code for WS2812 LED bow-tie code on ATTiny85 -> StarTie
- Ubuntu Core kernel patch-sets for mainlined 5.10.y and 5.15.y kernels
- 5.10.y -> Ubuntu Core Apparmor patch 5.10.y
- 5.15.y -> Ubuntu Core Apparmor patch 5.15.y
- Various Canonical Snap packages
- minicom snap -> Minicom snap
- pci-utils and usb-utils snap -> PCIe and USB
- Linux 'stress' tool snap -> Linux stress
- Linux 'screen' snap -> Screen snap
- Old, deprecated raspi-gpio snap (Used for internal testing) -> Raspi-GPIO-snap
- Contribute more to open-source projects and support the communities with knowledge I have gained from the years, from doing all sorts of work-related projects and personal projects.
