Rideable Tank Tread: It’s A Monotrack Motorcycle That Begs You To Stop Very Slowly

There will always be those of us who yearn for an iron steed and the wind through your hair. (Or over your helmet, if you value the contents of your skull.) If having fun and turning heads is more important to you than speed or practicality, [Make it Extreme] has just the bike for you. Using mostly scrapyard parts, they built a monotrack motorcycle — no wheels, just a single rubber track.

[Make it Extreme] are definitely not newcomers to building crazy contraptions, and as usual the entire design and build is a series of ingenious hacks complimented by some impressive fabrication skills. The track is simply a car tyre with the sidewalls cut away. It fits over a steel frame that can be adjusted to tension the track over a drive wheel and a series of rollers which are all part of the suspension system.

Power is provided by a 2-stroke 100cc scooter engine, and transmitted to the track through a drive wheel made from an old scuba tank. What puts this build over the top is that all of this is neatly located inside the circumference of the track. Only the seat, handlebars and fuel tank are on the outside of the track. The foot pegs are as far forward as possible, which helps keep your center of gravity when stopping. It’s not nearly as bad as those self-balancing electric monocycles, but planning stops well in advance is advisable.

While it’s by no means the fastest bike out there it definitely looks like a ton of fun. Build plans are available to patrons of [Make it Extreme], but good luck licensing one as your daily driver. If that’s your goal, you might want to consider adding a cover over the track between the seat and handlebars to prevent your khakis from getting caught on your way to the cubicle farm.

Continue reading “Rideable Tank Tread: It’s A Monotrack Motorcycle That Begs You To Stop Very Slowly”

DIY Watertight Junction Box For Serious Outdoor Sealing

Thingiverse user [The-Mechanic] shared a design for 3D printed enclosures that are made to house wire and cable junctions, which can then be rendered weatherproof by injecting them with a suitable caulking compound and allowing it to cure. It’s a cross between an enclosure and potted electronics. It’s also a one-way trip, because the result is sealed up like a pharaoh’s tomb. On the upside, it’s cheap, accessible, and easily customized.

The way it works is this: wires go through end caps which snap onto the main body, holding the junction inside. Sealant is then pumped in via the hole on the side, then the hole is plugged. Afterwards, all there is to do is wait until the sealant cures. [The-Mechanic] has a couple of companion designs, as well. For tubes of sealant that have threaded tops, one can more effectively save the contents of the tube for later with this design for screw-on caps. There are also 3D printed nozzles in a variety of designs.

One thing to keep in mind about silicone-based sealants is that thick gobs of it can take a really, really long time to cure fully. A thick gob of the stuff will tend to firm up on the outside but leave the inside gooey. If that will be a problem, maybe take a cue from Oogoo and mix in a bit of corn starch with the silicone sealant. The resulting mixture will be thicker, but it’ll cure throughout with no problems.

One-Motor Domino Laying Machine Works For Tips

[Gzumwalt] did things a little differently with his Pink and Green Domino Machine II, a 3D printed device that drops dominoes in a neat row ready for toppling over. Unlike his earlier version, this one holds dominoes laying flat in a hopper that’s accessible from the top for easy loading. The previous unit had an elegance to it, but it was more limited with respect to how many dominoes it could hold at a time. This new version solves that problem while also showing off a slick mechanism that gracefully slides a domino from the bottom of the hopper, then gently positions it standing on end before opening a rear door to let it out as it moves to the next position. One of the interesting things [gzumwalt] discovered when designing this device was that there isn’t really a “standard” size of domino. That’s one of the reasons the demo uses 3D printed blocks.

Pulling this off with a single small DC motor is a remarkable achievement; the mechanism even stably ejects a positioned domino from the rear without halting its forward motion in the process. An animation of how the mechanism works is embedded below, be sure to check it out!

Continue reading “One-Motor Domino Laying Machine Works For Tips”

Sensor Filters For Coders

Anybody interested in building their own robot, sending spacecraft to the moon, or launching inter-continental ballistic missiles should have at least some basic filter options in their toolkit, otherwise the robot will likely wobble about erratically and the missile will miss it’s target.

What is a filter anyway? In practical terms, the filter should smooth out erratic sensor data with as little time lag, or ‘error lag’ as possible. In the case of the missile, it could travel nice and smoothly through the air, but miss it’s target because the positional data is getting processed ‘too late’. The simplest filter, that many of us will have already used, is to pause our code, take about 10 quick readings from our sensor and then calculate the mean by dividing by 10. Incredibly simple and effective as long as our machine or process is not time sensitive – perfect for a weather station temperature sensor, although wind direction is slightly more complicated. A wind vane is actually an example of a good sensor giving ‘noisy’ readings: not that the sensor itself is noisy, but that wind is inherently gusty and is constantly changing direction.

It’s a really good idea to try and model our data on some kind of computer running software that will print out graphs – I chose the Raspberry Pi and installed Jupyter Notebook running Python 3.

The photo on the left shows my test rig. There’s a PT100 probe with it’s MAX31865 break-out board, a Dallas DS18B20 and a DHT22. The shield on the Pi is a GPS shield which is currently not used. If you don’t want the hassle of setting up these probes there’s a Jupyter Notebook file that can also use the internal temp sensor in the Raspberry Pi. It’s incredibly quick and easy to get up and running.

It’s quite interesting to see the performance of the different sensors, but I quickly ended up completely mangling the data from the DS18B20 by artificially adding randomly generated noise and some very nasty data spikes to really punish the filters as much as possible. Getting the temperature data to change rapidly was effected by putting a small piece of frozen Bockwurst on top of the DS18B20 and then removing it again.

Continue reading “Sensor Filters For Coders”

Following Pigs: Building An Injectable Livestock Tracking System

I’m often asked to design customer and employee tracking systems. There are quite a few ways to do it, and it’s an interesting intersection of engineering and ethics – what information is reasonable to collect in different contexts, anonymizing and securely storing it, and at a fundamental level whether the entire system should exist at all.

On one end of the spectrum, a system that simply counts the number of people that are in your restaurant at different times of day is pretty innocuous and allows you to offer better service. On the other end, when you don’t pay for a mobile app, generally that means your private data is the product being bought and sold. Personally, I find that the whole ‘move fast and break things’ attitude, along with a general disregard for the privacy of user data, has created a pretty toxic tech scene. So until a short while ago, I refused to build invasive tracking systems – then I got a request that I simply couldn’t put aside…

Continue reading “Following Pigs: Building An Injectable Livestock Tracking System”

Airport Runways And Hashtags — How To Become A Social Engineer

Of the $11.7 million companies lose to cyber attacks each year, an estimated 90% begin with a phone call or a chat with support, showing that the human factor is clearly an important facet of security and that security training is seriously lacking in most companies. Between open-source intelligence (OSINT) — the data the leaks out to public sources just waiting to be collected — and social engineering — manipulating people into telling you what you want to know — there’s much about information security that nothing to do with a strong login credentials or VPNs.

There’s great training available if you know where to look. The first time I heard about WISP (Women in Security and Privacy) was last June on Twitter when they announced their first-ever DEFCON Scholarship. As one of 57 lucky participants, I had the chance to attend my first DEFCON and Black Hat, and learn about their organization.

Apart from awarding scholarships to security conferences, WISP also runs regional workshops in lockpicking, security research, cryptography, and other security-related topics. They recently hosted an OSINT and Social Engineering talk in San Francisco, where Rachel Tobac (three-time DEFCON Social Engineering CTF winner and WISP Board Member) spoke about Robert Cialdini’s principles of persuasion and their relevance in social engineering.

Cialdini is a psychologist known for his writings on how persuasion works — one of the core skills of social engineering. It is important to note that while Cialdini’s principles are being applied in the context of social engineering, they are also useful for other means of persuasion, such as bartering for a better price at an open market or convincing a child to finish their vegetables. It is recommended that they are used for legal purposes and that they result in positive consequences for targets. Let’s work through the major points from Tobac’s talk and see if we can learn a little bit about this craft.

Continue reading “Airport Runways And Hashtags — How To Become A Social Engineer”

Build A Fungus Foraging App With Machine Learning

As the 2019 mushroom foraging season approaches it’s timely to combine my thirst for knowledge about low level machine learning (ML) with a popular pastime that we enjoy here where I live. Just for the record, I’m not an expert on ML, and I’m simply inviting readers to follow me back down some rabbit holes that I recently explored.

But mushrooms, I do know a little bit about, so firstly, a bit about health and safety:

  • The app created should be used with extreme caution and results always confirmed by a fungus expert.
  • Always test the fungus by initially only eating a very small piece and waiting for several hours to check there is no ill effect.
  • Always wear gloves  – It’s surprisingly easy to absorb toxins through fingers.

Since this is very much an introduction to ML, there won’t be too much terminology and the emphasis will be on having fun rather than going on a deep dive. The system that I stumbled upon is called XGBoost (XGB). One of the XGB demos is for binary classification, and the data was drawn from The Audubon Society Field Guide to North American Mushrooms. Binary means that the app spits out a probability of ‘yes’ or ‘no’ and in this case it tends to give about 95% probability that a common edible mushroom (Agaricus campestris) is actually edible. 

The app asks the user 22 questions about their specimen and collates the data inputted as a series of letters separated by commas. At the end of the questionnaire, this data line is written to a file called ‘fungusFile.data’ for further processing.

XGB can not accept letters as data so they have to be mapped into ‘classic LibSVM format’ which looks like this: ‘3:218’, for each letter. Next, this XGB friendly data is split into two parts for training a model and then subsequently testing that model.

Installing XGB is relatively easy compared to higher level deep learning systems and runs well on both Linux Ubuntu 16.04 and on a Raspberry Pi. I wrote the deployment app in bash so there should not be any additional software to install. Before getting any deeper into the ML side of things, I highly advise installing XGB, running the app, and having a bit of a play with it.

Training and testing is carried out by running bash runexp.sh in the terminal and it takes less than one second to process the 8124 lines of fungal data. At the end, bash spits out a set of statistics to represent the accuracy of the training and also attempts to ‘draw’ the decision tree that XGB has devised. If we have a quick look in directory ~/xgboost/demo/binary_classification, there should now be a 0002.model file in it ready for deployment with the questionnaire.

I was interested to explore the decision tree a bit further and look at the way XGB weighted different characteristics of the fungi. I eventually got some rough visualisations working on a Python based Jupyter Notebook script:

 

 

 

 

 

 

 

Obviously this app is not going to win any Kaggle competitions since the various parameters within the software need to be carefully tuned with the help of all the different software tools available. A good place to start is to tweak the maximum depth of the tree and the number or trees used. Depth = 4 and number = 4 seems to work well for this data. Other parameters include the feature importance type, for example: gain, weight, cover, total_gain or total_cover. These can be tuned using tools such as SHAP.

Finally, this app could easily be adapted to other questionnaire based systems such as diagnosing a particular disease, or deciding whether to buy a particular stock or share in the market place.

An even more basic introduction to ML goes into the baseline theory in a bit more detail – well worth a quick look.