A look at a cheap USBtinyISP board

On my most recent revisions of my breakout boards for the Atmega328p and Attiny85, I added a 6-pin ISP header. ISP stands for In System Programming, which, as the name suggests, means that the header is used to program the microcontroller as it sits in a circuit, which is especially handy for boards without a way to plug directly into your computer’s USB port or a board with a surface-mount microcontroller.

I’ve never actually used these headers since I was used to using my Arduino Uno to program the microcontroller for both of my breakout boards. To make sure I could add the 6-pin ISP header to the boards correctly, I read up on it from different sources to understand how to make the connections.

attiny85pinoutisp

On the pinout of the microcontrollers, there are pins labelled SCK, MISO, and MOSI. These are three of the six pins of the 6-pin ISP header. The other three pins on the header are pins we all know well: Reset, Vcc, and Ground. The asterisk on my boards signify the first pin of the ISP header, which should be the MISO pin. The illustration of mine uses the pinout image in the Attiny datasheet where the six pins are underlined. I also drew up a simple diagram of the header pinout.

I received a cheap USBtinyISP board from China which took quite a while to get here. Thankfully it didn’t take much longer to get up and running.
IMG_20150704_125604The board came with a 6-pin ribbon cable and a USB cable. The USB cable is so short that it’s virtually unusable since the cable isn’t long enough to get the board to my desk from my computer. Thankfully, I have a longer cable I can use instead.

The first thing I did was to check the pinout of the cable so I don’t plug it in the wrong way on my boards. The easiest way the figure out the orientation of the header is to find Vcc and Ground with a multimeter, where you should see 5v across. It’s a 50/50 chance… so of course I got it wrong the first time as I saw the voltage reading fluctuate in the mV range.

Once I got the orientation of the connector right, I plugged it into one of my boards. I marked the first pin with a little sticker, as shown in the picture above.

Surprisingly, the Adafruit USBtinyISP drivers works with this board. I opened up Device Manager and updated the drivers with their files. The seller of this board had their own hosted driver files, though some poking around showed it was just the Adafruit drivers anyway.

IMG_20150704_124751First up was my Attiny85 Breakout Board. It’s not meant to fit into these half-sized breadboards but bending the power pins a little bit got it in. (If you bought one of these boards, don’t do this. This is a test unit, after all.)

I was able to upload the blink sketch directly from the Arduino IDE, with the Attiny85 settings and setting the programmer to “USBtinyISP “. The timing of the blink sketch was weird the first time I tried it, which made me realize I must have previously burnt the bootloader to use the 8MHz internal clock instead of the default 1MHz. I decided to try burning the bootloader so it would go back to using the 1Mhz clock. The USBtinyISP was able to do it and the sketch ran perfectly.IMG_20150704_124905Now for the Atmega328p Breakout Board. To upload through the USBtinyISP and the Arduino IDE, I can’t just click Upload like I did with the Attiny85 board. I have to hold shift when I click the Upload button to Upload Using Programmer. This is supposed to upload the sketch to the microcontroller without needing a bootloader. Once I upload a sketch with the USBtinyISP, I can’t upload a sketch if I place it in an Arduino Uno, so I guess that uploading with a programmer erases the bootloader…? To be able to use the microcontroller on an Arduino Uno again, I have to burn the bootloader with the USBtinyISP board. It’s not a big deal, but it’s something I have to remember to do so I don’t get confused why things aren’t working later on.

So with the FTDI and USBtinyISP programming tools at my disposal, I’m very excited to get the next revision of my Atmega328p Breakout Boards as they have headers for both devices. Stay tuned for news on that! Thanks for reading!

Attiny85 Programmer/Breakout Rev B3 Preview

Let’s go back to basics, shall we?preview1_frontI decided to throw out the whole breakaway section idea. It complicated things and there’s always the chance of a bad break. I put everything back on one board, which is now down to a 3x3cm footprint, 38% smaller than Rev A. The space savings come from less silkscreen text (removed the word “Pin” for the pin numbers) and using SMD components for the power LED indicator and resistor. I would have gone with an SMD capacitor but it costs more than the usual through-hole electrolytic capacitor, at least from where I get my components for these boards. With the price appearing to go up to get these boards manufactured, I’m looking for savings.

preview1_backAnother thing that changed with this sub-revision is that all of the pads are circles and are bigger than they have been on previous boards. They were kind of a pain to solder because any circular pads were really thin. I’m still working out the right size but I’m happy that I know  out how to address that issue now.

To date, the Attiny85 board was my most “Watched” item on eBay so I take that as an indicator of interest for this kind of thing so I’m set on getting these made. Being 3x3cm, I can’t fit two on one 5x5cm board which is what I have to work with to get manufactured. I’ll probably do something simple with the rest of the space but I want to nail down this one first. Thanks for reading!

Attiny85 Programmer/Breakout RevB2 Preview

A little while ago, I posted about some updates to my Attiny85 Programmer & Breakout PCB that showed off a new design with a breakaway Programming section of the board. I threw that out and started over again. There’s still some work to be done but I wanted to show where I’m going with this.

render_frontThis is a render of what the board looks like. The program I use to render places the design on a rectangle so keep in mind that the purple outline would be the edges of the board.

The Power In and Attiny85 have swapped places. I’m going with an SMT LED and resistor for the power indicator to open up some more room on the board (labels are in the design, won’t be printed on the board).

The board is designed so that the Program section would be broken off once you’re ready to use the the board as a breakout. What if you realize later on that there’s something wrong in your code? You could connect up your Uno using the Breakout section, but you’d still need another capacitor for the reset pin on the Uno, and this kind of defeats the purpose of the board. I’m working on an experimental idea to make it easier. The pads next to the Power In area is a temporary programming area where you’d connect the Program section. The problem is making the connections. You can’t really connect the Program section back directly using headers because then you have no way of making another set of connections to the Uno. The best way would be to make the connections on a breadboard. It’s not ideal, but it’s still easier than looking up which pins of the Attiny85 go where on the Uno.

render_backI’ll put a URL to an updated manual on the board again. I still want to get some instructions on the board with the space I have but the small size of the board makes it difficult to put anything really specific. I’m on the fence on whether the text on the Program side will stay (the lines it’s referring to are on the top side of the board, I need to add lines on the bottom side too).

I’ve been making an effort to getting the sizing of text (and traces) right since I made the text on my AMS1117 board a bit too small.  I use mm to design my board, but a lot of help resources and parts of Eagle use mils. I made a table of conversions between mils and mm. I put it up for download as a Word document and pdf in case you’re interested. I got the table from here but formatted it to print.schematicI redid the schematic, chopping it up into sections and adding labels. Everything was directly connected to each other in the first schematic. It was messy, but not having things directly connected to each other does worry me in case something isn’t connected properly. I’m constantly checking connections and working on the other details of the board I talked about above so I’m taking my time. There were people watching the Attiny85 Programmer and Breakout Rev A board on eBay so hopefully that means there is some legitimate interest in these boards. I would like to get them manufactured.

Just a note for people who are Googling around for the warning, “Segment of net [name] has no visual connection”, I deleted the label of that net and placed a new one to clear the error. I couldn’t find much help when I was searching around so hopefully people land here if they run into the same warning.

Anyways, thanks for reading!

Attiny85 Programmer/Breakout Rev B – Negasilk Test

2I finally got the negasilk ULP working properly, thanks to this YouTube video. This is still somewhat of a mockup and a test to see how things should be laid out. I like the look of the bolder labels with the inverted text.

The thing that’s bugging me is the consistency of the label directions. It’s fine that the Program label is different since that part of the board will eventually become separated. I’m not sure how to add the label for the Power In or the microcontroller, and then there’s the resistor and LED that don’t really deserve a label, though it could probably file under Power In. Again, it’s just a mockup so things will probably be moving around. I’ll eventually figure it out.

Thanks for visiting!

The Attiny85 Programmer & Breakout Board Rev A is available on eBay!

Attiny85 PCB Rev B Preview

Moving along with some revisions to my first two PCB designs, I’m working on some changes to the Attiny85 programmer & breakout board. The following is sort of a mock up as I’m just trying to figure out the form of the board right now.

1So the first thing that you’ll notice is that it’s not a square. It has rounded corners this time! But really, the form of the board has changed a lot. I want to design it so that you can break off the programming area when you’re ready to use the board in your project. The benefit to that is the breakout takes up less space in your project… and it’s kind of neat, IMO.

Something else I did new this time is that this board is actually completely manually routed. I’ve relied mostly on the autorouter up to this point. The Design Rule Check isn’t coming up with any errors so that’s positive.

Some parts should be coming in any day now that will let me assemble and sell the first version of the Attiny85 Programmer & Breakout on eBay, along with the other things I’m currently selling. People buying them will show me how much interest there is in this kind of thing. I really like this design I’m going for so hopefully there’s enough interest to get the new version manufactured when it’s ready (Rev A buyers may get a discount). Stay tuned! Thanks for visiting!

Attiny85 Programmer & Breakout board GIVEAWAY!

pcb_bareWhen I made the post celebrating the blog’s first birthday, I originally wanted to do this giveaway but I didn’t have the boards yet. Now that I have them and they work, I am giving one away!

The prize is just for the Attiny85 Programmer/Breakout PCB; No components are included. This is mostly a test to see if I can mail a bare PCB in the cheapest way (letter mail). I believe it should work. Either way, you have nothing to lose!

Enter now!