Member #489794

Member Since: November 18, 2013

Country: United States

  • I ended up in a Somewhat Unhappy Place in my project. Originally, I designed it for a Tiny85. Alas, the AtTiny85 was just a wee bit too tiny. To get enough Flash, SRAM, and EEPROM, I had to graduate to a Tiny167.

    This had an unhappy downside: the chip is physically larger, but the form factor for where the board goes is not negotiable. x,y and z are severely constrained. So I had to lose the USB connector. How am I going to program it? Well, I still have this TinyAVR programmer, let’s put it to good use. Six-pin header? Oh no. Not a chance. Besides taking up more space than the USB connector, I don’t have the vertical space to put one in.

    Ok, consider the Lily tiny board. Six pins on the underside to program it, for example, by soldering pogo pins into the TinyAVR six-pin-header. No, won’t work. Arranging that six-pin space not only requires physical space, but the impact on trace routing is a Total Disaster. We looked at the magnitude of this disaster. Turns out, the disaster is so bad that we could ask FEMA for assistance This leads to my next problem set: how do I Run without a bootloader? Somebody has to transfer control from the reset vector to main()?

    void main()
    {
      setup();
      while (true)
          loop();
      }
    

    Ok, yes, this in an oversimplification, but it’s good enough to illustrate my point. What (if anything) do I have to do to get my sketch to work?

    The Tiny85 is too tiny in other aspects. Turns out that I need to use close to 100% of the Flash for my sketch. So burning the bootloader is no longer an option.

    The current plan is to build a five-pin board with pogo pins that mate with the Tiny167 SOIC20 pins. A jig to hold the programmer in alignment with the mainboard (Vcc will not be connected, because I have several 3.3V-only sensors I do not wish to fry. The unit is battery-powered using a CR2032), and viola (as we used to say, in the string section), a downloadable bare ‘167, nary a bootloader nor ISP header in sight.

    So, what, if any, magic will allow me to achieve this? joe

  • I want to generate the signal via an output pin on an Arduino. The Tone function in the Arduino library or something similar would be used. Essentially, the output is a square wave at the desired frequency. The piezo devices don’t have enough volume, so this is an experiment to see if the combination of the 8 ohm surface transducer with this amplifier makes the sound audible over ambient noise. But I am decades from my audio experience (such as it was) and “line level” conveys nothing to me about what the voltage levels should be. Any advice as to how to use this to amplify the output from the Arduino? Note that concepts like THD are irrelevant here. The idea is to be able to generate sequences of tones to convey the happiness or lack thereof of a given piece of equipment. Happiness would be a short beep about every minute; degrees of unhappiness are indicated by different combinations of beeps (lower pitch, or two-tone sequences, or a descending glissando [battery low, in case you were wondering]), as appropriate, and the interval between the sequences indicates the degree of unhappiness, e.g. 10 repeats per minute means that something Really Bad is imminent. If the square wave gets distorted and looks sinish (or cosinish), sawtooth, or other weird shape, that just doesn’t matter. What I need are different frequencies, and volume. The surface transducer would be mounted on the inside of the case containing the device. The nature of its environment is not user-friendly to electronics (read: very wet) so there are no openings in the hermetically-sealed case. This rules out internal or external speakers.

  • What side of the PCB to solder to? The one with the copper on it. If there is copper on both sides, then either side will work. For a professional product like this, it most likely has “through-plated” holes so it doesn’t matter which side gets soldered. For home-done PCBs, if they are double-sided, you will have to solder both sides because it is hard to do through-plated holes.

  • Seeing this product, I realized it was time for me to learn about BLE. In my meanderings, especially w.r.t. the Android issue, I found this site:

    http://www.tekritisoftware.com/how-to-implement-ble-in-android

    It may answer some of Android issues. I don’t own an Android device at this time, so it wouldn’t help me.

    I do have a question, though. Are there a set of “standards” for such mundane tasks as conveying temperature sensor, time, humidity, atmospheric pressure, etc.? Where would I find it if it exists? It strikes me as a waste of my time to create my own protocols, especially if I want compatibility between my sensors and existing software apps, or if I want to replace a prototype sensor with one I buy off-the-shelf?

  • Another good application: electric wheelchair batteries. 24V, OMG amps (but well under fifty), very flat discharge until the critical point when voltage drops abruptly. Having an “estimated hours of battery remaining” or some other representation other than the trivial voltmeter they come with would be a great device. I can start out with what appears to be a full charge and a block later I’m looking for someone to give me a push! A few experiments counting coulombs before battery discharge, and I’ve got a “countdown timer” for actual usage.

    Don’t count your coulombs before they’re hatched…

No public wish lists :(