BBC’s micro:bit Gets Python

The BBC has developed a computer to be used by thousands of students across the UK. While not very powerful in terms of hardware, it comes with an interpreted language that will get students writing their own code and will launch the careers of an entire generation of web developers. This is, of course, the BBC Micro, a computer introduced in 1981, but is still deeply revered by millions of former students.

Microcontrollers are everywhere now, and the BBC is looking to replicate their success with the micro:bit. Unlike the BBC Micro, this isn’t a proper computer with a keyboard and a monitor. Instead, it’s a microcontroller development platform based on an ARM chip. Now, the micro:bit is getting Python, the BASIC of today, and will assuredly be even more useful in UK classrooms.

The initial development for Python on the micro:bit started down the road of using Microsoft’s TouchDevelop as a browser-based IDE that would send C++ code to an mBed cloud compilation service. A hex file would be generated, this would be downloaded to the local file system, and finally the student would simply drag the hex file over to the micro:bit since it appeared on the desktop as a USB storage device. This was a terrible idea, because MicroPython exists. The current way of running Python on the micro:bit is as simple as plugging it in to a USB port, opening a terminal, and writing some code. It’s the closest you’re ever going to get to a computer with BASIC in ROM, and it’s the best device for millions of 11-year-olds to learn how to code.

Thanks [dassheep] for the tip.

A Better Spectrum Analyzer for your Rigol Scope

The Rigol DS1000 series of oscilloscopes are popular with hobbyists for good reason: they provide decent specs at a low price. However, their spectrum analysis abilities are lacking. While these scopes do have a Fast Fourier Transform (FFT) function, it’s limited and nearly useless for RF.

A FFT plotted by the PyDSA tool and a Rigol oscilloscope[Rich] wanted a spectrum analyzer for amateur radio purposes, but didn’t want to build his own sampling hardware for it. Instead, he wrote PyDSA, a software spectrum analyzer for Rigol DS1000 oscilloscopes. This tool uses the USB connection on the scope to fetch samples, and does the number crunching on a far more powerful PC. It’s able to plot a 16,000 point FFT at two sweeps per second when run on a decent computer.

PyDSA is a Python script that makes use of the Virtual Instrument Software Architecture (VISA) interface to control the scope and fetch the sample data. Fortunately there’s some Python libraries that take care of the protocol.

[Rich] is now able to use his scope to measure amateur radio signals, which makes a nice companion to his existing Teensy based SDR project. If you have a Rigol, you can grab the source on Github and try it out.

Hacking an SD Slot for WiFi

Back in the 1990’s moving files via a floppy disk was known as “sneaker net.” While floppies are a thing of the past, SD Cards are the modern equivalent and they still lend themselves to sneaker net operations.

But why? WiFi is everywhere now. Wouldn’t it be great if you could hack those devices with SD slots to use WiFi? Apparently 3D printer [extrud3d] thought the same thing and found a way to reconfigure a Toshiba FlashAir card to put his 3D printer on the network.

The card is aimed at consumers, so by default it creates a hotspot and waits for a connection, a rudimentary web app allows you to move files back and forth over the network to the SD card which is then read by the host device. However, [extrud3d] shows how to modify a file on the SD card’s file system to allow the device to hook up to an existing wireless network and also provides a Python script to make the file transfer easier.

Although this hack is for a 3D printer, it ought to work with most devices that have a full sized SD slot (or can be adapted to take a full sized card). Since the hack is nothing more than changing a text file, it is a lot easier than some other SD hacks we’ve covered. Over on, [Chris Jones] has recently done some hacking on the FlashAir and has a list of its shell commands if you want to go beyond the text file hacks.

Continue reading “Hacking an SD Slot for WiFi”

Control Nest Devices with Amazon Echo

[ZPriddy] was looking for a way to control his Nest thermostats with Amazon Echo. He didn’t want to settle for using AWS or some other hosted service. [ZPriddy] wanted something that he could host and manage completely on his own. The end result is what he calls EchoNestPy.

[ZPriddy] started by learning how to use the Alexa Skills Kit (ASK). ASK is the official SDK that allows enthusiasts to add functionality to their Amazon Echo. Unfortunately for [ZPriddy], most of the example code he found was designed to be used on Amazon Lambda, but that didn’t stop him. After finding a few examples of Amazon Echo requests and responses, he was on his way.

[ZPriddy] chose to implement a simple web server using Flask. The web server listens for the Amazon requests and responds appropriately. It also Oauth2 authentication to ensure some level of security. The server is capable of synchronizing the temperature of multiple Nest devices in the same home, but it can also increment or increment the temperature across the board. This is accomplished with some simple voice commands such as “Tell Nest that I’m a little bit chilly”. If you like Amazon Echo hacks, be sure to check out this other one for controlling WeMo devices. Continue reading “Control Nest Devices with Amazon Echo”

Another IoT Platform in the (Blue)Mix

Many major companies (Intel, Oracle, Atmel, and IBM, for example) are competing to be the standard interconnect fabric for the Internet of Things. As a developer, it is hard to cut through the marketing hype and decide which platform is the best for you and your application. Luckily, there’s a plethora of projects on the web that showcase these frameworks. These project sites are an easy way to evaluate the strengths and weaknesses of IoT frameworks in practical applications without having to develop prototypes yourself.

[diyhacking], for example, posted a demo of using IBM’s Bluemix along with a Raspberry Pi, to do some simple home automation tasks. The project hardware is modest, using a PIR motion sensor and a relay to control an AC load. However, that’s good because it lets you focus on the Bluemix tools. The example client and server software is less than 200 lines of Python.

Bluemix looks like it has good integration with the Raspberry Pi and features a simulator so you can work without real hardware for development. Bluemix does offer a free plan (with limits), but the fee options may be a turn off to some IoT hackers.

Continue reading “Another IoT Platform in the (Blue)Mix”

Automatically Designing 3D Printers From E-Waste

No one wants to design consumer electronics that last longer than a few years. This trend is an ecological disaster, with millions of tons of computers, printers, fax machines and cell phones ending up in landfills. In these landfills, all the lead and chemicals used to extract minuscule amounts of gold plating leech into the environment. Turning it all around is monumental, but reusing some of this waste can help make a difference.

[Masterperson] and [Maaphoo] have been working on a way to turn those tons of e-waste into something useful. They’ve come up with a framework for turning e-waste into 3D printers. With a clever application of Python and FreeCAD Macros, this project can generate a model of a 3D printer using motors, shafts, and bearings taken from discarded 2D printers.

Right now a printer can be configured by adding the parts you have on hand to a configuration file, running a Python macro in FreeCAD, and waiting until the macro generates the parts to build a cartesian bot. This macro also spits out the files for the parts that need to be printed, and can interface with Plater to optimize the placement of these printed parts on an existing printer.

It’s a very cool project, but it’s not done yet: the team is looking for help to refine the printer designs and possibly growing more designs than a simple cartesian bot. Anything that is explicitly designed to pick the meat off of 2D printers is a great idea, and turning those into real 3D printers is the cherry on top.

LED Strip Notifies You Of The Light Show You’re Missing Outside

Unless you live way up in Canada, it’s not very likely that those gorgeous coronal mass ejections will collide with the atmosphere above your home. If they do, it’s a rare occurrence you wouldn’t want to miss. This is why [James] devised of a special alarm that would notify him when the Northern Lights may be visible in his neck of the woods. And what’s a better aurora alarm than a simulated aurora light show for your room?

[James] uses a Raspberry Pi to check data from Aurora Watch UK at Lancaster University for local activity. If the forecast reads that there may be some light above his home town in northern England, it triggers a NeoPixel LED strip to scroll through the color values of an actual aurora PNG image. This produces the same sporadic shifting of colors for a proximal ambient indoor lighting effect… though slightly less dramatic than the real thing. You can take a look at his Python script on github if you feel inspired.

Continue reading “LED Strip Notifies You Of The Light Show You’re Missing Outside”