A Raspberry Pi Tidy Tide Tracker Predicts Propitious Promenades

The whims of the tides can make walking near the ocean a less than pleasant experience. A beautiful seascape one day may appear as a dismal, mucky, tidal flat the next. Frustrated over these weary walks, [Average Man] created a tidy tide tracker to predict propitious promenade periods.

A Raspberry Pi A+ pulls tide timing information off the web by scraping a web page using Python code. The time for the high tide, when the estuary will be full of water, is shown on a 4-digit 7-seg display. It’s all sandwiched between two smoked black panels to provide a neat case while still letting the LEDs show through.

The code comes from two projects [Average] recalled from a kickstarter timing project and a 7-seg display project. As he points out:

It’s great to learn programming from others, but it’s even better if you learn them well enough to remember, re-use and combine that code later on as well.

The display chips are mounted on a product of his own, the no longer available ProtoPal board. This is a Pi A+ size board with 288 prototyping holes and the standard connector for mounting on the Pi GPIO header. It keeps the project neat and clean.

Raspberry Pi Laser Beam Profiler

[Anthony] at UCLA needed to verify the shape of a laser beam. Commercial units for this, as you would expect, are expensive. But a Raspberry Pi with a Pi Noir camera easily handles the task. Not only is the use of the Pi cool but so is the task – they are using lasers to cool molecules to study quantum effects. The Pi camera without the IR filter captures a wide bandwidth making it suitable for use with non-visible lasers. [Anthony] captures the beam along two axes and plots both curves on the LCD touchscreen. That data, based on the pictures, is also available on a host PC. All this in a super compact package with a 7″ touch screen display.

One reason I find this fascinating is I did something similar 1977 at the University of Rochester Laboratory for Laser Energetics. My project was measuring the energy cross-section of a laser beam. The research goal of the Laboratory was the study of inertial confinement laser fusion. While [Anthony] uses an entire camera my project was limited to a 1 dimensional array of charge coupled devices (CCD). The output went to a Tektronix storage terminal and was printed on thermal paper for reference. He uses Python running on the target system. My work used a Z80 development system the size of a tower PC to write my program in assembly language which was then executed on a single board computer. We’ve come a long way. My code is long gone but you can get [Anthony’s] on GitHub.

KiCad Utilities Generate Parts; Track Costs

The popularity of KiCad keeps increasing, and not only are more people converting to it and using it for their projects, but there’s also a growing number of folks actively contributing to the project in the form of libraries, scripts and utilities to improve the work flow.

KiPart

[Dave Vandenbout] a.k.a [xesscorp] has written a couple of utilities for KiCad. When working with large multi pin parts such as micro-controllers, creating a schematic symbol from scratch using the traditional KiCad schematic library editor can be quite tedious. KiPart is a python script that uses a CSV table as its input to generate the KiCad schematic symbol and is able to create multi-part symbols too. Usage is quite simple. The csv file needs a part name on its first row. The next row contains the headers. ‘Pin’ number and Pin ‘Name’ are the minimum required. Additionally, you can add in ‘Unit’, ‘Side’, ‘Type’, and ‘Style’. Unit is used when defining multi-unit parts. Side decides the location of the pin, Type its function, and Style is its graphic representation. Running the KiPart python script then results in a nice KiCad schematic symbol. Besides, KiPart can specifically generate schematic symbols for the Xilinx 7-Series FPGAs and the Cypress PSoC5LP. There are a whole host of options to customize the final output, for example ordering pin placement based on pin number, or pin name or pin function. Source files can be obtained from the [xesscorp] Github repository.

KiCost

KiCostAnother useful utility from [xesscorp] is KiCost. It is intended to be run as a script for generating part-cost spreadsheets for circuit boards developed with KiCad. The one piece of information you need to add to your schematic parts is a manufacturers part number. The KiCost Python script then processes the BOM XML file, reading the manufacturer part number, scraping the web sites of several popular distributors for price and inventory data, and creating a costing spreadsheet. You can grab the source files from the KiCost Github repository.

Check the two videos below where [Dave] walks through the two utilities.

Thanks to [RoGeorge] for sending in this tip by commenting on the Open Source FPGA Pi Hat built by [Dave] that we featured recently.

Continue reading “KiCad Utilities Generate Parts; Track Costs”

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 hackaday.io, [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”