LED matrices and MAX7219 ic’s

A 10 60mmx60mm Led matrices controlled by an ATmega328 + 10 MAX7219 ic’s from Bajdi Electronics:

Made a big LED matrix this week using 10 60mmx60mm LED matrices. I designed the PCB’s myself and had them made in China. Every PCB has a MAX7219 and a header to plug the LED matrix in. The 10 PCB’s are connected together using jumpers. Writing code for the MAX7219 is really easy thanks to the fantastic Parola Arduino library.

DIRTY TUESDAY: Adventures in SQL with stats and stuff

stencil-week

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.

One of the current HAXLR8R groups is designing a desktop PCB printer and asked for DirtyPCB stats to better understand the market. This Dirty Tuesday we break out PHPMYADMIN and pulled out a bunch of mostly meaningless but still grok-worthy stats. These apply to shipped, 2 layer board orders only.

SELECT count(*), `stencil` as v FROM `pcbs` WHERE `status` =’Shipped’ OR `status`=’Trackable’ GROUP BY v

A paltry 5% of orders want a steel stencil. Most want a simple steel stencil (4.9%), though a few manufacturers do buy our dirt cheap framed stencil as they are 4-10x cheaper than many other options.

SELECT DAYNAME(timestamp) day_of_week, count(*) order_count FROM `pcbs` WHERE `status`=’Shipped’ OR `status`=’Trackable’ GROUP BY day_of_week ORDER BY DAYOFWEEK(timestamp)

Are you working through the weekend? Monday is the most popular time to submit boards. In fact more than twice as many boards roll in Monday than on Saturday.

colorsize

When all PCB colors are free, most people abandon boring green boards. Red is the favorite (32%), though also the default setting. Black boards, we hate then because it’s hard to see the traces and ground fill when building and debugging, are a full quarter of our orders. Blue comes in a strong third (18%). Least loved are yellow boards (6%).

“Protopacks” have 8-12 copies of a PCB, and come in two sizes. A 5x5cm protopack is for any PCB with maximum 5x5cm dimensions. A 10x10cm protopack is for any PCB with maximum 10x10cm dimensions. It’s a roughly even split between protopack sizes purchased. Around 6% of boards are a custom size, usually larger than 10cm in one dimension.

thick-coat

DirtyPCBs has a range of board thicknesses, all but 2.0mm are free. 1.6mm, bog standard, is still the favorite of most. 1.2mm comes in second, likely because it’s the default setting intended to shed weight and lower delivery costs.

ENIG, a high quality gold-based surface coating, is lovely to work with. We think surface mount components are way easier and more fun to solder on an ENIG board. Unfortunately it’s also an expensive addition for a small batch so only 3% have requested.

Most of these stats are only a curiosity, but a few things stand out. Color matters. Given the choice, most people don’t want a plain green board. Also, the time invested to add tons of options: ENIG, stencils, different thicknesses, and larger sizes had only minor returns. It took weeks to revamp the code, but the extra features only capture a few corner cases. That’s time that could have been spent improving other parts of the site.

The D programming language

If you’re into learning programming languages, you may what to check out a new programming language known as D. What is D? According to the developer’s website

D is a general purpose systems and applications programming language. It is a high level language, but retains the ability to write high performance code and interface directly with the operating system API’s and with hardware. D is well suited to writing medium to large scale million line programs with teams of developers. D is easy to learn, provides many capabilities to aid the programmer, and is well suited to aggressive compiler optimization technology.

D is not a scripting language, nor an interpreted language. It doesn’t come with a VM, a religion, or an overriding philosophy. It’s a practical language for practical programmers who need to get the job done quickly, reliably, and leave behind maintainable, easy to understand code.

A massive (743 page PDF) manual on the D programming language is available for free download from Dlang.org.

Keithley 197 battery option build

BATOption

Kerry Wong blogged about his Keithley 197 battery option build:

I have been quite happy with my fixed-up Keithley 197 5 ½ digit bench meter purchased from eBay (you can find the teardown pictures here) earlier this year. Keithley 197 has a battery pack option (Model 1978), and this option allows it to run on battery power for 5 hours without having to plug into the mains. While it is far from being a truly portable meter, its performance easily surpasses most hand-held multimeters. So I decided to build the battery option myself and hopefully I would be able to use the meter more often in places where power outlets are not available.

Free PCB Sunday: Pick your PCB

buspiratev383

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:

Continue reading “Free PCB Sunday: Pick your PCB”

App note: Self-starting can be hard to do – Understanding power-on-reset requirements in regulators and bandgaps

ap_maxim_an11593

Things should be set-up properly before putting all load back again. Here’s a tip(PDF) from MAXIM on self-powering/recovering from power loss.

Self-starting is a necessary but sometimes difficult task, whether it is motivating humans, starting cold automobiles, or providing power-on-reset (POR) for ICs. PORs ensure systems start in known and safe states. This app note will discuss several misapplications of this technology and how designers can avoid startup problems.

App note: How to design in and program the PCA9641 I2C arbiter

ap_nxp_an11593

I2C arbiter chip application(PDF) from NXP.

The PCA9641 is highly integrated and smart design for 2-1 I2C-bus multiplexer. It is used in a system that needs two masters sharing the same slave devices. The internal switch is programmed by the masters but it will not switch in a middle of the task once owned by the master. The PCA9641 sends an interrupt to the master requesting the bus when the downstream bus is available. If the down-stream bus is hung, the initial/recovery function clears the downstream bus and sends status to both masters. Low voltage I2C masters can communicate with higher voltage level of slave devices.

App note: Level shifting techniques in I2C-bus design

app2

Level shifting techniques in I2C-bus design from NXP, app note here (PDF):

Logic level shifting may be required when interfacing legacy devices with newer devices that use a smaller geometry process.For bidirectional bus systems like the I2C-bus, such a level shifter must also be bidirectional, without the need of a direction control signal. The simplest way to solve this problem is by connecting a discrete MOS-FET to each bus line.

How-to install open source USBasp and USBtiny drivers on Windows

zadig_srceenshot
Ray writes with this technique for installing open source drivers on Windows.

I came across a surprisingly simple approach to installing USBasp and USBtiny drivers for all versions of Windows — XP, 7, 8, 8.1, whether 32-bit or 64-bit, all inclusive! As you may know, installing open-source drivers such as USBasp and USBtiny have been a great pain on some of the recent Windows OS, due to the enforcement of signed drivers. The typical solution involves rebooting Windows into a mode that disables driver signature enforcement. This can be a huge source of frustration.

While searching for ‘fully signed USBasp driver’, I came across this tool called Zadig, which can be used to install libusb drivers on all versions of Windows, and it’s digitally signed. Since USBasp and USBtiny are both based on libusb, it worked really well — I was able to install both drivers on Windows XP, 7 (32-bit and 64-bit), 8, and 8.1 instantly, without messing with driver signature enforcement at all. I was mostly surprised such a great solution wasn’t documented more widely online.

Details and links can be found in the post at RaysHobby.

Via the contact form.

App note: Using the USI module as a I2 C master

app1

This application note (PDF) from Atmel describes the implementation of a TWI master:

The Two-wire serial Interface (TWI) is compatible with Philips’ I2C protocol. The bus was developed to allow simple, robust and cost effective communication between integrated circuits in electronics. The strengths of the TWI bus includes the capability of addressing up to 128 devices on the same bus, arbitration, and the possibility to have multiple masters on the bus.
The Universal Serial Interface (USI) module on devices like Atmel ATmega169, ATtiny26, and ATtiny2313 has a dedicated Two-wire mode. The USI provides the basic hardware resources needed for synchronous serial communication. Combined with a minimum of control software, the USI allows higher transfer rates and uses less code space than solutions based on software only.  This application note describes a TWI master implementation, in form of a full featured driver and an example of usage for this driver. The driver handles transmission according to both Standard mode (<100kbps) and Fast mode (<400kbps).

A script to dump an Atmel AT45DB041B 4Mbit SPI Flash part’s contents to disk using a Bus Pirate

cPjxWIb-600

‏@tyler_oderkirk tweeted,  “wrote a tool to dump a AT45DB041B flash chip w/ python & Bus Pirate

Available on Github.

Get an assembled Bus Pirate for $30, including world-wide shipping. Also available from our friendly distributors.

 

Free PCB coupon via Facebook to 2 random commenters

KHOS-2-3-4-5-6P-600x400

Every Friday we give away some extra PCBs via Facebook. This post was announced on Facebook, and on Monday we’ll send coupon codes to two random commenters. More PCBs via Twitter on Tuesday and the blog every Sunday.

Don’t forget there’s free PCBs three times every week:

Continue reading “Free PCB coupon via Facebook to 2 random commenters”

5W stereo audio amplifier

5W_Stereo_Pic

Another project from Rajkumar Sharma of Electronics Lab a 5W Stereo Audio amplifier based on BA5406:

5W Stereo Audio Amplifier project based on BA5406 IC which is suitable for application like stereo radio cassette player, stereo components systems etc.
The Heart of the project, BA5406 is a dual OTL monolithic power IC with two built-in, high output speaker amplifier circuits. High output of 5W×2 can be produced when VCC=12 V and RL=3Ω, and 2.8 W×2 when VCC=9V and RL=3Ω. The BA5406, which uses a high allowable power dissipation package, has a simple heat-sink design.

Week in (p)review October 31, 2014

IMG_20140507_141017-W600

Here’s a summary of major developments over the last week. Free PCB Friday is coming up soon.

Coming up:

  • Free PCBs via Facebook on Friday
  • App notes on the weekend
  • Free PCB Sunday
  • Free PCBs via Twitter on Tuesday
  • Weekly roundup and preview every Friday

ArTICL: Arduino TI Calculator Linking Library

articl_leds

KermMartian over at Cemetech writes:

The ArTICL library (pronounced “article”) lets Arduino programs send and receive TI link protocol-formatted packets at a low level. In addition, it includes a CBL2 class that lets the calculator emulate either a CBL2 device or a calculator speaking the CBL2 protocol (thanks to Cemetech member CVSoft for helping to make this possible). This means that you can use the Send() and Get() commands on your graphing calculator to control the Arduino, including turning LEDs and motors on and off, reading the state of buttons and switches, and performing measurements with sensors. You could even use the ArTICL library to control a Norland Research robot with an Arduino.

Check out the video after the break. Continue reading “ArTICL: Arduino TI Calculator Linking Library”

DS3231 RTC control and theory with the Bus Pirate

B1KhUwBCEAAiTPa-600

@omwah tweeted, “Article I wrote on controlling the Maxim DS3231 RTC with the Bus Pirate

The Maxim DS3231 is an accurate, yet relatively expensive real time clock (RTC). It has an integrated temperature compensated crystal and communicates over I2C.

Get an assembled Bus Pirate for $30, including world-wide shipping. Also available from our friendly distributors.

Modification of the Lexmark E260 for direct laser printing of printed circuit boards – MCU version

FBS5OK4HZN0SSTG.LARGE-600

mlerman writes:

After trying several brands and models of laser printer, the printer I have settled on is the Lexmark E260. I use it because:

1 – It has an excellent Local Printer Utility that allows almost every printing parameter to be adjusted.
2 – It is readily and reasonably available on Ebay or Craig’s List. I paid $45 for each of the last two I bought on Ebay, including shipping.
3 – The drum is separate from the toner cartridge and is relatively inexpensive (<$30), so it can be replaced if it does become damaged.
4 – The printer has a manual feed slot in front so the paper path can be “flattened” with reasonable effort to pass PCBs.
5 – The charge on the drum seems to provide for essentially perfect transfer of toner to grounded metal sheets.

Complete step-by-step instructions here.

 

Portable bluetooth-enabled scrolling LED matrix display

Appcontrol

An open-source cascadable 8×8 LED matrix module using Arduino and MAX7219 from Embedded Lab:

Easy Matrix is a cascadable 8×8 LED matrix module with the MAX7219 chip on board, which allows to control the display with only 3 I/O pins from microcontroller. Multiple Easy Matrix modules can be easily cascaded to make a bigger-size display through precisely aligned male and female headers on opposite sides of the display. It is compatible with Mark Ruys’ Max72xxPanel (Adafruit’s GFX library is also required) and MaxMatrix libraries for Arduino platform.

This project is available on Tindie.

Check out the video after the break.

Continue reading “Portable bluetooth-enabled scrolling LED matrix display”