Embed With Elliot: The Volatile Keyword

Last time on Embed with Elliot we covered the static keyword, which you can use while declaring a variable or function to increase the duration of the variable without enlarging the scope as you would with a global variable. This piqued the curiosity of a couple of our readers, and we thought we’d run over another (sometimes misunderstood) variable declaration option, namely the volatile keyword.

On its face, volatile is very simple. You use it to tell the compiler that the declared variable can change without notice, and this changes the way that the compiler optimizes with respect to this variable. In big-computer programming, you almost never end up using volatile in C. But in the embedded world, we end up using volatile in one trivial and two very important circumstances, so it’s worth taking a look.

Continue reading “Embed With Elliot: The Volatile Keyword”

Developed On Hackaday: Let’s Build An Electronic Hackaday Badge

We’re going to build an electronic Hackaday Badge, and by “we”, I mean Hackaday community members who are passionate about the project.

I’ll be leading the charge. I had a great learning experience the last time I helped design the e-paper badge for the 2013 Open Hardware Summit, and hope to learn a lot along the way this time too. Since then, Badges have come a long way – at cons like DEFCON, LayerONE, Shmoocon, The Next Hope, Open Hardware Summit, The EMF, SAINTCON, SXSW Create, The Last Hope, TROOPERS11, ZaCon V and of course the rad1o from this year’s CCCamp. Word is that this year’s Open Hardware Summit badge is going to be pretty kickass too. So, we have some very big shoes to fill. But this doesn’t have to be about “my badge is better than yours”. And this badge isn’t meant to be specific to any single con or event. So what does the Badge do, then? “It’s a physical extension of the hackaday.io community, made specifically for hacker gatherings of all types and sizes.”

Continue reading “Developed On Hackaday: Let’s Build An Electronic Hackaday Badge”

Hackaday Links Column Banner

Hackaday Links: August 16, 2015

[Matt] created an animated gif of New Horizon’s Pluto flyby. The source images were taken from the the raw LORRI images, modified so the background star field could be seen, and assembled with OpenCV. Because Pluto and Charon orbit each other around a point above Pluto’s surface, simply putting Pluto in the center of each frame wouldn’t work. It’s the best visual explanation of this weird arrangement yet, all brought to you by the magic of OpenCV and Python.

On the subject of Kickstarter creators that don’t understand the conservation of energy, I present this.

We don’t know exactly what’s going on with this one, but here’s a swimming pool covered with RGB LEDs. It’s controlled by two Rainbowduinos, and looks like the coolest disco floor you’ve ever seen.

[Frank]’s 2011 Hundai Santa Fe wasn’t cool enough, so he added an F16 flight stick to his shift knob. The choice of joystick is paramount here: Saitek joysticks look too techy, Logitech ones are too expensive, and the Warthog H.O.T.A.S costs $400. Joysticks are extremely niche peripherals these days, it seems. He ended up strapping an old F16 joystick from the 90s on his shift knob, and it looks close enough to the real thing.

Two bodgers are stuffing the engine from a Toyota Celica into a 1980 Mini, and they’re trying to make it look stock. We’ve seen their project before, and now there’s a new episode. In this episode: the pedal box, the steering wheel, and figuring out how to make the car drive straight.

Hacklet 70 – Calculator Projects

Hackers, makers, and engineers have long had a love affair with number crunching. Specifically with the machines that make crunching numbers easier. Today it may be computers, smart watches, and smartphones, but that wasn’t always the case. In the 50’s and 60’s, Slide rules were the rage. Engineers would carry them around in leather belt pouches. By the early 70’s though, the pocket calculator revolution had begun. Calculators have been close at hand for hackers and engineers ever since. This week’s Hacklet celebrates some of the best calculator projects on Hackaday.io!

calc1We start with [Joey Shepard] and RPN Scientific Calculator. No equals sign needed here; [Joey] designed this calculator to work with Reverse Polish notation, just like many of HP’s early machines. Stacks are pretty important for RPN calculators, and this one has plenty of space with dual 200 layer stacks. The two main processors are MSP430s from Texas Instruments. The user interface are a 4 line x 20 character LCD and 42 hand wired buttons. The two processors are pretty ingenious. They communicate over a UART. One processor handles the keyboard and display, while the other concentrates on crunching the numbers and storing data in an SRAM. The case for this calculator is made from soldered up copper clad board. It’s mechanically strong especially since [Joey] added a bead of solder along each joint. If you want to learn more about this technique check out this guide on FR4 enclosures.

[Joey] definitely improved his solder skills with this project. Every wire and connection, including the full SRAM address and data bus were wired by hand on proto boards. We especially like the sweet looking laser cut keyboard on this project!
Continue reading “Hacklet 70 – Calculator Projects”

Closing Out DEF CON 23

We had a wild time at DEF CON last week. Here’s a look back on everything that happened.

defcon-23-hackday-breakfast-thumbFor us, the festivities closed out with a Hackaday Breakfast Meetup on Sunday morning. Usually we’d find a bar and have people congregate in the evening but there are so many parties at this conference (official and unofficial) that we didn’t want people to have to choose between them. Instead, we made people shake off the hangover and get out of bed in time for the 10:30am event.

We had a great group show up and many of them brought hardware with them. [TrueControl] spilled all the beans about the hardware and software design of this year’s Whiskey Pirate badge. This was by far my favorite unofficial badge of the conference… I made a post covering all the badges I could find over the weekend.

We had about thirty people roll through and many of them stayed for two hours. A big thanks to Supplyframe, Hackaday’s parent company, for picking up the breakfast check and for making trips like this possible for the Hackaday crew.

Hat Hacking

For DEF CON 22 I built a hat that scrolls messages and also serves as a simple WiFi-based crypto game. Log onto the access point and try to load any webpage and you’ll be greeted with the scoreboard shown above. Crack any of the hashes and you can log into the hat, put your name on the scoreboard, and make the hat say anything you want.

Last year only one person hacked the hat, this year there were 7 names on the scoreboard for a total of 22 cracked hashes. Nice work!

  • erich_jjyaco_cpp    16 Accounts
  • UniversityOfAriz     1 Account
  • @badgerops             1 Account
  • conorpp_VT             1 Account
  • C0D3X Pwnd you    1 Account
  • D0ubleN                   1 Account
  • erichahn525_VTe     1 Account

Three of these hackers talked to me, the other four were covert about their hat hacking. The top scorer used a shell script to automate logging-in with the cracked passwords and putting his name on the scoreboard.

I’d really like to change it up next year. Perhaps three hats worn by three people who involves some type of 3-part key to add different challenges to this. If you have any ideas I’d love to hear them below, or as comments on the project page.

[Eric Evenchick] on socketCAN

eric-evenchick-socketCAN-defcon-23-croppedOne of the “village” talks that I really enjoyed was from [Eric Evenchick]. He’s been a writer here for a few years, but his serious engineering life is gobbling up more and more of his time — good for him!

You probably remember the CANtact tool he built to bring car hacking into Open Source. Since then he’s been all over the place giving talks about it. This includes Blackhat Asia earlier in the year (here are the slides), and a talk at BlackHat a few days before DEF CON.

This village talk wasn’t the same as those, instead he focused on showing what socketCAN is capable of and how you might use it in your own hacking. This is an open source software suite that is in the Linux repos. It provides a range of tools that let you listen in on CAN packets, record them, and send them out to your own car. It was great to hear [Eric] rattle off examples of when each would be useful.

Our Posts from DEF CON 23

If you missed any of them, here’s our coverage from the conference. We had a blast and are looking forward to seeing everyone there next year!

I2C Bus Splitting With A More Professional Touch

Last week, I covered some of the bitter details of an interesting hack that lets us split up the I²C clock line into multiple outputs with a demultiplexer, effectively giving us “Chip Selects” for devices with the same address.

This week, I figured it’d be best to layout a slightly more practical method for solving the same problem of talking to I²C devices that each have the same address.

I actually had a great collection of comments mention the same family of chips I’m using to tackle this issue, and I’m glad that we’re jumping off the same lead as we explore the design space.

Recalling the Work of Our Predecessors

Before figuring out a clever way of hacking together our own solution, it’s best to see if someone before us has already gone through all of the trouble to solve that problem. In this case–we’re in luck–so much that the exact bus-splitting behavior we want is embedded into a discrete IC, known as the PCA9547.

chip_reverence

It’s worth remembering that our predecessors have labored tirelessly to create such a commodity piece of silicon.

The PCA9547 (PDF) is an octal, I²C bus multiplexer, and I daresay, it’s probably the most practical solution for this scenario. Not only does the chip provide 8 separate buses, up to seven more additional PCA9547s can be connected to enable communication with up to 64 identical devices! What’s more, the PCA9547 comes with the additional benefit of being compatible with both 3.3V and 5V logic-level devices on separate buses. Finally, as opposed to last week’s “hack,” each bus is bidirectional, which means the PCA9547 is fully compliant with the I²C spec.

Selecting one of the eight I²C buses is done via a transfer on the I²C bus itself. It’s worth mentioning that this method does introduce a small amount of latency compared to the previous clock-splitter solution from last week. Nevertheless, if you’re planning to read multiple devices sequentially from a single bus anyway, then getting as close-as-possible to a simultaneous read/write from each device isn’t likely a constraint on your system.

 

With a breakout board to expose the pads, I mocked up a quick-n-dirty Arduino Library to get the conversation started and duplicated last week’s demo.

Happily enough, with a single function to change the bus address, the PCA9547 is pretty much a drop-in solution that “just works.” It’s definitely reassuring that we can stand on the shoulders of our chip designers to get the job done quickly. (They’ve also likely done quite a bit more testing to ensure their device performs as promised.) Just like last week, feel free to check out the demo source code up on Github.

Until next time–cheers!

Tonight Is Hacker Chat With The Hackaday Writing Crew

Tonight at 6pm PDT (UTC-7) is that last Hacker Chat before the entry deadline for the 2015 Hackaday Prize. Join us to talk about all things hardware. Those who need last-minute advice, or are looking for team members for an epic weekend hackathon to bootstrap your winning entry, this is the place to find it. It’s worth entering something… we’re giving everyone with an entry a limited-edition shirt.. and a well executed idea just might get you to the next round!

Joining [Brian Benchoff], [Adam Fabio], and me for tonight’s festivities are [Richard Baguley], [Kevin Dady] (aka [Osgeld]), [Bil Herd], [Kristina Panos], and [Al Williams]. We run these things a bit like the wild-west. There is just a bit of structure, but mostly anything goes. As far as the structure, add your project to this sheet if you want it to be one of the discussion topics. Other than that, share your knowledge and opinions while being excellent to each other. See you this evening!

The 2015 Hackaday Prize is sponsored by: