Author Archives: Mike Szczys

What Makes the Perfect Hardware Badge

via hardware – Hackaday

There are only a handful of people who can say they’ve built several successful electronic badges for conferences. Voja Antonic is not just on that list, he’s among the leaders in the field. There are a lot of pressures in this type of design challenge: aesthetics, functionality, and of course manufacturability. If you want to know how to make an exposed-PCB product that will be loved by the user, you need to study Voja’s work on the 2016 Hackaday SuperConference Badge. The badge is completely open, with all the design files, firmware, and a manual on the badge project page.

Between travelling from Belgrade to Pasadena and guiding production of 300 badges across the finish line before the conference deadline Voja took ill. He made it to the conference but without a voice he asked me to give his badge design talk for him. You can check that talk out below but let’s touch briefly on why Voja’s design is so spectacular.

Aesthetics

The point of a conference badge is for attendees to wear them around their necks. This makes aesthetics as important as any other aspect of the design. Every single person will interact with the badge in this manner.

hackaday-superconference-voja-badge-hacking-aestheticVoja’s approach was to come up with a series of board outlines and major component placements (in wireframe). He then sought input from many different people to help narrow down a half dozen designs to a single idea. With a design chosen, Voja tweaked the color scheme, ran a batch of prototypes, and started populating boards.

His final refinements are what make the badges so beautiful. He moved from black glossy solder mask to black matte, matched the silk screen color to the color of the auxiliary buttons and the hue of the non-illuminated LEDs. The shape, the component placement (LEDs and buttons on a 45 degree angle) and the choice of edge-mounted battery holders made less bulky with a PCB cut-out are all iconic design elements.

Hardware

Design has some effect on price (can it be manufactured?) but hardware choices are the biggest driver of this. The badge has three ICs on it, the PIC18F25KL50, an LED driver, and the accelerometer. The rest is fairly straight-forward, an IR receiver, mini-B USB jack, LEDs, buttons, and passives. The point is that there’s nothing truly exotic here. Used well, common components have no trouble creating a device people will love. Sticking within the BOM cost is another issue altogether. We kept it close to our goal, but that’s because a lot of labor from our team didn’t figure into the bottom line. Read more about our tale of manufacturing.

Functionality

img_3439An electronic conference badge is a failure if it only hangs around an attendee’s neck. People need to interact with these badges and for that Voja added a Tetris game, scrolling messages that can can be customized with an IR kiosk at the con, and a gravity simulation using the accelerometer

The underpinnings are a USB bootloader that our friends as Microchip provided. This added USB mass storage support to the badge. Voja wrote a ‘kernel’ that runs in protected bootloader space which takes care of all the low-level hardware handling. This combination makes the badge perfect for all skill levels.

Everything is memory mapped — LEDs control buffer, debounced button reads, RX and TX on the IR bus, accelerometer data subroutine calls, timing, and random numbers. And Voja’s clever implementation throws interrupts to user space first. Most users will redirect this back to the bootloader but seasoned embedded programmers can get full access to the hardware simply by not giving control back to the kernel.

These features are a huge win for the firmware. But Voja wrote a second firmware. He didn’t reveal it until the con had already started. This alternative could be flashed to the badge by the users to take on the crypto challenge.

Voja Antonic is an amazing hardware creator. Looking though his back catalog of projects you will be amazed by his Dali clock and his FR4 enclosures. He sets an example for all to follow — you should be a great hardware engineer, a great designer, and include amazing documentation in your designs. This conference badge hits all of those benchmarks and then some.


Filed under: cons, Hackaday Columns, hardware

Solving IoT Problems with Node.js for Hardware

via hardware – Hackaday

Tod Kurt knows a thing or two about IoT devices. As the creator of blink(1), he’s shipped over 30,000 units that are now out in the wild and in use for custom signaling on everything from compile status to those emotionally important social media indicators. His talk at the 2016 Hackaday SuperConference covers the last mile that bridges your Internet of Things devices with its intended use. This is where IoT actually happens, and of course where it usually goes astray.

I think this device is a good reference for thinking conceptually about Internet of Things. It’s dead-simple hardware: a thumbnail-sized PCB with a USB connector hosts two WS2812 RGB LEDs and a microcontroller. The enclosure is a little metal frame with a plastic diffuser that completes the look. You need to give it connectivity (and power) through the USB connection for it to work.

Does this qualify as IoT? Absolutely. Think of IoT as anything that brings data into the real world (or vice versa). LEDs have been on face plates of computers forever, but since the day that panel-programmed machines were put to rest, those LEDs have rarely ever conveyed meaningful data. Blink(1) can be set up through just about any API you can imagine to tell you something meaningful at a glance and at a distance. But that “last mile” is where the magic actually happens.

Cost and Complexity

Users need a way to interact with connected devices. But without a sizeable screen and multiple inputs that is a daunting task. Also, these devices often lack some important stuff like encryption (think SSL) and the ability to know when a device needs to be upgraded, plus an easy mechanism to do so. Tod contends that for a large swath of use cases, the best thing you can do is to make the device a computer peripheral.

This is most obviously done in the case of USB devices. The computer is the gatekeeper of that USB port and provides a direct and easy connection for software access to it. This can be true of wireless devices as well, but your best bet on that front is devices that are LAN only and depend on another gatekeeper to regulate access to them.

Lacking One OS to Rule Them, Tod Looks to Node

Tod heralds the many benefits of including a computer in the deal. You get a robust and continuously modern way for the user to interact using a GUI. And these central devices come with heavy lifting capabilities, like the option to handle encryption and orchestrate firmware upgrades when necessary. You will even have a mechanism to alert users when an upgrade is necessary.

This is no small thing. We are in the pit of despair with botnets right now because of early devices that didn’t think deeply about security and upgrades. Households that include devices in these botnets are completely unaware that their device is up to no good, and even if we found every device that has been pwned there’s no way to notify the owners. But I digress.

Of the myriad options to explore for cross-platform apps, Tod is preaching for Electron, a browser-based framework that uses Node.js for your every whim. This last part isn’t hyperbole. One of the chief benefits of Node.js is the extremely widespread adoption that means if you can think of a use, a library probably already exists. There are numerous examples of support for common hardware (from ESP8266 to Sphero BB-8 toy robots). Even if your programming chops can’t keep up with the new hotness there are tools like Node-RED which help you stomp out complexity with a graphic programming flow.

Think Security, Think User, Then Think Product

This is not a sales pitch for Blink(1) — although you find it in the Hackaday store — but a proven example of the way we need to be thinking about building up the Internet of Things. The default has been to build it and think about everything else if it turns out someone wants to buy it. We’re eating our humble pie for the hubris of early designers. Only a paradigm shift in thinking about these issues early will make future IoT devices secure, but also deliver on the promise that has so far failed to materialize. We’ve been told that IoT will be awesome, fixing the last mile will let you deliver on that by making users love what you build.


Filed under: cons, hardware

Flip Dot Displays Appear with Modernized Drivers

via hardware – Hackaday

Admit it, you’ve always wanted to have your own flip-dot display to play with. Along with split-flap displays, flip-dots have an addictive look and sound that hearkens back half a century but still feels like modern technology. They use a magnetic coil to actuate each pixel — physical discs painted contrasting colors on either side. It means that you really only need electricity when changing the pixel, and that each pixel makes a satisfyingly unobtrusive click when flipped. The only problem with the displays is that they’re notoriously difficult to get your hands on.

flipdotBreakfast, a Brooklyn-based hardware firm known for creative marketing installations, unveiled their Flip-Disc Display System this morning. Used displays have come up on the usual sites from time to time, but often without a controller. Traditional flip-dot manufacturers haven’t sought out the individual hacker or hackerspace, and a click-to-buy option has been difficult if not impossible to find.

Breakfast’s offering modernizes the driver used to manage all of those electro-mechanical pixels. Whether this will make the displays more accessible is a question that still needs to be answered.

Breakfast has designed their own driver circuit for each panel of 28×28 pixels which includes a Cortex-M microcontroller. The easily daisy-chainable panels (using cat5 + power) pump up the maximum data propagation across a display by at least two orders of magnitude over traditional drivers. The demo video below shows 30 FPS being controlled by a time-of-flight camera (an ASUS Xtion in this case but that could change for production). Each panel draws about 300 mW at rest and typical full-motion operation is 25-50 W per panel but the system does have intelligent power design to cap total power draw.

Can you own one? Probably not — but that’s just because of your pocketbook. Breakfast wouldn’t give an exact price, but they did oblige when we asked for an approximation in terms of Honda Fits. Minimum order is 15 panels (140×84 pixels or about 7’x4.25′) and will run you about 6.25 Honda Fits.

Your workbench would look fantastic with one of these panels on it, right?
Your workbench would look fantastic with one of these panels on it, right?

Despite your not having low-six-figures lying around to spend on this, it is a notable development. The modernization of the driver, addition of an app and programming API, and a push to sell to a wider customer base should reinvigorate the occurrence of flip-dot displays which have been all but extinct this century. If there is a surge in purchases it will be many years before the secondary market benefits, but hopefully a groundswell of interest will encourage them to make the hacker-edition of their display available for a more… flippant… price.

We’ve seen a lot of work come out of Breakfast, notably this 6,400 pixel colored-thread display which is a mechanical engineering playground. When it comes to flip-dots, nothing beats what we saw at CES in 2015.


Filed under: hardware

How to Design, Manufacture, and Document a Hardware Product

via hardware – Hackaday

It’s pretty awesome to have a hardware design hero jump at the chance to work on a Hackaday conference badge. I am of course talking about Voja Antonic.

I’ve gotten to know him over the last two years when we were introduced and he agreed to work on some original articles. He’s long been a hacker and shared his story of technology despite politics and society changing around him. His Galaksija computer was the first personal computer available in Yugoslavia with over 8,000 kits sold. Since those days he never stopped refining his design and fabrication skills. For instance, his method of making cases from FR4 is beyond compare, and reading some of his wisdom from hardware design in the casino industry is the kind of fascinating stuff that rarely makes it out for others to enjoy.

But I digress — the point is Voja’s been around the block, he knows what he’s doing, and he does it at an amazingly high level. He did an incredible job with the Hackaday | Belgrade conference badge. It features a 16×8 LED display, IR comms hardware, 5 user buttons, USB programming, an option for an accelerometer module, and has spectacular life running on two AA batteries. It was a hit at the conference, and so was his talk discussing the design and fabrication. Check it out below and then join me below the fold.

Design Considerations

belgrade-badge-board-layoutDesigning a hardware badge isn’t quite as straightforward as you think. It needs to function well, cost little, and look great. I feel a Venn diagram coming on but I’m sure you’re capable of making one in your mind.

Considering those three constraints, this badge was a huge success. The Bill of Materials was used to set the cost of the early bird tickets for the conference. We were further helped on cost with the donation of all the microcontrollers. Mhen Microchip heard that Voja had selected one of their chips (PIC18LF25k50) they offered not only to donate the chips but to get them to Belgrade in time for assembly.

For functionality, you can do a lot with a 16×8 grid and three buttons. The original prototype played Tetris, with the left and right buttons to rotate pieces, and the middle button to drop them. There was a fourth button tied to the INT pin. This was used to cycle between active, pause, and sleep modes. The final design would add a fourth directional button.

The badge uses a USB bootloader so that new firmware can be flashed without needing a dedicated hardware programmer. The badge is never powered by USB, but the power pin on that connector is monitored by the chip. When waking from reset, it enters bootloader mode when voltage is detected on the connector. This bootloader mode is indicated by a flashing LED which cleverly bypasses the normal matrix scanning of the design.

Manufacturing

We can start tomorrow. That was the gist of the message that Voja received from the contract manufacturer he had selected in China. No problem, except that he got this smae response every day for well over a week. To hear other product design regulars tell it, this is not uncommon. Why tell your customer no when you can string them along for a while and slot them in when you have a lull on the factory floor? With time waning he pivoted and found a contract manufacturer in Belgrade to take on the job.

But of course that wasn’t the only issue. Sourcing components became a big, ugly problem. It was the Kingbright LED modules that were in short supply; not an easy part to replace. The 8×8 red LED modules used in the prototype had a lead time much longer than his deadline and the worldwide stock was less than half of what was necessary. He turned to Chris Gammell for help. In addition to being an engineer himself, Chris works with Parts.io and FindChips.com — two of Supplyframe’s websites which deal with part sourcing data for manufacturers, distributors, and brokers around the world. It wasn’t a magic “Oh, here’s all the parts you need” but the two were able to come up a solution.

They cleared out the world supply of 8×8 red common anode and common cathode displays. Since this still wasn’t enough they also bought up all of the green ones to boot. Astute readers will have already noticed that displays that use common cathode or common anode are fundamentally different. This meant two different hardware revisions of the badge were made, with a clever design that lets the software sense which version it has been loaded on.

Firmware

With the hardware design in production, Voja started on the code. He used an existing USB bootloader package from Microchip and wrote what he calls his ‘kernel’ to handle the LED display scanning, button monitoring, sleep and auto-sleep modes, and IR communications. But if you want everyone at the conference to hack on the software there were two problems: all of this had been written in assembly (most people aren’t that comfortable with ASM) and it would need to be rolled into user code for every hack.

Voja’s solution was to incorporate the kernel into the bootloader. This puts it into protected space that the user won’t accidentally alter, mapping all hardware features to memory locations. This is the best possible solution! Absolute beginners can jump right in, lighting up LEDs and reading user input without understanding much of anything about the hardware. Intermediate users can get a bit crazy with all of the memory mapped hardware. And experts can pull out a standalone programmer to blow away the bootloader and kernel to get directly to bits in registers.

The Documentation

Belgrade Badge display documentation

If you build it, and you want others to use it, you must document it. The time and effort that must have gone into this almost as impressive as the finished product itself. Voja built charts and graphs, and wrote about every aspect of the design, both hardware and software. He should be traveling the world and teaching this in every engineering school. Seriously, take the time to look through his documentation (PDF) and use it as inspiration to up your own game in this area.

In the end, the hard work paid off. The badges were a huge hit, they came in at a reasonable cost, looked great, and worked well. Thank you so much to Voja for all the work on this, and for sharing the entire story in his talk and through his published documentation.


Filed under: cons, Hackaday Columns, hardware