Private WAN to connect multiple sites using WireGuard

Hello all!

Today I wanted to share how I made my network, connecting together my base LAN at my flat together with other devices outside it and other sites, or virtual locations.

Picture on the right shows map of target network that will be finished soon, for now I’m lacking few elements. The map is centered around my WnekoTank Rover project, so it’s also missing many elements, but general topology is there and I’ll cover all the details in following descriptions of each part.

I decided on such “star” architecture as, first of all, I have static IP address at my flat, so it’s easy to configure all “clients” to connect to it, and also makes configuration easier, all other devices have to route local traffic just here and only here is it spread around. Configuring it in a “mesh” would be just much more complicated, as for example to connect from laptop (on mobile connection) to my Rover would require checking public IP first and changing configuration accordingly, or using some DDNS service, also each device would need to have separate WireGuard and routing configuration for each other device. Compared to that having central hub with static public IP makes everything much easier.

Read more “Private WAN to connect multiple sites using WireGuard”

WnekoTank development plan


Past few weeks, due to changing apartment and other personal stuff I had to pause work my WnekoTank rover project.

I’m almost at the end of 2nd iteration, where first was just basic remotely controlled platform able only to be directly controlled like RC car, and now second being finished mostly on hardware side and having all building blocks needed for later autonomy:

  • Ability to program series of movements, which can later be user by pathfinding algorithms to move over selected route,
  • Having basic proximity sensors for emergency stopping on obstacles,
  • Gimbal allowing view for operator around whole rover, also translating image clicks into camera or rover movement – later to be used in conjunction with pathfinding
  • Base stereo camera for computer vision – to be used with stereoscopic 3d mapping of terrain in front for pathfinding and for obstacle detection
  • Complete reorganization of all electronics onboard

Now I’m slowly working on 3rd iteration – which won’t provide much hardware changes, maybe some additional sensors and finally finishing at least most important parts of chassis to allow using it outdoors. But this will require many, many different software elements to be written and put together, this time consisting of many different technologies ranging from basic console app solutions, to Azure. This post is just roadmap, where I can systematize future steps and those already taken.

Read more “WnekoTank development plan”

Programming I2C drivers with Meadow

For past few months I am working on a project based around Meadow platform that allows .NET programming for IoT. Greatest thing about it – it is programmable using full .NET Standard, so almost any .NET developer can easily just gram one, learn some platform specific basics and start being productive very soon, even without prior IoT experience. It’s extremely easy to write (assuming you know C# of course) and allows usage of most .NET goodies you might want – events, threads, asynchronous programming? LINQ? Networking? Whatever you might want – if you can do it in console app you probably can do it here to!

Obviously there is also a lot of specific stuff too. There must be classes for example to control hardware – but in principal they work as usual .NET stuff, and there is a lot of APIs for different devices already in Meadow Foundation. But what to do if you bought device and there is no driver for it yet?

Read more “Programming I2C drivers with Meadow”

Intrinsics in C#

Can your CPU calculate faster than you thought? Can .NET take advantage of things that were mostly C/C++ etc. Domain to create even faster applications? Is only python good for data calculations?

If you want to know about some not that popular, but extremely useful goodies in .NET Core 3.0 onwards in shape of SIMD Intrinsic functions please keep reading!

Read more “Intrinsics in C#”

WordPress on IIS not showing uploaded images

Just a quick post about one small, but irritating thing I just fond:

Recently I moved to my own on-prem server, I migrated also all my websites to it. When I wanted to add pictures to new post… They were not showing up. Thumbnails were working fine, they were visible in Media Library – but not on webpage.

Read more “WordPress on IIS not showing uploaded images”

SSL Certificate for hMailServer from Let’s Encrypt

After migrating to my own on-prem server I decided I finally should implement encryption for my email server. Yes, past few months while hosted on AWS EC@ Vm it was unencrypted, but those are just my side mails anyway, my main one is secured on my Microsoft account 🙂

I was already using Let’s Encrypt certificate in my website, now I changed way that I’m getting them from command line ACME client to using Certify – more on that in another post. But there is one small problem – Certify has great tools for managing certificates and automatically deploys them to IIS, but what about hMailServer?

Read more “SSL Certificate for hMailServer from Let’s Encrypt”

Video surveillance part 2 – installing MotionEye

In my previous post I configured basic video capabilities for web camera connected to OpenWRT router. Today I decided to go further and install more advanced software that would in fact be a surveillance solution. I decided to try with Motion package and MotionEye interface for it.

Read more “Video surveillance part 2 – installing MotionEye”

Netgear R6220 installing packages to reserved space

Today I was playing around quite a lot with my router. I wanted to put on it MotionEye, but I found one, quite big (or small, depending on how to look at it) problem – although R6220 has 128MB of memory installed, for packages only around 20MB is available. Quick googling explained problem:

Read more “Netgear R6220 installing packages to reserved space”

OpenWRT backup and network config corrupted

Today i wanted to try something new on my OpenWRT router… And while meddling with files by accident i corrupted network settings. I was unable to access it neither through LUCI, nor even SSH. I quickly found DHCP must have not been working, but even manually configuring network card did not helped. What to do?

Read more “OpenWRT backup and network config corrupted”