Useful / useless electronic components

Discussion in 'Off-Topic' started by Motanache, Feb 9, 2017.

  1. Motanache

    Thread Starter Member

    Mar 2, 2015
    474
    53
    What components have purchased and proved useful / useless?

    I have a Raspberry Pi and was not helpful. It is still very popular.
    I did not understand why.

    At the same price as Raspberry Pi you can buy a tablet. It has in addition touch display, WiFi, battery.
    And a better processor.

    Raspberry Pi say that is made for automation. Has those ports GPIO.
    But anyway those pins can be switched at to small speed that a simple USB device that would have solved the problem.
     
    Robin Mitchell likes this.
  2. Robin Mitchell

    Distinguished Member

    Oct 25, 2009
    821
    285
    @Motanache I totally understand where you are coming from. I can't see the point of a Pi and instead use PICs!
    The most useless thing I bought was an EEPROM programmer. It was useless not because I did not need it but because it only did serial EEPROMS (head banging against the wall). I needed a parallel EEPROM programmer!

    The most useless component I have bought where these Schottky rectifier diodes which have turned out to be useless as I stupidly did not check the max reverse voltage. When I connected it up in my AC rectifier circuit it went boom!

    The second most useless part I got were these ferrite beads. Why did I buy them???? Who knows! But they are pointless (for my needs anyway).
     
  3. AlbertHall

    AAC Fanatic!

    Jun 4, 2014
    7,752
    1,903
    Back in the dawn of time I bought a UV EEPROM eraser. It also did windowed PICs. Very shortly thereafter flash chips arrived and the eraser was consigned to the back of a cupboard and I haven't found any use for it since.
     
    Robin Mitchell likes this.
  4. DickCappels

    Moderator

    Aug 21, 2008
    5,529
    1,728
    I don't think I ever bought useless parts -sooner or later just about everything comes in handy, but it took a long time to learn not to buy very many memory chips can controllers because you can count of price drops and obsolescensce.

    @AlbertHall in the countryside around here people run UV lamps over tubs of water. Insects buzz around and by morning there are plenty of bugs floating in the tubs. Some are valuable enough to sell, most of them end up in a skillet on the kitchen stove. Protein is where you find it.
     
  5. Robin Mitchell

    Distinguished Member

    Oct 25, 2009
    821
    285
    I wanted to say "eeew groosss" but then I thought about it. That food is considered nasty because that's what we are taught from a young age. When you think about it (from the perspective that insects are an acceptable food source), the idea of a UV bulb and tub of water sounds like the "free energy" of food!
     
    DickCappels likes this.
  6. joeyd999

    AAC Fanatic!

    Jun 6, 2011
    4,176
    6,186
    I should let you peruse my superfluous parts cabinet...I think you'd have a field day.
     
    Robin Mitchell likes this.
  7. MrChips

    Moderator

    Oct 2, 2009
    18,686
    5,935
    I paid $400 for a 5¼" floppy drive. I haven't worked it into one of my projects yet.:(
    I have to work through my supply of 8" floppy drives first.:)
     
  8. joeyd999

    AAC Fanatic!

    Jun 6, 2011
    4,176
    6,186
    Does it look like this?

    [​IMG]
     
    MrChips likes this.
  9. nsaspook

    AAC Fanatic!

    Aug 27, 2009
    5,775
    6,505
    I completely disagree about the Raspberry Pi. The simple fact is it takes actual programming skills to make the RPi into something more than a tablet. The RPi3 is a very powerful embedded programming platform at the low-level hardware level but most people don't want to invest the time or effort to use it in the most efficient bit fiddling manner. If your task needs are at the level of a 8 or 16-bit PIC then the RPi is the wrong platform. I've designed several control systems that use the RPi with custom Linux software for DAQ rates of up to 500,000 16-bit samples a second using external SPI interfaces while also running the standard Linux user package.

    You can toggle a gpio at around 25 MHz and easily bit bang at 2.5 at near bare-metal in the Linux kernel context.
     
    Last edited: Feb 9, 2017
  10. ronv

    AAC Fanatic!

    Nov 12, 2008
    3,729
    2,850
    Don't feel to bad. I had a friend, many years ago, that left a good job at IBM to start a company making 8" floppy's.
    The VC's didn't come out to happy either.:)
     
  11. RichardO

    Late Member

    May 4, 2013
    2,273
    894
    I don't have any useless parts. I just have parts that don't have a project conceived for them yet. :D
     
    shortbus, OBW0549 and MrChips like this.
  12. MrChips

    Moderator

    Oct 2, 2009
    18,686
    5,935
    As a matter of fact, I do have a couple of units similar to those with SBC (single board computers) mounted under a half-height 5¼" floppy drive. It probably runs DOS or maybe even CP/M. The $400 one is a bare bones drive.
     
  13. crutschow

    Expert

    Mar 14, 2008
    22,208
    6,468
    You are mixing apples and oranges.
    A Raspberry Pi is a small general purpose computer with multiple types of I/O that can be programmed for many different tasks.
    A tablet is very limited as to what it can do as compared to the Pi.
    But if the tablet does all that you need, then a Pi would make no sense.
     
  14. Motanache

    Thread Starter Member

    Mar 2, 2015
    474
    53
    A PIC32 can run at 200MHz
    Four pulses per instruction.
    If you need 2 instructions to read a port and save it's value, you can make Logic analyzer at 25MS / s

    https://www.raspberrypi.org/forums/viewtopic.php?f=37&t=7696

    "110ns seemed pretty slow for a 700MHz CPU in a tight loop to me, but I guess the GPIO and counter accesses may be over pretty slow buses"

    10MS/s
     
  15. Motanache

    Thread Starter Member

    Mar 2, 2015
    474
    53
    If so useful is Raspberry Pi I wanted to sell it.
    But the price for it second hand dropped more.


    I would like to try to solder wires close to the processor. To use somehow databus as port.
     
  16. nsaspook

    AAC Fanatic!

    Aug 27, 2009
    5,775
    6,505
    The problem is Linux is NOT a realtime OS with bare-metal access to GPIO at the user level. At the kernel level you can have direct memory-mapped register level access like in PIC32 running bare-metal supervisor level. The PIC32 is a microcontroller designed and optimized for bit-banging I/O and the BCM2835 is more of a SOC supervisor designed to handle PIC32 type controllers in an OS context. They have overlapping but not directly competing universes.

    RPi Kernel driver GPIO example code:
    Code (C):
    1.  
    2. /*
    3. * pullUpDownCtrl:
    4. * Control the internal pull-up/down resistors on a GPIO pin
    5. * The Arduino only has pull-ups and these are enabled by writing 1
    6. * to a port when in input mode - this paradigm doesn't quite apply
    7. * here though.
    8. ****************************************************************************
    9. */
    10.  
    11. static void pullUpDnControl(struct comedi_device *dev, int32_t pin, int32_t pud)
    12. {
    13. struct daqgert_private *devpriv = dev->private;
    14. int32_t *pinToGpio = devpriv->pinToGpio;
    15.  
    16. pin = pinToGpio [pin];
    17. iowrite32(pud & 3, (__iomem uint32_t*) dev->mmio + GPPUD);
    18. udelay(5);
    19. iowrite32(1 << (pin & 31), (__iomem uint32_t*) dev->mmio
    20. + gpioToPUDCLK [pin]);
    21. udelay(5);
    22.  
    23. iowrite32(0, (__iomem uint32_t*) dev->mmio + GPPUD);
    24. udelay(5);
    25. iowrite32(0, (__iomem uint32_t*) dev->mmio + gpioToPUDCLK [pin]);
    26. udelay(5);
    27. }
    28.  
    29. /*
    30. * pinMode:
    31. * Sets the mode of a pin to be input, output
    32. ************************************************************
    33. */
    34.  
    35. static void pinModeGpio(struct comedi_device *dev,
    36. int32_t pin,
    37. int32_t mode)
    38. {
    39. int32_t fSel, shift;
    40.  
    41. pin &= 63;
    42. fSel = gpioToGPFSEL [pin];
    43. shift = gpioToShift [pin];
    44.  
    45. if (mode == INPUT) /* Sets bits to zero = input */
    46. iowrite32(ioread32((__iomem uint32_t*) dev->mmio + fSel)
    47. & ~(7 << shift),
    48. (__iomem uint32_t*) dev->mmio + fSel);
    49. else
    50. if (mode == OUTPUT)
    51. iowrite32((ioread32((__iomem uint32_t*) dev->mmio + fSel)
    52. & ~(7 << shift)) | (1 << shift),
    53. (__iomem uint32_t*) dev->mmio + fSel);
    54. }
    55.  
    56. static void pinModeWPi(struct comedi_device *dev,
    57. int32_t pin,
    58. int32_t mode)
    59. {
    60. struct daqgert_private *devpriv = dev->private;
    61. int32_t *pinToGpio = devpriv->pinToGpio;
    62.  
    63. pinModeGpio(dev, pinToGpio [pin & 63], mode);
    64. }
    65.  
    66. /*
    67. * digitalWrite:
    68. * Set an output bit
    69. *****************************************************************
    70. */
    71.  
    72. static void digitalWriteWPi(struct comedi_device *dev,
    73. int32_t pin,
    74. int32_t value)
    75. {
    76. struct daqgert_private *devpriv = dev->private;
    77. int32_t *pinToGpio = devpriv->pinToGpio;
    78.  
    79. pin = pinToGpio [pin & 63];
    80. if (value == LOW)
    81. iowrite32(1 << (pin & 31), (__iomem uint32_t*) dev->mmio
    82. + gpioToGPCLR [pin]);
    83. else
    84. iowrite32(1 << (pin & 31), (__iomem uint32_t*) dev->mmio
    85. + gpioToGPSET [pin]);
    86. }
    87.  
    88. static void digitalWriteGpio(struct comedi_device *dev,
    89. int32_t pin,
    90. int32_t value)
    91. {
    92.  
    93. pin &= 63;
    94. if (value == LOW)
    95. iowrite32(1 << (pin & 31), (__iomem uint32_t*) dev->mmio
    96. + gpioToGPCLR [pin]);
    97. else
    98. iowrite32(1 << (pin & 31), (__iomem uint32_t*) dev->mmio
    99. + gpioToGPSET [pin]);
    100. }
    101.  
    102. /*
    103. * digitalRead:
    104. * Read the value of a given Pin, returning HIGH or LOW
    105. *******************************************************************
    106. */
    107.  
    108. static int32_t digitalReadWPi(struct comedi_device *dev,
    109. int32_t pin)
    110. {
    111. struct daqgert_private *devpriv = dev->private;
    112. int32_t *pinToGpio = devpriv->pinToGpio;
    113.  
    114. pin = pinToGpio [pin & 63];
    115. if ((ioread32((__iomem uint32_t*) dev->mmio + gpioToGPLEV [pin])
    116. & (1 << (pin & 31))) != 0)
    117. return HIGH;
    118. else
    119. return LOW;
    120. }
    121.  
    122. static int32_t digitalReadGpio(struct comedi_device *dev,
    123. int32_t pin)
    124. {
    125.  
    126. pin &= 63;
    127. if ((ioread32((__iomem uint32_t*) dev->mmio + gpioToGPLEV [pin])
    128. & (1 << (pin & 31))) != 0)
    129. return HIGH;
    130. else
    131. return LOW;
    132. }
    133.  
    134. /*
    135. * piBoardRev:
    136. * Return a number representing the hardware revision of the board.
    137. * Revision is currently 1,2 or 3. -1 is returned on error.
    138. SRRR MMMM PPPP TTTT TTTT VVVV
    139.  
    140. S scheme (0=old, 1=new)
    141. R RAM (0=256, 1=512, 2=1024)
    142. M manufacturer (0='SONY',1='EGOMAN',2='EMBEST',3='UNKNOWN',4='EMBEST')
    143. P processor (0=2835, 1=2836)
    144. T type (0='A', 1='B', 2='A+', 3='B+', 4='Pi 2 B', 5='Alpha', 6='Compute Module')
    145. V revision (0-15)
    146.  
    147. 1010 0010 0001 0000 0100 0001
    148. SRRR MMMM PPPP TTTT TTTT VVVV
    149.  
    150. S=1 new scheme
    151. R=2 1024 MB
    152. M=2 EMBEST
    153. P=1 2836
    154. T=4 Pi 2 B
    155. V=1 1
    156. *********************************************************************
    157. */
    158.  
    159. static int32_t piBoardRev(struct comedi_device *dev)
    160. {
    161. struct daqgert_private *devpriv = dev->private;
    162. int32_t r = -1, nscheme = 0;
    163. static int32_t boardRev = -1;
    164.  
    165. if (boardRev != -1) /* skip if already detected */
    166. return boardRev;
    167.  
    168. if (devpriv->RPisys_rev & 0x80000000)
    169. dev_info(dev->class_dev, "over-volt bit set\n");
    170. if (devpriv->RPisys_rev & 0x800000) {
    171. nscheme = 1;
    172. r = devpriv->RPisys_rev & 0xf;
    173. dev_info(dev->class_dev, "RPi new scheme rev %x, "
    174. "serial %08x%08x, new rev %x\n",
    175. devpriv->RPisys_rev, system_serial_high,
    176. system_serial_low, r);
    177. } else {
    178. r = devpriv->RPisys_rev & 0xff;
    179. dev_info(dev->class_dev, "RPi old scheme rev %x, "
    180. "serial %08x%08x\n",
    181. devpriv->RPisys_rev, system_serial_high,
    182. system_serial_low);
    183. }
    184.  
    185. if (nscheme) {
    186. switch (r) {
    187. case 1:
    188. boardRev = 3;
    189. break;
    190. case 2:
    191. boardRev = 3;
    192. break;
    193. default:
    194. boardRev = -1;
    195. }
    196. } else {
    197. switch (r) {
    198. case 2:
    199. case 3:
    200. boardRev = 1;
    201. break;
    202. case 0:
    203. case 1:
    204. boardRev = -1;
    205. break;
    206. default:
    207. boardRev = 2;
    208. }
    209. }
    210.  
    211. dev_info(dev->class_dev, "driver gpio board rev %i\n",
    212. boardRev);
    213. dio_conf = boardRev; /* set module param */
    214.  
    215. return boardRev;
    216. }
    217.  
     
    Last edited: Feb 10, 2017
  17. AlbertHall

    AAC Fanatic!

    Jun 4, 2014
    7,752
    1,903
    I am just designing a circuit where I needed a 1mA constant current so I was thinking about the standard single transistor version when I remembered something from about 30 years ago. Didn't I have some 1mA constant current 'diodes' from way back when?
    Yes I did: five off J505
    That's the problem with junk. You never know when you will need it.
     
    nsaspook likes this.
  18. OBW0549

    Distinguished Member

    Mar 2, 2015
    2,884
    2,650
    Yes, you do: you'll need it right after you've thrown it away.
     
    absf, panic mode, djsfantasi and 2 others like this.
  19. nsaspook

    AAC Fanatic!

    Aug 27, 2009
    5,775
    6,505
    Exactly. We have this guy who has the special talent to junk exactly the part that will be needed a few weeks later. I wish the guy could pick lotto numbers.
     
    Last edited: Feb 10, 2017
  20. GopherT

    AAC Fanatic!

    Nov 23, 2012
    7,983
    6,779
    Same when we discontinue products in our portfolio. The best way to get rid of dead inventory is to announce that it is discontinued - poof, it is gone. Sometimes we have to make an extra "final" batch.
     
Loading...