Saturday, January 28, 2017

Temporarily switching Wi-Fi networks from the command line on a Raspberry Pi

I recently had a scenario with my Raspberry Pi (Zero, running Raspbian) where I needed to temporarily switch away from the primary Wi-Fi connection to another access point (to drive a camera) then reconnect to my original network. Turns out wpa_cli can do the trick:

The best thing about this approach is that it is non-persistent, so if it all goes horrible wrong you get your original networking configuration back upon reboot.

Saturday, June 18, 2016

Open sourcing all the things

A while ago I was blogging about GenghisIO - a project with the goal of removing all the mess involved in programming a small range of real-world robots - the IDE, drivers, cables etc etc.

The project eventually stalled due to increasing complexity and decreasing resources (time...) but quite a few neat problems were solved along the way - so I have open sourced it!

If you're interested in using Google App Engine applications, Python Flask with WebSockets, empythoned, Python QR code generation, Android WebViews and JavaScript -> Bluetooth communication then go and have a look.

I'd love to hear from you below if you find something useful in there :)

Saturday, April 30, 2016

Wireless headless Raspberry Pi Zero with APC220 radios

As a bit of a weekend project and as a way to (finally) use the really cool APC220 Radio Communication modules that I bought ages ago I've put together a wireless and "headless" setup for my Raspberry Pi Zero. This allows me to have a remote-controllable Pi Zero placed anywhere within 1 km (line of sight) without wires! I'm hoping to use this as a robot backpack initially, probably for the Jumping Sumo.

I won't go into technical detail as the build was simply connecting the power and TX/RX from the Pi UART to the APC220 module (I've used protoboard to make a "hat") and telling the Pi to use ttyAMA0 for the console in /boot/cmdline.txt.

If you have any specific how-to questions, let me know in the comments. In the meantime enjoy the photos :)

The top of the hat
The bottom of the hat and Pi header
At the local end I am using an USB-TTL adapter and Putty to connect to the Pi.

Saturday, February 6, 2016

It's all in the (domain) name

After taking a crash course in CNAME entries and CloudFlare's free SSL I've moved dnstwister to a shiny new domain:

Using CloudFlare has restored 99% of the performance-helping caching that the old Google App Engine site had - the only negative from the migration.

The DNS entries are still propagating at the time of posting so if you have any issues you can still use the old domain.

Wednesday, February 3, 2016

DNSTwister is now on Heroku

Well, the title says it all. I've moved dnstwister to Heroku.

It didn't take a lot of work and the benefits are huge - the killer for me was the ability to control exactly how much the application scaled up cost-wise. The costing for hobbyist use on Google App Engine was, in my opinion, completely unmanageable. You couldn't limit the performance of your app under load, the only option was to just pay more and more until you covered the quota exhaustion. With Heroku if I get a surge in interest it'll just get a bit slower, and I can choose to scale up at that point as necessary.

I also like deploying through pushing a branch to GitHub and the whole admin dashboard interface is really slick.

Bookmarked report links will automatically redirect from the old domain so you shouldn't feel a thing and the performance is right on par with Google App Engine.


Wednesday, December 16, 2015

DNS Twister updated

DNS Twister has been updated to fix a number of small bugs, add a few features (it's significantly faster) and - for the sake of your eyes - there's been the addition of a bit of css.

Go have a play!

Sunday, November 8, 2015

Side project time: DNS Twister

Recently I came across a really awesome Python tool called dnstwist. In the author's words, dnstwist is a "Domain name permutation engine for detecting typo squatting, phishing and corporate espionage".

At its core dnstwist creates permutations of domain names and checks to see if they are registered. It also does a ton of other cool things like GeoIP mapping to resolved IP addresses.

As I am sure there are people who would like to use dnstwist but don't have Python installed, I have (after a weekend's re-familiarisation with Google App Engine) created DNS Twister!

It may look rough as **** but it works, presenting the core dnstwist functionality via a web application.

The source code is on GitHub of course.