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

Introduction

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#”

OpenWRT log to file with bash script

Today I had quite strange experience – in the evening I saw webcam connected to my router has it’s LED lit up meaning it’s working. Yet – it should be disabled as I left mjpeg-stream turned off and haven’t configured other surveillance method yet. First thought – have I been hacked? CPU usage graph shows around 6PM it spiked so it must have started then.

Read more “OpenWRT log to file with bash script”