author

Peter Balch

123
Inbox View Profile
15Instructables137,540Views152Comments

Tell us about yourself!

Achievements

100+ Comments Earned a bronze medal
10K+ Views Earned a bronze medal
  • Oscilloscope in a Matchbox - Arduino

    You would think that the word "volatile" tells the compiler it can optimise it away but, as far as I know, it's the opposite. "Volatile" tells the compiler it's not allowed to remove it. Adding an extra channel would work fine. The limit is how many samples per second. You can take. I think I found it was slightly faster with one channel because you didn't have to wait for the ADC input voltage to stabilise after changing channel.It's worth doing some experimanets. Please let me know how you get on.

    View Instructable »
  • Transistor Curve Tracer

    Great.Did you need to make changes to the software?

    View Instructable »
  • Signal Generator AD9833

    Did you also change the value of numberOfDigits?What hex values are being sent to the chip?

    > i did not change the hex values to the register.So what values are being sent? Use a Serial.print statement to see what you're telling the chip to do. Does that match what the chip is is expecting?

    View Instructable »
  • Oscilloscope in a Matchbox - Arduino

    Great - this has been a very popular Instructable.Nice layout.

    View Instructable »
  • Signal Generator AD9833

    Good. I'll update the Instructable to warn about the problem.Thanks.

    View Instructable »
  • Signal Generator AD9833

    I don't know why it's going wrong just with that command.You could put some debugging statements into the sweep function. See below. Then use the Arduino Tools SerialMonitor to see what Sweep thinks it's doing.void Sweep(int n) { int fmin,fmax; fmin = calcFreq(freqSGLo); fmax = calcFreq(freqSGHi);Serial.print("fmin ");Serial.println(calcFreq(freqSGLo));Serial.print("fmax ");Serial.println(calcFreq(freqSGHi)); int i=0; do { long f = exp((log(fmax) - log(fmin))*i/(n-1) + log(fmin)) +0.5;Serial.print("f ");Serial.println(f); SG_freqSet(f, waveType); delay(1); i++; if (i >= n) i = 0; } while (!Serial.available()); SG_freqSet(calcFreq(freqSGLo), waveType);}

    Hi EmilI'm sorry you're having trouble. You say that "other similar combinations" don't work. What does work? Do simple commands like 002500S work?What commands do or don't work?Peter

    So it looks like the loop inside the Sweep function only executes once.The loop is do { ... } while (!Serial.available());The loop stops when the Arduino receives a character. Could you be sending002000M000200SIfollowed by carriage-return or line-feed? And that extra character is terminating the loop?The Serial Monitor has a box at the bottom right tha might say for instance "Both NL & CR" which I think might send characters after your command. Try setting it to "No line ending".

    View Instructable »
  • Peter Balch's instructable MIDI Sonar "Theremin"'s weekly stats:
    • MIDI Sonar "Theremin"
      299 views
      6 favorites
      0 comments
  • Peter Balch's instructable PPE Face Shield's weekly stats:
    • PPE Face Shield
      113 views
      1 favorites
      0 comments
  • Oscilloscope in a Matchbox - Arduino

    That looks lovely. You used perf board right - the sort where every hole is an individual pad. I'm impressed by the result. I've only ever used stripboard and tripad board. You could easily make it into a hand-held probe.Eurorack will be huge compared to that. I like the idea of a Eurorack version. Presumably it takes the place of a VU meter. Would it need any controls at all?

    View Instructable »
  • Oscilloscope in a Matchbox - Arduino

    (Sorry about the delay - I didn't get an email notification for some reason.)Which plotter do you mean? The OLED?

    The plotter that's part of the Arduino IDE expects data in a particular format. It should be text with one line per "reading". That line usually contains a single number. The value of the number is plotted as the y-axis of a scrolling chart. You can plot multiple values by separating them with " " on the line.Here's an examplehttps://learn.adafruit.com/experimenters-guide-for-metro/circ08-using%20the%20arduino%20serial%20plotter(My INO sends hex bytes in a format that allows my Windows program to plot the curves in the way you'd expect to see them in a textbook.) I don't think the Arduino plotter has a way of plotting 2D graphs.Peter

    View Instructable »
  • I don't have time to analyse your code in detail but, at first glance, it looks like you're triggering one HC-SR04 then triggering the other then waiting for a reply from each one. That won't workThey'll hear each other's echos. You must trigger one, wait for it's echo (i.e. the first echo it hears) then wait at least 10-20mSec for all the other echos from the room to die away then trigger the second HC-SR04 and waits for its echo.If both HC-SR04s are pointing in the same direction, you won't get any benfit from having the second one. Search https://forum.arduino.cc for "multiple HC-SR04".

    View Topic »
  • Signal Generator AD9833

    Looks good.It seems like you're connecting the 3V3 output of the Arduino to the 3V3 output of the HW-131. Is that OK? I'd use one or the other but not both.

    Looks good.It seems like you're connecting the 3V3 output of the Arduino to the 3V3 output of the HW-131. Is that allowed with an Arduino? I'd use one or the other but not both.

    Looks good.It seems like you're connecting the 3V3 output of the Arduino to the 3V3 output of the HW-131. Is that OK? I'd use one or the other but not both.

    Looks good.It seems like you're connecting the 3V3 output of the Arduino to the 3V3 output of the HW-131. Is that OK? I'd use one or the other but not both.

    View Instructable »
  • Transistor Curve Tracer

    Pierre-Yves Noyal has built the circuit and has, very kindly, sent me the design files for his PCB. They work with CIDESS - a design package you can download for free.Unfortunately, Instructables has blocked everyone from uploading PCB design files. A move which seems utterly bizarre in a category devoted to "Circuits". If you want to use CIDRESS and you want the files, email me personally - you can google for me.Peter

    Pierre-Yves Noyal has built the circuit and has, very kindly, sent me the design files for his PCB. They work with CIDESS - a design package you can download for free.Unfortunately, Instructables has blocked everyone from uploading PCB design files. A move which seems utterly bizarre in a category devoted to "Circuits". If you want to use CIDRESS and you want the files, email me personally - you can google for me.Peter

    View Instructable »
  • Oscilloscope in a Matchbox - Arduino

    I can't see where there are 47k pullups on SCL and SDA. Which diagram are you looking at? In the diagrams I've checked, the pullups are 4k7. (That means 4.7k ohms, 4700 ohms.) Replacing the decimal point with the "k" multiplier is standard in electronics. (So "6R8" means 6.8 ohms. "3M3" means 3300000 ohms.) You're less likely to overlook the tiny decimal point if it's a large letter. It dates back to the days when design drawings were often copied with poor quality copiers and a decimal point could easily get lost.The value of the pullups should be large enough not to stress the pull-down transistors of the I2C bus but small enough pull the lines up quickly enough for fast bus speeds. 4k7 is reckoned to be a good compromise for a short bus with just one or ...

    see more »

    I can't see where there are 47k pullups on SCL and SDA. Which diagram are you looking at? In the diagrams I've checked, the pullups are 4k7. (That means 4.7k ohms, 4700 ohms.) Replacing the decimal point with the "k" multiplier is standard in electronics. (So "6R8" means 6.8 ohms. "3M3" means 3300000 ohms.) You're less likely to overlook the tiny decimal point if it's a large letter. It dates back to the days when design drawings were often copied with poor quality copiers and a decimal point could easily get lost.The value of the pullups should be large enough not to stress the pull-down transistors of the I2C bus but small enough pull the lines up quickly enough for fast bus speeds. 4k7 is reckoned to be a good compromise for a short bus with just one or two devices on it.The circuit diagrams were created using Easy-PC. I don't know whether Eagle can read Easy-PC files. It may be in an "Import" menu.Other people have made PCBs for the circuit (see below and above). You could ask them it they have Eagle files you could use.Peter

    View Instructable »
  • Transistor Curve Tracer

    Thank you for the photos but I think what TiberioV and others would like is a gerber file they can send to a PCB manufacturer. Does CIDESS produce a gbr file and a drill file? It must do surely?I don't see how you can upload it here - but I can. If you can get a gbr file, send it to my personal email and I'll upload it. Google for "peterbalch" to find my address. Or send me the design files.> DO NOT SOLDER THE 2 ATMEGA PIN IN RELATIONSHIP WITH R14 AND R15 I think I see what you mean. The tracks go under the pins and the pins are missing. Would it be possible to remove the pad and the hole for those Arduino pins so there's no danger of getting it wrong?Thanks Peter

    View Instructable »
  • Folding Arcade Cabinet

    Good idea about the latch. I can't quite imagine how it would fit. I'll think about it. When I was storing it, I stored it vertically upside down so it stayed closed - the top surface is at right angles (so it stands upright) whereas the bottom is sloping.A carry handle is nice but I can't imagine where I'm going to carry it to. I guess it might be like the 1960s when you carried your portable Dansette round to your friend's house to listen to records. A tailored canvas bag might be better.Yes, you're right about needing somewhere for the (detached) joystick handle, mains cable, etc. I thought about a "cupboard" in the back but there wasn't room. When it's folded, there's a rectangular space between the "keyboard unit" and loudspeaker panel. That's where I keep thing...

    see more »

    Good idea about the latch. I can't quite imagine how it would fit. I'll think about it. When I was storing it, I stored it vertically upside down so it stayed closed - the top surface is at right angles (so it stands upright) whereas the bottom is sloping.A carry handle is nice but I can't imagine where I'm going to carry it to. I guess it might be like the 1960s when you carried your portable Dansette round to your friend's house to listen to records. A tailored canvas bag might be better.Yes, you're right about needing somewhere for the (detached) joystick handle, mains cable, etc. I thought about a "cupboard" in the back but there wasn't room. When it's folded, there's a rectangular space between the "keyboard unit" and loudspeaker panel. That's where I keep things. I was meaning to make a box to keep it neat but haven't yet.Peter

    View Instructable »
  • Transistor Curve Tracer

    I'm glad it's working for you. "TiberioV" (see below) was asking last week for a through-hole PCB design. Could you send your gerbers to him? Could you post them here so they're available to other people?CIDESS looks like an interesting PCB design package. I see that you've avoided wire links by varying the length of resistors. Is that built into CIDESS? The package I use (EasyPC) doesn't allow it so I've had to define lots of resistor packages of different lengths.Peter

    View Instructable »
  • Transistor Curve Tracer

    Yes, I apologise for using Easy-PC. It's not the most popular design package on Instructables.If you read through the comments below by people who have made their own PCBs, you might find someone who will send you schematic and layout files in a format you can read. "amr101dm" was offering some spare PCBs a year ago.The through-hole version is really showing the layout on stripboard. I didn't expect anyone to have it produced as a PCB. I suppose I could upload the gerber files for the stripboard layout but it would be a weird PCB.I didn't test the SM version. It was just a suggestion that people might use. I think there are comments below that it was difficult to find transistors for the pad layout I'd chosen.Some PCB design software can reverse engineer a pcb layout (from a g...

    see more »

    Yes, I apologise for using Easy-PC. It's not the most popular design package on Instructables.If you read through the comments below by people who have made their own PCBs, you might find someone who will send you schematic and layout files in a format you can read. "amr101dm" was offering some spare PCBs a year ago.The through-hole version is really showing the layout on stripboard. I didn't expect anyone to have it produced as a PCB. I suppose I could upload the gerber files for the stripboard layout but it would be a weird PCB.I didn't test the SM version. It was just a suggestion that people might use. I think there are comments below that it was difficult to find transistors for the pad layout I'd chosen.Some PCB design software can reverse engineer a pcb layout (from a gerber file) to give a schematic which you could then modify yourself. Or I could upload the netlist which you might be able to import into your PCB design software. Either way is probably a lot of work for you.My advice would be just to build the circuit on stripboard. That's what I did. You can see a photo of it in Step 7. It works well and I didn't have to buy a PCB.Peter

    View Instructable »
  • The Eratosthenes-inator

    There is indeed much other evidence that the world is a sphere of radius 6400km. I'm just not sure about the oft-repeated tale that Eratosthenes proved it or measured it.I am always very suspicious of accounts of scientific history that appear to be hagiographies or what Stephen J Gould referred to, in many essays, as Whiggish History. In Time's Arrow, Time's Cycle Gould talked about Hutton and Lyell but the same applies to Newton or Darwin or even Eratosthenes. It's a "self-serving mythology." The estimate that Eratosthenes arbitrarily chose for the distance to the sun was that of Aristarchus. Hipparchus had used parallax to calculate the distance to the moon (and was off by 7%). Aristarchus then tried to do the same for the sun but was off by a factor of 1000. Eratosthenes c...

    see more »

    There is indeed much other evidence that the world is a sphere of radius 6400km. I'm just not sure about the oft-repeated tale that Eratosthenes proved it or measured it.I am always very suspicious of accounts of scientific history that appear to be hagiographies or what Stephen J Gould referred to, in many essays, as Whiggish History. In Time's Arrow, Time's Cycle Gould talked about Hutton and Lyell but the same applies to Newton or Darwin or even Eratosthenes. It's a "self-serving mythology." The estimate that Eratosthenes arbitrarily chose for the distance to the sun was that of Aristarchus. Hipparchus had used parallax to calculate the distance to the moon (and was off by 7%). Aristarchus then tried to do the same for the sun but was off by a factor of 1000. Eratosthenes could have chosen other estimates that put the sun even closer or much further away. He seems to have simply assumed that the sun is a long way away and its rays could be treated as parallel. He couldn't measure that the sun's rays are (almost) parallel. The difference between the rays of a sun 6400km away and 150000000km away are too small.With hindsight, people cherry-pick the "facts" to say how amazingly accurate Eratosthenes was. In actuality, there were several other attempts to measure the earth at that time that gave very different results. 1700 years later it was still being argued about. Columbus used one of those results to claim that the earth was a half to 2/3 of its true size. Some of his contemporaries agreed with him but others thought it was bigger. They said he couln't reach India with just a month's food and they were right - he ran out before he even reached the Americas.Ship observations don't help prove that the earth is spherical either. AFAIK, Flat-earthers claim that ships "disappear over the horizon" as a result of refraction caused by changing atmospheric pressure and density. Refraction effects due to temperature cause mirages so it would be a plausible explanation to Eratosthenes. IIRC, Hal Clement in A Mission Of Gravity pointed out that such refaction has the opposite effect; but Eratosthenes wouldn't know that.

    View Instructable »
  • Millennium Falcon Dashboard (Full Scale Garage Build)

    If you just want "random" flashing LEDs then a 75154 and 555 would work well but the CD4060 chip does it all. It has an on oscillator and a counter.http://www.circuitdiagram.org/multiple-timing-flasher.htmlIf you want the LEDs to come on in sequence then stay on, then a bar-graph display chip - the LM3915 - would work I think. This circuit looks goodhttps://learn.sparkfun.com/tutorials/dotbar-display-driver-hookup-guide/all(about half way down, labelled "Schematic view of simple LM3914 circuit"). But replace R3 - the input to pin 5 - with a 10k resistor to 5V and a 1000uF capacitor to 0V.The voltage should slowly rise and switch on the LEDs. The LEDs will be different colours and scattered around the dashboard of course.

    A 74154 driven by a 555 would work but if you just want "random" flashing LEDs then the CD4060 chip does it all. It has an oscillator and a counter.http://www.circuitdiagram.org/multiple-timing-flasher.htmlIf you want the LEDs to come on in sequence then stay on, then a bar-graph display chip - the LM3915 - would work well. This circuit looks goodhttps://learn.sparkfun.com/tutorials/dotbar-display-driver-hookup-guide/all(about half way down, labelled "Schematic view of simple LM3914 circuit"). But replace R3 - the input to pin 5 - with a 10k resistor to 5V and a 1000uF capacitor to 0V.The voltage should slowly rise and switch on the LEDs. Your LEDs would be different colours and scattered around the dashboard of course.

    If you just want "random" flashing LEDs then a 75154 and 555 would work well but the CD4060 chip does it all. It has an on oscillator and a counter.http://www.circuitdiagram.org/multiple-timing-flasher.htmlIf you want the LEDs to come on in sequence then stay on, then a bar-graph display chip - the LM3915 - would work I think. This circuit looks goodhttps://learn.sparkfun.com/tutorials/dotbar-display-driver-hookup-guide/all(about half way down, labelled "Schematic view of simple LM3914 circuit"). But replace R3 - the input to pin 5 - with a 10k resistor to 5V and a 1000uF capacitor to 0V.The voltage should slowly rise and switch on the LEDs. The LEDs will be different colours and scattered around the dashboard of course.

    View Instructable »
  • Oscilloscope in a Matchbox - Arduino

    Sure. You get what you pay for. The gabotronics modules are $55 to $118 plus postage. A DS0128 is £10. The Etepon at £22 looks interesting.

    View Instructable »
  • The Eratosthenes-inator

    He knew that during a lunar eclipse its shadow was circular. I guess if it was Discworld-shaped then its shadow would sometimes be an ellipse (plus the elephants and turtles).

    Surely Eratosthenes proved that the earth is round with a radius of 6300km and the sun is very far away. Or that the earth is flat and the sun is 6300km away. Or that the earth has a radius of 12700km and the sun is 12700km away. Or anything in between. What proof did he have that the sun was a long way away?He knew the earth cast a circular shadow on the moon so it's "round". But what if he'd done his experiment on Discworld?

    Indeed. Eratosthes's experiment did nothing to prove the earth was a sphere. It made two assumptions - that the earth was a sphere and that the sun was a long way away. Either of those assumptions could have been wrong.Let's try your thought experiment.The two points he used were, lets say, 800km apart (Alexandria and Syene). That gives an angle of 7.2 degrees. If you had a tower half way between them (in Asyut), then the angle of its shadow would be 3.2 degrees.Let's assume that the sun wasn't a long way away. Let's say the radius of the earth is about equal to the distance from the surface to the sun.Radius of the earth = 12804kmSurface to sun = 12779kmThe angle at Alexandria (800km from Syene) would again be 7.2 degrees but at Asyut, the angle would be 3.6026 degrees. He didn't have ...

    see more »

    Indeed. Eratosthes's experiment did nothing to prove the earth was a sphere. It made two assumptions - that the earth was a sphere and that the sun was a long way away. Either of those assumptions could have been wrong.Let's try your thought experiment.The two points he used were, lets say, 800km apart (Alexandria and Syene). That gives an angle of 7.2 degrees. If you had a tower half way between them (in Asyut), then the angle of its shadow would be 3.2 degrees.Let's assume that the sun wasn't a long way away. Let's say the radius of the earth is about equal to the distance from the surface to the sun.Radius of the earth = 12804kmSurface to sun = 12779kmThe angle at Alexandria (800km from Syene) would again be 7.2 degrees but at Asyut, the angle would be 3.6026 degrees. He didn't have the tools to tell 3.6 degrees from 3.6026 degrees.Let's take the worst case: the earth is flat. The angle at Asyut would be 3.614 degrees. Even that would be difficult for him.I can find no evidence that either Eratosthenes or Aristarchus were able to calculate the distance to the sun with any accuracy at all.

    View Instructable »
  • Millennium Falcon Dashboard (Full Scale Garage Build)

    It sounds like you're not 100% comfortable with designing electronics. Electronics hobbyists will immediately suggest addressable LEDs and an Arduino but, as you've probably found, that needs quite a lot of background knowledge.It may be easier for you to use simple logic gates rather than learn how to program a microprocessor.Search eBay for "LED chaser kit". Perhaps it isn't quite what you want but it's getting closer. Or this youtube project gives some nice effects; I like the randomness:https://www.youtube.com/watch?v=D0CPXh-ycvkI presume what you want is, when you flip a switch, a bunch of LEDs come on in sequence then stay on. Right?

    It sounds like you're not 100% comfortable with designing electronics. Electronics hobbyists will immediately suggest addressable LEDs and an Arduino but, as you've probably found, that needs quite a lot of background knowledge.It may be easier for you to use simple logic gates rather than learn how to program a microprocessor.Search eBay for "LED chaser kit". Perhaps it isn't quite what you want but it's getting closer. Or this youtube project gives some nice effects; I like the randomness:https://www.youtube.com/watch?v=D0CPXh-ycvkI presume what you want is, when you flip a switch, a bunch of LEDs come on in sequence then stay on. Right?

    It sounds like you're not 100% comfortable with designing electronics. Electronics hobbyists will immediately suggest addressable LEDs and an Arduino but, as you've probably found, that needs quite a lot of background knowledge.It may be easier for you to use simple logic gates rather than learn how to program a microprocessor.Search eBay for "LED chaser kit". Perhaps it isn't quite what you want but it's getting closer. Or this youtube project gives some nice effects; I like the randomness:https://www.youtube.com/watch?v=D0CPXh-ycvkI presume what you want is, when you flip a switch, a bunch of LEDs come on in sequence then stay on. Right?

    It sounds like you're not 100% comfortable with designing electronics. Electronics hobbyists will immediately suggest addressable LEDs and an Arduino but, as you've probably found, that needs quite a lot of background knowledge.It may be easier for you to use simple logic gates rather than learn how to program a microprocessor.Search eBay for "LED chaser kit". Perhaps it isn't quite what you want but it's getting closer. Or this youtube project gives some nice effects; I like the randomness:https://www.youtube.com/watch?v=D0CPXh-ycvkI presume what you want is, when you flip a switch, a bunch of LEDs come on in sequence then stay on. Right?

    View Instructable »
  • Millennium Falcon Dashboard (Full Scale Garage Build)

    > I'd love to add some slight delays ... but I could use some advice with this.My understanding is that in LED christmas lights, the LEDs are wired in series. Whatever you do to affect one of them will affect all of them. So you can't do it with LED strings like that.Let's say, instead, you wire-up individual LEDs to individual switches. The calculation goes like this:The LED has a forward voltage drop of 1.7V. It needs a current of 10mA (0.01A). You're powering it from a 5V "wall wart". You need a resistor to limit the current to 0.01A. So the resistance is (5-1.7)/0.01 = 330 ohms. For an indicator light, most people use 470ohms so the LED isn't as bright as it could be.Let's say you put a capacitor across the LED. So the capacitor has to charge through the resistor before...

    see more »

    > I'd love to add some slight delays ... but I could use some advice with this.My understanding is that in LED christmas lights, the LEDs are wired in series. Whatever you do to affect one of them will affect all of them. So you can't do it with LED strings like that.Let's say, instead, you wire-up individual LEDs to individual switches. The calculation goes like this:The LED has a forward voltage drop of 1.7V. It needs a current of 10mA (0.01A). You're powering it from a 5V "wall wart". You need a resistor to limit the current to 0.01A. So the resistance is (5-1.7)/0.01 = 330 ohms. For an indicator light, most people use 470ohms so the LED isn't as bright as it could be.Let's say you put a capacitor across the LED. So the capacitor has to charge through the resistor before the LED will turn on. A 470uF capacitor is a fairly large commonly available capacitor. The time is takes to charge the capacitor will be very roughly the "time constant" of the resistor-capacitor circuit. The "time constant" is resistance times capacitance which is 470*470/1000000 = 0.22 seconds.So the LED will turn on 0.22 seconds late. Does it work that way? Yes, I just tried it. The delay is there but it's so short you really have to be looking for it to notice - maybe 0.1sec.Also, with a capacitor across the LED, the LED stays lit for a little while after the switch is off. If you switch it back on a couple of seconds later, it illuminates immediately because the capacitor hasn't discharged.You could use a much bigger capacitor - say 1 Farad. They're bulky and cost a few dollars - how many will you use? I've got some I could test if you want.I suspect that your best bet is to use a string of "individually addressable LEDs". They'd be great for your display - they could blink or come on in sequence or change colour in response to the switches. But I don't know of any simple controller that is plug-and-play. You need to be an electronics buff to get the best out of them.Peter

    Update: I tried it with a 12V supply, a 1.5k resistor and a 2200uF capacitor. That gives a quarter second delay which may be what you're looking for.Have you thought of using a digital photo frame for the display to show a sequence of "technical" and "navigation" pictures? They're pretty common in charity shops and car-boot sales and are not too expensive on eBay.

    Update: I looked a string of blue LED lights from a "dollar store" powered by 3 AA cells. They're wired in parallel with just one 33 ohm resistor for all of them. So it's not goint to work for what you want. I think you're going to have to use individual LEDs.

    View Instructable »
  • Magic Lantern Revamp

    Sorry for the delay in responding, I'm just back from backpacking in Colombia for six weeks.I'm really please with the projector. It looks lovely and works well. The problem is finding magic lantern slides. I've got a dozen but they're rather dull. What I want is "Views of the Holy Land" or "Castles of Scotland" - the sort of show that would be put on in a village hall in 1900. I found a box of a hundred slides in an antique shop but the guy wanted £5 each for them which I thought was excessive so I declined. I'll keep looking.I managed to get a box of blank glass plates and I'm wondering whether I can make my own slides. Perhaps I can laser print onto transparent film and sandwich it between the plates.

    View Instructable »
  • Transistor Curve Tracer

    Sorry for the delay, I'm backpacking in Colombia for a few weeks.WiFi or BT would be great for displaying on a phone. Please do write an inscrutable for when I get home.

    View Instructable »
  • Signal Generator AD9833

    Excellent. I look forward to your instructable when you finish!

    View Instructable »
  • Oscilloscope in a Matchbox - Arduino

    Interesting. The STM32 gets a much better sample rate. I guess it's time I started learning how to use it.

    Sorry for the delay I'm backpacking in Colombia for a few weeks.The way an op amp works when used as an amplifier is that it adjusts its output so as to try to keep its negative input at the same voltage as its positive input. They should differ by a few microvolts.So the input to A1 will be centred on 0.55V.I hope that makes sense.Peter

    View Instructable »
  • Signal Generator AD9833

    That sounds good. Did you use my code for the OLED?My code is more complicated then it needs to be probably because all I did was delete lines from the "Oscilloscope in a Matchbox".

    View Instructable »
  • Transistor Curve Tracer

    Yes, as far as I know they have an identical specification apart from the USB chip. Different Arduinos have different bootloader sizes which may make a difference. My advice is to try compiling the program - if it compiles OK, it should run OK.

    View Instructable »
  • Transistor Curve Tracer

    > Where is the probe to test the transistor? The 14pin Zif socket? Yes. As it says in Step 1: How to Use It,"Put the Device Under Test (DUT) into the ZIF socket. The menu screen shows you which pins to use. PNPs, p-channel MOSFETS and n-channel JFETS go in the left side of the socket. NPNs, n-channel MOSFETS and p-channel JFETS go in the right side of the socket."> Is it possible to replace the socket with probes?You'd need one set of probes for PNPs, p-channel MOSFETS and n-channel JFETS and a second set of probes fo NPNs, n-channel MOSFETS and p-channel JFETS. That's 6 probes in total.Alternatively, you could have just 3 probes and a changeover switch to connect them to the left or right side of the ZIF socket.I've found when testing components that a socket is more co...

    see more »

    > Where is the probe to test the transistor? The 14pin Zif socket? Yes. As it says in Step 1: How to Use It,"Put the Device Under Test (DUT) into the ZIF socket. The menu screen shows you which pins to use. PNPs, p-channel MOSFETS and n-channel JFETS go in the left side of the socket. NPNs, n-channel MOSFETS and p-channel JFETS go in the right side of the socket."> Is it possible to replace the socket with probes?You'd need one set of probes for PNPs, p-channel MOSFETS and n-channel JFETS and a second set of probes fo NPNs, n-channel MOSFETS and p-channel JFETS. That's 6 probes in total.Alternatively, you could have just 3 probes and a changeover switch to connect them to the left or right side of the ZIF socket.I've found when testing components that a socket is more convenient than probes. Probes are useful for large power transistors which don't fit in the socket - so I temporarily connect probes to the socket.Peter

    View Instructable »
  • Transistor Curve Tracer

    Afterpen_width = 2;all lines will be drawn with a disc of radius 2. Afterpen_width = 1;all lines will be drawn thin. So insert an assignment to pen_width before any call to the DrawLine function:pen_width = 2;DrawLine(....);There are several assignments to pen_width and calls to DrawLine in the INO file. You can search for them.

    A Windows program is attached (in SimpleILI9341.zip in Step 4) which allows you to make your own fonts and icons. It also allows you to make your own bitmaps.In the SimpleILI9341 library, fonts are used when writing strings. Bitmaps are used for the small pictures.The curves of the Transistor Curve Tracer are drawn as lines, not fonts or bitmaps.Are you asking how to change the width of lines? In the SimpleILI9341 library, there is a global variable called pen_width. extern uint8_t pen_width; // if pen_width > 1 then draws with a disc of radius pen_widthPeter

    View Instructable »
  • Oscilloscope in a Matchbox - Arduino

    What a great idea. What is it powered with? Is that a power-jack or a ground connector?

    View Instructable »
  • Transistor Curve Tracer

    My design uses the MCP4802 - an 8-bit DAC. The MCP4812 is a 10-bit DAC and the MCP4822 is 12-bit so you may need to make some changes to the program. I have not used the MCP4812 or MCP4822.You should download the MCP48x2 datasheet from Microchip. At first glance, it looks like the MCP4802, MCP4812 and MCP4822 all use the same registers so my code might work.

    View Instructable »
  • Signal Generator AD9833

    Yes it's an I2C Oled. And you're right, the clock for I2C is called "SCL" not "SCK". Thank you, I'll correct the text.

    View Instructable »
  • Transistor Curve Tracer

    How do you operate it without a touchscreen?The PCB looks very good. Would you be happy to upload the Gerbers for other people to use? Would it work with a touchscreen?

    View Instructable »
  • Transistor Curve Tracer

    T_IRQ is not used by the Arduino library.How did you test the connections? Did you use a meter or just look at them? Have you got any solder-bridges?If you search Instructables for ILI9341, you will find other simple projects you could use to test whether your screen is working.

    View Instructable »
  • Transistor Curve Tracer

    Perhaps the display signal lines are working but the touch signal lines are not.The display is controlled by the signals: CS RESET DC MOSI SCKThe touch is controlled by the signals: T_CLK T_CS T_DIN T_DO

    If the LCD has a ILI9341 driver IC controlled with SPI then it should produce some sort of output with my code. You may find that you need to shift the display left or right a couple of pixels. My design uses the MCP4802 - an 8-bit DAC. The MCP4812 is a 10-bit DAC so you will need to make some changes to the program. I have not used the MCP4812.You should download the MCP4812 datasheet from Microchip. At first glance, it looks like the MCP4812 uses the same registers so my code might work.Peter

    View Instructable »
  • Covering Rotating Mass of ERM Motors

    I've used thin-walled ballpoint pen barrels cut to length and also the outer sheath of LAN cable. I tried vinyl tube but thought the tube wall was too thick.

    View Instructable »
  • Banana Booster - True Tube Booster

    Is there a mistake in the schematic in the way SW1.1 is connected?How does the grid bias of U3.2 work? Presumably you're relying on the grid current through R1 to provide the right grid voltage. Does adjusting R1 produce different distortions. It's decades since I learnt with valves but I recall something about different harmonics being introduced with grid current distortion vs. anode distortion.

    View Instructable »
  • Transistor Curve Tracer

    A "touchscreen" like yours consists of a TFT display screen and a resistive touch controller.The display screen is controlled by a chip such as the ILI9341 but several other controller chips are available. Each kind of chip needs its own Arduino library and each kind of chip might be connected to the screen in several different ways. So you need the right library and it must be configured to match how the controller chip has been used on that particulat board.Similarly, the resistive touch pad is controlled by a chip such as the XPT2046 (several other controller chips are available). Once again, each kind of chip needs its own Arduino library and each kind of chip might be connected to the pad in several different ways. You need the right library and it must be configured to m...

    see more »

    A "touchscreen" like yours consists of a TFT display screen and a resistive touch controller.The display screen is controlled by a chip such as the ILI9341 but several other controller chips are available. Each kind of chip needs its own Arduino library and each kind of chip might be connected to the screen in several different ways. So you need the right library and it must be configured to match how the controller chip has been used on that particulat board.Similarly, the resistive touch pad is controlled by a chip such as the XPT2046 (several other controller chips are available). Once again, each kind of chip needs its own Arduino library and each kind of chip might be connected to the pad in several different ways. You need the right library and it must be configured to match how the controller chip has been used on that particular board.I believe that some people have found that their touch pad is "mirrored" relative to the library they are using. It depends how the board designer connected the chip.My library is specific to the touchscreen I recommended. Your touchscreen looks similar but may not be exactly the same. Other people have built this project and have not had problems with the screen.The first question you need to answer is: is the fault in the hardware or software.As I suggested, you could search Instructables or the web for a project that uses exactly the same screen you have. If the project works then you will know your circuit is good and the problem is that my library is not suitable for your touch pad chip.

    What do you mean "stilus mode tft touchcreen"? Is it a different screen from the 2.8" ILI9341?> not build the whole project, just wiring betwen arduino and displayI don't know whether the INO file will work without the rest of the circuit. I would expect it to but I haven't tested it.If you are just wanting to ise an ILI9341 with an Arduino without the rest of the Curve Tracer then there are several other Instructables. Search forhttps://www.instructables.com/circuits/howto/ili9341/Or use Google to search for "ili9341 arduino".

    View Instructable »
  • Transistor Curve Tracer

    T_DIN should be connected to MOSI.SCK should be connected to T_CLK.

    View Instructable »
  • Transistor Curve Tracer

    What does work and what doesn't work?

    View Instructable »
  • Transistor Curve Tracer

    From your description, you change the Setup then you connect the USB.When you connect the USB, some PC USB serial drivers toggle the serial port by momentarily setting the DTR line low. That resets the Arduino. You might have luck with a different PC.When the Arduino is reset, it waits 2 sec to see if the PC is going to send it some programming information and, if not, then runs the user's program. So the user's program starts from scratch which initialises the values of MinIbase and MaxIbase (line 51).You can disable that Auto Reset - google for "Arduino disable auto reset".Peter

    View Instructable »
  • Oscilloscope in a Matchbox - Arduino

    I'm glad it worked for you so easily. I write Instructables thinking "I hope this inspires people to do their own thing" rather than as a recipe to follow. But the Oscilloscope and the Curve-tracer have been built as-is by many people. So now I feel responsible.If your grandson is interested in waveforms then a microphone and the audio-recorder of a PC are great. He'll be able to see the difference between high and low frequencies, the wave shapes of different instruments, etc. I write speech analysis s/w so I don't know much about what's available for free but I have used the free versions of Cool Edit and Audacity. I think both will do Fourier transfoms and show spectrograms - it's a fascinating way to look at speech.Peter

    View Instructable »
  • Transistor Curve Tracer

    I'm not sure I understand. You're comparing what's shown in the Windows program vs what's shown on the TFT display?It's a year since I wrote the code so I've forgotten many of the details. I was using the Windows program (which is written in Delphi) to debug the display s/w before transferring it to the Arduino. I find it easier to do it that way for user-interfaces (Delphi is particularly good at user interfaces).IIRC, if the Delphi program sends a command to the Arduino then the Arduino stops doing things automatically and expects more commands from the Delphi program. So the Delphi program can decide what the step sizes are for the base current and collector voltage.Are you saying that when the Arduino is running in "stand alone" mode it has too many steps in the base curre...

    see more »

    I'm not sure I understand. You're comparing what's shown in the Windows program vs what's shown on the TFT display?It's a year since I wrote the code so I've forgotten many of the details. I was using the Windows program (which is written in Delphi) to debug the display s/w before transferring it to the Arduino. I find it easier to do it that way for user-interfaces (Delphi is particularly good at user interfaces).IIRC, if the Delphi program sends a command to the Arduino then the Arduino stops doing things automatically and expects more commands from the Delphi program. So the Delphi program can decide what the step sizes are for the base current and collector voltage.Are you saying that when the Arduino is running in "stand alone" mode it has too many steps in the base current for a bipolar transistor? The base steps are controlled by the Minbase, Maxbase and incBase variables. If you look through the INO file, you'll see how incBase is calculated.Calculating gain may well be different between the two programs. "gain" is rather poorly defined for a transistor and I could well have chosen different algorithms. As I said in the Instructable: For bipolar transistors, the Arduino looks at the average spacing of the horizontal lines of the curves. As it draws the curve for base current, it notes the collector current when Vce is equal to 2V. The change in collector current is divided by the change in base current to give the gain. The gain of a bipolar is a vague concept. It depends on how you measure it. No two makes of multimeter will give the same answer. Generally, all you're asking is "is the gain high?" or "are these two transistors the same?". Once I had used the Delphi program to design the screens and debug the Arduino hardware, I started tweaking the Arduino program. I probably didn't update the Delphi program with all the changes I made to the Arduino program.Peter

    View Instructable »
  • Oscilloscope in a Matchbox - Arduino

    > In step nine there's two pushbuttons mentioned. Weren't they 4k7 pots?I can't find "4k7" anywhere in the text of any steps.There are two pushbuttons: a "Horizontal" button to adjust the Timebase axis and a "Vertical" button to adjust the Gain axis. > stability problems may occurDanielW272 asked the same question (below).If you google "stability problems may occur" you'll find full discussions.

    Near line 35 of ArdOsc2 are boolean constants to turn on/off the different features of the circuit:bool bHasLogic = true;bool bHasFreq = true;bool bHasVoltmeter = true;bool bHasTestSignal = true;bool bHasSigGen = false;If you set them to false then those features will not be enabled. Is that what you want?Unfortunately, the compiler and linker still generate/link code for the unused parts of the program. A good quality compiler will remove dead code but the Arduino IDE doesn't - but it's free so you can't complain too much. A good compiler will also highlight which lines of source code are dead and a very good compiler will allow you to see the assembler that each source line generates.In the case of ArdOsc2, I don't see much advantage to removing the dead code - we're not running out o...

    see more »

    Near line 35 of ArdOsc2 are boolean constants to turn on/off the different features of the circuit:bool bHasLogic = true;bool bHasFreq = true;bool bHasVoltmeter = true;bool bHasTestSignal = true;bool bHasSigGen = false;If you set them to false then those features will not be enabled. Is that what you want?Unfortunately, the compiler and linker still generate/link code for the unused parts of the program. A good quality compiler will remove dead code but the Arduino IDE doesn't - but it's free so you can't complain too much. A good compiler will also highlight which lines of source code are dead and a very good compiler will allow you to see the assembler that each source line generates.In the case of ArdOsc2, I don't see much advantage to removing the dead code - we're not running out of space. You could rewrite ArdOsc2 so that those boolean constants are preprocessor directives then use #ifdef ... #endif.Peter

    View Instructable »
  • Oscilloscope in a Matchbox - Arduino

    which parts are you wanting to remove?

    View Instructable »
  • Oscilloscope in a Matchbox - Arduino

    > I tried building the first circuit and I ran the sketch too...The arduino will produce serial output. The PC can receive the output at a COM port - the same one you use when programming the arduino (set in the Tools Port menu of the arduino IDE).> Is the output supposed to show up in the serial Plotter?Yes.If you click on the Options Debug command, a window will open and will show you the bytes as they arrive. What do you see?> Also the.exe file couldn't be opened. I'm using a Windows 10 laptop.What is the error message?Do you mean that the exe file would not run at all or it did run but produced an error message?Does your virus checker prevent you from downloading and running exe files?

    View Instructable »
  • Transistor Curve Tracer

    I'm not sure what you're asking.Here is the official Arduino page describing how to install a library from a zip file:https://www.arduino.cc/en/Guide/LibrariesHave you successfully installed and compiled any other zip libraries?

    View Instructable »
  • Peter Balch's instructable Folding Arcade Cabinet's weekly stats:
    • Folding Arcade Cabinet
      593 views
      16 favorites
      2 comments
  • Folding Arcade Cabinet

    Thanks. I haven't tried storing it yet. It spent a while in the kitchen where every visitor wanted to play their most nostalgic game. But now it's on my desk next to my Windows PCs acting as a Linux desktop while I try to learn Python and Opencv.So, for me, the "dual-use" is the most important feature.

    View Instructable »
  • Peter Balch commented on rhallett's instructable Turn MDF Into Marble
    Turn MDF Into Marble

    I believe it's traditional to use a feather as the "brush" when painting faux marble. Have you tried it?

    View Instructable »
  • Oscilloscope in a Matchbox - Arduino

    > DSO138: he's not a "true" scope, but close enough... OK. I just worry that electronics newbies might think that my design is the way to get a cheap scope. I expect you'd agree that they'd be better getting a DSO138?I'll have to look at the DLO138.> Nano, but chinese clones get this 3.3V from CH34x, used as a USB/serial converter, so, this current cannot be very high I'm using a cheap clone and haven't had any problems. Maybe it helps that the screen is mostly black.> "superprobe" ... a pic-based thingie able to measure and generate some signals.> ... this means i cannot keep the scope part... In the "People Made This Project!" above, MasterLaptopP made one which looks like a really nice probe. I wish I'd thought of that.Peter

    View Instructable »
  • Oscilloscope in a Matchbox - Arduino

    Looking at chat rooms, it seems that the max I2C rate for Arduino is 10kbytes/sec or maybe 35kb/s. So no I2C ADC is going to be much use as an oscilloscope. I keep saying if someone wants a cheap oscilloscope, the DSO138 on eBay looks like a better bet - I ought to buy one to try. My Arduino design is nice because it's tiny (think of it like a VU-meter), it does 4 digital channels and I think the AD9833 signal generator is a useful addition.Peter

    Pretty low data rate: "The ADS101x perform conversions at data rates up to 3300 samples per second (SPS)"

    View Instructable »
  • Pocket Size Spinthariscope

    Remove the lens and filter from the webcam and just put the Americium near the ccd sensor. No need for ZnS. If you google for 'Americium webcam', you'll find examples.

    View Instructable »
  • Oscilloscope in a Matchbox - Arduino

    > If I send any serial input to the Nano the scope stops sampling. That's weird. Is it something specific to the LGT8F328P ?> SendingSerial, it is set true at the end of the function SerialCommand, > but I cannot find anywhere it is reset to false. Yes. > what is the function of the SendingSerial variable? SendingSerial was originally used for debugging and put the program into "debugging mode". As you say, the program stays in debugging mode until it's restarted.Then I realised it might also be good for capturing data for documentation or whatever. Most of the "screenshots" in the instructable are actually from a an exe on a PC emulating the Arduino program.> the first time you send 'D' to the Nano the response does not have an ack '@' I hadn't spotte...

    see more »

    > If I send any serial input to the Nano the scope stops sampling. That's weird. Is it something specific to the LGT8F328P ?> SendingSerial, it is set true at the end of the function SerialCommand, > but I cannot find anywhere it is reset to false. Yes. > what is the function of the SendingSerial variable? SendingSerial was originally used for debugging and put the program into "debugging mode". As you say, the program stays in debugging mode until it's restarted.Then I realised it might also be good for capturing data for documentation or whatever. Most of the "screenshots" in the instructable are actually from a an exe on a PC emulating the Arduino program.> the first time you send 'D' to the Nano the response does not have an ack '@' I hadn't spotted that. As I say, it was really just for debugging - so long as it kind-of worked I was happy.Maybe you could set SendingSerial earlier?I do hope your project works. The built-in "gain programmable differential amplifier" might mean you could simplify my circuit considerably.Could you make an instructable of it or publish the details when it's finished.Peter

    >> If I send any serial input to the Nano the scope stops sampling.> That's weird. Is it something specific to the LGT8F328P ?It's quite useful for debugging to have the serial commands working.Does the scope stops sampling because it's hung in the LGT8F328P serial code - maybe waiting for input?Could you have a flashing LED or something that tells you that the main loop is still running?Peter

    View Instructable »
  • Signal Generator AD9833

    TungL20 has pointed out that the button assignment in the schematic is to pins 6 and 7 but the code refers to pins 4 and 7.Lines 35-36 of SigGen2.ino should be:const int BtnHorz = 6; // pushbuttonconst int BtnVert = 7; // pushbuttonSorry for my mistake.

    I'm glad it worked for you. Thank you for pointing out the error. I was making the circuit as an add-on to my "Oscilloscope in a Matchbox" and I must have got confused as to which circuit I was making.https://www.instructables.com/id/Oscilloscope-in-a...The AD9833 is a really nice isn't it?Peter

    View Instructable »
  • Oscilloscope in a Matchbox - Arduino

    In analogue mode, the oscillocope is fairly decent up to 20kHz; above that, the response drops off until it's not much good above 100kHz - you can see there's a signal but not what shape it is. In logic mode, 1Msps works well so you'll easily measure a 250kHz signal.The compiler warning messages are nothing to worry about. I don't usually see them because I've turned off compiler warnings (File|Preferences menu). sweepType is a variable of enumerated type TsweepType and is stored as a byte. Some C compilers allow you to do arithmetic on enumerated types without complaint and do the neccessary conversions silently. Others complain about it then do the conversions anyway. I ought to have put in an explicit conversion with:sweepType = TsweepType(sweepType+1);I was just being lazy. The code...

    see more »

    In analogue mode, the oscillocope is fairly decent up to 20kHz; above that, the response drops off until it's not much good above 100kHz - you can see there's a signal but not what shape it is. In logic mode, 1Msps works well so you'll easily measure a 250kHz signal.The compiler warning messages are nothing to worry about. I don't usually see them because I've turned off compiler warnings (File|Preferences menu). sweepType is a variable of enumerated type TsweepType and is stored as a byte. Some C compilers allow you to do arithmetic on enumerated types without complaint and do the neccessary conversions silently. Others complain about it then do the conversions anyway. I ought to have put in an explicit conversion with:sweepType = TsweepType(sweepType+1);I was just being lazy. The code that's generated is exactly the same.The "Little memory available, stability problems can occur" warning is just saying the stack is rather small. I don't declare any large arrays as local variables so that isn't a problem. (And I don't use the heap AFAIK. It's a pity the compiler doesn't do a static analysis of the function calls and calculate the maximum stack size.)

    View Instructable »
  • Oscilloscope in a Matchbox - Arduino

    That's a nice idea - I didn't think of it. Searching the web, I see that other people have done it so it is possible on an Arduino. I wonder how big the code is. Do you think a spectrum with only 128 bins would be worth it? I guess you're just looking to see if the frequency response of an audio amp is flat.If you're wanting to look at an audio spectrum, just use a laptop - even with the default MIC input, you can get decent results.I think that a for worthwhile measurement of signal to noise, you'd need a better op-amp and ADC - and proper separation of the digital and analogue parts of the circuit. Most of the noise you'd measure would be from the oscilloscope.Peter

    View Instructable »
  • Transistor Curve Tracer

    Many apologies for not replying to any comments: I've been backpacking in Peru for the last 6 weeks and forgot to take a copy of the password for this forum. I can't see any questions that need my answer - if there are please re-post.ThanksPeter

    View Instructable »
  • Oscilloscope in a Matchbox - Arduino

    Yes please do. What a great idea. It never occurred to me to make a shield - I've never owned an Uno.Did you add the AD9833 module? (Step 13.) I think the AD9833 is a good chip and a signal generator is well worth having but I'm not sure that it's ideal to have it built into the oscilloscope. Separate may be better.Peter

    View Instructable »
  • Transistor Curve Tracer

    I think you had a previous version which used arduino but a better op-amp, etc.Would it be better to publish your arduino version?I couldn't write an instructable for the STM32F103/MapleMini.

    If you send me the code and the circuit diagram, I'll make a new "Step" for your improvements to the project. Your description here is OK but would be difficult for a beginner to follow I think.

    View Instructable »
  • Transistor Curve Tracer

    > I had some weeks holidays ... and time to think about it.I hope you had a good time. Where did you go?> It's a little bit slow with the graphic, You mean the menu pages? Yes, I think that's that's about as fast as an ATMega328 and SPI will do it.Of course, it's slow to draw the graphs because the "open collector op-amps" have so much feedback they're very slow and the s/w waits ages for them to settle.> for instance a diode> It would be nice to scale it more flexible.True.> -- the ATMega328 has only ADCs with 10 bit resolution.Yes but when you look at the noise in the signals we're measuring and the resolution of the display, it's not worth having much more.> You can see a demo of the Curve-Tracer with MapleMini here:That looks very good. Not much noise and...

    see more »

    > I had some weeks holidays ... and time to think about it.I hope you had a good time. Where did you go?> It's a little bit slow with the graphic, You mean the menu pages? Yes, I think that's that's about as fast as an ATMega328 and SPI will do it.Of course, it's slow to draw the graphs because the "open collector op-amps" have so much feedback they're very slow and the s/w waits ages for them to settle.> for instance a diode> It would be nice to scale it more flexible.True.> -- the ATMega328 has only ADCs with 10 bit resolution.Yes but when you look at the noise in the signals we're measuring and the resolution of the display, it's not worth having much more.> You can see a demo of the Curve-Tracer with MapleMini here:That looks very good. Not much noise and much faster. Why do the lines drop a little at the end?> Therefore I tried to migrate the SW from ATmgA328/NANO to STM32F103 MapleMini.Could you write an instrucable?Which op-amp did you use?Peter

    View Instructable »
  • Transistor Curve Tracer

    Imagine The NPN DUT collector and emitter are connected. The collector of Q3 is connected to 12V and Q3 is turned partially on so that its emitter is at 6V. That's the "worst case". R37 is 100 ohms. So the current is 6/100 = 60mA and the power in the transistor is 60*6 = 360mW. The maximum power of a BC847 is 250mW. Its max current is 100mA - which is OK but, in theory, it can't dissipate that much heat. In practice that's 360mW max but the average power is much less as it's not on all the time. Also the DUT collector and emitter are not connected - it's dissipating some power too.So I think you'll be OK using a BC847.I'm surprised you can't get BC639 SOT-23. I was sure I'd bought them in the past. I'll have to find a new "favourite transistor".Peter

    View Instructable »
  • Oscilloscope in a Matchbox - Arduino

    HiThat's great. I'm glad it worked for you.> access to a decent electronics lab with a signal generator and real oscilloscope to play with.Did you add the AD9833 (Step 13)? I found it is a good chip with reliable timing and amplitude.> Is there a hard requirement for D6 to be at +0.55V?The frequency counter either counts the number of rising edges in one second or measure the time from one rising edge to the next. I think D6 must be connected to +0.55V otherwise the comparator + input will be floating.So without D6 connected, the "Logic" mode of the frequency counter will work but the "AC (period)" mode won't. (Or maybe the floating D6 will mean it works sometimes but not reliably.)I've been finding that the "AC (period)" mode isn't as good as I'd lik...

    see more »

    HiThat's great. I'm glad it worked for you.> access to a decent electronics lab with a signal generator and real oscilloscope to play with.Did you add the AD9833 (Step 13)? I found it is a good chip with reliable timing and amplitude.> Is there a hard requirement for D6 to be at +0.55V?The frequency counter either counts the number of rising edges in one second or measure the time from one rising edge to the next. I think D6 must be connected to +0.55V otherwise the comparator + input will be floating.So without D6 connected, the "Logic" mode of the frequency counter will work but the "AC (period)" mode won't. (Or maybe the floating D6 will mean it works sometimes but not reliably.)I've been finding that the "AC (period)" mode isn't as good as I'd like because the comparator has no hyteresis so if there is noise, you get multiple triggers.Peter

    View Instructable »
  • Transistor Curve Tracer

    Slew rate doesn't matter because we're measuring the DC characteristics of the transistor - you wait a few mS for everything to settle befor taking a reading. Rail-to-rail output is very convenient as it makes it possible to measure the transistor with Vbe and Vce close to zero. If you don't have rail-to-rail output then you have to find someother way of, say, offsetting the emitter voltage.The L1632 says it has "Large Output Drive Current" but the data sheet says 35-40mA. That's OK for small signal transistors but rather low for power transistors.

    View Instructable »
  • Transistor Curve Tracer

    Let's say you're using the L2722 to control the base of a transistor. According to the data sheet, the output of the L2722 can get to within 100mV of the 0V line which is good (I think that's what the data sheet says). But it can only get to within 0.5V of the 12V line. So if you're testing a germanium PNP then you might not be able to fully turn off the transistor. In reality, that might not be important but it's worth testing. If it turns out to be a problem then maybe there's some way of setting the emitter of the PNP to 0.5V below the 12V power line - say with a diode. Or maybe you could put a diode in the connection between the output of the L2722 and the base of the PNP so the base is 0.5V above the output of the L2722. The drop across a diode is very non-linear of course so you'd...

    see more »

    Let's say you're using the L2722 to control the base of a transistor. According to the data sheet, the output of the L2722 can get to within 100mV of the 0V line which is good (I think that's what the data sheet says). But it can only get to within 0.5V of the 12V line. So if you're testing a germanium PNP then you might not be able to fully turn off the transistor. In reality, that might not be important but it's worth testing. If it turns out to be a problem then maybe there's some way of setting the emitter of the PNP to 0.5V below the 12V power line - say with a diode. Or maybe you could put a diode in the connection between the output of the L2722 and the base of the PNP so the base is 0.5V above the output of the L2722. The drop across a diode is very non-linear of course so you'd have to have some way of drawing a current through the diode. Or maybe the 0.5V will not be important.I was unhappy with my "open collector" op-amp design but it did allow the base voltage of a PNP to get very close to the 12V line.> What the dividers 47k/33k on A inputs? Just choose whatever gives you the voltage swing you need. The values are specified in the Ardiono sketch.Good luck.Peter

    View Instructable »
  • Transistor Curve Tracer

    My thought is that for bipolar and MOSFET transistors the answer is no, not really. With the curve for collector current vs voltage, you'd get more points on the x-axis but I think it has enough points already.When setting the steps for base current, you could have lots more steps or they could be more finely specified but step size isn't a problem.The real problem with the graphs is noise - I take several readings and average them. I don't know where the noise comes from. I presume it's digital interference from the power. More bits in the DACs wouldn't help.With JFETs, you use the DACs to adjust Vgs and smaller steps might help (i.e. more DAC bits). But once again, the actual problem is noise. With JFETs, noise is particularly bad because noise in Vgs gets amplified by the FET.The bes...

    see more »

    My thought is that for bipolar and MOSFET transistors the answer is no, not really. With the curve for collector current vs voltage, you'd get more points on the x-axis but I think it has enough points already.When setting the steps for base current, you could have lots more steps or they could be more finely specified but step size isn't a problem.The real problem with the graphs is noise - I take several readings and average them. I don't know where the noise comes from. I presume it's digital interference from the power. More bits in the DACs wouldn't help.With JFETs, you use the DACs to adjust Vgs and smaller steps might help (i.e. more DAC bits). But once again, the actual problem is noise. With JFETs, noise is particularly bad because noise in Vgs gets amplified by the FET.The best way to improve the circuit is to use the TCA0372 as discussed by mausi_mick below.Peter

    View Instructable »
  • Oscilloscope in a Matchbox - Arduino

    Nice idea. Have you tried it and examined the quality of the resulting data?Peter

    View Instructable »