[Brainsmoke] had a simple plan. Make a quadcopter with lots of addressable LEDs.
Not just a normal quadcopter with ugly festoons of LED tape though. [Brainsmoke] wanted to put his LEDs in a ball. Thus was born the polyhedrone, the idea of a flying deltoidal hexecontahedron covered as you might expect with all those addressable LEDs.
A Catalan solid makes a good choice for the homebrew polyhedron builder because its faces are all identical. Thus if you are making PCBs to carry LEDs, for example, you need only create a single PCB design to use on all faces. A bit of work in KiCAD, and a single face design with interlocking edges was ready. The boards were tested, a wiring layout was worked out, and the polyhedron was assembled.
But [Brainsmoke] didn’t stop there. He produced a flight case for the polyhedron, in the form of a larger polyhedron from what looks like lasercut thin ply.
Having a finished polyhedron, the next thing was to hook up a Raspberry Pi and write some software. First in Python, then in Go.
The results are simply stunning. If the mathematics and construction of a polyhedron were not enough to make this project worth a second look, then the gallery of images should be enough. You’ll notice that this is ostensibly a quadcopter project, yet no mention of flying has been made on this page. That’s because this is still a work in progress at Tech Inc Amsterdam, and there is more to come. But it honestly doesn’t matter if this project never moves a millimeter off the ground, as far as we are concerned [Brainsmoke] has created a superbly built thing of beauty in its own right, and we like that.
As you might expect, this is just the latest of many projects featured here that have involved addressable LEDs or quadcopters. Of note among them is this LED polyhedron that cleverly closes in all its bits, and this LED-equipped quadcopter that generates very pleasing patterns with a hi-res cross of pixels.
The folks at Q42 write code, lots of it, and this implies the copious consumption of coffee. In more primitive times, an actual human person would measure how many cups were consumed and update a counter on their website once a day. That had to be fixed, obviously, so they hacked their coffee machine so it publishes the amount of coffee being consumed by itself. Their Jura coffee machine makes good coffee, but it wasn’t hacker friendly at all. No API, no documentation, non-standard serial port and encrypted EEPROM contents. It seems the manufacturer tried every trick to keep the hackers away — challenge accepted.
The folks at Q42 found details of the Jura encryption protocol from the internet, and then hooked up a Raspberry-Pi via serial UART to the Jura. Encryption consisted of taking each byte and breaking it up in to 4 bytes, with the data being loaded in bit positions 2 and 5 of each of the 4 bytes, which got OR’ed into 0x5B. To figure out where the counter data was stored by the machine in the EEPROM, they took a data dump of the contents, poured a shot of coffee, took another memory dump, and then compared the two.
Once they had this all figured out, the Raspberry-Pi was no longer required, and was replaced with the more appropriate Particle Photon. The Photon is put on a bread board and stuck with Velcro to the back of the coffee machine, with three wires connected to the serial port on the machine.
If you’d like to dig in to their code, checkout their GitHub repository. Seems the guys at Q42 love playing games too – check out 0h h1 and 0h n0.
Thanks [Max] for letting us know about this.
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.
Wired Display Board
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.
[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.
2D crystal of Yb ions.
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.
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.
[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.
Another 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”
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.
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.
[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.