Search for breakout in Topics


DIY DS Lite breakout board

Does anyone think it would be possible to make a ds breakout board as the schematic is extremely simple as shown here: https://www.sparkfun.com/datasheets/BreakoutBoards/DS_Touch_connector_breakout.pdf I want to make something quite quickly and had a broken ds lying around as was wondering if this was possible... Also does anyone else have any ideas of what i could make? Thanks Make-O-Saurus

Topic by makeosaurus    |  last reply


connecting a breakout board to a strip board

Hi.  A basic question; I need to connect a breakout board to a strip board. What is the best method?  PCB Latch plug header? I have tried putting a wire through the strip board, through the breakout board and then soldering into place, but I do not get good connectivity.  Any help is much appreciated.

Topic by NathanDavey    |  last reply


Thinking of organizing an online site with various breakout boards. Would people be interested?

Hi everyone, I have been thinking of starting up a website with a variety of breakout boards available. What I'm talking about is basically small PCBs with pins, where you just solder a chip on, and have all the pinouts available to connect things to. You know, regular breakout boards. Variety of chip footprints (tiny ones, big ones, through holes, surface mount). You could buy pin headers as well, or just buy the plane board. Would you personally see use in something like that? Since it would be breakout boards, shipping would be cheap (they're just flat and could go in an envelope). How much would you (if you were to use this type of service) would be willing to pay per board? Thanks a lot, Catsunami :3

Topic by Catsunami  


What are the pins called that you use to break out of a board?

I plan on buying a board that does not have breakout pins. Instead of just soldering wires right onto it I wanted to solder on my own pin headers. What are the pins called to buy them as individual items? I have only found them bundled with stuff. Granted I haven't searched long and hard, but I'm at work and I can't :( I'm gather supplies and brainstorming my CNC project.

Topic by Phoenix17    |  last reply


Lighting to USB pinout

Hello forums! I am having an issue and I desperately need help. It's easy enough to find a USB to lighting connector with the breakout already done for you on the PCB, but I can't for the life of me find the actually 9 to 4 pin diagram for conversion. Can any help me????

Topic by jfrost11    |  last reply


Help Please - Voice Recorder Breakout Board

 Can someone who has used the ISD1932 breakout board please post an explanation of how to connect it to the arduino properly. I'm finding it impossible. Three days of trying.

Topic by stuarthooper    |  last reply


What do I need to program a ATmega168 chip for use in a project? Answered

If I have an Arduino Duemilanove, what steps do I need to take to run my program without the board? What do I need to do to program it?

Question by Dandeman321    |  last reply


What does a breakout board do?(Battle Bot)

I'm building a battle bot and im looking at a schematic for the wiring and i dunno what it does. Also, if anyone has any schematics for the wiring of their own battle bot.

Question by DaNerd11    |  last reply


Midi interface using the Breakout Board for MIDI Decoder

I was wondering where it went because I cant find it anymore? I almost had all the parts.

Topic by Abbaheart  


how to get current track name using breakout shield

Hi! I am using the vs1053 breakout shield from adafruit that is hooked up to Arduino. I wanted to write an if statement that if the currentTrack name is not equal to the name i set it to then the code will restart the loop and they are not equal then it will play the song (this is so that every time the loop runs it won't replay the song if it is already playing ). Do you know how i would be able to get the name of the track that is playing using currentTrack? it is not very clear on how to use it in the library reference...also is there another easier way to do this? Thank you! if (abs(newVector - storedVector) <= SLOW_THRESHOLD) { Serial.println("MOVING SLOW!!"); trackName = "track001.mp3"; if (currentTrack==trackName) {      loop(); } else {      musicPlayer.startPlayingFile("track001.mp3") } }

Topic by jvan27    |  last reply


Building a cnc controller?

I am building a homemade cnc machine that will have an X Y1 Y2 Z and eventually a lathe. And I was wondering if I could use an 4-axis Breakout board, and just run the Y-axis to two different Divers to power the Y-axis stepper motors. If not what would be a good breakout board that is able to connect e-stop, Homing switches, router on off, and touch plate. 

Question by Rileigh Crow    |  last reply


what foods should I eat to prevent pimples ?

I never had acne until the age of 25 and since then I have been struggling with very bad and embarrassing breakouts!  I have tried so many different type of acne prone products and even proactive.  I have yet to find a solution to my embarrassing acne breakouts.  Please help. R.R  

Question by rvillafane    |  last reply


Bluetooth Arduino quad copter

I making a Bluetooth controlled Arduino quadcopter. I want some help with the code. It is using mpu6050 gy521 breakout board. Please help. I want it to auto level.

Topic by harshitsingh.111001    |  last reply


40kHz Ultrasonic Receiver Wanted

I'm looking for a breakout board, module, etc that is basically a 40kHz ultrasonic receiver, where if it detect a 40kHz signal it puts a pin high sort of thing (volume level as a PWM whatever, I just need to know when there is a 40kHz signal near by). I was thinking of using a HC-SR04 Ultrasonic Range Finder but they only receive for a very short time after the trigger pin goes high, I need it to constantly be sensing.Ideally works with a Raspberry Pi (ie 3.3 volts output, but 5v just means I add a voltage divider not a biggie)Thanks

Question by Duke Nukem  


Can I power up a 18F pic and a 16*2 LCD with Energy harvesting IC (LTC3588 breakout) ?

I want to make a heart rate sensor which is attached to a shoe. Instead of using batteries, I have thought of using LTC3588 breakout IC for my project. I use a piezo-plate to give the signal to LTC3588 IC, from that i hope to generate a current and voltage to drive my cct and the 16*2 Lcd. For Heart rate sensing, I use a IR sensor in the shoe. From the piezo plate, the foot steps can be calculated and find the distance the wearer traveled.  will this work? If u have any suggestions or any ideas or the changes that I should make, Pls don't hesitate to write. Thank You

Question by Kevindu_CK    |  last reply


Arduino Lilypad mp3 program using Arduino uno?

I have a arduino lilypad mp3 from sparkfun. I have bought a TTL UART USB programmer instead 5v FTDI breakout. It didn't work out. can we use Arduino uno as a bootloader ? 

Question by DaksithaW    |  last reply


Contest Deadline

Is there any way to ask iRobot for more time to work on the robot? I got the robot on July 26th. I ordered extra parts from iRobot; a light sensor and the breakout board, and both items are on backorder for several weeks. The contest ends August 31st. The timelines set by iRobot are not realistic, especially if they can't supply supporting parts for the robot. What can be done to mitigate the short timelines?

Topic by loubard    |  last reply


how can I transfer files from an sdcard on arduino via bluetooth to a Android phone ?

I will be using a microsd card breakout board as well as a bluetooth module. What basic steps do i have to follow like file transfer protocols or anything else to transfer a pdf/image file from the card to an android phone?

Question by sparkall    |  last reply


Which one should i use for my Project? Arduino Pro Micro Or SparkFun SAMD21 Mini Breakout?

Hello everyone, As the title, I'm just wondering which one i should choose to do my project - Arduino Pro Micro Or SparkFun SAMD21 Mini Breakout. I'm a student, and i'm going to do my own smartwatch. It only has OLED display, the pulse sensor and SMS/Wifi module inside. I've read the documents about both, it both has a small-size and low-power as i expected, but i have no experience to make sure which one is suitable for my smartwatch. If there's someone who did do the similar project before, please give me some advices. You can suggest another micro if they're better than mine. Please help me.Thanks a lot.

Topic by RooneyR1  


USB Interface Problems

I recently purchased a SparkFun iPod Breakout board http://www.sparkfun.com/commerce/product_info.php?products_id=8295I am currently trying to attach it to my computer via USB. I got a usb socket, and linked it up to the breakout, but when I plugged it into my computer the iPod begins to charge, but does not recognize it is connected to the computer. I have got the USB + to 32, USB GND to 16, USB D+ to 27 and USB D- to 25. I have checked all the connections, which are fine. I have even attached another USB cable to it (which I know works) and the same thing happens! In desperation I switched the data wires, but exactly the same thin The iPod works as normal with its original cordThe weird thing is that when I reboot the computer, the iPod recognizes the computer and goes into the 'Do Not Disconnect' screen, but as soon as the computer leaves the bios it goes back to charging. Any elite instructable members got any ideas?thanks

Topic by phib3r_0ptik    |  last reply


I have Fingerprint module from old sony laptop... Can anyone help me to get the pin breakouts ?

This fingerprint reader module is from hannstar-j  m.b. which I extracted from a old sony laptop (I dont have SN or model no).  This module has weird type of 10 pin socket connector. Can any1 tell me the pinouts for it....? I want to connect in to my new laptop via USB or PS2. I tried to connect it with same type of connector from BT module but it didn't connect. Please help....

Question by shreyask9    |  last reply


Tesla Coil Workshop

Instructables member Phenoptix put me onto a fun event this weekend - two chaps from the Extreme Electronics (Derek and Dave) website led an informal workshop on how to build a classic Tesla coil, from power supply through to topload and breakout. They also brought along a few of their toys to demonstrate what they were talking about, and I grabbed a few (shaky) videos. Thanks to Derek & Dave, it was a grand night, and thanks to the "Lone Scout" for the supply of coffee.

Topic by Kiteman  


Can gsm send mms? how to do it? what are the coding?

I need urgent help. I am doing my final year project.I want a camera capture image then save inside SD card breakout board. Then i want to send the image using gsm. Can i do it? then how? If can no, then how can i do something like this? what type of camera should i used? P.S sorry for bad english.

Question by AmiruddinL    |  last reply


Lots of electronic parts FOR SALE - super cheap!

 Hi,  I  have a surplus of electronic components left over from when I worked with my dad. We built stroller vending machines for shopping malls. some of the parts are kind of specific to vending machines (bill acceptors and coin hoppers), however some of the parts can have infinite uses in the hands of the instructables community. I will list what I have and please feel free to email me with any questions. I can send photos upon request. All  of these parts are brand new in the box. I live in the chicagoland area. You can email me at Kellensmetalart@comcast.net.  Check out my metal sculpture at Kellensmetalart.blogspot.com Coinco bill acceptor Mag50B - $60 ea. (27 available) Crouzet 30amp 50V relay - $7 ea. (330 available) Money Control coin hopper / part # 40-4600-78 - $50 ea. (26 available) Meanwell power supply (240w 48V 5A) / part # S-240-48 - $75 ea. (25 available) Idec power supply (50w 24V 2.1A) / part # PS5R-D24 21 - $40 ea. (20 available) Idec I/O (20 terminal breakout module) / part # BX1D-S20A - $8 ea. (72 available) Idec I/O (26 terminal breakout module) / part # BX1D-S26A - $10 ea. (23 available) Aromat reset counter / part # LC2H-F-DL-2KK-B   - $25 ea. (20 available) Microsmart PLC (output module) / part # FC4A-T16S3   - $45 ea. (27 available) Microsmart PLC (input module) / part # FC4A-N32B3   - $55 ea. (35 available)

Topic by KellenB    |  last reply


Playstation 2 Joystick (totally removed) connecting to Arduino UNO board...etc.

Hello all... Been working on this for a while now.  I purchased a generic playstation 2 (ps2) gaming pad, hand or controller (your preference).  I completely removed BOTH the joysticks from the unit as the native state of how they were, would not work for the project.  I DO NOT want wireless, and that first off is all I am finding online. My question is this: WHERE do I connect the SEL (My understanding is this is where the pushbutton operation of the joystick would be wired) Do I connect the SEL of the breakout board to the actual Arduino, or do I connect it to the breadboard.   To both, just give me a location as in 3 thru 13, A0 through A5, Now then, I have power, ground, left (left3), right (right3) figured out. Am I totally off my mark, I have attached my fritzing diagram as a jpg with notes to assist. For reference purposes please see these links for further info: Breakout board:  https://www.sparkfun.com/products/9110 Joysticks: https://www.sparkfun.com/products/9032 Thanks  in advance Tony

Topic by trandazzo2    |  last reply


Playstation 2 Joystick (totally removed) connecting to Arduino UNO board...etc.?

Hello all... Been working on this for a while now.  I purchased a generic playstation 2 (ps2) gaming pad, hand or controller (your preference).  I completely removed BOTH the joysticks from the unit as the native state of how they were, would not work for the project.  I DO NOT want wireless, and that first off is all I am finding online. My question is this: WHERE do I connect the SEL (My understanding is this is where the pushbutton operation of the joystick would be wired) Do I connect the SEL of the breakout board to the actual Arduino, or do I connect it to the breadboard.   To both, just give me a location as in 3 thru 13, A0 through A5, Now then, I have power, ground, left (left3), right (right3) figured out. Am I totally off my mark, I have attached my fritzing diagram as a jpg with notes to assist. For reference purposes please see these links for further info: Breakout board:  https://www.sparkfun.com/products/9110 Joysticks: https://www.sparkfun.com/products/9032 Thanks  in advance Tony

Question by trandazzo2    |  last reply


Engineer needed for custom PCB project

Seeking an engineer, experienced in creating files (Eagle .brd or a set of Gerbers) to be sent off to DorkbotPDX. We are looking to modify an existing PCB design for a 24.mmm coin cell battery PCB breakout (similar to http://www.sparkfun.com/products/10495) to work for a smaller coin cell battery. This is a contract position with a budget. Email azellaco@earthlink.net with links to examples of your previous work creating custom PCBs and a brief description of your experience.  Additional details about the project will be provided to qualified candidates. Thank you for your interest. Azellaco New York, NY

Topic by Azellaco    |  last reply


Need some help with a microphone Amp Answered

Hey everyone ! I'm trying to throw together a small audio project Using a electrolytic Mic, an amp, and a small speaker, Basically a Hearing Aid. I'm probably going to use small breakout boards (a mic pre-amp, and a power amp) then hook them up to the speaker but I would like to know if anyone has another Idea? Voltage can be 3.3-5V (Running off a Li-po) Speakers are 8-Ohm, 1.5W I'm not looking for outstanding quality, just clear enough to Easily follow a conversation. Preferably from standard components. Any Ideas? Thanks, Wired Mist

Question by Wired_Mist    |  last reply


What USB to Serial/FTDI cable/device should i buy?

I have been given a budget of 100$ for a project i'm building. for this project(which i'll probably make an instructable about) i'm going to be using a couple of Atmega328's in an arduino'ish configuration. my problem is that i'm unsure about what i should use to program them with. i need the programmer to be somewhat portable as i'll be using it in many upcoming projects. i also read something about the way the programmer resets the atmega328 should be different or something. should i buy an FTDI-cable or a FTDI basic breakout?

Question by solidacid    |  last reply


CP2101 USB to serial IC

Sparkfun makes an excellent breakout board for Silicon Laboratories' CP2101 IC. It looks like this board could be used to connect a PC to your microprocessor through a USB port without having to use a MAX232 IC to convert the TTL voltage levels to the serial port voltage levels and then a USB to serial converter. Drivers are available so the PC sees the CP2101 as a COM port so hyper-terminal could be used to communicate with the microP. The 'S' in USB stands for serial, it should would be nice to connect a PC to a microP using only one piece of hardware. Am I right about the CP2101 providing this ability?Any opinions would be appreciated.

Topic by nolte919    |  last reply


Can the CP2101 USB to serial IC be used to connect a microP directly to a PC without an RS232 port and a MAX232 IC?

Sparkfun makes an excellent breakout board for Silicon Laboratories' CP2101 IC. It looks like this board could be used to connect a PC to your microprocessor through a USB port without having to use a MAX232 IC to convert the TTL voltage levels to the serial port voltage levels and then a USB to serial converter. Drivers are available so the PC sees the CP2101 as a COM port so hyper-terminal could be used to communicate with the microP. The 'S' in USB stands for serial, it should would be nice to connect a PC to a microP using only one piece of hardware. Am I right about the CP2101 providing this ability?

Question by nolte919    |  last reply


help please. I have just built a small cnc machine frame. this for an engraving machine

This is a small machine for engraving pens and tool/cutlery handles . It has a z axis to raise and lower the tool/cutter. the z axis tranverses in the usual manner. The third axis is ratary spinning the workpieces. I need good accurancy so what is best in terms of motors I have many motors liberated from printers scanners etc and access to new motors at reasonable price including 200 and 400 step per rotation . Is an arduino suitable for this or should i go for more mainstream breakout driver boards? I have mach3 Cad std Inkscape image to cad  etc

Question by trapper23    |  last reply


Arduino and Accelerometer ADXL335 help

So I'm a complete amateur when it comes to electronics so you'll have to bare with me. What I am looking to do is create a brake light for my bicycle that's a little bit different and can help me learn some bits about arduinos and electronics for future projects. I am looking to make it so that the light lights up in a similar way to that of how they show the brake force on an F1 car with more LEDs lighting as you decelerate faster. I have an arduino UNO and an ADXL335 accelerometer on a breakout board. I just mainly need help writing the code or even just the basics if someone was willing to help out it would be greatly appreciated. Thanks for your time and any help you can give in advance Regards, CraigLewis

Topic by Craiglewis2812    |  last reply


Arduino MCP2515 connecting to Volkswagen

Hello, I'd like to connect an arduino with mcp2515 with my Volkswagen Golf 6, in order to look whats going on in the CAN Bus network  :) This is the MCP2515 breakout is used (chinese clone): [attachment 1] Therefore I used this script:[ https://github.com/coryjfowler/MCP_CAN_lib/blob/master/examples/CAN_receive/CAN_receive.ino I did the wiring like this one [attachment 2] After uploading the source code to my arduino nano, I got the following message: [quote]Entering Configuration Mode Successful! Setting Baudrate Successful! MCP2515 Initialized Successfully! MCP2515 Library Receive Example... [/quote] I think everything should be fine. But I didn't see any canbus message there. Which steps do I have to take, to see any message on the CAN Bus. Whats the setting for can bus communication (baud rate, oscillator mhz...)? Thanks in advance BR, Julian

Topic by julianpe    |  last reply


Pla plastics safe for electronic project boxes?

I was planning on using a replicator 2 (using pla plastic) to print out a breakout box to contain one of my projects and it occurred to me that maybe I ought to check with the crowd here for, you know, safety and stuff.   The immediate project is a modified motion sensing light, so the box will contain a board and wiring that does have US household voltage in it.  (After modding, it no longer fits in original housing. ) Do PLA  plastics have the required resistance and thermal properties to safely do this?   I was planning to print my own box so it will fit in my project much better than stock boxes. I'm not as worried about using pla project boxes on some of the lower voltage (battery) projects I'm working on. Is that a bad assumption as well? Aas always, many thanks!

Topic by oldmicah    |  last reply


9kV 50mA tesla coil NST question. Why does the circuit breaker in my home trip when i plug in my NST?

Please someone help, this is my first tesla coil project, my setup: 230VAC 50Hz input ricci 9000v 50ma NST with a built in GFI (ground fault interrupter) but i bypassed the gfi succesfully .see pics safety gap  7,5 cm diameter pvc secondary 1000 turns #24 magnetwire (0,5mm) secondary 10 turns 8mm copper pipe primary (tapped at 7 turns) saltwater capacitor 16 green beer bottles in a bucket with a capacitance of 0,0122 uF or 12,2 nF (thegeekgroup bucket cap) static spark gap 28mm diameter stainless steel spheres as electrodes with oven fan (temporary, i am building a hyperbaric gap) 10cmx27,5cm aluminum toroid topload with a brass screw as breakout point RF ground aluminum rod 1,2 meter  When i tested the coil for the first time the spark gap was set on 6mm and i got 20cm or 8inch streamers without breakout point but the gfi on my nst tripped after a few seconds. i didn't know there was a built in gfi on my nst so i fooled around with my spark gap and safety gap and the tapping point on the primary hoping to get better performance. after a few runs the gfi started to trip very fast and i could only run the coil with the spark gap set on max 2mm, any bigger then that would trip the gfi on the nst. so i found out that it had a gfi and i bypassed it with thick wire. Then when i ran the nst i got the exact same thing but with my circuit breaker in my home. i have made a video on youtube that shows the problem here is the link: (please help) http://www.youtube.com/watch?v=piH44ohowyE please anyone help me! Any help or suggestion is very welkom!

Question by colinbarnes    |  last reply


Remote surveillance system using arduino

Hi I am designing a mini remote surveillance system that can be used to monitor a site in a remote location. I want to design and build a prototype of the system. I've been reading up on arduino's but I've never used one before. I would appreciate any advise you can give me. The operation of my system must be as follows: 1) I must be able to take pictures of the site from my office at will. 2) in addition to this, a picture must be taken if the gate to the site is opened I am thinking of using the: -arduino uno -arduino ethernet shield with a microSD breakout board -push button to signify the opening of the gate -an LED so, BUTTON PRESSED = LED ON = TAKE A PICTURE BUTTON NOT PRESSED = LED OFF = OPERATE AS NORMAL Have any of you used the ethernet shield / arduino uno. are these the correct components for the job? am I on the right track? I have an idea of what the system must do, it's the interfacing & programming & design that's tricky for me. PS. I have the uCAM232 from 4D SYSTEMS

Topic by LadyEe    |  last reply


Atmega32u4 USB support?

I have made a breakout board for a 32u4. I have boot loaded to it using a uno as ISP and a modified Leonardo boards.txt file (I am using a 8MHz ceramic oscillator). The boot loading works and I can upload sketchs to it using the ISP. Here is the datesheet of atmega32u4 If I try to upload to the chip through a micro USB, I have to reset the chip manually and then I get the following output.      Programmer Type : butterfly      Description     : Atmel AppNote AVR109 Boot Loader Connecting to programmer: .avrdude: butterfly_recv(): programmer is not   responding avrdude: butterfly_recv(): programmer is not responding avrdude: butterfly_recv(): programmer is not responding avrdude: butterfly_recv(): programmer is not responding avrdude: butterfly_recv(): programmer is not responding avrdude: butterfly_recv(): programmer is not responding Found programmer: Id = ""; type = Software Version = �.p; Hardware Version = . I have tried changing the USB cable. Has anyone else had any similar problems? Also why do I manually have to reset the chip. I would of thought the chip does this with no DTR output from an FTDI. Thanks for any help

Question by DELETED_MakiY2    |  last reply


What was your biggest project ever?

What's your proudest, best, biggest, project you ever made or in the middle of making. Do not post of what you're planning to make because every can plan, but few can make ;). My proudest, biggest, most expensive thing that I'm making right now is a CNC machine, I'm about 50% done with the power supply (~37 volts at 8 amps, and 12 volts at 2 amps, for driving stuff like fans, total cost? about 60-70 dollars), about 75% done with the electronics (I've made 3 PicStep boards, all that's left on them is to solder on the pic microcontroller, which is comming in the mail, for 3 controller boards was about 30-40 dollars. The 4-axis breakout board, for future improvement, cost about 10 dollars to make). The stepper motors are 297oz/in so it's going to be beastly :). I've soldered well over 600 joints. I've etched 5 boards, some didn't come out well, drilled over 600 holes. Total time spent so far? about 10-15 hours. Can't imagine all of the work of actually building the main frame of the cnc router, but it'll all pay off. Not bad for the age of 13.

Topic by guyfrom7up    |  last reply


FT232RL+breadboard arduino programming problems

I am trying to program a breadboard arduino with an ft232rl programming adaptor that I found online. I made the 'duino using a atmega 328 preloaded with arduino uno optiboot from sparkfun. I attached 5volts power, 16mhz crystal, reset button, and an led to pin 13. When power is supplied, the led pulses then stopps suggesting that the bootloader is working correctly. I then connected a ft232rl to the arduino with rx to tx and tx to rx as well as the DTS pin to a 0.1 UF cap and to reset. Then i connected it to my computer via usb and installed the VCP drivers. It shows up as a com port in the IDE and I selected the board as an uno and tried to flash the blink sketch. The lights on the breakout blink, but i keep getting the avrdude not in sync message. I have tried switching cables, usb ports, pressing the reset button while programming, i have gotten rig of the 0.1 uf cap and jumped directly to DTS, i have tried both sets of drivers and have restarted the board, my computer, and the IDE as well as feeding a separate 5 volt source to the chip. How can I fix this? I am using windows vista SP1 with ide version 1.0.1 and a cheap programmer from ebay. 

Topic by qquuiinn    |  last reply


HOW TO PROGRAMMING ATMEGA8515 USING AVRSTUDIO 4.18 AND AVRISP MKII CLONE?

I'm very new world microcontroller. I am very interested with microcontroller because I thought, I'll be able to do something big with a very small and affordable prices. I had a problem with my knowledge of how to enter the program to the microcontroller. I am very interested in creating a tool to set up the system to light up a stage and I discovered a site through google (http://www.hoelscher-hi.de/hendrik/english/dimmer.htm). I plan to create a dmx driver by using ftdi breakout and some components are simple and easy to come by (from dfrrobot + max485 ftdibreakout + resistor 100 ohms) and the tool may suggest I make. Then I was stringing a series of electronics like the one in http://www.hoelscher-hi.de/hendrik/english/dimmer.htm with the main components of an atmega 8515-16 PU as his driver. Maybe anyone can give me a clue in full, how do I get into the program to enter the mine by using atmega8515 avrstudio 4.18 and avrisp mk II. A tool that has been in my possession:   1. dmx Series with atmega 8515 (http://www.hoelscher-hi.de/hendrik/english/dimmer.htm) which I will use as the recipient of your dmx signal dmx-made me. 2. AVRISPMKII (USB) CLONE with reference to NUE-125 programmers. 3. PC Windows XP who have already installed the avrstudio 4.18 therein. 4. a laptop windows 7 64 bits.   Thank you for any help from you.

Question by triesna    |  last reply


Mini/Micro Game System

Hi guys, I've been thinking. Really thinking. I recently found my Digispark (if you dont know what those are, google digistump, click on the first link and go to products, Digispark. They're really cool.) and decided to put it to use. I have always wanted to have/build something like a micro gaming system (sort of like the ben nanonote (if you don't what that is, google it, its really cool)) and decided that as a challenge, I could try implementing the Digispark as the Processor. I know that I wouldn't be able to run any games more advanced than pong, breakout or snake, but even those kinds of games would be enough to keep me interested while in boring situations. My basic thinking is this: There would a small lithium-ion rechargeable battery on the bottom to be a base (but still removable), the Digispark without any headers above the batteries, and a small LCD screen (1.8, 2 or 1.3 inch screen size) that would have either two pushbuttons (one on either side of the screen) or four pushbuttons configured in a D-pad style on the right side of the screen (how many buttons it would have depends on how many pins the Digispark would have open (if any), which also leads to my question, does anybody know any place to get video LCD screens (don't care if its color or not) that only take up 4 or less pins? I know that probably seems absurd, but if anybody knows any places to get them, please let me know. And just one last thing, is it possible to program games in the arduino IDE? Are there libraries for them? ANd if you can program games, just how advanced can you go?

Topic by MrDubstepWarMachine    |  last reply


PCB fab lab questions? (and nixie tubes?) Answered

Now that I have a new oscilloscope (rigol DS1054Z), and have learned a LOT about programming and electronics while down at NASA langley for a research program (semi-intern), I feel like I should start working on a real project (other than my quadcopter), and was thinking about making a nixie tube clock. I would like to make it from scratch of my own design as I feel one learned the most about electronics by not using other's designs. However, I do not have the resources or time to bother trying to etch my own PCB. I attempted that before and was not able to get usable results. What kind of costs am I looking at if I locate a relatively local company for the job? I hate calling people and companies, but I suppose that is still the most practical way to figure out what I need to do and place an order, I don't know. Economies of scale is a great thing, makes things in bulk production cheap! However, would the costs of ordering one or 2 PCBs be non-economical and/or non-practical? Should I consider many smaller projects and stuff to be created on a breakout board? I hate messy, sloppy protoboard, it is just nasty, though easy for non-high-density boards. however, I would love to hear the opinions of others for these things. When dealing with nixie tubes, are sockets for the 1N-14 avalible? A lot of the new old stocks seem to have very thin and long legs, almost as if they are meant for through hole soldering directly onto a PCB like capacitors and resistors. I would prefer a socketed tube to make replacing them quicker and easier. 

Question by -max-    |  last reply


Road Speed limit project

Hello, I'ts my first post here, so dont get mad if it's not the right subforum for this topic. I would just like some ideas/opinions for my project, because maybe I am forgetting something in addition to i am new with arduino the idea is a device that tracks a car's speeds and omits a message to the driving control authority, in case the car exceeds the speed limit. so What I am trying to build,is a Speed limit notification system that can sense my location and speed using GPS then compare it to defined speed for the current road using algorithm then send data over GSM network to my webserver or mobile phone warning me if i exceed the speed limit . What I need to achieve (and my plans to do so) are: 1. Arduino Uno 2. GPS module  http://www.zeroohm.ae/Adafruit-Ultimate-GPS-Breakout-66-channel-10-Hz-updates-Version-3?search=gps 3. GSM shield for network connection or sms sending http://www.zeroohm.ae/Arduino-GSM-Shield-2-integrated-antenna?search=gsm 4. GSM + GPS shield (Replace 2 and 3 ) http://www.waveshare.com/phone-shield-sim908.htm 5. so i will defined  maybe two or three roads using this techniques and define any speed i want http://forum.arduino.cc/index.php?topic=136265.0 Is these parts good ? is it ok to connect GPS module through gsm shield to Arduino ? or replace both with one shield (GPS and GSM ) I'm working on this project alone, maybe I have missed something, maybe theres a better solution for something, maybe someone else has some great ideas they are willing to share, regarding this idea and how to pull it off. Thanks all and sorry about my english

Question by ekayed    |  last reply


Making a gamepad with the HC05 bluetooth module.

Hi guys! this is my first post here at Instructables :D I really hope someone will be able to help me! Basically the problem is described in the attached image. To be short, we have: - 1x smartphone (Android) - 1x bluetooth module (HC05 with breakout board GW-040 4 pin SPI) - some buttons and arrows... I've already managed to get the HC05 recognized by Windows as a gamepad (modifying the tag using AT commands). The real problem is that i'm stuck with that. I would like to understand how i can connect some buttons (let's say four) that will actually behave like arrows while playing. As far as i understood i need to use the PIO pins but unfortunately my knowledge stops here. Theoretically the code behind this is simple: when the button is pressed the circuit is close and a signal is received by the HC05 who sends the corresponding command via bluetooth. So if the up arrow is pressed, that pin will receive 1 (closed circuit) and the HC05 will send "UP_Arrow" as an instruction to the smartphone. The problem is how do i write down this code and put it into the HC05? since the gamepad tag is "universal" i guess there is some default code for things like this. I think it's the same thing they did with the MOGA... I also read that i could need a SPI-USB Download (something like this ) to use the BlueSuite, that seems like the software needed for this operation. Thanks for any advice!! P.S.: Some useful links i found while searching.. http://dextersstory.tistory.com/3 http://dextersstory.tistory.com/10 http://dextersstory.tistory.com/11 http://dextersstory.tistory.com/16 http://www.martyncurrey.com/arduino-with-hc-05-bluetooth-module-at-mode/ https://developer.mbed.org/users/edodm85/notebook/HC-05-bluetooth/ https://www.sparkfun.com/datasheets/Wireless/Bluetooth/rn-42-ds.pdf http://cdn.sparkfun.com/datasheets/Wireless/Bluetooth/RN-HID-User-Guide-v1.0r.pdf http://ww1.microchip.com/downloads/en/DeviceDoc/bluetooth_cr_UG-v1.0r.pdf

Topic by HarryValenti    |  last reply


If I increase voltage input on audio amp, will the volume be able to get louder?

I'm planning on building a portable speaker/boombox and I was looking up some build videos and saw people having a voltmeter built into their speakers and when they increased the volume, voltage started dropping. The audio amplifier I was planning on buying stated that it can handle DC power 8-25v. So my question is, when I increase the voltage input, will the output volume be louder or what will it change, or does the volume rely on the speakers I'm using? Or will the volume rely on the batteries I'm using? Part list: -TDA7492P 25W+25W Audio Amplifier with Bluetooth https://www.banggood.com/TDA7492P-50W50W-Wireless-Bluetooth-4_0-Audio-Receiver-Digital-Amplifier-Board-p-1003047.html -Micro USB breakout https://www.banggood.com/CJMCU-Micro-USB-Interface-Board-Power-switch-interface-p-986085.html?rmmds=search -DC Step-up Module https://www.banggood.com/DC-Boost-Converter-2A-Power-Supply-Module-2V-24V-To-5V-28V-Adjustable-Regulator-Board-p-1100757.html -USB Charging module https://www.banggood.com/USB-Lithium-Battery-Charger-Module-Board-With-Charging-And-Protection-p-924048.html?rmmds=search -18650 Rechargeable batteries x2 https://www.banggood.com/2PCS-ICR18650-26F-2600mAh-3_6v-Rechargeable-Li-ion-Battery-p-915708.html?rmmds=search - 2x Visaton FR-13 30w(RMS) full-range speakers http://www.visaton.com/en/industrie/breitband/fr13_4.html - LED On/Off switch https://www.banggood.com/12V-16mm-Angel-Eye-Metal-illuminated-LED-Push-Button-Switch-Car-Dash-p-965911.html Also if anyone could check if these parts work together then it would be appreciated. NB! I'm new to this so if my questions sound dumb then don't judge :)

Question by Zerlen    |  last reply


Coding problems for Arduino...?

I am trying to set up an accelerometer with 3 LED lights that light up dependent on the Y axis reading... the following code I have but I am getting error messages relating to the "{" on some of my lines of code. Please please could someone enlighten me on whats going wrong or even if I have the right code! /*  ADXL3xx    Reads an Analog Devices ADXL3xx accelerometer and communicates the  acceleration to the computer.  The pins used are designed to be easily  compatible with the breakout boards from Sparkfun, available from:  http://www.sparkfun.com/commerce/categories.php?c=80   http://www.arduino.cc/en/Tutorial/ADXL3xx   The circuit:  analog 0: accelerometer self test  analog 1: z-axis  analog 2: y-axis  analog 3: x-axis  nalog 4: ground  analog 5: vcc    created 2 Jul 2008  by David A. Mellis  modified 4 Sep 2010  by Tom Igoe   modified 21 Dec 2010    This example code is in the public domain. */ // these constants describe the pins. They won't change: const int groundpin = 18;             // analog input pin 18 -- ground const int powerpin = 19;              // analog input pin 19 -- voltage const int xpin = A3;                  // x-axis of the accelerometer const int ypin = A2;                  // y-axis const int zpin = A1;                  // z-axis (only on 3-axis models)  void setup() const int ledPINKPin =  9;      // the number of the LED pin const int ledBLUEPin = 10; const int ledGREENPin = 11; const int ypin = A2;                  // y-axis {                                // initialize the serial communications:  Serial.begin(9600);                   // bluetooth baud rate     pinMode(groundpin, OUTPUT);   pinMode(powerpin, OUTPUT);   digitalWrite(groundpin, LOW);    digitalWrite(powerpin, HIGH);     // print the sensor values:   //Serial.print("ypin: ");   Serial.print(analogRead(ypin));  // print a tab between values:   Serial.print("\t");   //Serial.print("ypin: ");   // delay before next reading:   delay(2000); } if (analogRead(ypin) > 1000 then       // turn LED on:        digitalWrite(ledPINKPin, HIGH);    else {     // turn LED off:     digitalWrite(ledPINKPin, LOW); { if (analogRead(ypin) > 600 then       // turn LED on:        digitalWrite(ledGREENPin, HIGH);    }   else {     // turn LED off:     digitalWrite(ledGREENPin, LOW);     if (analogRead(ypin) > 40 then       // turn LED on:        digitalWrite(ledBLUEPin, HIGH);    }   else {     // turn LED off:     digitalWrite(ledBLUEPin, LOW);

Question by lucystanger    |  last reply


Arduino: HELP: How to perform action if two rfid tag UIDs have been detected?

I'm using an rfid-rc522 and I want to print to the serial a string of text if two rfid tags have been read in a given time period. Essentially this: 1. First tag is read (print to serial: Tag 1 has been read) 2. Wait 2 seconds 3. Second tag is read (print to serial: Tag 2 has been read) 4. Print to serial: Tag 1 and Tag 2 has been read) 5. Bonus: Keep this state - and then when a button is pressed (print to serial: Tag 1 and Tag 2 are finished) I know how to read the UID and print to the serial if one is read. Thank you so much for your help, it's greatly appreciated. Here is my code so far: #include     // Core graphics library #include // Hardware-specific library #include #include // For the breakout, you can use any 2 or 3 pins // These pins will also work for the 1.8" TFT shield #define sclk 4  // SainSmart: SCL #define mosi 5  // SainSmart: SDA #define cs   6  // SainSmart: CS #define dc   7  // SainSmart: RS/DC #define rst  8  // SainSmart: RES Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, mosi, sclk, rst); #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); float p = 3.1415926; void setup(void) {   Serial.begin(9600);   SPI.begin();   Serial.print("Starting cornhole leaderboard...");   mfrc522.PCD_Init(); // Init MFRC522 card   Serial.println("Scan PICC to see UID and type...");   // Use this initializer if you're using a 1.8" TFT   tft.initR(INITR_BLACKTAB);   // initialize a ST7735S chip, black tab   // Use this initializer (uncomment) if you're using a 1.44" TFT   //tft.initR(INITR_144GREENTAB);   // initialize a ST7735S chip, black tab   Serial.println("Initialized");   uint16_t time = millis();   tft.fillScreen(ST7735_BLACK);   time = millis() - time;   Serial.println(time, DEC);   // large block of text   tft.fillScreen(ST7735_BLACK); } void loop() {   // Look for new cards     if ( ! mfrc522.PICC_IsNewCardPresent()) {         return;     }     // Select one of the cards     if ( ! mfrc522.PICC_ReadCardSerial()) {         return;     }     if (mfrc522.uid.uidByte[0] == 0xA4 &&        mfrc522.uid.uidByte[1] == 0xB8 &&        mfrc522.uid.uidByte[2] == 0xB8 &&        mfrc522.uid.uidByte[3] == 0x96) {           Serial.println("Nate has checked in to the game.");           tft.fillScreen(ST7735_BLUE);           tft.setTextSize(2);           tft.setCursor(0, 0);           tft.setTextColor(ST7735_YELLOW);           tft.print("Nate ");           tft.setTextColor(ST7735_WHITE);           tft.println("has checked in ");           tft.setTextSize(2);           tft.println("to the game.");           delay(2000);           tft.fillScreen(ST7735_BLACK);     }     if (mfrc522.uid.uidByte[0] == 0x03 &&        mfrc522.uid.uidByte[1] == 0xFD &&        mfrc522.uid.uidByte[2] == 0xBC &&        mfrc522.uid.uidByte[3] == 0x02) {           Serial.println("Ted has checked in to the game.");           tft.fillScreen(ST7735_RED);           tft.setTextSize(2);           tft.setCursor(0, 0);           tft.setTextColor(ST7735_CYAN);           tft.print("Ted ");           tft.setTextColor(ST7735_WHITE);           tft.println("has checked in ");           tft.setTextSize(2);           tft.println("to the game.");           delay(2000);           tft.fillScreen(ST7735_BLACK);     } } Thank you!

Topic by djrage    |  last reply


I need help with this code

Hello, I'm creating a PIR Sensor Alarm with Arduino. I'm using Arduino Uno, PIR Sensor, Breadboard, LED, Piezo Buzzer, TTL JPEG Camera, SD Card and SD Card Module (Breakout Board) I tested my code and it didn't give me any errors. However, the LED and the Buzzer are on all the time, my idea is to have them on once the PIR Sensor detects motions. I know that I'm having problem with the code. Therefore, I'd appreciate it so much if someone could find out which parts of my code should I change. ---------------------------- #include #include #include int pirPin = 7; int ledPin = 8;                // choose the pin for the LED int pinSpeaker = 10;           //Set up a speaker on a PWM pin (digital 9, 10, or 11) int minSecsBetweenEmails = 60; // 1 min long lastSend = -minSecsBetweenEmails * 1000l; byte ZERO = 0x00; byte incomingbyte; SoftwareSerial mySerial(2,3);          // Set Arduino pin 2 and 3 as softserial long int a=0x0000,j=0,k=0,count=0,i=0; uint8_t MH,ML; boolean EndFlag=0; File  myFile; void SendResetCmd(); void SetBaudRateCmd(); void SetImageSizeCmd(); void SendTakePhotoCmd(); void SendReadDataCmd(); void StopTakePhotoCmd(); void setup() {   pinMode(pirPin, INPUT);   pinMode(ledPin, OUTPUT);      // declare LED as output   pinMode(pinSpeaker, OUTPUT);   Serial.begin(9600);   Serial.begin(115200); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } mySerial.begin(38400); Serial.print("Initializing SD card..."); // On the Ethernet Shield, CS is pin 4. It's set as an output by default. // Note that even if it's not used as the CS pin, the hardware SS pin // (10 on most Arduino boards, 53 on the Mega) must be left as an output // or the SD library functions will not work. pinMode(10, OUTPUT); if (!SD.begin(10)) { Serial.println("initialization failed!"); return; } Serial.println("initialization done."); } void loop() {   long now = millis();   if (digitalRead(pirPin) == HIGH)   {     digitalWrite(ledPin, HIGH);  // turn LED ON     playTone(300, 160);     delay(150);     if (now > (lastSend + minSecsBetweenEmails * 1000l))     {       Serial.println("MOVEMENT");       lastSend = now;     }     else     {       digitalWrite(ledPin, LOW); // turn LED OFF       playTone(0, 0);       delay(300);         Serial.println("Too soon");     }   }   delay(300); } // duration in mSecs, frequency in hertz void playTone(long duration, int freq) {     duration *= 1000;     int period = (1.0 / freq) * 1000000;     long elapsed_time = 0;     while (elapsed_time < duration) {         digitalWrite(pinSpeaker,HIGH);         delayMicroseconds(period / 2);         digitalWrite(pinSpeaker, LOW);         delayMicroseconds(period / 2);         elapsed_time += (period);     } byte a[32]; int ii; SendResetCmd(); delay(4000);                            //Wait 2-3 second to send take picture command SendTakePhotoCmd(); while(mySerial.available()>0) {   incomingbyte=mySerial.read(); } myFile = SD.open("pic.jpg", FILE_WRITE); //The file name should not be too long while(!EndFlag) {   j=0;   k=0;   count=0;   SendReadDataCmd();   delay(200); //250 for regular   while(mySerial.available()>0)   {      incomingbyte=mySerial.read();     k++;     if((k>5)&&(j<32)&&(!EndFlag))     {      a[j]=incomingbyte;      if((a[j-1]==0xFF)&&(a[j]==0xD9))     //tell if the picture is finished      EndFlag=1;      j++;     count++;     }   } for(j=0;j { if(a[j]<0x10) Serial.print("0"); Serial.print(a[j],HEX);           // observe the image through serial port Serial.print(" "); } for(ii=0; ii myFile.write(a[ii]); Serial.println(); i++; } myFile.close(); Serial.print("Finished writing data to file"); while(1); } void SendResetCmd() { mySerial.write(0x56); mySerial.write(ZERO); mySerial.write(0x26); mySerial.write(ZERO); } void SetImageSizeCmd() { mySerial.write(0x56); mySerial.write(ZERO); mySerial.write(0x31); mySerial.write(0x05); mySerial.write(0x04); mySerial.write(0x01); mySerial.write(ZERO); mySerial.write(0x19); mySerial.write(0x11); } void SetBaudRateCmd() { mySerial.write(0x56); mySerial.write(ZERO); mySerial.write(0x24); mySerial.write(0x03); mySerial.write(0x01); mySerial.write(0x2A); mySerial.write(0xC8); } void SendTakePhotoCmd() { mySerial.write(0x56); mySerial.write(ZERO); mySerial.write(0x36); mySerial.write(0x01); mySerial.write(ZERO); } void SendReadDataCmd() { MH=a/0x100; ML=a%0x100; mySerial.write(0x56); mySerial.write(ZERO); mySerial.write(0x32); mySerial.write(0x0c); mySerial.write(ZERO); mySerial.write(0x0a); mySerial.write(ZERO); mySerial.write(ZERO); mySerial.write(MH); mySerial.write(ML); mySerial.write(ZERO); mySerial.write(ZERO); mySerial.write(ZERO); mySerial.write(0x20); mySerial.write(ZERO); mySerial.write(0x0a); a+=0x20; } void StopTakePhotoCmd() { mySerial.write(0x56); mySerial.write(ZERO); mySerial.write(0x36); mySerial.write(0x01); mySerial.write(0x03); } --------------------------- Thanks a lot!

Topic by fhussein1    |  last reply


: Arduino + Adafruit wave sheild + IR + Keypad sound board

Hi , was wondering if you could point me in the right direction I'm very new to Arduino I built last year a simple board with adafruit wave shield and added a simple 12 digit key pad to play 12 sounds + power up I have got the codes for the KEYES IR receiver so know the IR is correctly connected and library loaded im trying to integrate the IR code so can change the sounds by IR remote ideally with option of the buttons (if have to loose the buttons and just use remote that's fine) have copied the code below for how it works now just buttons   I found some code for Cylon Pumpkin that works great with just the remote but would also like to integrate the 12 digit keypad Thank you in advance for any help or pointers you can suggest Richard CODE FOR 12 DIGIT BUTTON PRESS /* ADAVOICE is an Arduino-based voice pitch changer plus WAV playback. Fun for Halloween costumes, comic convention getups and other shenanigans! Hardware requirements: - Arduino Uno, Duemilanove or Diecimila (not Mega or Leonardo compatible). - Adafruit Wave Shield - Speaker attached to Wave Shield output - Battery for portable use If using the voice pitch changer, you will also need: - Adafruit Microphone Breakout - 10K potentiometer for setting pitch (or hardcode in sketch) If using the WAV playback, you will also need: - SD card - Keypad, buttons or other sensor(s) for triggering sounds Software requirements: - WaveHC library for Arduino - Demo WAV files on FAT-formatted SD card This example sketch uses a 3x4 keypad for triggering sounds...but with some changes could be adapted to use several discrete buttons, Hall effect sensors, force-sensing resistors (FSRs), I2C keypads, etc. (or if you just want the voice effect, no buttons at all). Connections: - 3.3V to mic amp+, 1 leg of potentiometer and Arduino AREF pin - GND to mic amp-, opposite leg of potentiometer - Analog pin 0 to mic amp output - Analog pin 1 to center tap of potentiometer - Wave Shield output to speaker or amplifier - Matrix is wired to pins A2, A3, A4, A5 (rows) and 6, 7, 8 (columns) - Wave shield is assumed wired as in product tutorial Potentiometer sets playback pitch. Pitch adjustment does NOT work in realtime -- audio sampling requires 100% of the ADC. Pitch setting is read at startup (or reset) and after a WAV finishes playing. POINT SPEAKER AWAY FROM MIC to avoid feedback. Written by Adafruit industries, with portions adapted from the 'PiSpeakHC' sketch included with WaveHC library. */ #include #include SdReader card; // This object holds the information for the card FatVolume vol; // This holds the information for the partition on the card FatReader root; // This holds the information for the volumes root directory FatReader file; // This object represent the WAV file for a pi digit or period WaveHC wave; // This is the only wave (audio) object, -- we only play one at a time #define error(msg) error_P(PSTR(msg)) // Macro allows error messages in flash memory #define ADC_CHANNEL 0 // Microphone on Analog pin 0 // Wave shield DAC: digital pins 2, 3, 4, 5 #define DAC_CS_PORT PORTD #define DAC_CS PORTD2 #define DAC_CLK_PORT PORTD #define DAC_CLK PORTD3 #define DAC_DI_PORT PORTD #define DAC_DI PORTD4 #define DAC_LATCH_PORT PORTD #define DAC_LATCH PORTD5 uint16_t in = 0, out = 0, xf = 0, nSamples; // Audio sample counters uint8_t adc_save; // Default ADC mode // WaveHC didn't declare it's working buffers private or static, // so we can be sneaky and borrow the same RAM for audio sampling! extern uint8_t buffer1[PLAYBUFFLEN], // Audio sample LSB buffer2[PLAYBUFFLEN]; // Audio sample MSB #define XFADE 16 // Number of samples for cross-fade #define MAX_SAMPLES (PLAYBUFFLEN - XFADE) // Remaining available audio samples // Keypad information: uint8_t rows[] = { A2, A3, A4, A5 }, // Keypad rows connect to these pins cols[] = { 6, 7, 8, 9 }, // Keypad columns connect to these pins r = 0, // Current row being examined prev = 255, // Previous key reading (or 255 if none) count = 0; // Counter for button debouncing #define DEBOUNCE 10 // Number of iterations before button 'takes' // Keypad/WAV information. Number of elements here should match the // number of keypad rows times the number of columns, plus one: const char *sound[] = { "Crashing" , "Damaged", "InFlight" , "PowerUp" , // Row 1 = Darth Vader sounds "Brkdown3" , "Brkdown2" , "Brkdown" , "PowerUp" , // Row 2 = Godzilla sounds "Landing", "drain" , "Shutdown" , "PowerUp" , // Row 3 = Dug the dog sounds "Silent", "TakeOff", "Vortex" , "PowerUp" , // Row 4 = Cartoon/SFX sound "PowerUp" }; // Extra item = boot sound //////////////////////////////////// SETUP void setup() { uint8_t i; Serial.begin(9600); // The WaveHC library normally initializes the DAC pins...but only after // an SD card is detected and a valid file is passed. Need to init the // pins manually here so that voice FX works even without a card. pinMode(2, OUTPUT); // Chip select pinMode(3, OUTPUT); // Serial clock pinMode(4, OUTPUT); // Serial data pinMode(5, OUTPUT); // Latch digitalWrite(2, HIGH); // Set chip select high // Init SD library, show root directory. Note that errors are displayed // but NOT regarded as fatal -- the program will continue with voice FX! if(!card.init()) SerialPrint_P("Card init. failed!"); else if(!vol.init(card)) SerialPrint_P("No partition!"); else if(!root.openRoot(vol)) SerialPrint_P("Couldn't open dir"); else { PgmPrintln("Files found:"); root.ls(); // Play startup sound (last file in array). playfile(sizeof(sound) / sizeof(sound[0]) - 1); } // Optional, but may make sampling and playback a little smoother: // Disable Timer0 interrupt. This means delay(), millis() etc. won't // work. Comment this out if you really, really need those functions. TIMSK0 = 0; // Set up Analog-to-Digital converter: analogReference(EXTERNAL); // 3.3V to AREF adc_save = ADCSRA; // Save ADC setting for restore later // Set keypad rows to outputs, set to HIGH logic level: for(i=0; i pinMode(rows[i], OUTPUT); digitalWrite(rows[i], HIGH); } // Set keypad columns to inputs, enable pull-up resistors: for(i=0; i pinMode(cols[i], INPUT); digitalWrite(cols[i], HIGH); } while(wave.isplaying); // Wait for startup sound to finish... startPitchShift(); // and start the pitch-shift mode by default. } //////////////////////////////////// LOOP // As written here, the loop function scans a keypad to triggers sounds // (stopping and restarting the voice effect as needed). If all you need // is a couple of buttons, it may be easier to tear this out and start // over with some simple digitalRead() calls. void loop() { uint8_t c, button; // Set current row to LOW logic state... digitalWrite(rows[r], LOW); // ...then examine column buttons for a match... for(c=0; c if(digitalRead(cols[c]) == LOW) { // First match. button = r * sizeof(cols) + c; // Get button index. if(button == prev) { // Same button as before? if(++count >= DEBOUNCE) { // Yes. Held beyond debounce threshold? if(wave.isplaying) wave.stop(); // Stop current WAV (if any) else stopPitchShift(); // or stop voice effect playfile(button); // and play new sound. while(digitalRead(cols[c]) == LOW); // Wait for button release. prev = 255; // Reset debounce values. count = 0; } } else { // Not same button as prior pass. prev = button; // Record new button and count = 0; // restart debounce counter. } } } // Restore current row to HIGH logic state and advance row counter... digitalWrite(rows[r], HIGH); if(++r >= sizeof(rows)) { // If last row scanned... r = 0; // Reset row counter // If no new sounds have been triggered at this point, and if the // pitch-shifter is not running, re-start it... if(!wave.isplaying && !(TIMSK2 & _BV(TOIE2))) startPitchShift(); } } //////////////////////////////////// HELPERS // Open and start playing a WAV file void playfile(int idx) { char filename[13]; (void)sprintf(filename,"%s.wav", sound[idx]); Serial.print("File: "); Serial.println(filename); if(!file.open(root, filename)) { PgmPrint("Couldn't open file "); Serial.print(filename); return; } if(!wave.create(file)) { PgmPrintln("Not a valid WAV"); return; } wave.play(); } //////////////////////////////////// PITCH-SHIFT CODE void startPitchShift() { // Read analog pitch setting before starting audio sampling: int pitch = analogRead(1); Serial.print("Pitch: "); Serial.println(pitch); // Right now the sketch just uses a fixed sound buffer length of // 128 samples. It may be the case that the buffer length should // vary with pitch for better results...further experimentation // is required here. nSamples = 128; //nSamples = F_CPU / 3200 / OCR2A; // ??? //if(nSamples > MAX_SAMPLES) nSamples = MAX_SAMPLES; //else if(nSamples < (XFADE * 2)) nSamples = XFADE * 2; memset(buffer1, 0, nSamples + XFADE); // Clear sample buffers memset(buffer2, 2, nSamples + XFADE); // (set all samples to 512) // WaveHC library already defines a Timer1 interrupt handler. Since we // want to use the stock library and not require a special fork, Timer2 // is used for a sample-playing interrupt here. As it's only an 8-bit // timer, a sizeable prescaler is used (32:1) to generate intervals // spanning the desired range (~4.8 KHz to ~19 KHz, or +/- 1 octave // from the sampling frequency). This does limit the available number // of speed 'steps' in between (about 79 total), but seems enough. TCCR2A = _BV(WGM21) | _BV(WGM20); // Mode 7 (fast PWM), OC2 disconnected TCCR2B = _BV(WGM22) | _BV(CS21) | _BV(CS20); // 32:1 prescale OCR2A = map(pitch, 0, 1023, F_CPU / 32 / (9615 / 2), // Lowest pitch = -1 octave F_CPU / 32 / (9615 * 2)); // Highest pitch = +1 octave // Start up ADC in free-run mode for audio sampling: DIDR0 |= _BV(ADC0D); // Disable digital input buffer on ADC0 ADMUX = ADC_CHANNEL; // Channel sel, right-adj, AREF to 3.3V regulator ADCSRB = 0; // Free-run mode ADCSRA = _BV(ADEN) | // Enable ADC _BV(ADSC) | // Start conversions _BV(ADATE) | // Auto-trigger enable _BV(ADIE) | // Interrupt enable _BV(ADPS2) | // 128:1 prescale... _BV(ADPS1) | // ...yields 125 KHz ADC clock... _BV(ADPS0); // ...13 cycles/conversion = ~9615 Hz TIMSK2 |= _BV(TOIE2); // Enable Timer2 overflow interrupt sei(); // Enable interrupts } void stopPitchShift() { ADCSRA = adc_save; // Disable ADC interrupt and allow normal use TIMSK2 = 0; // Disable Timer2 Interrupt } ISR(ADC_vect, ISR_BLOCK) { // ADC conversion complete // Save old sample from 'in' position to xfade buffer: buffer1[nSamples + xf] = buffer1[in]; buffer2[nSamples + xf] = buffer2[in]; if(++xf >= XFADE) xf = 0; // Store new value in sample buffers: buffer1[in] = ADCL; // MUST read ADCL first! buffer2[in] = ADCH; if(++in >= nSamples) in = 0; } ISR(TIMER2_OVF_vect) { // Playback interrupt uint16_t s; uint8_t w, inv, hi, lo, bit; int o2, i2, pos; // Cross fade around circular buffer 'seam'. if((o2 = (int)out) == (i2 = (int)in)) { // Sample positions coincide. Use cross-fade buffer data directly. pos = nSamples + xf; hi = (buffer2[pos] << 2) | (buffer1[pos] >> 6); // Expand 10-bit data lo = (buffer1[pos] << 2) | buffer2[pos]; // to 12 bits } if((o2 < i2) && (o2 > (i2 - XFADE))) { // Output sample is close to end of input samples. Cross-fade to // avoid click. The shift operations here assume that XFADE is 16; // will need adjustment if that changes. w = in - out; // Weight of sample (1-n) inv = XFADE - w; // Weight of xfade pos = nSamples + ((inv + xf) % XFADE); s = ((buffer2[out] << 8) | buffer1[out]) * w + ((buffer2[pos] << 8) | buffer1[pos]) * inv; hi = s >> 10; // Shift 14 bit result lo = s >> 2; // down to 12 bits } else if (o2 > (i2 + nSamples - XFADE)) { // More cross-fade condition w = in + nSamples - out; inv = XFADE - w; pos = nSamples + ((inv + xf) % XFADE); s = ((buffer2[out] << 8) | buffer1[out]) * w + ((buffer2[pos] << 8) | buffer1[pos]) * inv; hi = s >> 10; // Shift 14 bit result lo = s >> 2; // down to 12 bits } else { // Input and output counters don't coincide -- just use sample directly. hi = (buffer2[out] << 2) | (buffer1[out] >> 6); // Expand 10-bit data lo = (buffer1[out] << 2) | buffer2[out]; // to 12 bits } // Might be possible to tweak 'hi' and 'lo' at this point to achieve // different voice modulations -- robot effect, etc.? DAC_CS_PORT &= ~_BV(DAC_CS); // Select DAC // Clock out 4 bits DAC config (not in loop because it's constant) DAC_DI_PORT &= ~_BV(DAC_DI); // 0 = Select DAC A, unbuffered DAC_CLK_PORT |= _BV(DAC_CLK); DAC_CLK_PORT &= ~_BV(DAC_CLK); DAC_CLK_PORT |= _BV(DAC_CLK); DAC_CLK_PORT &= ~_BV(DAC_CLK); DAC_DI_PORT |= _BV(DAC_DI); // 1X gain, enable = 1 DAC_CLK_PORT |= _BV(DAC_CLK); DAC_CLK_PORT &= ~_BV(DAC_CLK); DAC_CLK_PORT |= _BV(DAC_CLK); DAC_CLK_PORT &= ~_BV(DAC_CLK); for(bit=0x08; bit; bit>>=1) { // Clock out first 4 bits of data if(hi & bit) DAC_DI_PORT |= _BV(DAC_DI); else DAC_DI_PORT &= ~_BV(DAC_DI); DAC_CLK_PORT |= _BV(DAC_CLK); DAC_CLK_PORT &= ~_BV(DAC_CLK); } for(bit=0x80; bit; bit>>=1) { // Clock out last 8 bits of data if(lo & bit) DAC_DI_PORT |= _BV(DAC_DI); else DAC_DI_PORT &= ~_BV(DAC_DI); DAC_CLK_PORT |= _BV(DAC_CLK); DAC_CLK_PORT &= ~_BV(DAC_CLK); } DAC_CS_PORT |= _BV(DAC_CS); // Unselect DAC if(++out >= nSamples) out = 0; } CODE I FOUND FOR IR  ClyonPumpkin That I want to integrate in above   /* * Text-to-speech example to speak the first n digits of pi. * The number is stored in flash, each digit is spoken one at a time. */ #include #include #include SdReader card;    // This object holds the information for the card FatVolume vol;    // This holds the information for the partition on the card FatReader root;   // This holds the information for the volumes root directory FatReader file;   // This object represent the WAV file for a pi digit or period WaveHC wave;      // This is the only wave (audio) object, since we will only play one at a time char eyesound[13]="eye2.wav"; int mute = 0; /* * Define macro to put error messages in flash memory */ #define error(msg) error_P(PSTR(msg)) // IR Remote code int RECV_PIN = 9;  // pin 11 used by SD card interface so select pin 9 for IR IRrecv irrecv(RECV_PIN); decode_results results; long lasttime=0, lastcode=0, timediff=0; //////////////////////////////////// SETUP void setup() {   // set up Serial library at 9600 bps   Serial.begin(9600);               if (!card.init()) {     error("Card init. failed!");   }   if (!vol.init(card)) {     error("No partition!");   }   if (!root.openRoot(vol)) {     error("Couldn't open dir");   }   irrecv.enableIRIn(); // Start the IR receiver } /////////////////////////////////// LOOP void loop() {   if(mute == 0) playcomplete(eyesound);   // check for keypress happened   if (irrecv.decode(&results;)) {      Serial.println(results.value, HEX);      switch (results.value) {        case 0x83228B74:    // 1          playcomplete("command.wav");          break;        case 0x83228F70:    // 2          playcomplete("entertan.wav");          break;        case 0x8322906F:    // 3          playcomplete("extermin.wav");          break;        case 0x83228A75:    // 4          playcomplete("leader.wav");          break;        case 0x8322847B:    // 5          playcomplete("survivor.wav");          break;         case 0x83227887:    // 6          playcomplete("atention.wav");          break;        case 0x8322629D:    // vol up          mute = 0;         // mute off          break;         case 0x83226E91:    // mute          { Serial.println("mute detected");            timediff=millis()-lasttime;            Serial.println(timediff);            if(lastcode!=results.value || (lastcode==results.value && (timediff>1600)) ) {               if( mute == 0 ) { // is mute off?                  Serial.println("toggle off to on");                  mute = 1;      // turn on                  // delay(1000);    // wait a bit for debounce                  break;                 }               if( mute == 1 ) { // is mute on?                  mute = 0;      // turn off                  Serial.println("toggle on to off");                  break;                 }              } // end if             break;           } // end case        } // end switch      lastcode = results.value;      lasttime = millis();      irrecv.resume();   // Receive the next value   } } /////////////////////////////////// HELPERS /* * print error message and halt */ void error_P(const char *str) {   PgmPrint("Error: ");   SerialPrint_P(str);   sdErrorCheck();   while(1); } /* * print error message and halt if SD I/O error */ void sdErrorCheck(void) {   if (!card.errorCode()) return;   PgmPrint("\r\nSD I/O error: ");   Serial.print(card.errorCode(), HEX);   PgmPrint(", ");   Serial.println(card.errorData(), HEX);   while(1); } /* * Play a file and wait for it to complete */ void playcomplete(char *name) {   playfile(name);   while (wave.isplaying);     // see if an error occurred while playing   sdErrorCheck(); } /* * Open and start playing a WAV file */ void playfile(char *name) {   if (wave.isplaying) {// already playing something, so stop it!     wave.stop(); // stop it   }   if (!file.open(root, name)) {     PgmPrintln("Couldn't open file ");     Serial.print(name);     return;   }   if (!wave.create(file)) {     PgmPrintln("Not a valid WAV");     return;   }   // ok time to play!   wave.play(); }

Topic by SithLordIII