AI Generates Color Palettes; Has Remarkably Good Taste

Color palettes are key to any sort of visual or graphic design. A designer has to identify a handful of key colours to make a design work, making calls on what’s eye catching or what sets the mood appropriately. One of the problems is that it relies heavily on subjective judgement, rather than any known mathematical formula. There are rules one can apply, but rules can also be artistically broken, so it’s never a simple task. To this end, [Jack Qiao] created colormind.io, a tool that uses neural nets to generate color palettes.

It’s a fun tool – there’s a selection of palettes generated from popular media and sunset photos, as well as the option to generate custom palettes yourself. Colours can be locked so you can iterate around those you like, finding others that match well. The results are impressive – the tool is able to generate palettes that seem to blend rather well. We were unable to force it to generate anything truly garish despite a few attempts!

The blog explains the software behind the curtain. After first experimenting with a type of neural net known as an LSTM, [Jack] found the results too bland. The network was afraid to be wrong, so would choose values very much “in the middle”, leading to muted palettes of browns and greys. After switching to a less accuracy-focused network known as a GAN, the results were better – [Jack] says the network now generates what it believes to be “plausible” palettes. The code has been uploaded to GitHub if you’d like to play around with it yourself.

Check out this primer on neural nets if you’d like to learn more. We’d like to know – how do you pick a palette when starting a project? Let us know in the comments.

A Tool For KiCad Board Renderings

If you’re producing documentation for a PCB project, you might as well make the board renders look good. But then, that’s a lot of work and you’re not an artist. Enter [Jan]’s new tool that takes KiCad board files, replaces each footprint with (custom) graphics, and provides a nice SVG representation, ready for labelling. If you like the output of a Fritzing layout, but have higher expectations of the PCB tool, this is just the ticket.

We all love [pighixx]’s pinout diagrams. Here’s his take on the Arduino Uno, for instance. It turns out that he does these largely by hand. That’s art for ya.

Sparkfun has taken a stab at replicating the graphical style for the pin labels, but then they toss in a photo of the real item. [Jan]’s graphic PCB generator fills in the last step toward almost putting [pighixx] out of a job. Get the code for yourself on GitHub.

Bad Thermal Design And Burning Down The House

Control boards for 3D printers are a dime a dozen on the usual online marketplaces, and you usually get what you pay for. These boards can burn down your house thanks to a few terrible design choices. [Scott Rider] aka [Crow] took a look at the popular Melzi board, and what he found was horrifying. These boards overheat right at the connector for the heated bed, but the good news is these problems are easily fixed.

The Melzi board has a few problems with its PCB design. The first and most glaring issue is the use of thermals on the pads for the heated bed connector. In low-power applications, thermals — the method of not connecting the entire top or bottom layer to a hole or pad — are a great idea. It makes it easier to solder, because heat isn’t transmitted as easily to the entire copper layer. Unfortunately, this means heat isn’t transmitted as easily to the entire copper layer. In high-power applications, like a connection to a heated bed, these thermals can heat up enough to melt a plastic connector. Once that happens, it’s game over.

Other problems were found in the Melzi board, although you wouldn’t know it just by looking at the Eagle file of the PCB. [Scott]’s Chinesium Melzi board used 1-ounce copper, where 2-ounce copper would be more appropriate. The connector, too, should be rated above the design power loading.

[Scott] made a few tweaks to the board and also added a tiny DS1822Z temperature sensor to the high-current area of his version of a Melzi. Imagine that, 3D printer electronics with a temperature sensor. Slowly but surely, the state of 3D printer electronics is clawing its way to the present.

Illuminating New Take on Magnetic Switches

While there’s something to be said for dead-bug construction, hot glue, and other construction methods that simply get the job done, it’s inspiring to see other builds that are refined and intentional but that still hack together things for purposes other than their original intent. To that end, [Li Zanwen] has designed an interesting new lamp that uses magnets to turn itself on in a way that seems like a magnetic switch of sorts, but not like any we’ve ever seen before.

While the lamp does use a magnetic switch, it’s not a traditional switch at all. There are two magnetic balls on this lamp attached by strings. One hangs from the top of the circular lamp and the other is connected to the bottom. When this magnet is brought close to the hanging magnet, the magnetic force is enough to both levitate the lower magnet, and pull down on a switch that’s hidden inside the lamp which turns it on. The frame of the lamp is unique in itself, as the lights are arranged on the inside of the frame to illuminate the floating magnets.

While we don’t typically feature design hacks, it’s good to see interesting takes on common things. After all, you never know what’s going to inspire your next hackathon robot, or your next parts drawer build. All it takes is one spark of inspiration to get your imagination going!

SKiDL: Script Your Circuits in Python

SKiDL is very, very cool. It’s a bit of Python code that outputs a circuit netlist for KiCAD.

Why is this cool? If you design a PCB in KiCAD, you go through three steps: draw the schematic, assign footprints to the symbolic parts, and then place them. The netlist ties all of these phases together: it’s a list of which parts are connected to which, the output of schematic capture and the input for layout. The ability to generate this programmatically should be useful.

For instance, you could write a filter circuit generator that would take the order, cutoff, and type of filter as inputs, and give you a spec’ed netlist as output. Bam! In your next design, when you need a different filter, you just change a couple of variables. Writing your circuits as code would make arranging the little sub-circuits modular and flexible, like functions in code.

At the very least, it’s an interesting alternative to the mouse, click, drag, click paradigm that currently dominates the schematic capture phase. Just as some of you like OpenSCAD for 3D modelling, some of you will like SKiDL for circuit design.

We’ve become so accustomed to the circuit diagram as the means of thinking about circuits that we’re not sure that we can ever give up the visual representation entirely. Maybe designing with SKiDL will be like sketching out block diagrams, where each block is a bit of Python code that generates a circuit module? Who knows? All we know is that it sounds potentially interesting, and that it’ll certainly be mind-expanding to give it a try.

Give it a shot and leave feedback down in the comments!

A Short Introduction to Staking and Potting

Staking and potting are not often used in the hobby electronics world, not really entering to the common vernacular. However, everyone who’s ever busted out a glue-gun to convince that dang wire that keeps coming loose to stay has done it.

However, as [Sean Thomas] touches on, staking is not necessarily as easy as a dob of hot glue. There is a method to the madness. [Sean] gives some examples in pictures, but also directs people to the excellent NASA standard methods for staking. It’s surprising how many unintuitive caveats there are to the proper technique.

Potting, or covering everything in epoxy forever, is a great way to get a waterproof, unserviceable, and practically mechanically invincible circuit. The big challenge in potting is picking the right material. A soft silicone, for example, might transfer an unexpected force to an unexpected section of the circuit and cause a mechanical failure. A nice hard epoxy may be too insulating and cause a thermal failure. The standard RTV from the big box store has acetic acid that will eat your components.

These two techniques that come in handy when you need them and worth the bit of reading it takes to get familiar. Have you used either in your own workshop? Let us know the application and the material/techniques you have tried in the comments below.

Design and Hacking Drilldown: SuperCon Badge

One can imagine a political or business conference without an interactive badge — but not a hacker conference. Does this make the case for hackers being a special breed of people, always having something creative to show for their work? Yes, I think it does.

Following the Hackaday Belgrade conference in April of this year, we met at the Supplyframe offices to discuss the badge for the Hackaday SuperConference that will happen in Pasadena on 5+6th of November. The Belgrade conference badge (which was fully documented if you’re curious) was surprisingly popular, and I was asked to design the new one as well.

I was prepared to come up with something completely new, but [Mike Szczys] suggested keeping with the same basic concept for the project: “No reason to change anything, we have a badge that works”. To which I responded: “Well, the next one will also work”. But then I realized that “works” does not stand for “being functional”. The key is that it was embraced by visitors who played with it, coded on it, and solved a crypto challenge with it.

The World Doesn’t Have Enough LEDs

led-modules-versus-smdFast forward six months — here are the modifications made to the basic concept. First, the existing LED matrix, which was composed of two compact 8×8 blocks, was replaced by 128 discrete SMD LEDs. It was a much needed change to help scale down the dimensions and clunkiness, but also to avoid another painful experience of trying to purchase and have the matrix displays shipped, which seriously threatened the production of the previous badge.

It’s a long story which I discussed in my Belgrade talk — it turned out we did not manage to get enough common anode (CA) displays from all distributors in the whole world. We had a plan B, which also fizzled, leaving us with the plan C which actually included two “C”s: Common Cathode. We cleaned up all the supplies at five distributors, and managed to get 122 CA red, 340 CC red and 78 CA green displays (enough for only 270 badges) — the entire world supply. After that, you couldn’t get any 38 mm Kingbright’s display for months! The only problem was that there were two different versions of PCBs, one for CA and the other for CC displays, but luckily only one version of software, as it could autodetect the display type.

accelerometer-on-the-boardMotion and Expansion

So, what else was new in the concept? In the Belgrade version, the badge supported an accelerometer module and included an unpopulated footprint in case you decided to install it, but now the badge has the MEMS chip LIS3 as an integral part. There are nine pads (with five I/O ports, driven directly from the MCU) to which you can add a 9-pin expansion connector. There will be a number of these connectors at the Design Lab, so that anyone can expand their badge for their convenience, on the spot.

The Visual Design

The biggest change was in the visual design. What we came up with ended up being a fair bit smaller, lighter, with a more convenient shape, and less than half the thickness of the previous one. After we had scrapped quite a few ideas during the development process (including stylized skull, frog, etc), we were left with a couple of options which you can see on the image below. The wireframe drawing on the left hand side is the Belgrade badge, shown here for a size comparison. At this point the locale and date of the conference weren’t yet definitive, which is why you see San Francisco written on the images.

design-options-2016-supercon-badge

Design number 4 prevailed, so the PCB layout could begin. I don’t like autorouted PCBs, so I was in for quite a rough time trying to solve the routing manually having only 2 layers on the board at my disposal.

Routing a Compact LED Matrix

The LED matrix is so dense that there was virtually no room on the LED layer, so most of the tracks on the component layer had to be routed as if it was a single layer PCB. To make matters worse, the LED layer is routed as a matrix, with a bunch of horizontal and vertical tracks, otherwise a good reason to use a 4-layer PCB. To stay inside the budget, everything had to be placed on 2 layers, and that’s why the final result seems so confusing at the populated area between batteries:

Continue reading “Design and Hacking Drilldown: SuperCon Badge”