Launched in 1978, the International Sun/Earth Explorer 3 was sent on a mission to explore the Earth’s interaction with the sun. Several years later, the spacecraft changed its name to the International Cometary Explorer, sent off to explore orbiting ice balls, and return to Earth earlier this year. Talking to that spacecraft was a huge undertaking, with crowdfunding campaigns, excursions to Arecibo, and mountains of work from a team spanning the globe. Commanding the thrusters onboard the satellite didn’t work – there was no pressure in the tanks – but still the ICE mission continues, and one of the lead radio gurus on the team has put up the telemetry parser/display crafted for the reboot project up on Github.
The guy behind the backend for the ICE/ISEE reboot project should be well-known to Hackaday readers. He’s the guy who came up with a Software Defined Radio source block for a cheap USB TV tuner, waking everyone up to the SDR game. He’s also played air traffic controller by sitting out near an airport with a laptop, and has given talks at Black Hat and DEFCON.
The ICE/ISEE-3 telemetry parser/display allows anyone to listen to the recorded telemetry frames from the satellite, check out what was actually going on, and learn how to communicate with a device without a computer that’s rapidly approaching from millions of miles away. He’s even put some telemetry recordings up on the Internet to practice.
Although the ICE/ISEE-3 reboot project will have to wait another decade or two until the probe makes its way back to our neck of the woods, [Balint] is taking it in stride an organizing a few Software Defined Radio meetups in the San Fransisco area. He just had the first meetup (Video below) where talks ranging from creating a stereo FM transmitter in GNU radio, a visual introduction to DSP for SDR and SETI signals from the Allen Telescope Array were discussed. There will be another meetup in a few weeks at Noisbridge, with some very cool subjects on the roster.
Filed under: radio hacks
[Greg] implemented a simple ray tracer for Arduino as a fun exercise and a way to benchmark the processor. He started out with the Moller-Trumbore algorithm, a common ray-tracing algorithm that calculates the intersection of a ray with a triangular plane without doing any pre-calculation of the planes. His code supports one static light and one static camera, which is enough to render a simple scene.
[Greg] started out with a small scene composed of a few polygons, but just finished up a scene with 505 vertices, 901 faces, and reflective surfaces (shown above). He made the above render on his PC emulator, but estimates that it would take just over 4 days to render on the Arduino. [Greg]’s project supports multiple bounces of light, which differentiates his ray tracer from some we’ve covered before (and which explains why it takes so long to render).
The ray tracer is implemented entirely with double-precision floats. This translates to a ton of software float emulation instructions, since the Arduino doesn’t have a floating-point unit. While this ray tracer can’t render anything near real-time graphics due to the slowness of the microcontroller, it’s still a great proof of concept.
The title image for this post was rendered on a modern PC, taking 263 seconds to complete. The same scene, at 64×64 resolution, was rendered on the Arduino, taking 4008 seconds to complete. That render is below.
Filed under: Arduino Hacks
During World War I, the United States felt they were lagging behind Europe in terms of airplane technology. Not to be outdone, Congress created the National Advisory Committee for Aeronautics [NACA]. They needed to have some very large propellers built for wind tunnel testing. Well, they had no bids, so they set up shop and trained men to build the propellers themselves in a fantastic display of coordination and teamwork. This week’s film is a silent journey into [NACA]’s all-human assembly line process for creating these propellers.
Each blade starts with edge-grained Sitka spruce boards that are carefully planed to some top-secret exact thickness. Several boards are glued together on their long edges and dried to about 7% moisture content in the span of five or so days. Once dry, the propeller contours are penciled on from a template and cut out with a band saw.
After about 35 of these laminations have been made, they are stacked and dry-fit against wax covered filler blocks. These blocks are necessary to maintain constant and even pressure throughout the giant press. Next, the laminations are stacked upside down near the press and marked for glue application. Here’s where the process gets really intense: these men have just 15 minutes starting from the time the first bit of glue is applied to get all the laminations covered, stacked, and packed in with filler blocks.
This spruce and glue Dagwood sandwich spends 24 hours under pressure. When the time is up, the filler boards are pried away from the propeller, and the excess glue is scraped away. Next, the corners are roughed off with a rotary sander.
To achieve the aerodynamic ideal, the prop is fitted with ribs every six inches or so down its length, and the thicknesses along it are checked to within 1/100th of an inch. A pair of men pass a saw along the edge of each rib to notch it just so, and then the excess wood is removed with pneumatic planes designed and developed by [NACA] to constantly blow shavings all over the place. Finally, the blade whisperer is called in to check the fairness and make nitpicky markings wherever the wood is high by a thousandth of a hair.
Now the blade is ready to join its brethren in the 10-ton hub. Once all the blades have been hoisted into place, the top surface is machined and the upper hub plate is fitted and bored out. After all of that work, the blades come right back out so that holes can be drilled through them to accommodate the steel sleeves and bars that hold it all together.
[Thank you to David for sending this in]
Retrotechtacular is a weekly column featuring hacks, technology, and kitsch from ages of yore. Help keep it fresh by sending in your ideas for future installments.
Filed under: Hackaday Columns, Retrotechtacular
Now that we’ve recovered from our Munich party and the awarding of The Hackaday Prize, we’re ready to announce our latest contest. We’ve been having a lot of fun with our Trinket Pro boards, both the 10th anniversary edition and the new Hackaday.io branded models. While we were soldering, compiling, and downloading, a contest idea took root. Trinket Pro really excels when used in small projects, the kind which would fit in a pocket. To that end we’re holding the Trinket Everyday Carry Contest, a showcase for small, pocketable projects which are useful everyday. ‘Useful everyday’ is a bit of a broad term, and we intended it that way. Tools are useful of course , but so are jewelry pieces. It’s all in the eye of the builder and users. We’re sure our readers will take this and run with it, as they have with our previous contests.
There are some great prizes in store for the entrants, including a brand new Rigol DS1054Z oscilloscope! The top 50 entrants will get custom Trinket Everyday Carry Contest T-shirts. Check out the contest page for a full list.
We know you all love to procrastinate with your entries, so we’re going to be offering a few perks to those who enter early and update often. Each week, we’ll throw all the entrants who have published at least one project log full of details into a drawing for a special prize from The Hackaday Store. To be considered you must officially submit your project which is accomplished through a drop-down list on the left side of your project page.
Remember, the contest isn’t just about winning a scope, a meter, or any of the other prizes. It’s about creating new Open Hardware designs that nearly anyone can build. So grab those soldering irons, load up those copies of the Arduino IDE, AVR-GCC, or WinAVR, and get hacking!
You can view the all of the contest entries in this list.
Filed under: contests, Featured, slider
We had a chance to interview [Grant Imahara] at the 2014 Electronica conference in Munich, Germany. If you don’t recognize [Grant’s] name you’ll probably recognize his face. He’s been on the cast of the television show Mythbusters for about 10 years now. We heard recently that he was leaving the show and that’s how we crossed paths with him.
[Grant] has signed on with Mouser Electronics to promote their Empowering Innovation Together program. They hosted him on a press junket at their booth and since we have a good relationship with Mouser they offered Hackaday an interview slot.
We had a lot of fun talking to [Grant]. Unfortunately the wireless microphones the Mouser videographer was using were picking up a lot of interference. This didn’t directly affect our recording setup as we were using a handheld voice recorder, but we kept getting interrupted as they tried to figure out the problem. Still, as you can see from the video below, we managed to get all the way through a few questions about [Grant’s] introduction to electronics at a young age, his first job out of school working for Industrial Light and Magic, and his advice to others who want to get into electronics and specifically robots. He mentions his early learning was guided by the books of Forrest Mims and that these days learning about electronics is no more than a keyword search away.
Filed under: Interviews
Quick, how do you wire up an SPI bus between a microcontroller and a peripheral? SCK goes to SCK, MISO goes to MISO, and MOSI goes to MOSI, right? Yeah. You’ll need to throw in a chip select pin, but that’s pretty much it. Just wires, and it’ll most likely work. Now add a second device. The naïve solution found in thousands of Arduino tutorials do the same thing; just wires, and it’ll probably work. It’s not that simple, and Mr. Teensy himself, [Paul Stoffregen] is here to show you why.
When using multiple SPI devices, a pullup resistor on the chip select lines are a really great idea. Without a pullup, devices will work great when used alone, but will inexplicably fail when used together. It’s not magic; both devices are listening to the bus when only one should be. Putting a pullup on the CS lines keeps everything at the right logic level until a device is actually needed.
How about the MISO line? Most peripherals will disconnect their pins when the chip select signal is active, but there are exceptions. Good luck finding them. There is an easy way to check, though: just connect two resistors so the MISO line floats to a non-logic level when the CS pin is high, and check with a voltmeter. If MISO is driven high or low, you should put a small tri-state buffer in there.
That just covers hardware, and there are a few things you can do in software to reduce the number of conflicts when using more than one SPI device. One of these methods is transactions, or defining the clock rate, setting MSB or LSB first, and the polarity of the clock. Newer versions of the Arduino SPI library support transactions and the setup is very easy. In fact, transaction support in the Arduino library is something [Paul] worked on himself, and gets around the problem of having SPI-related code happening in both the main loop of a program and whenever an interrupt hits. Awesome work, and a boon to the Arduino makers around the world.
Filed under: Microcontrollers, Software Development
Who should chip in the most to restock the community coffee supply at work is a common point of contention at some offices. This RFID infused coffee brewer called Juraduino by [Oliver Krohn] solves the issue at his workplace once and for all by logging how much is being consumed by each person and how often; quite the diplomatic hack.
[Oliver] donated his old Jura Coffee maker to his office with some added hardware cleverly hidden underneath the faceplate of the machine. An Arduino mounted within runs the show, powered through mini USB from the logic unit of the coffee maker itself. Once a co-worker swipes their RFID card over the front of the machine, a real-time clock module stamps when the coffee was requested, and then logs the amount selected by that person on a mini SD card. The data stored is sent via an additional bluetooth module to a custom app [Oliver] created with MIT App Inventor for his phone which displays the information. These details can then be exported in the form of an email addressed to everyone in the office at the end of the week, announcing definitively who can be counted on to restock the bulk of the community supplies.
Though there isn’t a link available with further documentation, [Oliver] mentions in the ‘details’ portion of his video that he’d be happy to share that information with anyone who contacts him regarding the project. You can see the Jura at work below:
Filed under: Arduino Hacks
With resin printers slowly making their way to hackerspaces and garages the world over, there is a growing need for a place to cure these UV resin prints. No, they don’t come out of the machine fully cured, they come out fully solid. And no, we’re not just leaving them in the sun, because that’s not how we do things around here.
[Christopher] whipped up a post-cure lightbox meant to sit underneath his Form 1 printer. It’s made of 1/2″ MDF, with adjustable feet (something the Form 1 lacks), a safety switch to keep the lights off when the door is open, and a motor to rotate the parts around the enclosure.
The light source for this lightbox is 10 meters of ultraviolet LED strips. The LEDs shine somewhere between 395-405nm, the same wavelength as the laser diode found in the Form 1 printer. Other than a bit of wiring for the LEDs, the only complicated part of the build was the motor; [Christopher] bought a 2rpm motor but was sent a 36rpm motor. The vendor was out of 2rpm motors, so a PWM controller was added.
It’s a beautiful build that shows off [Christopher]’s ability to work with MDF. It also looks great sitting underneath his printer, and all his parts are rock solid now.
Filed under: 3d Printer hacks
[Harry] wrote in with his hack of the Crayola Light Designer. The Light Designer is a pretty unique toy that lets kids write on a cone-shaped POV display with an infrared light pen. [Harry] cracked one open and discovered it has a spinning assembly with a strip of 32 RGB LEDs for the display and a strip of photodiodes to detect pen position. These were ripe for the hacking.
The spinning assembly uses several slip ring connections to send power and data to the spinning assembly. [Harry] connected a logic analyzer to several of the connections to determine which lines were clock, data, and frame select (the strip is split into 2 16-led “frames”). He went on to reverse-engineer the serial protocol so he could drive the strips himself.
Instead of reverse-engineering the microcontroller on the product’s PCB, [Harry] decided to use a Leostick (Arduino Leonardo clone) to control the LEDs and spinner. He mounted the Leostick on the shaft of the spinning assembly, and powered it over the slip ring connections. After adding some capacitance to make up for noisy power from the slip rings, [Harry] had the POV display up and running with his own controller. Check out the video after the break to see the hacked POV display in action.
Filed under: led hacks, toy hacks
Every once in a while we get sent a link that’s so cute that we just have to post it. For instance: this video from [Ludic Science]. It’s a wind-up chicken toy that kicks a pendulum back and forth. No more, no less.
But before you start screaming “NOT A HACK!” in the comments below, think for a second about what’s going on here. The bird has a spring inside, and a toothed wheel that is jammed and released by the movement of the bird’s foot (an escapement mechanism). This makes the whole apparatus very similar to a real pendulum clock.
Heck, the chick toy itself is pretty cool. It’s nose-heavy, so that under normal conditions it would tip forward. But when it’s wound up, tipping forward triggers the escapement and makes it hop, tipping it backward in the process and resetting the trigger. The top-heavy chicken is an inverted pendulum!
And have a look, if you will indulge, at the very nice low-tech way he creates the pivot: a bent piece of wire, run through a short aluminum tube, held in place by a couple of beads. Surely other pivots are lower-friction, but the advantage of using a rod and sleeve like this is that the pendulum motion is constrained to a plane so that it never misses the chicken’s feet.
Our only regret is that he misses (by that much) the obvious reference to a “naked chick” at the end of the video.
Filed under: clock hacks, misc hacks
[Andrew] designed a simple thermal imager using the FLIR Lepton module, an STM32F4 Nucleo development board, and a Gameduino 2 LCD. The whole design is connected using jumper wires, making it easy to duplicate if you happen to have all the parts lying around (who doesn’t have a bunch of thermal imaging modules lying around!?).
The STM32F4 communicates with the Lepton module using a driver that [Andrew] wrote over a 21MHz SPI bus. The driver parses SPI packets and assembles frames as they are received. Images can be mapped to pseudocolor using a couple different color maps that [Andrew] created. His code also supports min/max scaling to map the pseudocolor over the dynamic range present in the image.
Unfortunately the Lepton module that [Andrew]’s design is based is only sold in large quantities. [Andrew] suggests ripping one out of a FLIR ONE iPhone case which are more readily available. We look forward to seeing what others do with these modules once they are a bit easier to buy.
Filed under: digital cameras hacks
[Martin] grew up in the days of computer magazines, and originally wanted to build his own computer. That plan didn’t work out, but his parents did get him a Speccy in 1986, but the love of old hardware is still there. Over the years, this evolved into computer collecting, with the old ZX Spectrum, an Commodore 64, ORICs, and Acorns rounding out his collection. As we learned at the Computeum, there the middle of Europe had computers that just aren’t seen on the English-speaking Internet, and [Martin]’s collection is no exception.
In addition to doing some very cool stuff for some very old computers, [Martin] also donated something to the Hackaday Hackaspace. It’s a PMI-80, a single board computer made for university computer science students, and basically a KIM-1, but based on a Czechoslovak clone of the Intel 8080 made by Tesla. There is 1k of RAM and 1k of ROM on this board, a calculator keypad, and a few seven segment displays. For the time, it was a great ‘student’ computer, and not really rare in Europe, but this is the first one I’ve seen on my side of the Atlantic.
You can see some pics of the PMI-80 below with [Martin]’s interview. [Martin] also promised to write-up a short history of classic central european computers, a subject there isn’t much written about in the anglosphere. We’ll post a link to that when he finishes that up.
Filed under: classic hacks
One of the acronyms you may hear thrown around is DDS which stands for Direct Digital Synthesis. DDS can be as simple as taking a digital value — a collection of ones and zeroes — and processing it through a Digital to Analog Converter (DAC) circuit. For example, if the digital source is the output of a counter that counts up to a maximum value and resets then the output of the DAC would be a ramp (analog signal) that increases in voltage until it resets back to its starting voltage.
This concept can be very useful for creating signals for use in a project or as a poor-man’s version of a signal or function generator. With this in mind I set out here to demonstrate some basic waveforms using programmable logic for flexibility, and a small collection of resistors to act as a cheap DAC. In the end I will also demonstrate an off-the-shelf and inexpensive DDS chip that can be used with any of the popular micro-controller boards available that support SPI serial communication.
All of the topics covered in the video are also discussed further after the break.DDS Demo Hardware
I chose to use Programmable Logic (PL) to build the various circuits as it was quick to configure and didn’t require very much construction while being extremely flexible. It also didn’t require any software programming, IDE, target processor board, etc. This might be an interesting project for you if you are interested in learning or exercising some basic Programmable Logic skills, here I use Altera’s free Quartus II Web version and an inexpensive programmer clone. For the first couple of examples I am using a Complex Programmable Logic Device. (CPLD)Basic Signal Generation Altera CPLD DDS
Creating waveforms can also be done with dedicated logic, for example a CD4060 oscillator/counter can be used instead of the PL counter or also a microcontroller with I/O ports could be used. Note that the microcontroller version does better the more assistance it gets from dedicated peripherals such as a timer or a timer/counter that reloads without waiting for the processor to respond and reset it.
Here are two waveforms created with a simple counter and resistors organized as an R/2R ladder. As the output of the counter increments in binary, the resulting voltage divider created by the interconnected resistors and outputs creates consistent steps between each of the counts; 256 in this case due to 8 outputs being used. Taking the most significant bit also demonstrates a symmetrical square wave.Building Different Signals is Easy
If the counter were to count downwards upon reaching its maximum count instead of resetting to zero, then a triangle waveform would be generated. So far that’s three waveforms using just a counter and some resistors.
On a slightly different topic, using just some I/O lines, an R/2R ladder, and an analog comparator (ala LM339) a basic type of Analog to Digital Converter (ADC) can be made. Don’t misread this, we were talking about going from digital to analog before but now we’re talking about going from analog to digital.
To describe it simply, a processor or digital counter is connected to the R/2R ladder which is connected to the input of an analog comparator. The voltage to be measured is then connected to the other input of the comparator and then the counter proceeds to count up until the R/2R ladder voltage equals or exceeds the voltage being measured. At that time the comparator trips and the equivalent digital value of the analog voltage being measured is represented by the counter value feeding the R/2R ladder.
Assuming that the voltage to be measured is somewhat stable, the process can be repeated to track the voltage as it (slowly) changes or the count can be reversed until the comparator clears and then reverses. This might be useful for measurements such as monitoring a battery voltage level, etc.
While continuing the use of an adjunctive comparator, a simple voltage to frequency converter can be made by having the counter change directions when the comparator trips. This is not a perfect converter (nothing I do is perfect, life and engineering is a compromise) as very notably the amplitude of the triangle waveform changes in amplitude, but a full voltage square wave would be easy to generate.Basic Principles for Sine Wave Generation DDS Sinewave
Finally we can create a sinewave through the addition of a look-up-table that contains the appropriate data to approximate a mathematical sine function. A look-up-table (LUT) is simply a piece of memory such as Read Only Memory (ROM) in series with the data, in our case the incrementing counter represents an incrementing address, and the data output is the result of a pre-calculated Sine table.
For this I have switched to a Field Programmable Gate Array (FPGA) which has better internal memory and the ability to initialize the memory with the contents of the Sine table I created for the LUT. In the schematic for the interior of my FPGA the LUT can be seen off to the right just in front of the output pins.FPGA w LUT Programming Complex Waveforms
One advantage of a Sine wave created by DDS is that it can be generated at a wide range of frequencies and keep its same shape (low distortion).
Just for fun and to demonstrate something that can done easily with DDS I created a non-symmetrical waveform. Looking carefully you can see two cycles of square wave, two of ramp and then two of sine wave. Any waveform that can be “drawn” in memory can be created this way.Square-ramp-sine Other DDS Hardware Options
And finally, if you need a DDS without the muss and fuss of making it out of components yourself, there is a selection of DDS components available that are low cost and accurate. Shown here is an Analog Devices 9387 in an evaluation board from the manufacturer. It is SPI serial interface driven and so can be connected to most available single board controllers.DDS Eval AD9837
Varying the frequency and phase of a signal by microprocessor control is integral to a DDS system. The software that comes with the evaluation the board shows that two frequencies and two phase offsets can be stored allowing Frequency Shift Keying (FSK) and Phase Shift Keying (PSK) as well as sweeping between two frequencies. This is a useful capability, for example the frequency response of a circuit such as a filter can be observed by sweeping a frequency on the input and then measuring the output on an oscilloscope.Eval 9837 Go Deeper
If you want to know more about DDS there is a lot of information available on manufacturer’s websites and the Internet. Advanced topics to search for include embedded sub-modulation and use with phase lock loops to reduce phase noise, up-conversion using multipliers, and other synthesis circuits used in RF telecommunications.
Filed under: Featured, hardware, how-to, slider
The OnePlus One is the flagship phone killer for 2014, available only by invite, and thus extremely cool. So far it’s a limited production run and there will, of course, be problems with the first few thousand units. When [vantt1] got his One, he noticed a few issues with the touch screen. Some touches wouldn’t be registered, typing was unpredictable, and generally, the touchscreen was unusable. [vantt] had seen this before, though, so with a complete teardown and a quick fix he was able to turn this phone into something great.
[vantt] realized the symptoms of a crappy touchscreen were extremely similar to an iPad mini that had recently had its digitizer replace. From the Foxconn plant, the digitizer in the iPad mini is well insulated from the aluminium enclosure. When the screen and digitizer are replaced, the cable connecting it to the rest of the iPad can come in contact with the case. This leads to the same symptoms – missed touches, and unpredictable typing.
Figuring the same cure will fix the same symptoms, [vantt] tore apart his OnePlus One and carefully taped off the digitizer flex cable. Reassembling the phone, everything worked beautifully, and without any extra screws in the reassembly process. You can’t do better than that.
Filed under: repair hacks
A while ago, when 3D printing was the new hotness, a few people looked around and said, ‘our printers are open source, why can’t we just build the machines that make our 3D printing filament?’ There was a $40,000 prize for the first person to build an open source filament extruder, resulting in a few filament fabrication machines being released into the wild. [Rupin] over in the Mumbi hackerspace has one of these filament extruders – a Filastruder – and decided to take a look at what it could do.
The experimentations began with a few kilograms of ABS pellets he found at the market, with bags of red, blue, green, and white masterbatch pellets showing up at the Hackerspace. Experimenting with these pellets, [Rupin] was able to create some very nice looking filament that printed well and changed color over the course of a print.
There were a limitations of the process, though: the filastruder has a long melt zone, so colors will invariably mix. If you’re thinking about doing a red to blue transition with filament created on a Filastruder, you’ll end up with a filament with a little bit of red, a little bit of blue, and a lot of a weird purple color. The time to create this filament is also incredibly long; over the course of two days, [Rupin] was able to make about half a kilo of filament.
Still, the results look fantastic, and now that [Rupin] has a source for masterbatch and ABS pellets, he’s able to have a steady supply of custom color filament at the hackerspace.
Filed under: 3d Printer hacks
The Cairo hackerspace needed a projector for a few presentations during their Internet of Things build night, and of course Friday movie night. They couldn’t afford a real projector, but these are hackers. Of course they’ll be able to come up with something. They did. They found an old slide projector made in West Germany and turned it into something capable of displaying video.
The projector in question was a DIA projector that was at least forty years old. They found it during a trip to the Egyptian second-hand market. Other than the projector, the only other required parts were a 2.5″ TFT display from Adafruit and a Nokia smartphone.
All LCDs are actually transparent, and if you’ve ever had to deal with a display with a broken backlight, you’ll quickly realize that any backlight will work, like the one found in a slide projector. By carefully removing the back cover of the display, the folks at the Cairo hackerspace were able to get a small NTSC display that would easily fit inside their projector.
After that, it was simply a matter of putting the LCD inside the display, getting the focus right, and mounting everything securely. The presentations and movie night were saved, all from a scrap heap challenge.
Filed under: Hackerspaces, video hacks
[Daniel] received a grant from the University of Minnesota’s ECE Envision Fund and was thus responsible for creating something. He built a runner’s GPS logger, complete with a screen that will show a runner the current distance travelled, the time taken to travel that distance, and nothing else. No start/stop, no pause, nothing. Think of it as a stripped-down GPS logger, a perfect example of a minimum viable product, and a great introduction to getting maps onto a screen with an ARM micro.
The build consists of an LPC1178 ARM Cortex M3 microcontroller, a display, GPS unit, and a battery with not much else stuffed into the CNC milled case. The maps come from OpenStreetMap and are stored on a microSD card. Most of the files are available on GitHub, and the files for the case design will be uploaded shortly.
The CNC machine [Daniel] used to create the enclosure is a work of art unto itself. We featured it last year, and it’s good enough to do PCBs with 10 mil traces. Excellent work, although with that ability, we’re wondering why the PCB for the Runner’s GPS is OSH Park purple.
Filed under: ARM, gps hacks
The 2015 Midwest RepRap Festival, a.k.a. the MRRF (pronounced murf) was just announced a few hours ago. It will be held in beautiful Goshen, Indiana. Yes, that’s in the middle of nowhere and you’ll learn to dodge Amish buggies when driving around Goshen, but surprisingly there were 1000 people when we attended last year. We’ll be there again.
A few activists in St. Petersburg flushed GPS trackers down the toilet. These trackers were equipped with radios that would send out their position, and surprise, surprise, they ended up in the ocean.
[Stacy] has been tinkering around with Unity2D and decided to make a DDR-style game. She needed a DDR mat, and force sensitive resistors are expensive. What did she end up using? Velostat, conductive thread, and alligator clips.
The Open Source RC is a beautiful RC transmitter with buttons and switches everywhere, a real display, and force feedback sticks. It was a Hackaday Prize entry, and has had a few crowdfunding campaigns. Now its hit Indiegogo again.
Speaking of crowdfunding campaigns, The Mooltipass, the designed-on-Hackaday offline password keeper, only has a little less than two weeks until its crowdfunding campaign ends. [Mathieu] and the rest of the team are about two-thirds there, with a little more than half of the campaign already over.
Filed under: Hackaday links
Hackaday Prize judge, hacker extraordinaire, and generally awesome dude [Sprite_TM] spends a lot of time at his computer, and that means a lot of time typing on his keyboard. He recently picked up a board with the latest fad in the world of keyboards, a board with individually addressable LEDs. He took this board to work and a colleague jokingly said, ‘You’ve had this keyboard for 24 hours now, and it has a bunch of LEDs and some arrow keys. I’m disappointed you haven’t got Snake running on it yet.” Thus began the quest to put the one game found on all Nokia phones on a keyboard.
The keyboard in question is a Coolermaster Quickfire Rapid-I, a board that’s marketed as having an ARM Cortex CPU. Pulling apart the board, [Sprite] found a bunch of MX Browns, some LEDs, and a 72MHz ARM Cortex-M3 with 127k of Flash and 32k of RAM. That’s an incredible amount of processing power for a keyboard, and after finding the SWD port, [Sprite] attempted to dump the Flash. The security bit was set. There was another way, however.
Coolermaster is actively working on the firmware, killing bugs, adding lighting modes, and putting all these updates on their website. The firmware updater is distributed as an executable with US and EU versions; the EU version has another key. Figuring the only difference between these versions would be the firmware itself, [Sprite] got his hands on both versions, did a binary diff, and found only one 16k block of data at the end of the file was different. There’s the firmware. It was XOR encrypted, but that’s obvious if you know what to look for.
The firmware wasn’t complete, though; there were jumps to places outside the code [Sprite] had and a large block looked corrupted. There’s another thing you can do with an executable file: run it. With USBPcap running in the background while executing the firmware updater, [Sprite] could read exactly what was happening when the keyboard was updating. With a small executable that gets around the weirdness of the updater, [Sprite] had a backup copy of the keyboard’s firmware. Even if he bricked the keyboard, he could always bring it back to a stock state. It was time to program Snake.
The first part of writing new firmware was finding a place that had some Flash and RAM to store the new code. This wasn’t hard; there was 64k of Flash free and 28K of unused RAM. The calls to the Snake routine were modified from the variables the original firmware had. If, for example, the original keyboard had a call to change the PWM, [Sprite] could change that to the Snake routine.
Snake is fun, but with a huge, powerful ARM in a device that people will just plug into their keyboard, there’s a lot more you can do with a hacked keyboard. Keyloggers and a BadUSB are extremely possible, especially with firmware that can be updated from a computer. To counter that, [Sprite] added the requirement for a physical condition in order to enter Flash mode. Now, the firmware will only update for about 10 seconds after pressing the fn+f key combination.
There’s more to playing Snake on a keyboard; Sprite has also written a new lighting mode, a fluid simulation thingy that will surely annoy anyone who can’t touch type. You can see the videos of that below.
Filed under: ARM, slider, Software Development
Once you venture beyond the tame, comfortable walls of the 8-bit microcontroller world it can feel like you’re stuck in the jungle with a lot of unknown and oft scary hazards jut waiting to pounce. But the truth is that your horizons have expanded exponentially with the acceptable trade-off of increased complexity. That’s a pretty nice problem to have; the limitation becomes how much can you learn.
Here’s a great chance to expand your knowledge of the STM32 by learning more about the system clock options available. We’ve been working with STM32 chips for a few years now and still managed to find some interesting tidbits — like the fact that the High Speed External clock source accepts not just square waves but sine and triangle waves as well, and an interesting ‘gotcha’ about avoiding accidental overclocking. [Shawon M. Shahryiar] even covers one of our favorite subjects: watchdog timers (of which there are two different varieties on this chip). Even if this is not your go-to 32-bit chip family, most chips have similar clock source features so this reading will help give you a foothold when reading other datasheets.
There is a clock diagram at the top of that post which is small enough to be unreadable. You can get a better look at the diagram on page 12 of this datasheet. Oh, and just to save you the hassle of commenting on it, the chip shown above is not an f103… but it just happened to be sitting on our desk when we started writing.
Filed under: ARM