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.


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!

NCP1117 Board Load Test (Part 2)

In my last post, I tested my NCP1117 5v voltage regulator board with a couple of power resistors. In those tests, I used a wall plug rated at 9v 1A. Since then, I received a new variable power supply which I used to see how different voltages and currents would affect the regulator board.
IMG_20150704_181821For these tests, I stuck with the 5-ohm resistor. I set up the power supply to 9v and “unlimited” current so that the board would draw whatever it wanted. It drew roughly 890mA, read at both the input and output of the board. (The multimeter is measuring the output current.) Unlike the previous experiments, the regulator was able to stay steady for the three or so minutes I left it going. Even though it was able to stay on, the board becomes too hot to handle with bare hands. The current seemed to hit a ceiling at 890mA. Going any higher than 9.5v would cause the regulator to quickly hit its thermal limit and the current would start dropping rapidly. I suspect the wall power supply is slightly higher than 9v printed on it which is why it did the same in my tests with that.



To calculate the power dissipation that the regulator is dealing with:

Power (P) = Voltage (V) * Current (I)

P = (9v – 5v) * 0.890A

P = 3.560W

From the datasheet, the thermal resistors junction-to-ambient, RθJA, and junction-to-case, RθJC, is 67°C/W and 6°C/W, respectively. Together, it’s 73°C/W, which can tell us how hot the regulator should get:

73°C/W * 3.560W = 259.88°C

Yeah… It needs a heatsink, though the current design doesn’t really allow for a proper one that screws into the circuit board.

I’ve used a similar board that uses the AMS1117 regulator on many projects that were running 24/7 for months. I noticed that the regulator did get very warm but I wouldn’t really call it alarmingly hot as this board was during these tests. I didn’t have the bench power supply by then and I didn’t do any current measurements (doh!), but I can estimate that none of those projects ever pulled more than 200mA from the regulator board. They’ll still be good for those types of projects where I can’t get an already regulated wall power supply. However, I was also using them for prototyping but, now that I have the variable bench power supply, I won’t be using them for that anymore.

I hope these experiments were interesting to you. Thanks for reading!

NCP1117 Board Load Test (Part 1)

I’ve always wanted to push my voltage regulator board to its limits. The easiest way I figure is to get some low value power resistors to draw “high” amounts of current from the regulator board. I happened to pass by a local electronics supplies store today so I picked up a couple of power resistors, as well as some test leads and a flush wire cutter.

As a side note, I was actually looking for some test leads that have that wire hook thing but they didn’t have any that I liked. I didn’t own any test cables so I’m glad I picked up these alligator-to-alligator test cables. They were an impulse buy on the way to the cash register, where the cashier commented that he personally liked them. They are actually quite nice, though I find them a bit slippery when trying to squeeze open the clips.

Anyways, lets look at how the test went.IMG_20150628_163532 (1)It was a pretty simple setup, especially with the help of my new test leads. I connected the resistor between the +5v and ground output terminals of the regulator board. I had my multimeter in series with the resistor to measure the current. I used a 9v power supply to power the board.

One of the resistors is a 5-ohm 22-watt resistor. It pulled 880mA from the board. The other resistor, which is connected in the picture above, is a 6.8-ohm 5-watt resistor. It pulled 650mA from the board. Both tests caused the thermal overload protection to kick in. In under 15 seconds with both loads, I could hear a buzzing noise coming from the board and see that the current was dropping. The current dropped rapidly to about 350mA where it slowed its pace dropping down, about a mA per second. I didn’t want to leave it for too long so I pulled the plug around this point.

Blowing on the board to attempt to cool it off brought the current back up. I always thought that the thermal overload protection would act like a switch where you’d get no current at all from it, but it looks as though it doesn’t work quite like that.

Linear voltage regulators can be trickier than they seem, at least if you plan on pulling good amounts of current from one. It’s a good idea to expect that your linear regulator will get hot (that’s how they work anyway, it’s sometimes hard to appreciate it with low current projects producing negligible heat) so consider heat sinks and ventilation.

To update those who actually follow along with new posts, I got a job earlier this month (not electronics related, unfortunately). While I don’t have as much time as I did before to work on my projects, the income does allow me to buy more things for my experiments. Coming in next week is a new bench power supply which should make this load test experiment more interesting with different input voltages and current readings from the source power supply. I’m excited.

I also updated my Atmega328p Breakout Board and am waiting for those PCBs.

I hope I can start posting more again as I adjust to things. Stay tuned and thanks for reading!

Something new for my toolbox: FTDI Basic

IMG_0001smI decided to pick up an FTDI board so that I can explore a new way to program the Atmega328p, specifically to see first-hand that it works so I can implement an FTDI header in the next Atmega328p Breakout Board. The FTDI Basic is a Sparkfun board, though I purchased it from RobotShop because they can ship within Canada.

I believe the one feature that sets it apart from the USBtinyISP (what you use those 6-pin ISP headers with on the Arduino, etc) is that enables you to do serial communication. This makes it a lot better for prototyping since you can debug using the serial monitor.

The original purpose of the Breakout Board was to take over from your Uno once you are finished prototyping… not really to use it to prototype. Technically speaking, there’s nothing wrong with prototyping on the Breakout Board, but it’s not currently breadboard-friendly and it only got a programming header (ISP) in the last revision. It sounds like an excuse, and it is, but to keep the board small while keeping the pins in order, it’s hard to organize the traces in the restricted amount of space to make the board breadboard-friendly. It’s a learning process with each board and revision so I hope I have learned enough to make it happen with the next one!
IMG_0001smAnyways, in short, the FTDI Basic works perfectly. I tested it with this Atmega328p setup on a breadboard. After installing the FTDI drivers, I was able to upload new sketches and print things to the serial monitor.

The one odd thing is that I had the understanding that to upload using the FTDI board, I had to hold shift while clicking Upload in the Arduino IDE, which changes it to “Uploading Using a Programmer”. That didn’t work. After a few searches, it turns out that changing the Programmer in the IDE to “Arduino as ISP” does the trick.

Getting up and running with the FTDI Basic so quickly makes me eager to get it into the next Atmega328p Breakout Board. I’m on the fence about keeping the 6-pin ISP header since you have more functionality from the FTDI chip (serial communication). I’d like to keep both, but if I can’t fit both on the small board, the 6-pin ISP header would be the one to go. Stay tuned!

Updating the regulator

I don’t have a bench power supply so I rely on wall plugs that already regulate the voltage level, sometimes combining it with a regulator circuit/IC to drop it even further. In the beginning, I used to whip up a classic 7805 circuit on a breadboard. These days, I’ve been using a low drop out regulator circuit on a custom PCB. I’ve been using my AMS1117 regulator board for a long time now in projects and prototype testing on a regular basis. It’s clunky and one of my first PCB projects ever. It’s about time it got an update.

IMG_0001It’s been a design I was sitting on for a while. It uses all surface mount components, which I picked up in my last Digikey order and had laying around for a while.

IMG_0002Instead of the AMS1117 regulator, the new board uses an NCP1117 regulator, although the actual IC says RBK117 for some reason. My initial test impressed me as I got a perfect 5.00v on my multimeter. The AMS1117 regulator would usually measure to be +-20mV from 5v. It may end up varying with age but in any case I’m happy that it works. I dropped the 3.3v regulator since I never really used it, except for in the ESP8266 project.

I’m very excited to start using this smaller, neater looking board regularly. I still have a bunch of those bulking AMS1117 boards so I’m not really sure what to do with them now…

Out in the open (Open-source stuff)

My ATmega328p Breakout Board is now open-source! You can get the Eagle files on GitHub.

I will be throwing up more of my PCB designs on GitHub soon too.

I just wanted to leave a quick note that a new through-hole version of the ATmega328p Breakout Board is coming out very soon on Tindie (parts for it will be here next week!). My hope is that this version will be more accommodating to the majority because I know there are those who don’t like surface-mount soldering.

What’s going on?

Things have been fairly quiet in my “workshop”. There’s some things slowly going, but mostly I’m just sitting around waiting. Here’s what’s going on.


My favorite website project has come online again! Check out Canada’s Wonderland Facts!

The website was last online in 2012. Since then, PHP and MySQL has changed so I spent a full day updating the code. Now, I’m just sort of catching up by updating and adding more content. There are still some functionality changes that I want to make eventually. I’ll probably get more motivation to do it as we move into the Wonderland season, which just began yesterday. I’m considering getting a domain name but I don’t want to buy one if I’m just going to give up on the website like I’ve done in the past. We’ll see how things roll.


I’ve got new PCBs being manufactured right now! I’ve gone back to basics with the ATmega328p Breakout Board with nothing but the breakout pins and only using through-hole components. I think these changes will make most makers more interested in it because it’ll be easier to assemble since the original had surface-mount components, and more components in total compared to this upcoming one.

I also put in another design to get manufactured that’s mostly for my own use. There’s some breakouts for 0805 and SOT-223 surface-mount components. I also finished a new voltage regulator design that uses the NCP1117 low-dropout regulator. I had ordered a small set of components for that board in my last Digikey order. I also have some AMS1117 regulators in hand, which is the reason for those 0805 and SOT-223 breakouts. I’m not quite sure if I will put those regulator boards up for sale but I like to use them in my own projects with 9v batteries.

None of my eBay orders have arrived just yet. To recap, some of the items coming in are for an update to the Light Show Project. I’m especially excited to try using WS2812 RGB LEDs for the first time. I can’t wait!

So that’s it for now. Thanks a lot for visiting! Good luck in all of your experiments and projects!