Darshan from India talks about his experience in Shenzhen, China. There’s more and more hackers visiting Shenzhen to check out the world’s largest electronics market and manufacturing ecosystem. This semi-regular series asks who they are and what they found.
Jon Hylands writes:
So I built a board tonight, and its working (after removing and rotating one of the h-bridge chips I put on backwards). I’ve validated that micropython works on it, and I can turn on and off the four LEDs. I’ve also successfully paired my cell phone with the bluetooth module on the board, so I’m pretty happy about that.
Who knew it’d be possible to use this coil to read NFC tags?
A while ago I backed the xNT campaign , which aimed at making an NTAG216 based NFC implant for different purposes. After a few months of waiting and a few weeks of trying to find someone in Switzerland willing to do the very simple implant procedure, I finally became a cyborg.
From the comments on our Cadsoft Eagle review post:
Cern’s team is hard at work. You can see the list of their projects here
The code is being contributed to the official Kicad’s repository, just it may not be in the release version yet, because it is still not ready for prime time due to very wide range of subsystems that are affected (especially the entire display subsystem). You can see a short demo of push & shove router here
I tried the router a couple of months ago and it worked, however there were still some problems with display.
Short demo of push & shove router after the break.
An open source midi controller user for the Roland SP-404 sampler by Davide Gironi:
The Roland SP-404 is a digital sampler made by Roland Corporation.
This sampler has an input midi port, and expose a set of midi commands to control the unit.
With this project user can control Roland SP-404 using a Midi Pedal.
With the pedal user can change the bank of the sampler and also switch on / off samples. It is a pedal extentions of the button matrix in front of the sampler.
Current working bank of the midi pedal extention it is show by a 7-segment digits display. User can work on the selected bank even if the SP-404 unit is showing other bank.
Check out the video after the break. Continue reading →
Every Tuesday we give away two coupons for the free PCB drawer via Twitter. This post was announced on Twitter, and in 24 hours we’ll send coupon codes to two random retweeters. Don’t forget there’s free PCBs three times a every week:
- Hate Twitter and Facebook? Free PCB Sunday is the classic PCB giveaway. Catch it every Sunday, right here on the blog
- Tweet-a-PCB Tuesday. Follow us and get boards in 144 characters or less
- Facebook PCB Friday. Free PCBs will be your friend for the weekend
- Yes, we’ll mail it anywhere in the world!
- Check out how we mail PCBs worldwide video.
- We’ll contact you via Twitter with a coupon code for the PCB drawer.
- Limit one PCB per address per month please.
- Like everything else on this site, PCBs are offered without warranty.
Here’s a cool hexapod robot that transforms into a ball shape - the MorpHex by Kåre Halvorsen:
I’ve done a lot of work on MorpHex lately, both on hardware and software. The two major updates; 24 Starlite RGB LED’s and a Razor 9DOF IMU made a huge difference when it comes to control and precision while rolling and the LED’s gave a nice effect. So I’ve decided to name it MKIII.
Check out the video after the break. Continue reading →
MagicTK made this mini adjustable voltage regulator, instructables here:
The minimum output is based on the voltage regulator’s internal reference voltage (look at the datasheet formula), and the maximum output is based on the batteries connected and how much energy they have left (as well as the maximum specified in the datasheet, in case you connected much higher voltage).
A few months ago we started a private PCB website so our team can get cheap PCBs from a fab in China. Someone spilled the beans, and it hit Hack a Day, Hacker News, etc. We almost shut it down, but it was too much fun to hack and refine the process. Dirty Tuesday is a weekly post about our misadventures accidentally starting a PCB service. As a design shop with Seeed Studio doing fulfillment, we’ve never been on this side of the fence and want to share the terrifying experience.
Gerber files are simple text files that describe how to draw a PCB. Most CAD programs export to this common format, and any manufacturer can load them and make exactly the same board. They’re a publishing format though, it’s tough (and usually inappropriate) to make changes to a gerber directly.
Detecting missing files
Boards are submitted to DirtyPCBs as a ZIP archive of gerber files (or a Eagle .brd file, more on that another week). The system, written in PHP, opens the temporary file upload without actually extracting anything. It scans through the file names and catalogs the extensions. Missing drill files (.txt) and board outline files (.gml) are common. We used to reject these orders, but it’s a hassle for people to enter all their info again. Now we accept payment and then give a notice about the problem, new files can be uploaded directly on the order status page. That’s a much friendlier process, while also ensuring we make the sale as quickly as possible.
Measuring the board
Next, we get the board size to see if it fits the ordered size. We pass a file handle pointing to the board outline file (.gml) inside the .zip to a PCB measurement function. Our original function used this very simple code from Wayne and Layne, it just looks for the longest line on the board by comparing all the X/Y coordinates in the outline file. This works on about 60% of boards, but fails if the board doesn’t use a fixed 2.4 leading zero suppression decimal notation. Eventually Jonathan Georgino contributed a more advanced function that reads the gerber opcodes for decimal notation and type of zero suppression, accurate on 98% of boards. The measurement class is available on Github here.
Boards too big for the ordered size are flagged and held for review before we send them to the board house. The board house also checks the size against the ordered size. We don’t reject boards based on the measured size because text outside the outline can mess it up pretty bad. So far every mis-sized order emailed to make full payment before we even noticed the hold.
Creating a PCB image from gerbers
DirtyPCBs started as a convenient way to get cheap boards to our team. We knew every PCB going through and who it belonged to. When it blew up we asked the board house to put stickers on the outside of each package with the PCB ID number. Aaron at Oomlout quipped sarcastically that the sticker innovation would certainly solve the problem in a new and refreshing way. He was right. The board house packing department randomly put stickers on anything of the same color. We had to replace dozens of orders. Later we acquiesced and let the PCB manufacturer put a small ID number on the silk screen, just like every other cheap PCB supplier.
We still occasionally have boards without a number, or with the wrong number. We also need a way to instantly check if a board is the right color before we send it out. We set out to imitate the online gerber viewer Gerblook. Export each layer of the PCB as an image using gerbv, apply color, and create a composite image. Easier said than done.
Anything outside the PCB, such as notes or overhanging headers, throws that layer out of alignment. Gerbv has command line options to specify the origin of the export area, DPI and window size, but most boards don’t have clean lower left corners that start at X=0 Y=0. Many PCBs even have negative coordinates for the placement of the lower left corner. Even the top right corner can be a negative coordinate!
This is a problem already solved by Gerblook, so we wrote to Hadley for help. His solution is as brilliant as it is simple. When exporting a layer, include every other layer with the color set to transparent. Each layer is exported with perfect alignment to every other layer because they’re all included every time. Sorted.
With all the individual layers in hand, it’s time to color them and create the composite image. Our PHP script uses GD for this:
- Get board background color from image pixel 0,0. Despite our best efforts this is not always what we tell gerbv to output
- Change the background color to transparent
- Replace all the red (or whatever is closest to red, grrrbv!) with our desired color. This could be silver (HASL) or gold (ENIG) for pads, white for drill holes, etc
- Soldermask takes a bit of extra work as we need to color the outline first and then subtract all the holes in the mask where the HASL or ENIG pads will be
- Composite the layers together: outline, copper, solder mask, copper again faded a bit, silkscreen, drill holes
Using the copper under and over the mask makes it pop, like seeing the traces under the solder mask on a real PCB. The only major limitation of this method, shared by Gerblook, is that holes inside the outline layer (panelized boards, etc) will be colored and not transparent. We toyed with a method of walking from the top center of the board until we find the outline, then apply a fill to the interior of the board. This has promise, but wasn’t worth perfecting at the time.
When you order a board at DirtyPCBs you get an email with the composite board image attached. The status page also shows the top and bottom views. Images are nice for the buyer’s reference, but crucial to our backend packing crew. They double check every board, and find mislabeled/wrong color boards before they’re mailed. It’s not perfect, but it helps us catch problems before they become a bigger hassle.
DirtyPCBs’ gerber file check, measurement, and image output PHP script is here. It won’t work on cheap shared hosting as you’ll need root access to install gerbv.
Gerblook mentions eventually going open source on their website – turns out it already is. We will definitely swap to Gerblook’s Python scripts if we update DirtyPCBs in the future.
Kerry Wong writes:
Arduino Due uses an Atmel SAM3X8EARM Cortex-M3 CPU, which has a native hardware based True Random Number Generator (TRNG). In this post, we will take a brief look at how to use it in the Arduino environment and take a look at some of its statistical characteristics.
The GTVHacker group gave this presentation at DEFCON 22. The group is famous for Hacking the Google TV a few years back, and in this talk they add plenty of devices to their credit. “We’ve taken all of our previous experience exploiting embedded devices and used it to bring you a presentation filled with more exploits than ever before. This presentation will feature exploits for over 20 devices including but not limited to TVs, baby monitors, media streamers, network cameras, home automation devices, and VoIP gateways. Gain root on your devices, run unsigned kernels; it’s your hardware, it’s internet connected, and it’s horribly insecure.”
The presentation slides in PDF can be downloaded from GTVHackers.
F*watch team writes:
F*watch is a fully open electronic watch project featuring an integrated GPS receiver. The development started at CERN as an after-work project to make a special present for a retiring colleague who likes hiking and timing. The full design (electronics, mechanics and software) is available under free licenses and the design is exclusively made with free tools.
-Ambient light sensor
-128×128 pixels LCD with backlight
-Micro-USB connector, 4 Buttons
-Buzzer, vibrating motor
-MicroSD memory slot
-500 mAh Lithium-ion battery, fuel gauge
Via Hacked Gadgets.
Did some test-bed assembling today and did a dry-test of the power board.
The good news… the power board did not blow up ;-)
The aux PSU for +/-12V analog and the 5V logic supply switcher is working as it should. The power board is able to supply the control board as far as I can see. Haven’t done any in-depth testing, but it looks good. The main low voltage AC inlet is also functional and the default of the power switcher is correctly off. The DC voltage after the rectifier was tested to 42V DC and no sparks or smoke were detected.
With the preliminary tests complete, I have now a small test-bed to continue working. The setup has the control board with LCD, 2 encoders (+ push switch) and 3 LEDs. All is powered from the power board aux supply…
In this presentation from GrrCON 2014, author Dr. Phil Polstra discusses how to develop your own Linux distro. Phil has assembled his distro known as The Deck which is useful on the Beagleboard and Beaglebone Black boards.
Continue reading →
MAXIM’s power solution for Xilinx’ FPGAs. App note here (PDF!)
Field-programmable gate arrays (FPGAs) are used in a wide variety of applications and end markets, including digital signal processing, medical imaging, and high-performance computing. This application note outlines the issues related to powering FPGAs.
We go through a lot of prototype PCBs, and end up with lots of extras that we’ll never use. Every Sunday we give away a few PCBs from one of our past or future projects, or a related prototype. Our PCBs are made through Seeed Studio’s Fusion board service. This week two random commenters will get a coupon code for the free PCB drawer tomorrow morning. Pick your own PCB. You get unlimited free PCBs now – finish one and we’ll send you another! Don’t forget there’s free PCBs three times every week:
- Tweet-a-PCB Tuesday. Follow us and get boards in 144 characters or less
- Facebook PCB Friday. Free PCBs while you wait for the weekend
- Free PCB Sunday, right here on the blog
- Check out how we mail PCBs worldwide
A power supply design app note from MAXIM.
This article outlines power, ground PCB, and system layout hints and kinks. It includes an overview of using power, ground star points, and multifrequency power decoupling. It also shows how to control the component placement to minimize the size of the high-current switching loop.
An app note on Gamma-photon radiation detector (PDF!) by Maxim:
A PIN photodiode, four low-noise op amps and a comparator are used to detect individual photons of gamma radiation. The schematic, design considerations and component selection are discussed.
An old but interesting app note (PDF!) from Linear on high speed amplifier techniques:
Most monolithic amplifiers have been relatively slow
devices. Wideband operation has been the province o
discrete and hybrid technologies. Some fast monolithic
amplifiers have been available, but the exotic and expensive
processing required has inflated costs, precluding
widespread acceptance. Additionally, many of the previous
monolithic designs were incapable of high precision and
prone to oscillation or untoward dynamics, making them
Recent processing and design advances have made inex-
pensive, precision wideband amplifiers practical. Figure 1
lists some amplifiers, along with a summary of their
characteristics. Reviewing this information reveals ex-
traordinarily wideband devices, with surprisingly good DC
characteristics. All of these amplifiers utilize standard op
amp architecture, except the LT1223 and LT1228, which
are so-called current mode feedback types (see Appendix
H, “About Current Mode Feedback”). It is clear that the raw
speed capabilities of these devices, combined with their
inherent flexibility as op amps, permit a wide range o
applications. What is required of the user is a familiarity
with the devices and respect for the requirements of high
Bus Pirate smart card shield by Yaehob:
Tired of playing with wires, breadboard and so on to interface synchronous smart cards with bus pirate, I made a kind of shield. Thank you Arduino for teaching me this way of thinking :-)
Bill of materials
- 1x breadboard solder
- 1x smart card socket (e.g. this one, this one, or ebay : here and here)
- 1x female header [2X5]
- 3x pull-up resistors [2kΩ-10kΩ] (I added a piece of wire to connect them, or not)