http://www.opencircuits.com/api.php?action=feedcontributions&user=DavidCary&feedformat=atomOpenCircuits - User contributions [en]2024-03-19T06:52:37ZUser contributionsMediaWiki 1.34.2http://www.opencircuits.com/index.php?title=Integrated_Circuits&diff=90798Integrated Circuits2024-03-13T18:29:47Z<p>DavidCary: link to open-source integrated circuits, etc.</p>
<hr />
<div>An '''integrated circuit''' (also called a '''chip''') is a sliver of silicon in a small package with metal "pins" (also called "legs") used to attach it to other things.<br />
There are a few [[Popular Parts]] that are useful in nearly every electronics project.<br />
The main categories of integrated circuits are:<br />
<br />
== ADC: Analog to Digital Converter ==<br />
<br />
This device takes an analog input and converts it to a digital value. There are a huge variety of ADCs available. Types vary by:<br />
* Number of bits of resolution.<br />
* Span of voltage from lowest to highest, and various methods of adjusting this.<br />
* Speed of conversion.<br />
* Method of conversion.<br />
* Method of reading data from the ADC. <br />
<br />
If you need 10 bits or less of resolution, counter-intuitively,<br />
it costs less to buy an ADC plus a microcontroller on one chip than to buy a stand-alone ADC.<br />
<br />
* ATTINY13V -- lowest-price chip I know of with at least one 10 bit ADC<br />
* ATTINY261 -- lowest $/ADC chip I know of<br />
* LPC2101FBD48 -- lowest-price 32-bit microcontroller I know of with at least one internal 10 bit ADC<br />
<br />
Many people [[Programmable_Chip_EEG#See_also: | (*)]] do EKGs with only 10 bit converters.<br />
<br />
The [[Programmable Chip EEG]] might need more bits of resolution.<br />
<br />
What low-cost ADC are available with at least 12 bits? ''(prices in quantity 1 from Newark or Digikey)''<br />
* $2.50 MCP3301 has 1 ADC input (13 bits) <br />
* $3.50 MCP3302 has 2 ADC input (13 bits) <br />
* $3.50 MCP3204 has 4 ADC input (12 bits) <br />
* $4 MCP3208 has 8 ADC input (12 bits) <br />
* $7 dsPIC30F 2011 microcontroller has 8 ADC inputs (12 bits). See [[dsPIC30F 5011 Development Board]] for details.<br />
* $10 18F2553 USB microcontroller has 12bit ADC( $5.11 from http://buy.microchip.com in single unit quantities )<br />
* $6.50 CY8C27443 Cypress PSoC microcontroller has 4 ADC inputs (14 bits) -- but what is the sampling rate? Also has 4 DAC outputs (9 bits).<br />
* $56 analog devices AD7716: four independent, simultaneous 22 bit ADCs. <br />
* the Maxim MAX1464 includes a 16-bit ADC, 12-bit DAC, a programmable gain amp (PGA), temp sensor, and 16-bit processor. Its program is in Flash and can be re-programmed. (Replaces the obsolete Maxim MAX1460)<br />
* $16 Analog Devices AduC812: 200kHz 12-bit ADC, 12-bit DAC, and flash-based 8051 MCU core. <br />
* $15 [http://www.maxim-ic.com/maxq7665 Maxim MAXQ7665]: 500ksps 12-Bit ADC, 12-Bit DAC, flash-based 16-bit MAXQ MCU core<br />
* $7 to $16 Texas Instruments MSP430: 300 ksps 12 bit ADC, 35 ksps 12 bit DAC<br />
* $8.10 Atmel ATxmega128A1: sixteen 2 Msps 12-bit ADC, four 1 Msps 12-bit DAC (alas, not available in DIP package)(is this available yet?)<br />
* $60 Actel Fusion AFS250-PQG208: has 30 ADC input (12 bits; up to 600 ksps), a FPGA, and a 32-bit ARM processor (not available in DIP package. Also, not really "low cost").[http://www.actel.com/products/fusion/][http://www.actel.com/products/hardware/devkits_boards/fusion_embedded.aspx]<br />
<br />
''I am astonished to discover that (a few) microcontrollers include 12 bit or more ADCs. Are there others? --[[User:DavidCary|DavidCary]] 18:48, 28 August 2007 (PDT)''<br />
<br />
For information on use see: [[Using ADCs]]<br />
<br />
== Digital to Analog Converters ==<br />
These devices take an digital input and convert it to an analog output<br />
<br />
== Digital Potentiometers ==<br />
[[Digital Potentiometers|Digital Potentiometers(AD5204)]]<br />
The digital Potentiometers made by analog devices (AD5204) has 255 positions can be adjusted by the microcomputer that can receive commands from the computer. This is a great way for analog circuitry to have digital control. This is a chip with 4 digitally controlled POTs and the pots can be daisy chained to have multiple chips controlled by a single SPI interface.<br />
<br />
Unlike a mechanical POT, digital POTs often have the restriction that one of the three terminals of the POT needs GND, making these devices harder to use in applications where none of the three terminals is GND -- such as LCD contrast adjustment, where the contrast is controlled by a voltage lower than GND.<br />
<br />
* [http://www.arduino.cc/en/Tutorial/SPIDigitalPot Controlling a Digital Potentiometer Using SPI]<br />
<br />
== Drivers ==<br />
The basic idea behind the driver is that you have already had the brains of the circuit figure out what to do, now you need some little boost ( often just current and/or voltage ) to finish the circuit and "drive" the final component. ( what we have here is just a tiny beginning on this subject ) The simplest driver is just a transistor boosting the output of a microcontroller. In fact a common application of drivers is to boost microcontroller outputs. Other dirvers are complicated enough to be compared to custom programed microcontrolles with power outputs.<br />
<br />
=== Motor Drivers ===<br />
{{main|motor driver}}<br />
<br />
There are various types some, such as H bridges which allow a dc motor to be run either forward or reverse. Others drive stepper motors while still others drive brushless motors. Parts include:<br />
<br />
=== Low Side Driver Arrays ===<br />
Typically these have low voltage ( 5 v ) low current inputs which switch a output circuit, on the low side, either on or off. Often 8 drivers come in a single IC, enough to drive 2 stepper motors. Parts include: ULN2803<br />
<br />
=== High Side Driver Arrays ===<br />
Similar to Low Side Driver Arrays, but switching on the high side. Parts include: UCN2981 UCN2982 UCN2984<br />
<br />
=== Mosfet Drivers ===<br />
Mosfets are basically voltage controlled devices, but the input is also a capicator. Because of this you need considerable current to charge the capicator and switch them on fast. Parts include:<br />
<br />
=== Seven Segment Drivers ===<br />
Parts include:<br />
<br />
=== Others Drivers ===<br />
<br />
== LM35 Temperature Sensor ==<br />
<br />
See [[Sensors]]<br />
<br />
== Logic Gates ==<br />
<br />
Logic gates are the building blocks of digital circuits. Any digital circuit including microprocessors can be built out of the NOT function plus AND or OR. Different chips are distinguished by speed, voltage level, output drive, and power used. They are often divided into families which have characteristics in common. There are hundreds of different types.<br />
<br />
Common forms found in discrete gates:<br />
* NAND - NOT of an AND<br />
* NOR - NOT of an OR<br />
* XOR - exclusive or<br />
* Flip-Flop - A 1 bit storage element that can be built out of more fundamental logic gates. Often available in packages of 8 and sold by the name of Latch or Register.<br />
<br />
Descrete gates are available in a very large number of variations. The variations include TTL or CMOS inputs, standard vs. open collector outputs, and propagation delay.<br />
<br />
* NAND gate: [http://www.coprolite.com/art48.html "Using a NAND Gate for a Set/Reset Latch"] (the 74HC132 Schmitt-trigger quad NAND is better than the 74HC00 quad NAND).<br />
* [http://people.freenet.de/dieter.02/alu_4.htm "Multiplexers: the tactical Nuke of Logic Design"] by Dieter Mueller 2004 (74153)<br />
<br />
There are hundreds of other specialized logic gates. Here we only list the ones we actually use in some Open Circuit [[Projects|Project]]:<br />
<br />
* 74HC595 eight bit shift register with output latch (used for [[POV display]]) There are other shift registers, some of quite high power ( generally low side switches ) we should reference some here soon, else google for them. Some are intended to drive led's.<br />
<br />
* Low pin count( 8 - 12 ) microcontrollers are great for logic gate replacement when high speed is not required. Athough slower, slightly more expensive, and needing to be programmed they are great for prototyping due to the extra flexibility that comes from not needing to stock lots of gate variations.<br />
<br />
* FPGAs are flexible ICs contain a very large number of gates( thousands to millions ) that can be arbitrarily connected together through programming in VHDL. Only available in surface mount large pin counts. Many people prototype processor designs with these devices ([http://en.wikipedia.org/wiki/Soft_processor Wikipedia: soft microprocessor]).<br />
<br />
<br />
Links:<br />
<br />
*[http://focus.ti.com/lit/sg/sdyu001z/sdyu001z.pdf Logic Guide] A useful guide from TI.<br />
*[http://www.allaboutcircuits.com/vol_4/index.html All About Circuits - Volume IV - Digital] Part of a useful, free, online text.<br />
<br />
== Microcontrollers ==<br />
<br />
See [[microcontroller]] for details.<br />
<br />
== [[op_amp|Op Amps]] ==<br />
<br />
Op amps and instrumentation amps.<br />
<br />
An operational amplifier is one of the most useful of linear ( not digital ) circuits. It is normally a fairly low power device ( 15 volts 10 ma or less ) that can amplify, clip, offset.... [[op amp]]s: great for amplifying weak signals from [[sensors]] to a more useful level. Also used in filters, integrators, etc. Very high gain differential amplifiers. Feedback through a resistor network is used to adjust final gain. Resistors and capacitors can be placed in the feedback path to create complex circuits such as filters. Often use it with a micro controller to “condition” signals from sensors prior to digitizing them. For example a temperature sensor may deliver 0 to 1 volt, where we want 0 to 5 volts for the PIC. The solution: a quick little op amp amplifier with a gain of 5. <br />
<br />
Uses<br />
*Amplifiers<br />
*Filters<br />
*Oscillator<br />
*Clippers<br />
*and on and on<br />
<br />
See our main discussion at: [[op amp]]<br />
<br />
<br />
<br />
== RF ICs/Modules ==<br />
<br />
Many open-source [[radio communication]] systems use an RF IC.<br />
<br />
RF modules allow transmission and reception of digital signals over radio. The two most common types are AM and FM( FSK ). The three major frequency bands used by unlicensed devices are 433MHz, 900MHz, and 2.4GHz. 433MHz has very limited uses by the FCC and is mostly used by garage door openers and wireless key entry systems. Many newer devices are moving to 2.4GHz due to the greater amount of room, althrough 2.4GHz is harder to use and has less range then the same power 900MHz system.<br />
<br />
A major consideration when choosing an RF IC/Module is the amount of protocol stack that the device contains. Some modules are little more then a modulator and demodulator with the digital input and output directly controlling the RF signal. Other modules are complete serial line wire replacement modules that implement frequency hopping, pairing, error correct/detection, and retransmission of broken data.<br />
<br />
[http://www.linxtechnologies.com/ Linx Technologies] makes several low power RF transmitter/receiver chips. Their range is around 500' - 1000'. They are geared for one way communication only, like keyless entry systems. They also make several serial encoding chips that make the wireless communication more secure/crack proof. Their latest chip, the HS series, is based upon the SkipJack algorithm developed by the NSA. BBA broadband ampifier modules are available for boosting the signal power to 17dBm when combined with the HP-3 modules and FHSS techniques.<br />
<br />
[[Xbee wireless module]] [http://www.maxstream.net XBee/XBee Pro modules] Modules are a drop in Zigbee module. Modules have a UART style interface with an AT command set. Cheap and very popular, these modules are great for serial cable replacement or remote sensor monitoring.<br />
<br />
[http://www.sparkfun.com/commerce/product_info.php?products_id=8469 Sparkfun Bluetooth Module] Dropin module with a complete Bluetooth stack. Modules also have a UART interface with a AT command set. An advantage is many laptops and cellphones have a Bluetooth transceiver builtin.<br />
<br />
[http://www.sparkfun.com/commerce/product_info.php?products_id=705 Nordic Modules from Sparkfun] Tranceiver modules that have a SPI interface and are capable of transmitting packets at 1Mbps. Modules implement packet indentification and CRC checksum compution but don't have a protocol stack per say. A large number of channels are available making FHSS possible, but the modules has a maximum power of 0dBm making them only suitable for short range communication.<br />
<br />
[http://www.semtec.com/XE1205 XE1205 Chip from Semtec] Transceiver IC with builtin 15dBm power amplifer. IC has a SPI interface with the data being transmitted with any wire format(NRZ/Manchester). DP1205 dropin modules are available which contain all the necessary descrete components. IC allows very rich configuration including frequency down to 500Hz, frequency deviation, and baseband filter. Available in 433MHz and 900MHz versions.<br />
<br />
[http://www.cypress.com/ Cypress Semiconductor] makes several 2.4ghz transceiver modules, which are available for sampling, and are fully assembled with PCB antennas. They use SPI to be configured and to communicate with the microcontroller. The CYWM6934 (10 meter range) and CYWM6935 (50 meter range) are both very easy to interface with. [[User:Ratmandu|ratmandu]] 20:06, 23 November 2007 (PST)<br />
[[Category:Components]]<br />
<br />
<br />
== Voltage Regulators ==<br />
Input to a regulator is a voltage that either varies over time or varies with the load. The output is a voltage that is constant. Many voltage regulators also include a current limiter and/or short circuit protection. They come in two basic varities linear and switching. Switching regulators are more complicated and expensive, but are also more efficient, and can sometimes have a larger output voltage than the input.<br />
<br />
<br />
{|<br />
! colspan="2" align="left"| Linear Regulators<br />
|-<br />
| align="center"|[[Image:Main-LT1528.jpg|69px|LT1528]]<br>[[LT1528]]<br />
| High current, Variable Voltage Regulator<br />
|-<br />
| align="center"|[[Image:TPS-V-Reg.jpg|69px|TPS V-Reg]]<br>[[TPS V-Regs]]<br />
| These are 3.3V and 5V LDO, Low-Noise Voltage Regulators. Very small SOT-23 SMD package. 150mA max current. Best used in battery applications.<br />
|-<br />
| align="center"|[[Image:Main-LM7805.jpg|69px]]<br>[[Basic Voltage Regulators]]<br />
| Variable voltage regulators, set output regulators, we give you the whole breakdown. Perfect for use with an external wall-wart power supply.<br />
|-<br />
| align="center"| [[Image:UA723CN_Symbol.gif]]<br>[[The 723 Voltage Regulator]]<br />
| Precision Voltage Regulator. Can be used as fixed or floating, variable, linear or switching. <br />
'''NOTE:''' Only the DIP-14 version (image) has the Vz pin, which is used for negative regulators. The Metal Can and the Flat-Pack do not have enough pins so exclude the Vz.<br />
|-<br />
| &nbsp;<br />
|-<br />
! colspan="2" align="left"| Switching Regulators<br />
|-<br />
| align="center"| [[Image:MCP1253-ADJ.png|69px]]<br>[[MCP1252/3]]<br />
| Extremely Efficient, 120mA Flyback Switching Regulators.<br />
|-<br />
|}<br />
<br />
See also:<br />
*[[Basic Voltage Regulators]]<br />
*[[switching regulator]]<br />
<br />
== [[555 Timers]] ==<br />
[[555 Timers]]<br />
<br />
== Open Source Integrated Circuit Design Software ==<br />
<br />
''main article: [[Software tool#Circuit simulation tools]]''<br />
<br />
There's a surprising amount of open-source software<br />
useful for designing integrated circuits.<br />
<br />
<br />
[FIXME: add links]<br />
<br />
* SPICE<br />
I've heard that<br />
SPICE<br />
was originally intended for (analog) integrated circuit design,<br />
although now it's more often used for (analog) PCB-level circuit design.<br />
<br />
* ... digital logic simulators ...<br />
which I've heard were also originally intended for (digital) integrated circuit design,<br />
but today are often used for (digital) PCB-level circuit design.<br />
A few simulators can simulate a complete embedded system including a (simulated) microcontroller,<br />
such as [[The digital instrument panel circuit]].<br />
<br />
* MAGIC chip-layout software (open source): http://opencircuitdesign.com/magic/<br />
<br />
* IRSIM is a "switch-level" simulator for "quick" simulations of digital circuits. http://opencircuitdesign.com/irsim/<br />
<br />
* ... [FIXME] ...<br />
<br />
* etc.<br />
<br />
== Open Source Integrated Circuits ==<br />
<br />
While lots of open-source hardware uses commonly available integrated circuits,<br />
it's still pretty rare to find integrated circuits<br />
that are themselves completely open-source.<br />
<br />
* [https://news.engin.umich.edu/2023/01/open-source-hardware-a-growing-movement-to-democratize-ic-design/ "Open-source hardware: a growing movement to democratize IC design"] at the University of Michigan<br />
<br />
* Open source silicon chips on Tiny Tapeout (video) https://www.youtube.com/watch?v=QMsmkDeqELg<br />
<br />
* the IEEE Solid-State Circuits Society (SSCS) Open-Source Ecosystem (OSE) https://sscs-ose.github.io/<br />
<br />
* [https://opensource.googleblog.com/2022/05/Build%20Open%20Silicon%20with%20Google.html "Build Open Silicon with Google"]<br />
<br />
<br />
----</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Expansion_bus&diff=90791Expansion bus2024-02-29T05:11:06Z<p>DavidCary: fill in a few details, with references.</p>
<hr />
<div><br />
<br />
Expansion buses are designed to allow people to mix-and-match peripheral devices and CPUs.<br />
<br />
<br />
== History ==<br />
<br />
The earliest expansion buses<br />
were more-or-less directly connected to the pins of a CPU.<br />
<br />
Some early systems had a unified "system bus"<br />
that both memory cards and peripherals plugged into,<br />
leading to "memory-mapped I/O".<br />
Typically a "system bus" is composed<br />
of the address bus, the data bus, and the control bus,<br />
and often also includes multiple pins dedicated to ground and power rails.<br />
<br />
The highly influential expansion bus of the<br />
MITS Altair 8800<br />
was apparently an afterthought;<br />
all the parts required to make<br />
a complete computer system<br />
would not be designed in time<br />
for the <br />
January 1975<br />
launch date,<br />
so the second prototype<br />
put most of the parts<br />
on removable cards<br />
intended to plug into<br />
sockets on a backplane,<br />
so only the backplane<br />
and a few cards<br />
needed to be done by the<br />
January 1975 publishing deadline,<br />
and the remaining cards<br />
could be put off until later.<br />
<br />
That first expansion bus<br />
was later named the S-100 bus<br />
and standardized as<br />
IEEE 696-1983.<br />
<br />
In retrospect the general idea of such a "modular system"<br />
with easily plugged-in parts<br />
turned out to have many other advantages<br />
* ...<br />
* reduces the temptation of "creeping featuritis", since more stuff can be added later<br />
* [FIXME]<br />
* easy repairability -- the ease of swapping out faulty cards is obvious, but less obvious is the various ways it makes it easier to figure out *which* cards are faulty.<br />
* "hackability" -- just one card can be quickly replaced with a different version, without requiring the entire system to be completely rebuilt from scratch.<br />
* ...<br />
* ...<br />
* etc.<br />
<br />
Also in retrospect,<br />
many people (with the advantage of hindsight)<br />
have figured out many ways of improving<br />
on the S-100 bus.<br />
* "S-100 signal placement: Some people ... complain about the layout of signals on the S-100 bus." -- [https://www.retrotechnology.com/herbs_stuff/s100bus.html "S-100 and IEEE-696 Bus"]<br />
* [https://www.retrotechnology.com/herbs_stuff/s_term.html "Bus theory and measurements"]<br />
* [https://www.computer.org/csdl/magazine/co/1979/07/01658813/13rRUxYrbOU "This proposed standard eliminates many of the problems in the S-100 bus and upgrades it for 16-bit microprocessors."].<br />
* [http://www.s100computers.com/ "S100Computers... vintage S-100 bus based computers"]<br />
* [https://users.glitchwrks.com/~glitch/2011/09/01/debug-board "A Debug Board for the S-100 Bus"]<br />
* [https://retrocomputing.stackexchange.com/questions/tagged/s-100 "Questions tagged [s-100]"]<br />
* [https://www.kennettclassic.com/vintage-computer-hack-a-thon-an-example/ "Building an S-100 Bench Computer for Testing"]<br />
* [https://users.glitchwrks.com/~glitch/2018/07/02/reproducing-the-io2 "Reproduction S-100 Solid State Music IO-2 prototyping board"]<br />
* [https://www.pestingers.net/pdfs/other-computers/s100-bus-handbook-by-dave-bursky.pdf "The S-100 Bus Handbook"] by Dave Bursky.<br />
<br />
Gerald Anderson "Jerry" Lawson is known as the "father of the video game cartridge".<br />
That original video game cartridge<br />
on the market in 1976<br />
(like many later video game cartridges)<br />
plugged into a socket that was directly wired to the CPU system bus.<br />
<br />
Later systems generally separate high-speed stuff<br />
(the CPU, the RAM, on-board video (if any), graphics card slot (if any), and coprocessors (if any)) (the "Front-side bus") from slower speed stuff (expansion bus slots, off-board cables and ports).<br />
<br />
There are two different reasons for this separation:<br />
In low-cost microcontrollers, the cost of pins is a significant cost of the whole system,<br />
so (a) we can use a much lower-cost packaging (far fewer pins)<br />
if we don't expose the address bus or data bus outside the chip<br />
(by putting all of the program Flash and data RAM on the same chip as the CPU)<br />
(b) using a "narrower" bus to communicate with peripherals<br />
also saves a bunch of pins in those peripherals,<br />
making them cost less.<br />
In high-end systems, the CPU, video, and RAM run much faster than peripherals,<br />
so separating the busses allows the CPU to do dozens or hundreds of memory cycles<br />
while waiting for a peripheral to handle a single expansion bus cycle.<br />
<br />
== qwiic ==<br />
<br />
SparkFun's [https://www.sparkfun.com/qwiic Qwiic Connect System] uses 4-pin JST connectors.<br />
It's based on the [[I2C]] bus.<br />
<br />
== UEXT ==<br />
<br />
Universal EXTension (UEXT) is a connector layout which includes power and three serial buses:<br />
UART, I2C, and SPI separately over 10 pins in a 2x5 layout.<br />
<br />
[http://en.wikipedia.org/wiki/UEXT Wikipedia: UEXT]<br />
<br />
== grove ==<br />
<br />
== BlackNet ==<br />
<br />
Inspired by the [[1-wire]] bus,<br />
the BlackNet serial network<br />
is an example of<br />
an expansion bus<br />
with the very modern assumption<br />
that microcontrollers are so cheap<br />
that we can afford to put<br />
one or more on each and every device<br />
that plugs into the bus.<br />
<br />
* [https://www.romanblack.com/blacknet/blacknet.htm "BlackNet" serial network protocol]<br />
<br />
== RC2014 bus ==<br />
<br />
"RC2014 is a simple 8 bit Z80 based modular computer.<br />
It was designed to be simple.<br />
Simple to build, simple to understand, and simple to program."<br />
<br />
* [https://rc2014.co.uk/ "RC2014"].<br />
* [https://smallcomputercentral.com/documentation/specification-rc2014-bus/ "RC2014 bus"]<br />
* [https://rc2014.co.uk/1377/module-template/ "RC2014 Module standard bus"]<br />
* [https://groups.google.com/g/rc2014-z80 "RC2014-Z80"]<br />
* [[stripboard]] with 0.1″ header sockets: [https://rc2014.co.uk/backplanes/veroboard-back-plane/ "Back Plane-Veroboard"]<br />
* [https://smallcomputercentral.com/documentation/rc2014-bus/ "RC2014 BUS"]<br />
<br />
== Backbone Bus ==<br />
<br />
Backbone is a proposal for a backplane interconnect that supports multiple bus masters.<ref><br />
[https://hackaday.io/project/11928-backbone-bus "Backbone Bus"].<br />
</ref><br />
Samuel A. Falvo II<br />
<br />
== STEbus ==<br />
<br />
* [https://en.wikipedia.org/wiki/STEbus Wikipedia: STEbus]<br />
* [https://hackaday.io/project/11928-backbone-bus/log/200068-why-i-am-and-am-not-a-fan-of-stebus "Why I Am and Am Not a Fan of STEbus."].<br />
<br />
== PC104 ==<br />
<br />
The PC/104 standards<br />
defines both [[form factor]]s and computer buses<br />
allowing consumers to stack together boards from a variety of manufacturers<br />
to produce a customized embedded system.<br />
<br />
PC/104 boards are stacked on top of each other like LEGOs,<br />
unlike nearly all other expansion buses.<br />
<br />
The original PC/104 connectors<br />
are electrically the same signals as the IBM PC/AT<br />
but with a different, stacking connector.<br />
<br />
== PATA ==<br />
<br />
Parallel ATA (PATA)<br />
is also electrically the same signals as the IBM PC/AT,<br />
but with a different physical hardware -- PATA uses ribbon-cables and square header pins.<br />
<br />
<br />
<br />
== Expansion bus design considerations ==<br />
<br />
* latency (often *more* important than bandwidth)<br />
* How far apart are the ends of the bus (length)?<br />
* How many data bits to transfer per transaction (data bus width)?<br />
* how many address bits to transfer per transaction (address bus width)?<br />
* Dedicated 1 wire line for each address bit and and separate wire for each data bit (easier to test)? Or somehow multiplex 2 or more of those signals (lower cost)?<br />
* How many peripheral devices can be plugged into the bus at the same time?<br />
* How many controllers can be plugged into the bus at the same time? (A single controller and everything else are peripherals? Or multi-controller?)<br />
* Can 2 identical peripherals be plugged into the bus at the same time, and how can software distinguish them?<br />
* hot-pluggable?<br />
* fault-tolerant?<br />
* EMI/EMC<br />
* Fixed, dedicated, unshared interrupt lines from each peripheral to the CPU? Or daisy-chained interrupt line?<br />
* Fixed maximum number of peripherals per bus? Or daisy-chaining an arbitrary number of peripherals?<br />
* What's the maximum fanout of the devices that drive the bus? Early TTL-based systems used chips with a typical max fanout of around 5, so "clever" techniques were required to support more than 5 peripherals. Modern high-speed systems often use point-to-point links (fanout of 1) for speed.<br />
* Backplane? Motherboard? Stacking connectors? Ribbon cables? Something else?<br />
* Off-the-shelf connectors available from second sources?<br />
* Rugged connectors that are reliable for hundreds of plug/unplug cycles?<br />
* [[stripboard]]/Veroboard with 0.1″ header sockets?<br />
* bandwidth<br />
<br />
For many years, the bandwidth (the number of bits we can shove across the bus per second)<br />
seemed to be so important that we sacrificed many things to increase the bandwidth.<br />
But surprisingly often, new systems are specifically designed for *lower* bandwidth<br />
in order to regain some of the things that were sacrificed.<br />
<br />
<br />
== Related ==<br />
<br />
* [[Connectors]]<br />
* [[Minimig Expansion]]<br />
* [[Multi-purpose Embedded System]]<br />
* [[Relay CPU]]<br />
* [[Modules]]<br />
<br />
* [https://www.retrotechnology.com/herbs_stuff/bus_history.html "Microcomputer Bus history and background"] 2023 Herb Johnson.<br />
* [https://github.com/tpycio/Backplane4 "Backplane 4+1 for RCBus"]<br />
* [https://hackaday.io/project/183266-baffa-2-homebrew-microcomputer BAFFA backplane]<br />
* What expansion bus does the N8VEM home brew Z80 computer project use?<br />
* What expansion bus does the [https://hackaday.io/project/186398-hb6809-homebrew-computer "HB6809 Homebrew computer"] use?<br />
* What expansion bus does the [https://hackaday.io/project/20377-firefly "Firefly: A Z80 Retrocomputing Development System"] use?<br />
* What expansion bus does the [https://hackaday.io/project/166599-8-bit-in-style-the-pic18-computer "8-bit in style: the PIC18 computer... Base18"] use? (I see it's a 60 pin bus, including 24 address pins and 8 data pins).<br />
* "Bread-Board friendly Q-bus extended" or BBQ-bus+" used by the [https://hackaday.io/project/67369-pdpii "PDPii PDP-11 compatible motherboard"] ?<br />
* What expansion bus does the [https://hackaday.io/project/6025-skajntt "SkajNätt: An expandable computer system"] use?<br />
* [https://www.computer.org/csdl/magazine/mi/1984/03/04071079/13rRUx0gebd "IEEE Micro: P959 I/O Expansion Bus Proposed Standard"].</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Microcontroller_polyphony&diff=90790Microcontroller polyphony2024-02-29T02:35:02Z<p>DavidCary: link to related articles, etc.</p>
<hr />
<div>There are a variety of tricks for persuading a small microcontroller to make sounds.<br />
<br />
Roughly in order from simplest to most difficult:<br />
<br />
== single beeps ==<br />
<br />
... ''circuit drawing goes here'' ...<br />
<br />
== polyphony the "standard" DAC way ==<br />
<br />
... ''circuit drawing goes here'' ...<br />
<br />
* (a) set up an interrupt to handle sound -- most people use either 8000 Hz (telephone-quality) or 44100 Hz (CD-quality).<br />
* (b) Every time the interrupt occurs, get a number for the sound source. Square waves are the simplest -- the number is +1 or -1. If you imagine this sound playing by itself out a speaker, this number indicates how far out the cone is extended (or how far in the cone is retracted).<br />
* (c) If you have 7 sound sources (i.e., you want to simulate playing a chord of 6 notes on a piano, and also a flute), get 7 numbers.<br />
* (d) add the numbers together to get a total.<br />
* (e) send the total out to the DAC<br />
* (f) Use op-amps to buffer the DAC output voltage, do low-pass filtering to eliminate ultrasonics, and send it to the speaker.<br />
* (g) In the background (perhaps in the main loop, or a lower-priority interrupt), when the time comes to finish the chord, turn off some or all of the sounds. (One of many ways to "turn off" a sound source is to set its delta to zero, and then set its phase accumulator to zero).<br />
* (h) When the time comes to start playing another note (perhaps in addition to the notes already playing), set the "delta" number for the corresponding sources to produce the appropriate frequency.<br />
<br />
In practice, to reduce jitter, the interrupt first (at high priority) sends the total out to the DAC (e), and then (at low priority) calculates a total (b-d) that won't be used until the next sound interrupt.<br />
<br />
You've seen a sound-board mixer, right?<br />
The most general way to do step (d) is to multiply each number from each sound source by an independent loudness value, and then add the products together, and then (if necessary) subtract the DC bias and (if necessary) clip to maximum or minimum amplitude.<br />
Many embedded system programmers choose to pre-calculate things such that the bias has already been removed and the amplitude already included in the number from the sound source, so step (d) can be reduced to simple addition and (if necessary) clip to maximum or minimum amplitude.<br />
<br />
A few programmers use some function for (b) to calculate the sound on-the-fly.<br />
But many programmers use a table containing a full cycle of that source's sound (i.e., one table for the flute, and one table for the piano), and a "phase accumulator" for each source (1 for the flute, and 6 phase accumulators, one for each finger pressing a note on the piano).<br />
Many programmers don't bother with "attack time" or "decay time" or other nuances of orchestral music, leading to characteristic "8-bit sound".<br />
<br />
So every time the interrupt comes in (say, once every 1/8000 of a second),<br />
the software does something like<br />
<br />
finger_1_accumulator = (finger_1_accumulator + finger_1_delta) & 0xFFFF;<br />
...<br />
finger_6_accumulator = (finger_6_accumulator + finger_6_delta) & 0xFFFF;<br />
flute_accumulator = (flute_accumulator + flute_delta) & 0xFFFF;<br />
<br />
finger_1_sound = piano_table[ hi_byte( finger_1_accumulator ) ];<br />
finger_6_sound = piano_table[ hi_byte( finger_6_accumulator ) ];<br />
flute_sound = flute_table[ hi_byte( flute_accumulator ) ];<br />
<br />
total = finger_1_sound + ... + finger_6_sound + flute_sound;<br />
<br />
Once you know the frequency in Hz of the next note in the song,<br />
(perhaps a musical frequency or a DTMF frequency)<br />
("Concert A" is 440 Hz),<br />
you can calculate the delta from a few constants combined with that frequency:<br />
the number of entries of the sampled data ( piano_table[] or flute_table[], often 256 entries],<br />
and the output sampling rate (often 8000 Hz):<br />
<br />
frequency = song[ next_note ];<br />
finger_2_delta = (number_of_entries * frequency * 0x100 )/sampling_rate;<br />
(Or, I suppose you could pre-calculate these numbers and store all notes in terms of "delta" rather than "Hz").<br />
<br />
The "0x100" here and the "hi_byte()" function used above allow us to play very low-frequency sounds that need to repeat each sample in the sampled table more than once,<br />
a kind of [[fixed-point]] notation.<br />
<br />
For more details on fetching the next note, see [[TRAXMOD]].<br />
<br />
== polyphony the "clever" 1-bit way ==<br />
<br />
... ''serial circuit drawing goes here'' ...<br />
<br />
... ''parallel circuit drawing goes here'' ...<br />
<br />
... ''1-bit circuit drawing goes here'' ...<br />
<br />
Serial DACs were once pretty expensive.<br />
<br />
Parallel DACs made from an R2R ladder seem to cost less, but they require a bunch of digital input pins, which once required an expensive CPU with lots of pins to handle that *and* all the other stuff you wanted to hook to it.<br />
<br />
To avoid that cost, many hobbyists have tried to generate sounds "directly" from one or two digital I/O pins of a CPU, without a DAC.<br />
<br />
They've figured out several relatively clever ways of doing that -- but they all have drawbacks.<br />
In step (a), they require higher interrupt frequency.<br />
In step (e), they require a bit more work.<br />
In step (f), they generally require much more filtering.<br />
Pretty much all the other steps stay the same.<br />
Since the cost of high-pin-count CPUs and single-chip serial DACs has plummeted,<br />
you have to ask if the drawbacks of the "clever" method are worth it.<br />
<br />
Often the hardware guy assumed that the speaker is just going to be used for simple beeps, and hooked to the speaker to a single digital output pin (such as the Apple II speaker and the PC speaker).<br />
Then software guy is forced to use a 1-bit method.<br />
Especially when he absolutely *must* generate 2 simultaneous tones for DTMF.<br />
<br />
BTc Sound Compression Algorithm<br />
( http://www.romanblack.com/BTc_alg.htm )<br />
A system to encode sound to 1-bit format to be played on a PIC or other cheap micro.<br />
<br />
== MP3-quality sound ==<br />
<br />
... [[Music Player]] ...<br />
<br />
== Further reading ==<br />
<br />
[[OpAmp Links]] discusses a variety of ways to generate single pure sine waves -- alas, many of them designed to run at one and only one frequency.<br />
<br />
[[Test Equipment and Other Equipment#Signal Generators]]<br />
<br />
* simple squarewaves are simple. Smooth sinewaves are surprisingly difficult. If you must generate a sine wave, there are several popular approaches: http://www.dattalo.com/technical/theory/sinewave.html<br />
* http://techref.massmind.org/techref/logic/dsp/pas.htm<br />
* http://en.wikipedia.org/wiki/Piano_key_frequencies<br />
* http://en.wikipedia.org/wiki/Dual-tone_multi-frequency<br />
* http://en.wikipedia.org/wiki/PC_speaker#Pulse-width_modulation<br />
* http://techref.massmind.org/Techref/pots/dtmf.htm<br />
* http://electronics.stackexchange.com/questions/2057/polyphonic-sounds-from-a-microcontroller<br />
* http://electronics.stackexchange.com/questions/3934/whats-the-easiest-cheapest-variable-frequency-sine-wave-oscillator</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Demo_board&diff=90788Demo board2024-02-27T23:11:29Z<p>DavidCary: /* Lists of demo boards */ add list of breakout board projects</p>
<hr />
<div>Small PCBs (is there a better term than "small PCB" for the sorts of PCBs that are specifically designed to be hacked and modified -- they have pins that are perfectly aligned to be plugged into a solderless breadboard, or they have a prototyping area on-board?)<br />
<br />
Designed to be used as a [[components]].<br />
<br />
Rather than buying a raw [[microcontroller]], many people buy a small PCB that includes the microcontroller and other essential [[Popular Parts]] on a tiny little [[Microcontroller#Development_Boards | microcontroller development board]]. Many such boards are demo board, easy to plug into your solderless breadboard (or your custom PCB) that has just a few more things that make your project special.<br />
<br />
Later I learn:<br />
"A plugin is a small electronic [http://en.wikibooks.org/wiki/Practical_Electronics/Plugins plug-in module] capable of being plugged directly into a breadboard, that fulfills a (usually simple) function."<br />
I also discover some people call these things "breadboardable" or "DIP-like"[http://spiffie.org/electronics/archives/hardware/Single%20Sided%20FT232RL%20USB-Serial%20Converter.html][http://www.usbmicro.com/documents/2CDECB6069BC98A8B0B408E789A25B26FDF6DF71.html] or "breadboard compatible"[http://sanguino.cc/].<br />
<br />
Occasionally called a "breakout board" or "adapter board".<br />
<br />
''FIXME: should we split up this page''<br />
''into one page "processor development board" for boards with a processor on it, and''<br />
''another page for boards with sensors or etc. but no processor?''<br />
<br />
* [[DsPIC30F 5011 Development Board]]<br />
* [[USB Bit Whacker]]: a USB Enabled PIC Development Board<br />
* [[ADuC832 Development Board]]<br />
* [[Connectors]] mentions "common pitfalls of Micro Development Boards"<br />
<br />
== further reading ==<br />
<br />
=== Form factor comparisons and reviews ===<br />
<br />
What are standard interfaces between a "CPU board" and a "I/O board"?<br />
If none of the standard interfaces are quite what I want,<br />
what are good things to keep in mind when designing a new interface?<br />
<br />
* [[expansion bus]] ideas and standards<br />
* [http://jeelabs.org/2010/12/18/rethinking-the-arduino-hardware-interface/ "Rethinking the Arduino hardware interface"] describes the differences between the "JeeNode form factor and I/O connectors" and the "Arduino Shield form factor and I/O connectors" (both systems are fully compatible with the standard Arduino IDE software).<br />
* [http://electronics.stackexchange.com/questions/8000/how-to-use-multiple-terminal-surface-mount-chips-in-amateur-project/20367#20367 Mark] has a brief rant about form factors<br />
* [http://www.acmesystems.it/?id=index_daisy "Acme Daisy Cabling System"]<br />
* ...<br />
<br />
<br />
=== Demo board comparisons and reviews ===<br />
<br />
* Boris Kourtoukov. "Body boards: A guide to wearable microcontrollers". Make Magazine 2015-March.<br />
<br />
* Alasdair Allan. "A Smorgas-Board: Wearables and IoT are driving diversity in the microcontroller market". Make Magazine 2015-March.<br />
* [http://diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A34592 A decision on Basic Stamps and Parallax -- Basic Stamp vs. Arduino vs. Propeller]<br />
* ...<br />
<br />
=== Lists of demo boards ===<br />
<br />
* [[modules]]<br />
* [https://hackaday.io/list/6364-breakout-board-projects "Hackaday: Breakout Board Projects: Breakout boards - the building blocks that make projects easier"].<br />
* [http://makezine.com/magazine/make-36-boards/which-board-is-right-for-me/ Which Board is Right for Me?]<br />
* [http://massmind.org/techref/microchip/alternatives.htm "Microchip PIC Alternatives"] lists many demo boards.<br />
* [http://www.instructables.com/id/EBHMG9LHPCEWIFO3BC/ Instructables: Modules, bootloaders, and "hidden" microcontrollers] also lists many demo boards.<br />
* Some people are looking for a "a plugin PCB, with a DIP-like interface" that can run Linux: [http://www.embeddedrelated.com/usenet/embedded/show/115403-1.php "Developing Embedded Systems (uC-Linux) on Breadboards."] ''Does such a thing exist ?''<br />
* [http://www.psfk.com/2015/09/digital-tools-democratizing-making-maker-movement-diy-electronic-kits.html "10 Digital Tools Democratizing Making"]<br />
<br />
=== Demo boards, in no particular order ===<br />
<br />
==== boards designed to be wearable ====<br />
<br />
What features are nice to have on wearable electronics?<br />
(both microcontroller boards and other electronics)<br />
<br />
* fabric-friendly connections -- snaps, metal eyelets, or ... ?<br />
* low-power, so we don't need to carry a heavy battery<br />
* To be comfortable sewn into fabric worn on a body with a shape that is not merely not flat, but actively changes shape, it needs to either be flexible, or be relatively small boards with no sharp corners.<br />
* washable<br />
* parts that are not washable -- batteries -- are easily removeable.<br />
* ... what else?<br />
<br />
''(FIXME: add dimensions to these boards)''<br />
<br />
Flora<br />
[https://learn.adafruit.com/category/flora]<br />
<br />
Gemma<br />
[http://www.adafruit.com/product/1222]<br />
<br />
Lilypad Arduino<br />
[http://lilypadarduino.org/]<br />
[https://www.arduino.cc/en/Main/ArduinoBoardLilyPad]<br />
[https://www.sparkfun.com/categories/135]<br />
<br />
LilyPad Arduino SimpleSnap<br />
[https://www.sparkfun.com/products/10941]<br />
<br />
TinyLily Mini<br />
[https://www.tiny-circuits.com/tiny-lily-mini-processor.html]<br />
<br />
Hyejung Kim;<br />
Yongsang Kim;<br />
Binhee Kim; and<br />
Hoi-Jun Yoo.<br />
[http://www.computer.org/portal/web/csdl/doi/10.1109/BSN.2009.51 "A Wearable Fabric Computer by Planar-Fashionable Circuit Board Technique"].<br />
<br />
[http://www.seeedstudio.com/film/seeeduino%20film.htm "Seeduino Film"] and the<br />
[http://www.seeedstudio.com/depot/seeeduino-frame-sewing-p-780.html?cPath=175_188 "Seeeduino Frame - Sewing"]<br />
<br />
<br />
Xadow<br />
[http://www.seeed.cc/wear/]<br />
[http://makezine.com/tag/xadow/]<br />
[http://www.seeedstudio.com/depot/Xadow-Main-Board-p-1524.html]<br />
<br />
<br />
SquareWear<br />
[http://rayshobby.net/sqrwear/]<br />
[http://rayshobby.net/cart/sqrwear-20]<br />
[http://rayshobby.net/cart/squarewear]<br />
[http://hackaday.com/2014/01/12/squarewear-2-0-a-wearable-opensource-arduino/]<br />
[http://lifehacker.com/squarewear-is-a-tiny-wearable-arduino-1500319733]<br />
[https://blog.adafruit.com/2012/10/22/squarewear-a-new-open-source-wearable-electronics-board/]<br />
<br />
<br />
8pino<br />
[http://www.seeedstudio.com/depot/8pino-p-2315.html]<br />
<br />
Printoo<br />
[http://www.printoo.pt/]<br />
[http://techcrunch.com/2014/04/22/printoo/]<br />
[http://www.ynvisible.com/]<br />
<br />
Bitalino<br />
[http://www.bitalino.com/]<br />
[http://techcrunch.com/2013/09/05/bitalino/]<br />
[http://www.engadget.com/2013/11/08/bitalino-hands-on/]<br />
[http://www.medgadget.com/2013/08/bitalino-what-if-you-could-make-your-own-body-signals-monitor.html]<br />
[https://www.sparkfun.com/products/12750]<br />
[https://github.com/BITalinoWorld]<br />
<br />
<br />
==== PIC based boards ====<br />
* Ready to use [http://www.esipcb.com/embedded.htm daughter boards] based on PIC microcontrollers. Each model is designed to meet different price/performance requirements with the smallest possible footprint<br />
<br />
* [http://oopic.com/ OOPic: The Object-Oriented PIC.] The "ooPIC-S" board is a PCB with a large prototyping area and a PIC16F877. The "ooPIC-C" is a tiny stamp-like PCB that plugs into a solderless breadboard. Both hold a PIC16F877, a Flash memory chip, 3 LEDs, a voltage regulator, and a RS-232 tranciever). Both run the "ooPIC III+" firmware.<br />
<br />
* [http://en.wikipedia.org/wiki/PICAXE PICAXE] ... a variety of development boards ... from [http://www.rev-ed.co.uk/picaxe/ Revolution Education]<br />
<br />
* [http://beaglerobotics.com/catalog.pl?pID=32 BeagleBoard PIC module] plugs into standard solderless breadboard<br />
<br />
* [http://www.loginway.com/products PIC-01 Development Board]<br />
<br />
* [[USB Bit Whacker]]: [http://www.greta.dhs.org/UBW/ UBW (USB Bit Whacker)]<br />
by Brian Schmalz<br />
...<br />
"The UBW board ... contains a Microchip PIC USB-capable microcontroller, headers to bring out all of the PICs signal lines (to a breadboard for example) ... costs about $15-$20 to build and is powered from the USB connection. ... All tools used to design this project are free, and the design is open to anyone to use for whatever they wish. Please build your own and improve upon it! If you don't want to build your own, you can buy them assembled and tested ... SparkFun hosts a USB forum where the UBW is a common discussion topic."<br />
<br />
* [http://www.modtronix.com/ "modular PIC based single board computers (SBC) and expansion boards."]<br />
<br />
* http://microcontrollershop.com/ has a bunch of development boards (click on the type of CPU in the left column ... then when the sub-menu opens underneath the CPU type, click on the "boards" in that sub-menu ...) such as, for example, the [http://microcontrollershop.com/product_info.php?products_id=2326" PIC18F67J60 Web Server Prototyping Board, Ethernet, RS232]<br />
<br />
* Dontronics sells a variety of PIC-oriented [http://www.dontronics-shop.com/Proto-Boards-p-1-c-355.html proto boards] and [http://www.dontronics-shop.com/Development-Boards-p-1-c-356.html development boards] (as well as development boards for several other popular microprocessors).<br />
<br />
* [http://web.media.mit.edu/~ayb/irx/ iRX Prototyping Board]: a simple but malleable prototyping board for PIC based projects. It features the EEPROM programmable PIC16F84A, an MAX233 for RS232 port and infrared I/O. About half of the board is an empty prototyping area. Compare: Atmex.<br />
<br />
* [http://www.siriusmicro.com/ Sirius microSystems] has several "easily hackable" development boards, mostly based on Microchip PICmicro. Also posts circuits and schematic diagrams under a "Creative Commons Attribution-Noncommercial-Share Alike 3.0 License", making them "open hardware".<br />
<br />
* (FIXME: there may be a few more mentioned at http://massmind.org/techref/microchip/piclinks.htm that ought to be listed here.)<br />
<br />
* [http://www.melabs.com/ microEngineering Labs, Inc.] specializes in development tools for Microchip PIC® microcontrollers." Lots of completely empty boards designed to be stuffed with various PICmicro chips and associated components ... such as the $19.95 [http://www.melabs.com/products/picproto/28pproto.htm PICPROTO-USB] -- compatible with 28 and 40-pin devices, this board is equipped with additional USB circuitry and connector for use with the USB-equipped PICmicros like the 16C745 and 18F4550.<br />
<br />
* [http://www.sourceboost.com/Products/EBlocks/Overview.html E-Blocks plug and play modules] for PICmicro prototyping. Compatible with many PIC16F and PIC18F MCUs.<br />
<br />
* [http://esipcb.com/embedded_E8100.htm E8100] based on dsPIC33F OEM single board sized in credit card footprint <br />
<br />
*[http://esipcb.com/embedded_E8140.htm E8140] based on PIC18F4680 single low cost board sized for minimum footprint<br />
<br />
*[http://esipcb.com/embedded_E8160.htm E8160] based on PIC18F2510single low cost board sized for minimum footprint<br />
<br />
* PIC [http://en.wikipedia.org/wiki/BASIC_Stamp BASIC Stamp]<br />
* PIC [http://www.c-stamp.com/ C Stamp] intended to be a step up from the BASIC Stamp; uses a PIC18F6520 (32 KByte flash, 2 KByte RAM)<br />
<br />
* [http://www.protean-logic.com/ Protean Logic TICkit] -- The module is directly programmable in a library-centric Functional Basic<br />
<br />
* [http://www.k9spud.com/hoodmicro/ the HOODMICRO]<br />
* [http://www.sskteracon.com/ SerReg] (FIXME: is this really a development board?)<br />
* [http://massmind.org/techref/io/stepper/linistep LiniStepper] designed to drive stepper motors<br />
* [http://massmind.org/techref/piclist/cump Communitary Universal Microcontroller Programmer]<br />
<br />
* [http://www.school-electronics.co.uk/ School electronics] has many "system module designs"<br />
<br />
* AXEme Picaxe Construction Kit http://www.qrpme.com/ includes a small solderless protoboard<br />
<br />
<br />
==== Arduino boards ====<br />
<br />
* There's a huge number of AVR-based Arduino-like boards at [[Arduino Links]], most of which are breadboard-friendly.<br />
* Light Blue Bean - Arduino-compatible board; "upload the sketch over Bluetooth LE"<br />
<br />
==== MIPS boards ====<br />
* WeIO [http://www.cnx-software.com/2014/09/16/weio-is-an-open-source-hardware-iot-board-programmable-from-a-web-browser-crowdfunding/ "WeIO is an Open Source Hardware IoT Board Programmable from a Web Browser"]; [http://linuxgizmos.com/tiny-open-source-module-aims-to-make-iot-apps-easy/ "Tiny open-source module aims to make IoT apps easy"]; [http://we-io.net/hardware/ "WeIO"]; [https://github.com/nodesign/weio/wiki/Detailed-Intro "WeIO in Details"]. The IDE is hosted entirely on the WeIO Board; you can do software development entirely in a web browser on any laptop.<br />
<br />
==== ARM boards ====<br />
<br />
* [[ARM links]] - there are a growing number of Arduino-like embedded ARM boards, offering more CPU power than Arduino but many of the same capabilities.<br />
<br />
There seem to be 3 main categories of ARM boards:<br />
''(is there a better way to categorize them?)''<br />
* ARM boards intended to run a very small program (possibly using a simple real-time operating system RTOS) written in a low-level language. These tend to be smaller and run longer on batteries, so are better for wearables.<br />
* ARM boards intended to run a single program written in JavaScript.<br />
* ARM boards intended to run Linux (which requires a MMU) and display graphics on a computer monitor (which requires much more hardware and drains batteries faster than the above boards).<br />
<br />
Most (all?) of the<br />
[[Motherboards that run Linux]]<br />
are based on a high-end ARM processor.<br />
* [[BeagleBone]] Black<br />
* Raspberry Pi ([[R Pi Notes]])<br />
<br />
<br />
==== Other demo boards ====<br />
* AMPS is a modular prototyping system for microcontrollers from Technological Arts, focused primarily on HC11, HC12, S12 and S12X chips from Freescale. It's like lego for microcontrollers because all the connectors and form-factors of the "Adapt" cards are standardized and interchangeable, enabling you to arrange them in various ways. (http://www.technologicalarts.ca/catalog/index.php?cPath=50)<br />
* Esduino (http://www.technologicalarts.ca/catalog/index.php?cPath=50_166) is an Arduino hardware-compatible board utilizing a Freescale 9S12C 16-bit microcontroller<br />
* $4.30 [http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_(MSP-EXP430G2) TI MSP430 LaunchPad]<br />
* [http://www.uchobby.com/index.php/2008/02/19/bread-board-power-supply/ Bread Board Power Supply] -- a tiny little board that fits between a wall-wart and plugs into a solderless breadboard to supply regulated power. It accepts a wide variety of wall-warts because its full-wave rectifier and LM317 handle a wide range of AC and DC power supply, and its screw terminal headers let you plug in the wires.<br />
<br />
* [http://en.wikipedia.org/wiki/Microcontroller#Development_platforms_for_hobbyists Wikipedia: microcontroller development platforms for hobbyists]<br />
<br />
<br />
* A huge list of [http://blog.makezine.com/archive/kits/ Makezine kits], a few of which ("Daisy MP3 player", some of the RepRap projects, "The IR-ritator", etc.) use PICmicros, a few others that use Atmel AVRs (TV-B-Gone, etc.), one that uses a Freescale processor ...<br />
<br />
* AVR [http://thingm.com/products/blinkm BlinkM], which can be used as a AVR ATtiny45 development board<br />
<br />
* [http://ucontroller.com/ SpinStudio], a system designed for development using Parallax's Propeller(TM) Microcontroller.<br />
<br />
* AVR [http://ladyada.net/techproj/Atmex/index.html Atmex]: An entry-level Atmel Experimentation System. less than $10; includes Atmel ATtiny2313; a DB-9 and MAX232 for serial communication and downloading new programs (using a bootloader); LED. About half of the board is an empty prototyping area. Meant to be better than the iRX board.<br />
<br />
* ...<br />
<br />
* "NanoCore12", much like the BASIC Stamp but using a Motorola/Freescale HCS12 instruction set http://www.nanocore12.com/ from Technological Arts. It has a free object-based programming environment for Windows, called nqBASIC (http://www.nqBASIC.com)<br />
<br />
* Micromint http://www.micromint.com/ sells little boards with DIP pinouts (and so can plug into protoboards) based on ARM7, Atmel AVR, and 8051 cores ...<br />
<br />
* ...<br />
<br />
* "The uCsimm module is a microcontroller module built specifically for the uClinux Operating System. It stands an inch high, with a standard 30-pin SIMM form factor. ... The uCsimm is driven by a Motorola DragonBall 68EZ328 processor, and comes well equiped with 2 MB of FLASH and 8Mb of DRAM. We have also included a 10Base-T ethernet and RS 232 high-speed serial." http://uclinux.org/ucsimm/<br />
<br />
* "The Minotaur BF537 is a sub miniature Computer On Module ... 26.5mm x 26.5mm x 4.2mm ... 10/100 Ethernet MAC and PHY onboard ... uClinux support" http://www.camsig.co.uk/products.htm<br />
<br />
*...<br />
<br />
* [http://www.tincantools.com/product.php?productid=16142&cat=0&page=1&featured "the Hammer"]: a Samsung S3C2410A ARM9 CPU board in a 40-pin DIP package, ready to plug into a solderless breadboard. Pre-loaded with Linux. ... [http://www.lynxmotion.net/viewtopic.php?p=37306&sid=2a20efcadf8e6cb81383cf548f85cc3f discussion forum] ... [http://www.elinux.org/Hammer_Board Hammer wiki] ''(FIXME: add to [[WikiNode]])'' ...<br />
<br />
* uC Hobby occasionally discusses various development boards http://www.uchobby.com/<br />
<br />
* Some people use the [http://atmel.com/dyn/products/tools_card.asp?tool_id=3879 AT90USBKey] as a prototyping board.<br />
<br />
* "Picotux was the smallest computer running Linux in the world. ... 35 mm × 19 mm × 19 mm and just barely larger than [its] RJ45 connector" and its DB9 serial connector. "... Two communication interfaces are provided, 10/100 Mbit/s half/full duplex Ethernet and a serial port with up to 230.400 bit/s. Five additional lines can be used for either general input/output or serial handshaking. ... 55 MHz 32-bit ARM7 Netsilicon NS7520 processor, with 2 MB of Flash Memory (750 KB of which contains the OS) and 8 MB SDRAM Memory. The operating system is µClinux" -- [http://en.wikipedia.org/wiki/Picotux Wikipedia: Picotux]<br />
<br />
* AVR [http://www.bipom.com/staver.php StAVeR-24M32] "a microcontroller module based on an Atmel ATmega32 in a small DIP24 package with a standard pin out."<br />
<br />
* [http://store.stackfoundry.com/dev-tools/copper-avr32-stick.html Copper (AVR32 Stick)] "Copper is an Atmel AVR32 UC3B1256 mounted on a DIP32 breadboard friendly module, giving you the smallest AVR32 development board available (and one of the cheapest!). Features integrated voltage regulator, USB connector, and in-system programming via the USB port. ... The board design and schematics are available under the Creative Commons Attribution Share-Alike 3.0 license. ... 256KB of flash, 32KB of RAM, on board USB, up to 60MHz CPU clock ..."<br />
<br />
* Tessel -- runs JavaScript on the board itself<br />
* Espruino -- runs JavaScript on the board itself<br />
<br />
* Digi XBee radio transcievers<br />
* Particle.io Photon (formerly Spark.io Photon) - includes ARM Cortex M3 and Wi-Fi<br />
* Particle.io Electron (formerly Spark.io Photon) - includes ARM Cortex M3 and 2G/3G cellular<br />
<br />
* The WunderBar [https://www.relayr.io/wunderbar/] - includes Wi-Fi<br />
<br />
* Microview<br />
<br />
* Metawear<br />
<br />
* ESP8266 Wi-Fi serial transciever<br />
** Brian Benchoff. [http://hackaday.com/2014/10/02/gcc-for-the-esp8266-wifi-module/ "GCC FOR THE ESP8266 WIFI MODULE"]. 2014.<br />
** [http://www.esp8266.com/ "ESP8266 Community Forum"] also [https://github.com/esp8266 "ESP8266 Community Forum"].<br />
** [http://www.electrodragon.com/w/ESP8266_GCC_SDK "ESP8266 GCC SDK"].<br />
** [https://github.com/pfalcon/esp-open-sdk "esp-open-sdk"]<br />
<br />
* Edison<br />
<br />
* Cloudbit<br />
<br />
* Apollo<br />
** Brian Benchoff writes about [http://hackaday.com/2014/09/24/apollo-the-everything-board/ "Apollo, the everything board"].<br />
** http://www.carbonorigins.com/apollo<br />
<br />
<br />
*littleBits has a huge number of small demo boards that connect and do things without programming, without a microprocessor.<br />
** [http://littlebits.cc/ littleBits electronics]: "Our mission is to democratize hardware";<br />
** a pretty active [http://discuss.littlebits.cc/ littleBits discussion forum]<br />
** a pretty active [http://littlebits.cc/community/chapters littleBits community].<br />
** [http://littlebits.cc/bitlab the bitLab], "an app store for hardware".<br />
** [http://www.microcomms.co.uk/it-services/planit-primary/planit-primary-littlebits/ littleBits at PlanIT]<br />
** [http://www.cnet.com/au/news/littlebits-heads-to-space-with-new-nasa-approved-kit/ "LittleBits enters space with NASA-backed kit"]<br />
*Some technical details for people who want to build their own customized littleBits modules (and perhaps after that get your module featured in the the bitLab):<br />
** [http://littlebits.cc/tips-tricks/hdk-tips-tricks HDK Tips & Tricks];<br />
** the book by Ayah Bdeir, Matt Richardson: [https://books.google.com/books?id=i4SwCAAAQBAJ "Make: Getting Started with littleBits: Prototyping and Inventing with Modular Electronics"];<br />
** [[littleBits]]<br />
** [https://github.com/littlebitselectronics/eagle-files "The littleBits Eagle Files Repository"]<br />
** [https://github.com/littlebits "more littleBits github repositories"]<br />
** [http://discuss.littlebits.cc/c/hardware the "Hardware" section of the littleBits discussion forum]<br />
** some measurements of exactly how much power various littleBits require (useful for estimating battery runtime): [http://discuss.littlebits.cc/t/specs-for-the-battery-cable/152 <br />
Specs for the battery cable"][https://github.com/manitou48/littlebits/blob/master/power.txt github: manitou48: littleBits power measurements]<br />
<br />
* [https://samlabs.me/ SAM labs]<br />
** ["SAM: The Ultimate Internet Connected Electronics Kit"]<br />
** [http://techcrunch.com/2014/09/29/sam-is-a-wireless-electronics-kit-that-wants-to-make-coding-connected-objects-super-simple/ "SAM Is A Wireless Electronics Kit That Wants To Make Coding Connected Objects Super Simple"] says "The SAM hardware kit schematics and board designs will definitely be open sourced."<br />
** [http://storyboard.me/samlabs Samlabs wireless electronics kit]<br />
<br />
Demo boards are one of several techniques for rapidly prototyping circuits -- see [[Techniques#Circuit construction .28Prototyping - Other than custom PCB.29]] for a few more.<br />
<br />
[[Wikipedia: microprocessor development board]]<br />
<br />
----<br />
<br />
[[category:modules]][[Category:Components]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Demo_board&diff=90787Demo board2024-02-27T23:10:03Z<p>DavidCary: link to related articles</p>
<hr />
<div>Small PCBs (is there a better term than "small PCB" for the sorts of PCBs that are specifically designed to be hacked and modified -- they have pins that are perfectly aligned to be plugged into a solderless breadboard, or they have a prototyping area on-board?)<br />
<br />
Designed to be used as a [[components]].<br />
<br />
Rather than buying a raw [[microcontroller]], many people buy a small PCB that includes the microcontroller and other essential [[Popular Parts]] on a tiny little [[Microcontroller#Development_Boards | microcontroller development board]]. Many such boards are demo board, easy to plug into your solderless breadboard (or your custom PCB) that has just a few more things that make your project special.<br />
<br />
Later I learn:<br />
"A plugin is a small electronic [http://en.wikibooks.org/wiki/Practical_Electronics/Plugins plug-in module] capable of being plugged directly into a breadboard, that fulfills a (usually simple) function."<br />
I also discover some people call these things "breadboardable" or "DIP-like"[http://spiffie.org/electronics/archives/hardware/Single%20Sided%20FT232RL%20USB-Serial%20Converter.html][http://www.usbmicro.com/documents/2CDECB6069BC98A8B0B408E789A25B26FDF6DF71.html] or "breadboard compatible"[http://sanguino.cc/].<br />
<br />
Occasionally called a "breakout board" or "adapter board".<br />
<br />
''FIXME: should we split up this page''<br />
''into one page "processor development board" for boards with a processor on it, and''<br />
''another page for boards with sensors or etc. but no processor?''<br />
<br />
* [[DsPIC30F 5011 Development Board]]<br />
* [[USB Bit Whacker]]: a USB Enabled PIC Development Board<br />
* [[ADuC832 Development Board]]<br />
* [[Connectors]] mentions "common pitfalls of Micro Development Boards"<br />
<br />
== further reading ==<br />
<br />
=== Form factor comparisons and reviews ===<br />
<br />
What are standard interfaces between a "CPU board" and a "I/O board"?<br />
If none of the standard interfaces are quite what I want,<br />
what are good things to keep in mind when designing a new interface?<br />
<br />
* [[expansion bus]] ideas and standards<br />
* [http://jeelabs.org/2010/12/18/rethinking-the-arduino-hardware-interface/ "Rethinking the Arduino hardware interface"] describes the differences between the "JeeNode form factor and I/O connectors" and the "Arduino Shield form factor and I/O connectors" (both systems are fully compatible with the standard Arduino IDE software).<br />
* [http://electronics.stackexchange.com/questions/8000/how-to-use-multiple-terminal-surface-mount-chips-in-amateur-project/20367#20367 Mark] has a brief rant about form factors<br />
* [http://www.acmesystems.it/?id=index_daisy "Acme Daisy Cabling System"]<br />
* ...<br />
<br />
<br />
=== Demo board comparisons and reviews ===<br />
<br />
* Boris Kourtoukov. "Body boards: A guide to wearable microcontrollers". Make Magazine 2015-March.<br />
<br />
* Alasdair Allan. "A Smorgas-Board: Wearables and IoT are driving diversity in the microcontroller market". Make Magazine 2015-March.<br />
* [http://diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A34592 A decision on Basic Stamps and Parallax -- Basic Stamp vs. Arduino vs. Propeller]<br />
* ...<br />
<br />
=== Lists of demo boards ===<br />
<br />
* [[modules]]<br />
* [http://makezine.com/magazine/make-36-boards/which-board-is-right-for-me/ Which Board is Right for Me?]<br />
* [http://massmind.org/techref/microchip/alternatives.htm "Microchip PIC Alternatives"] lists many demo boards.<br />
* [http://www.instructables.com/id/EBHMG9LHPCEWIFO3BC/ Instructables: Modules, bootloaders, and "hidden" microcontrollers] also lists many demo boards.<br />
* Some people are looking for a "a plugin PCB, with a DIP-like interface" that can run Linux: [http://www.embeddedrelated.com/usenet/embedded/show/115403-1.php "Developing Embedded Systems (uC-Linux) on Breadboards."] ''Does such a thing exist ?''<br />
* [http://www.psfk.com/2015/09/digital-tools-democratizing-making-maker-movement-diy-electronic-kits.html "10 Digital Tools Democratizing Making"]<br />
<br />
=== Demo boards, in no particular order ===<br />
<br />
==== boards designed to be wearable ====<br />
<br />
What features are nice to have on wearable electronics?<br />
(both microcontroller boards and other electronics)<br />
<br />
* fabric-friendly connections -- snaps, metal eyelets, or ... ?<br />
* low-power, so we don't need to carry a heavy battery<br />
* To be comfortable sewn into fabric worn on a body with a shape that is not merely not flat, but actively changes shape, it needs to either be flexible, or be relatively small boards with no sharp corners.<br />
* washable<br />
* parts that are not washable -- batteries -- are easily removeable.<br />
* ... what else?<br />
<br />
''(FIXME: add dimensions to these boards)''<br />
<br />
Flora<br />
[https://learn.adafruit.com/category/flora]<br />
<br />
Gemma<br />
[http://www.adafruit.com/product/1222]<br />
<br />
Lilypad Arduino<br />
[http://lilypadarduino.org/]<br />
[https://www.arduino.cc/en/Main/ArduinoBoardLilyPad]<br />
[https://www.sparkfun.com/categories/135]<br />
<br />
LilyPad Arduino SimpleSnap<br />
[https://www.sparkfun.com/products/10941]<br />
<br />
TinyLily Mini<br />
[https://www.tiny-circuits.com/tiny-lily-mini-processor.html]<br />
<br />
Hyejung Kim;<br />
Yongsang Kim;<br />
Binhee Kim; and<br />
Hoi-Jun Yoo.<br />
[http://www.computer.org/portal/web/csdl/doi/10.1109/BSN.2009.51 "A Wearable Fabric Computer by Planar-Fashionable Circuit Board Technique"].<br />
<br />
[http://www.seeedstudio.com/film/seeeduino%20film.htm "Seeduino Film"] and the<br />
[http://www.seeedstudio.com/depot/seeeduino-frame-sewing-p-780.html?cPath=175_188 "Seeeduino Frame - Sewing"]<br />
<br />
<br />
Xadow<br />
[http://www.seeed.cc/wear/]<br />
[http://makezine.com/tag/xadow/]<br />
[http://www.seeedstudio.com/depot/Xadow-Main-Board-p-1524.html]<br />
<br />
<br />
SquareWear<br />
[http://rayshobby.net/sqrwear/]<br />
[http://rayshobby.net/cart/sqrwear-20]<br />
[http://rayshobby.net/cart/squarewear]<br />
[http://hackaday.com/2014/01/12/squarewear-2-0-a-wearable-opensource-arduino/]<br />
[http://lifehacker.com/squarewear-is-a-tiny-wearable-arduino-1500319733]<br />
[https://blog.adafruit.com/2012/10/22/squarewear-a-new-open-source-wearable-electronics-board/]<br />
<br />
<br />
8pino<br />
[http://www.seeedstudio.com/depot/8pino-p-2315.html]<br />
<br />
Printoo<br />
[http://www.printoo.pt/]<br />
[http://techcrunch.com/2014/04/22/printoo/]<br />
[http://www.ynvisible.com/]<br />
<br />
Bitalino<br />
[http://www.bitalino.com/]<br />
[http://techcrunch.com/2013/09/05/bitalino/]<br />
[http://www.engadget.com/2013/11/08/bitalino-hands-on/]<br />
[http://www.medgadget.com/2013/08/bitalino-what-if-you-could-make-your-own-body-signals-monitor.html]<br />
[https://www.sparkfun.com/products/12750]<br />
[https://github.com/BITalinoWorld]<br />
<br />
<br />
==== PIC based boards ====<br />
* Ready to use [http://www.esipcb.com/embedded.htm daughter boards] based on PIC microcontrollers. Each model is designed to meet different price/performance requirements with the smallest possible footprint<br />
<br />
* [http://oopic.com/ OOPic: The Object-Oriented PIC.] The "ooPIC-S" board is a PCB with a large prototyping area and a PIC16F877. The "ooPIC-C" is a tiny stamp-like PCB that plugs into a solderless breadboard. Both hold a PIC16F877, a Flash memory chip, 3 LEDs, a voltage regulator, and a RS-232 tranciever). Both run the "ooPIC III+" firmware.<br />
<br />
* [http://en.wikipedia.org/wiki/PICAXE PICAXE] ... a variety of development boards ... from [http://www.rev-ed.co.uk/picaxe/ Revolution Education]<br />
<br />
* [http://beaglerobotics.com/catalog.pl?pID=32 BeagleBoard PIC module] plugs into standard solderless breadboard<br />
<br />
* [http://www.loginway.com/products PIC-01 Development Board]<br />
<br />
* [[USB Bit Whacker]]: [http://www.greta.dhs.org/UBW/ UBW (USB Bit Whacker)]<br />
by Brian Schmalz<br />
...<br />
"The UBW board ... contains a Microchip PIC USB-capable microcontroller, headers to bring out all of the PICs signal lines (to a breadboard for example) ... costs about $15-$20 to build and is powered from the USB connection. ... All tools used to design this project are free, and the design is open to anyone to use for whatever they wish. Please build your own and improve upon it! If you don't want to build your own, you can buy them assembled and tested ... SparkFun hosts a USB forum where the UBW is a common discussion topic."<br />
<br />
* [http://www.modtronix.com/ "modular PIC based single board computers (SBC) and expansion boards."]<br />
<br />
* http://microcontrollershop.com/ has a bunch of development boards (click on the type of CPU in the left column ... then when the sub-menu opens underneath the CPU type, click on the "boards" in that sub-menu ...) such as, for example, the [http://microcontrollershop.com/product_info.php?products_id=2326" PIC18F67J60 Web Server Prototyping Board, Ethernet, RS232]<br />
<br />
* Dontronics sells a variety of PIC-oriented [http://www.dontronics-shop.com/Proto-Boards-p-1-c-355.html proto boards] and [http://www.dontronics-shop.com/Development-Boards-p-1-c-356.html development boards] (as well as development boards for several other popular microprocessors).<br />
<br />
* [http://web.media.mit.edu/~ayb/irx/ iRX Prototyping Board]: a simple but malleable prototyping board for PIC based projects. It features the EEPROM programmable PIC16F84A, an MAX233 for RS232 port and infrared I/O. About half of the board is an empty prototyping area. Compare: Atmex.<br />
<br />
* [http://www.siriusmicro.com/ Sirius microSystems] has several "easily hackable" development boards, mostly based on Microchip PICmicro. Also posts circuits and schematic diagrams under a "Creative Commons Attribution-Noncommercial-Share Alike 3.0 License", making them "open hardware".<br />
<br />
* (FIXME: there may be a few more mentioned at http://massmind.org/techref/microchip/piclinks.htm that ought to be listed here.)<br />
<br />
* [http://www.melabs.com/ microEngineering Labs, Inc.] specializes in development tools for Microchip PIC® microcontrollers." Lots of completely empty boards designed to be stuffed with various PICmicro chips and associated components ... such as the $19.95 [http://www.melabs.com/products/picproto/28pproto.htm PICPROTO-USB] -- compatible with 28 and 40-pin devices, this board is equipped with additional USB circuitry and connector for use with the USB-equipped PICmicros like the 16C745 and 18F4550.<br />
<br />
* [http://www.sourceboost.com/Products/EBlocks/Overview.html E-Blocks plug and play modules] for PICmicro prototyping. Compatible with many PIC16F and PIC18F MCUs.<br />
<br />
* [http://esipcb.com/embedded_E8100.htm E8100] based on dsPIC33F OEM single board sized in credit card footprint <br />
<br />
*[http://esipcb.com/embedded_E8140.htm E8140] based on PIC18F4680 single low cost board sized for minimum footprint<br />
<br />
*[http://esipcb.com/embedded_E8160.htm E8160] based on PIC18F2510single low cost board sized for minimum footprint<br />
<br />
* PIC [http://en.wikipedia.org/wiki/BASIC_Stamp BASIC Stamp]<br />
* PIC [http://www.c-stamp.com/ C Stamp] intended to be a step up from the BASIC Stamp; uses a PIC18F6520 (32 KByte flash, 2 KByte RAM)<br />
<br />
* [http://www.protean-logic.com/ Protean Logic TICkit] -- The module is directly programmable in a library-centric Functional Basic<br />
<br />
* [http://www.k9spud.com/hoodmicro/ the HOODMICRO]<br />
* [http://www.sskteracon.com/ SerReg] (FIXME: is this really a development board?)<br />
* [http://massmind.org/techref/io/stepper/linistep LiniStepper] designed to drive stepper motors<br />
* [http://massmind.org/techref/piclist/cump Communitary Universal Microcontroller Programmer]<br />
<br />
* [http://www.school-electronics.co.uk/ School electronics] has many "system module designs"<br />
<br />
* AXEme Picaxe Construction Kit http://www.qrpme.com/ includes a small solderless protoboard<br />
<br />
<br />
==== Arduino boards ====<br />
<br />
* There's a huge number of AVR-based Arduino-like boards at [[Arduino Links]], most of which are breadboard-friendly.<br />
* Light Blue Bean - Arduino-compatible board; "upload the sketch over Bluetooth LE"<br />
<br />
==== MIPS boards ====<br />
* WeIO [http://www.cnx-software.com/2014/09/16/weio-is-an-open-source-hardware-iot-board-programmable-from-a-web-browser-crowdfunding/ "WeIO is an Open Source Hardware IoT Board Programmable from a Web Browser"]; [http://linuxgizmos.com/tiny-open-source-module-aims-to-make-iot-apps-easy/ "Tiny open-source module aims to make IoT apps easy"]; [http://we-io.net/hardware/ "WeIO"]; [https://github.com/nodesign/weio/wiki/Detailed-Intro "WeIO in Details"]. The IDE is hosted entirely on the WeIO Board; you can do software development entirely in a web browser on any laptop.<br />
<br />
==== ARM boards ====<br />
<br />
* [[ARM links]] - there are a growing number of Arduino-like embedded ARM boards, offering more CPU power than Arduino but many of the same capabilities.<br />
<br />
There seem to be 3 main categories of ARM boards:<br />
''(is there a better way to categorize them?)''<br />
* ARM boards intended to run a very small program (possibly using a simple real-time operating system RTOS) written in a low-level language. These tend to be smaller and run longer on batteries, so are better for wearables.<br />
* ARM boards intended to run a single program written in JavaScript.<br />
* ARM boards intended to run Linux (which requires a MMU) and display graphics on a computer monitor (which requires much more hardware and drains batteries faster than the above boards).<br />
<br />
Most (all?) of the<br />
[[Motherboards that run Linux]]<br />
are based on a high-end ARM processor.<br />
* [[BeagleBone]] Black<br />
* Raspberry Pi ([[R Pi Notes]])<br />
<br />
<br />
==== Other demo boards ====<br />
* AMPS is a modular prototyping system for microcontrollers from Technological Arts, focused primarily on HC11, HC12, S12 and S12X chips from Freescale. It's like lego for microcontrollers because all the connectors and form-factors of the "Adapt" cards are standardized and interchangeable, enabling you to arrange them in various ways. (http://www.technologicalarts.ca/catalog/index.php?cPath=50)<br />
* Esduino (http://www.technologicalarts.ca/catalog/index.php?cPath=50_166) is an Arduino hardware-compatible board utilizing a Freescale 9S12C 16-bit microcontroller<br />
* $4.30 [http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_(MSP-EXP430G2) TI MSP430 LaunchPad]<br />
* [http://www.uchobby.com/index.php/2008/02/19/bread-board-power-supply/ Bread Board Power Supply] -- a tiny little board that fits between a wall-wart and plugs into a solderless breadboard to supply regulated power. It accepts a wide variety of wall-warts because its full-wave rectifier and LM317 handle a wide range of AC and DC power supply, and its screw terminal headers let you plug in the wires.<br />
<br />
* [http://en.wikipedia.org/wiki/Microcontroller#Development_platforms_for_hobbyists Wikipedia: microcontroller development platforms for hobbyists]<br />
<br />
<br />
* A huge list of [http://blog.makezine.com/archive/kits/ Makezine kits], a few of which ("Daisy MP3 player", some of the RepRap projects, "The IR-ritator", etc.) use PICmicros, a few others that use Atmel AVRs (TV-B-Gone, etc.), one that uses a Freescale processor ...<br />
<br />
* AVR [http://thingm.com/products/blinkm BlinkM], which can be used as a AVR ATtiny45 development board<br />
<br />
* [http://ucontroller.com/ SpinStudio], a system designed for development using Parallax's Propeller(TM) Microcontroller.<br />
<br />
* AVR [http://ladyada.net/techproj/Atmex/index.html Atmex]: An entry-level Atmel Experimentation System. less than $10; includes Atmel ATtiny2313; a DB-9 and MAX232 for serial communication and downloading new programs (using a bootloader); LED. About half of the board is an empty prototyping area. Meant to be better than the iRX board.<br />
<br />
* ...<br />
<br />
* "NanoCore12", much like the BASIC Stamp but using a Motorola/Freescale HCS12 instruction set http://www.nanocore12.com/ from Technological Arts. It has a free object-based programming environment for Windows, called nqBASIC (http://www.nqBASIC.com)<br />
<br />
* Micromint http://www.micromint.com/ sells little boards with DIP pinouts (and so can plug into protoboards) based on ARM7, Atmel AVR, and 8051 cores ...<br />
<br />
* ...<br />
<br />
* "The uCsimm module is a microcontroller module built specifically for the uClinux Operating System. It stands an inch high, with a standard 30-pin SIMM form factor. ... The uCsimm is driven by a Motorola DragonBall 68EZ328 processor, and comes well equiped with 2 MB of FLASH and 8Mb of DRAM. We have also included a 10Base-T ethernet and RS 232 high-speed serial." http://uclinux.org/ucsimm/<br />
<br />
* "The Minotaur BF537 is a sub miniature Computer On Module ... 26.5mm x 26.5mm x 4.2mm ... 10/100 Ethernet MAC and PHY onboard ... uClinux support" http://www.camsig.co.uk/products.htm<br />
<br />
*...<br />
<br />
* [http://www.tincantools.com/product.php?productid=16142&cat=0&page=1&featured "the Hammer"]: a Samsung S3C2410A ARM9 CPU board in a 40-pin DIP package, ready to plug into a solderless breadboard. Pre-loaded with Linux. ... [http://www.lynxmotion.net/viewtopic.php?p=37306&sid=2a20efcadf8e6cb81383cf548f85cc3f discussion forum] ... [http://www.elinux.org/Hammer_Board Hammer wiki] ''(FIXME: add to [[WikiNode]])'' ...<br />
<br />
* uC Hobby occasionally discusses various development boards http://www.uchobby.com/<br />
<br />
* Some people use the [http://atmel.com/dyn/products/tools_card.asp?tool_id=3879 AT90USBKey] as a prototyping board.<br />
<br />
* "Picotux was the smallest computer running Linux in the world. ... 35 mm × 19 mm × 19 mm and just barely larger than [its] RJ45 connector" and its DB9 serial connector. "... Two communication interfaces are provided, 10/100 Mbit/s half/full duplex Ethernet and a serial port with up to 230.400 bit/s. Five additional lines can be used for either general input/output or serial handshaking. ... 55 MHz 32-bit ARM7 Netsilicon NS7520 processor, with 2 MB of Flash Memory (750 KB of which contains the OS) and 8 MB SDRAM Memory. The operating system is µClinux" -- [http://en.wikipedia.org/wiki/Picotux Wikipedia: Picotux]<br />
<br />
* AVR [http://www.bipom.com/staver.php StAVeR-24M32] "a microcontroller module based on an Atmel ATmega32 in a small DIP24 package with a standard pin out."<br />
<br />
* [http://store.stackfoundry.com/dev-tools/copper-avr32-stick.html Copper (AVR32 Stick)] "Copper is an Atmel AVR32 UC3B1256 mounted on a DIP32 breadboard friendly module, giving you the smallest AVR32 development board available (and one of the cheapest!). Features integrated voltage regulator, USB connector, and in-system programming via the USB port. ... The board design and schematics are available under the Creative Commons Attribution Share-Alike 3.0 license. ... 256KB of flash, 32KB of RAM, on board USB, up to 60MHz CPU clock ..."<br />
<br />
* Tessel -- runs JavaScript on the board itself<br />
* Espruino -- runs JavaScript on the board itself<br />
<br />
* Digi XBee radio transcievers<br />
* Particle.io Photon (formerly Spark.io Photon) - includes ARM Cortex M3 and Wi-Fi<br />
* Particle.io Electron (formerly Spark.io Photon) - includes ARM Cortex M3 and 2G/3G cellular<br />
<br />
* The WunderBar [https://www.relayr.io/wunderbar/] - includes Wi-Fi<br />
<br />
* Microview<br />
<br />
* Metawear<br />
<br />
* ESP8266 Wi-Fi serial transciever<br />
** Brian Benchoff. [http://hackaday.com/2014/10/02/gcc-for-the-esp8266-wifi-module/ "GCC FOR THE ESP8266 WIFI MODULE"]. 2014.<br />
** [http://www.esp8266.com/ "ESP8266 Community Forum"] also [https://github.com/esp8266 "ESP8266 Community Forum"].<br />
** [http://www.electrodragon.com/w/ESP8266_GCC_SDK "ESP8266 GCC SDK"].<br />
** [https://github.com/pfalcon/esp-open-sdk "esp-open-sdk"]<br />
<br />
* Edison<br />
<br />
* Cloudbit<br />
<br />
* Apollo<br />
** Brian Benchoff writes about [http://hackaday.com/2014/09/24/apollo-the-everything-board/ "Apollo, the everything board"].<br />
** http://www.carbonorigins.com/apollo<br />
<br />
<br />
*littleBits has a huge number of small demo boards that connect and do things without programming, without a microprocessor.<br />
** [http://littlebits.cc/ littleBits electronics]: "Our mission is to democratize hardware";<br />
** a pretty active [http://discuss.littlebits.cc/ littleBits discussion forum]<br />
** a pretty active [http://littlebits.cc/community/chapters littleBits community].<br />
** [http://littlebits.cc/bitlab the bitLab], "an app store for hardware".<br />
** [http://www.microcomms.co.uk/it-services/planit-primary/planit-primary-littlebits/ littleBits at PlanIT]<br />
** [http://www.cnet.com/au/news/littlebits-heads-to-space-with-new-nasa-approved-kit/ "LittleBits enters space with NASA-backed kit"]<br />
*Some technical details for people who want to build their own customized littleBits modules (and perhaps after that get your module featured in the the bitLab):<br />
** [http://littlebits.cc/tips-tricks/hdk-tips-tricks HDK Tips & Tricks];<br />
** the book by Ayah Bdeir, Matt Richardson: [https://books.google.com/books?id=i4SwCAAAQBAJ "Make: Getting Started with littleBits: Prototyping and Inventing with Modular Electronics"];<br />
** [[littleBits]]<br />
** [https://github.com/littlebitselectronics/eagle-files "The littleBits Eagle Files Repository"]<br />
** [https://github.com/littlebits "more littleBits github repositories"]<br />
** [http://discuss.littlebits.cc/c/hardware the "Hardware" section of the littleBits discussion forum]<br />
** some measurements of exactly how much power various littleBits require (useful for estimating battery runtime): [http://discuss.littlebits.cc/t/specs-for-the-battery-cable/152 <br />
Specs for the battery cable"][https://github.com/manitou48/littlebits/blob/master/power.txt github: manitou48: littleBits power measurements]<br />
<br />
* [https://samlabs.me/ SAM labs]<br />
** ["SAM: The Ultimate Internet Connected Electronics Kit"]<br />
** [http://techcrunch.com/2014/09/29/sam-is-a-wireless-electronics-kit-that-wants-to-make-coding-connected-objects-super-simple/ "SAM Is A Wireless Electronics Kit That Wants To Make Coding Connected Objects Super Simple"] says "The SAM hardware kit schematics and board designs will definitely be open sourced."<br />
** [http://storyboard.me/samlabs Samlabs wireless electronics kit]<br />
<br />
Demo boards are one of several techniques for rapidly prototyping circuits -- see [[Techniques#Circuit construction .28Prototyping - Other than custom PCB.29]] for a few more.<br />
<br />
[[Wikipedia: microprocessor development board]]<br />
<br />
----<br />
<br />
[[category:modules]][[Category:Components]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Chemical_Etchants&diff=90786Chemical Etchants2024-02-26T08:23:09Z<p>DavidCary: revert to 16 February 2024 Russ Hensel</p>
<hr />
<div>{{stub}}<br />
<br />
Chemical etching is one step of some popular [[techniques | PCB fabrication techniques]].<br />
<br />
In this technique,<br />
* one starts with a copper-clad board.<br />
* one puts a mask over all the copper he want to keep. There are a variety of ways to do this -- see [[Toner Transfer]] and [[Photoetching]].<br />
* one removes the parts he don't want to keep, by chemically etching away the copper.<br />
* cleanup: wash off the board in the sink; carefully store or dispose of the acid.<br />
<br />
There are a lot of different chemical techniques for doing this, each with its own advantages and drawbacks.<br />
<br />
None of these chemicals is incredibly dangerous, but they can all be toxic or caustic, and should be treated with care. Eye protection and gloves are a very good idea. Before you start, make sure you know how dangerous each chemical is, and figure out what you will need to do if you spill it or get it on yourself. Washing with plenty of water is usually a good start. For some chemicals you may want to keep a neutralizing agent handy. An MSDS (Materials Safety Data Sheet) for the chemical will give you some basic information.<br />
<br />
== vinegar and salt ==<br />
<br />
* [http://www.kobakant.at/DIY/?p=2575 How to get what you want: Salt and Vinegar Etching]<br />
* [http://www.flickr.com/photos/jeanbaptisteparis/4831465916/ smt pcb with Salt and Vinegar]<br />
* [http://www.instructables.com/id/The-Saltwater-etch-process/ The Saltwater etch process]<br />
* [http://www.electro-tech-online.com/general-electronics-chat/33876-electro-etching-no-acid.html electro etching a PCB with vinegar, salt, and a 12 V power supply] (the copper etched off the PCB is plated on the anode?) -- however, other people claim that "You should not be using any acids (or basic 'acids') with your [electro] etcher at all. No FeCl no vinegar, etc ".[http://www.bladeforums.com/forums/showthread.php?t=671936]<br />
<br />
== Ferric Chloride ==<br />
This is the most common hobbyist etchant. Ferric chloride, FeCl<sub>3</sub>, is a brownish substance. It's usually sold in a bottle (dissolved in water, perhaps with a little acid or peroxide) or as a powder (which you have to dissolve in water).<br />
<br />
When in solution, ferric chloride is a ferric ion (Fe<sup>3+</sup>) and a chloride ion (Cl<sup>-</sup>). The ferric ion reacts with the metallic copper on the circuit board in a redox reaction, producing a ferrous ion (Fe<sup>2+</sup>) and cuprous or cupric (Cu<sup>1+</sup> or Cu<sup>2+</sup>) copper. The chlorine is just along for the ride. The copper ion, unlike the metallic copper, is soluble, so it leaves the circuit board and goes into solution. The reaction products form a black sludge which settles to the bottom of the etching tank. After etching enough copper, all your Fe<sup>3+</sup> is used up and your solution is full of Cu<sup>1+</sup>, and you need to get more etchant.<br />
<br />
== Ammonium Persulfate ==<br />
Expensive & hard to control and optimize the process parameters (such as specific gravity & pH value).<br />
<br />
== HydroChloric Acid / Hydrogen Peroxide ==<br />
<br />
Mixing about 1 part HCl (Which can be found at most hardware stores, also known as Muriatic Acid. Ask for concrete cleaner.) into 2 parts Hydrogen peroxide (normally used for cleaning cuts) you can make a fairly powerful etchant. Use gloves and don't breathe the fumes though. This will etch a 3"x5" board in less than 10 minutes. No need to heat it up. I usually like to drill a small hole through the board on a corner and thread a wire or nylon string through to help agitate / remove the board.<br />
<br />
When the board is done etching, the etchant will probably look like green kool-aid, from the copper content in it. This stuff is highly corrosive and will burn skin, which is why you should wear gloves. But it is easy to handle, and fairly easy to dispose of. the etchant is easily deactivated with baking soda. Pour enough baking soda into it slowly (to keep it from boiling and overflowing... remember what happens with baking soda/vinegar? ya...) until it is a solid mass, then leave it in the sun to dry. You should contact your local authorities to find out what you should do with it next. Whatever you do, DO NOT dump the stuff down the drain, it will eat through your pipes just like any of the other etchants.<br />
<br />
Alternatively, instead of disposing of the etchant, you can re-use it again and again. In fact, after etching a few boards with this solution, you will have successfully made [[Chemical Etchants#Acid Cupric Chloride|Acid Cupric Chloride]] (see below).<br />
You can also find a detailed tutorial on etching at [http://robotplatform.com/howto/pcb%20etching/pcb_etching_1.html Muriatic Acid etching tutorial]<br />
<br />
== Sodium Persulfate ==<br />
More environmentally friendly than ferric chloride. Can monitor the etching as initially clear new etchant solution turns blue from the copper ions.<br />
<br />
== Acid Cupric Chloride ==<br />
Dead simple etchant made from ordinary, store-bought chemicals (hydrochloric acid and hydrogen peroxide). Has the advantage that it can be regenerated by bubbling oxygen/air through it, or by adding more H<sub>2</sub>O<sub>2</sub>. In addition, it doesn't get used up: the etchant bath simply grows with use (kind of like sourdough starter…)<br />
The used etchant also makes a great algecide/pH reducer for your pool (and a whole lot cheaper than that stuff they sell at the pool store).<br />
<br />
What you need:<br />
* 38% Hydrochloric Acid, HCl (available at finer hardware stores or pool supply stores as Muriatic Acid)<br />
* 3% Hydrogen Peroxide, H<sub>2</sub>O<sub>2</sub> (available from any drug store)<br />
* Plastic or Glass Pans, Jars, and tongs (no metal)<br />
Directions:<br />
<br />
# Mix your HCl and H<sub>2</sub>O<sub>2</sub> 1:1 in a non-metalic container, making sure to add the acid slowly to the H<sub>2</sub>O<sub>2</sub>. DO NOT ADD THE H<sub>2</sub>O<sub>2</sub> TO THE ACID!!!<br />
# After you've masked your board, dip it in the solution and constantly agitate. You should notice a dark green cloud start to come from the board almost immedately which quickly dissapears or turns lighter as it gets further from the surface of the board.<br />
# Etching should take about 10min depending on the temperature and how well you agitated the etchant. When all of the copper is gone, dip in water to wash off any stray etchant and stop the reaction.<br />
# When done etching, save used etchant in a non-metalic container and mark clearly its contents.<br />
# If your etchant has become a dark, murky green color, add a little bit of H<sub>2</sub>O<sub>2</sub> or bubble air/O<sub>2</sub> through the solution to regenerate it back to a light, transparent green color.<br />
See links at bottom for more information on the chemistry and some pictures of the process.<br />
<br />
== Disposal procedures ==<br />
Flushing used etchant down the drain is a bad idea (and usually illegal) because copper ion is toxic. The usual recommended way to dispose of hobbyist amounts of etchant is to convert it to a solid somehow and dispose of the solid in accordance with local laws.<br />
<br />
== External Links == <br />
<br />
* [http://www.instructables.com/id/Sponge-Ferric-Chloride-Method-Etch-Circuit-Bo/ "Sponge + Ferric Chloride Method -- Etch PCBs in One Minute!"]<br />
* [http://www.k9spud.com/wiki/PCB:Etchants Ferric Chloride vs. Ammonium Persulfate] and other etching chemicals.<br />
* [http://members.optusnet.com.au/~eseychell/PCB/etching_CuCl/index.html Etching with Air Regenerated Acid Cupric Chloride] — an excellent in-depth page on acid cupric chloride etching by Adam Seychell.<br />
* [http://www.esmonde-white.com/home/diversions/etching-a-copper-pcb Etching a Copper PCB with HCl and H2O2]<br />
* [http://www.mgchemicals.com/ MG Chemicals] A possible source?<br />
* [http://reprap.org/wiki/MakePCBInstructions RepRap wiki: Make PCB instructions]<br />
<br />
== Internal Links ==<br />
<br />
<br />
*[[Toner Transfer]]<br />
*[[Techniques]]<br />
*[[Eagle Links]]<br />
<br />
<br />
[[Category:Techniques]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Expansion_bus&diff=90783Expansion bus2024-02-25T05:00:21Z<p>DavidCary: rough draft</p>
<hr />
<div><br />
<br />
Expansion buses are designed to allow people to mix-and-match peripheral devices and CPUs.<br />
<br />
<br />
== History ==<br />
<br />
The earliest expansion buses<br />
were more-or-less directly connected to the pins of a CPU.<br />
<br />
Some early systems had a unified "system bus"<br />
that both memory cards and peripherals plugged into,<br />
leading to "memory-mapped I/O".<br />
Typically a "system bus" is composed<br />
of the address bus, the data bus, and the control bus,<br />
and often also includes multiple pins dedicated to ground and power rails.<br />
<br />
Later systems generally separate high-speed stuff<br />
(the CPU, the RAM, on-board video (if any), graphics card slot (if any), and coprocessors (if any)) (the "Front-side bus") from slower speed stuff (expansion bus slots, off-board cables and ports).<br />
<br />
There are two different reasons for this separation:<br />
In low-cost microcontrollers, the cost of pins is a significant cost of the whole system,<br />
so (a) we can use a much lower-cost packaging (far fewer pins)<br />
if we don't expose the address bus or data bus outside the chip<br />
(by putting all of the program Flash and data RAM on the same chip as the CPU)<br />
(b) using a "narrower" bus to communicate with peripherals<br />
also saves a bunch of pins in those peripherals,<br />
making them cost less.<br />
In high-end systems, the CPU, video, and RAM run much faster than peripherals,<br />
so separating the busses allows the CPU to do dozens or hundreds of memory cycles<br />
while waiting for a peripheral to handle a single expansion bus cycle.<br />
<br />
== qwiic ==<br />
<br />
SparkFun's [https://www.sparkfun.com/qwiic Qwiic Connect System] uses 4-pin JST connectors.<br />
It's based on the [[I2C]] bus.<br />
<br />
== UEXT ==<br />
<br />
Universal EXTension (UEXT) is a connector layout which includes power and three serial buses:<br />
Asynchronous, I2C, and SPI separately over 10 pins in a 2x5 layout.<br />
<br />
== RC2014 bus ==<br />
<br />
"RC2014 is a simple 8 bit Z80 based modular computer.<br />
It was designed to be simple.<br />
Simple to build, simple to understand, and simple to program."<br />
<br />
* [https://rc2014.co.uk/ "RC2014"].<br />
* [https://smallcomputercentral.com/documentation/specification-rc2014-bus/ "RC2014 bus"]<br />
* [https://rc2014.co.uk/1377/module-template/ "RC2014 Module standard bus"]<br />
* [https://groups.google.com/g/rc2014-z80 "RC2014-Z80"]<br />
* [[stripboard]] with 0.1″ header sockets: [https://rc2014.co.uk/backplanes/veroboard-back-plane/ "Back Plane-Veroboard"]<br />
* [https://smallcomputercentral.com/documentation/rc2014-bus/ "RC2014 BUS"]<br />
<br />
== Backbone Bus ==<br />
<br />
Backbone is a proposal for a backplane interconnect that supports multiple bus masters.<ref><br />
[https://hackaday.io/project/11928-backbone-bus "Backbone Bus"].<br />
</ref><br />
Samuel A. Falvo II<br />
<br />
== STEbus ==<br />
<br />
* [https://en.wikipedia.org/wiki/STEbus Wikipedia: STEbus]<br />
* [https://hackaday.io/project/11928-backbone-bus/log/200068-why-i-am-and-am-not-a-fan-of-stebus "Why I Am and Am Not a Fan of STEbus."].<br />
<br />
== PC104 ==<br />
<br />
The PC/104 standards<br />
defines both [[form factor]]s and computer buses<br />
allowing consumers to stack together boards from a variety of manufacturers<br />
to produce a customized embedded system.<br />
<br />
PC/104 boards are stacked on top of each other like LEGOs,<br />
unlike nearly all other expansion buses.<br />
<br />
The original PC/104 connectors<br />
are electrically the same signals as the IBM PC/AT<br />
but with a different, stacking connector.<br />
<br />
== PATA ==<br />
<br />
Parallel ATA (PATA)<br />
is also electrically the same signals as the IBM PC/AT,<br />
but with a different physical hardware -- PATA uses ribbon-cables and square header pins.<br />
<br />
<br />
<br />
== Expansion bus design considerations ==<br />
<br />
* latency (often *more* important than bandwidth)<br />
* How far apart are the ends of the bus (length)?<br />
* How many data bits to transfer per transaction (data bus width)?<br />
* how many address bits to transfer per transaction (address bus width)?<br />
* Dedicated 1 wire line for each address bit and and separate wire for each data bit (easier to test)? Or somehow multiplex 2 or more of those signals (lower cost)?<br />
* How many peripheral devices can be plugged into the bus at the same time?<br />
* How many controllers can be plugged into the bus at the same time? (A single controller and everything else are peripherals? Or multi-controller?)<br />
* Can 2 identical peripherals be plugged into the bus at the same time, and how can software distinguish them?<br />
* hot-pluggable?<br />
* fault-tolerant?<br />
* EMI/EMC<br />
* Fixed, dedicated, unshared interrupt lines from each peripheral to the CPU? Or daisy-chained interrupt line?<br />
* Fixed maximum number of peripherals per bus? Or daisy-chaining an arbitrary number of peripherals?<br />
* What's the maximum fanout of the devices that drive the bus? Early TTL-based systems used chips with a typical max fanout of around 5, so "clever" techniques were required to support more than 5 peripherals. Modern high-speed systems often use point-to-point links (fanout of 1) for speed.<br />
* Backplane? Motherboard? Stacking connectors? Ribbon cables? Something else?<br />
* Off-the-shelf connectors available from second sources?<br />
* Rugged connectors that are reliable for hundreds of plug/unplug cycles?<br />
* [[stripboard]]/Veroboard with 0.1″ header sockets?<br />
* bandwidth<br />
<br />
For many years, the bandwidth (the number of bits we can shove across the bus per second)<br />
seemed to be so important that we sacrificed many things to increase the bandwidth.<br />
But surprisingly often, new systems are specifically designed for *lower* bandwidth<br />
in order to regain some of the things that were sacrificed.<br />
<br />
<br />
== Related ==<br />
<br />
* [[Minimig Expansion]]<br />
* [[Multi-purpose Embedded System]]<br />
* [[Relay CPU]]<br />
* [[Modules]]<br />
<br />
* [https://github.com/tpycio/Backplane4 "Backplane 4+1 for RCBus"]<br />
* [https://hackaday.io/project/183266-baffa-2-homebrew-microcomputer BAFFA backplane]<br />
* What expansion bus does the N8VEM home brew Z80 computer project use?<br />
* What expansion bus does the [https://hackaday.io/project/186398-hb6809-homebrew-computer "HB6809 Homebrew computer"] use?<br />
* What expansion bus does the [https://hackaday.io/project/20377-firefly "Firefly: A Z80 Retrocomputing Development System"] use?<br />
* What expansion bus does the [https://hackaday.io/project/166599-8-bit-in-style-the-pic18-computer "8-bit in style: the PIC18 computer... Base18"] use? (I see it's a 60 pin bus, including 24 address pins and 8 data pins).<br />
* "Bread-Board friendly Q-bus extended" or BBQ-bus+" used by the [https://hackaday.io/project/67369-pdpii "PDPii PDP-11 compatible motherboard"] ?<br />
* What expansion bus does the [https://hackaday.io/project/6025-skajntt "SkajNätt: An expandable computer system"] use?</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Microcontrollers&diff=90781Microcontrollers2024-02-24T22:40:34Z<p>DavidCary: link to related articles</p>
<hr />
<div>=Microcontrollers=<br />
<br />
<br />
First, a few definitions:<br />
<br />
* a '''CPU''' is something that can execute software programs. The earliest CPUs were built out of many parts, but now most CPUs are in microprocessors.<br />
* a '''microprocessor''' is a kind of single [[Integrated Circuits|integrated circuit]] that includes an entire CPU. In the earliest microprocessors, and some famous kinds of microprocessors still being made, the CPU fills the entire chip, and so require external RAM and ROM/FLASH memory. But now most CPUs sold are in microcontrollers[http://www.circuitcellar.com/library/designforum/silicon_update/3/index.asp].<br />
* A '''microcontroller''' is a kind of microprocessor that, in addition to the CPU, also includes RAM, ROM/FLASH memory, and digital I/O on a single chip. Many microcontrollers also have a UART, analog to digital convertors, and even comparators on the same chip/die/package.<br />
<br />
A microcontroller is a little computer on a single Die/Package. The computer includes a CPU core, RAM, ROM/FLASH, and peripherals often including UARTS, A/D converters, SPI, and I2C. Microcontrollers differ from microprocessors in that the microprocessors generally have bigger more powerful central processing units, but need support chips for ram, rom and other peripherals. Most modern microcontrollers use FLASH ram instead of a ROM so they can be programmed over and over. Most modern microcontrollers support in-system programming (ISP) or in-circuit serial programming (ICSP) or some similar protocol to enable a programmer/debugger to burn a program (often a bootloader) into the microcontroller after the microcontroller has been soldered in, without pulling the chip from the circuit. Many modern microcontrollers allow self-flashing to enable bootloading or a firmware update without using a programmer/debugger.<br />
<br />
Unlike PCs, which have a wide range of programming languages available, microcontrollers have only a few programming languages available -- C programming language, Basic programming language, Forth programming language, assembly language, and (on a few microcontrollers) Python programming language.<br />
<br />
Microcontrollers and microprocessors only understand machine code and compilers regardless of type all translate the program to machine code. Machine code, while tedious to learn and device specific, is the most efficient. <br />
<br />
People often have strong opinions about their favorite programming language[http://embeddedadventures.blogspot.com/2008/04/4compilers.html].<br />
<br />
<br />
<br />
==General==<br />
<br />
<br />
Many hobbyists use microcontrollers, sometimes even multiple microcontrollers, in their [[projects]].<br />
Prices have fallen below $5 for the cheapest 32-bit microcontroller and below $1 for the cheapest 8-bit microcontroller.<br />
<br />
''I've written a little about the various kinds of microcontrollers at [http://en.wikibooks.org/wiki/Embedded_Systems/Particular_Microprocessors Wikibooks: Embedded Systems]. --[[User:DavidCary|DavidCary]] 06:15, 10 March 2007 (PST)''<br />
<br />
<br />
About 55% of all CPUs sold in the world are 8-bit microcontrollers. Over 2 billion 8-bit microcontrollers were sold in 1997.[http://www.circuitcellar.com/library/designforum/silicon_update/3/index.asp]<br />
''(Anyone have more up-to-date statistics?)''<br />
<br />
Somebody always thinks their microcontroller is the best microcontroller, so we have listed all of them as best.<br />
<br />
== Microchip PIC ==<br />
<br />
* [[PIC Links]] A bunch of links to PIC based information and projects<br />
* [[Microchip]] PIC 8 bit FLASH microcontrollers<br />
* [[Microchip]] dsPIC/PIC24 16 bit FLASH microcontrollers <br />
* [[DsPIC30F 5011 Development Board]] <br />
* [[Microchip]] PIC32 32 bit FLASH microcontrollers<br />
* PIC based [[Demo board]]<br />
<br />
: ''consider merging the following section to [http://en.wikibooks.org/wiki/Embedded_Systems/PIC_Microcontroller#Which_PIC_to_Use Which PIC to use], to gain the advantages of [http://communitywiki.org/ConsolidateInformation consolidating information].''<br />
<br />
Note about choosing a PIC:<br />
<br />
The number of PIC models is huge so it is worth saying a few words on how to choose a PIC. <br />
<br />
Things to consider as a hobbiest or making a small production run:<br />
<br />
* Microchip tends to produce the same chip with minor variations. The exact same chip with the exact same pinout may be available in 8k, 16k, or 32k flash. Spend a few extra pennies and take the best.<br />
* SMT parts take practice to work with, so beginners should focus on DIP package parts with <= 40 pins. On the other hand, SMT parts can yield simpler and smaller PCB designs so they are worth consideration even for a hobbiest. <br />
* Contrary to common sense, older parts are often more expensive then newer parts. <br />
* Consider if a free/student version of a C compiler is availible. Microchip provides free/student student versions for the 18f,dsPIC/PIC24, and PIC32.<br />
<br />
List of some of the best PICs for hobby purposes:<br />
<br />
{| border="1"<br />
|PIC<br />
|Pin Count<br />
|Important Features<br />
|Typical Use<br />
|-<br />
|PIC12F683<br />
|8<br />
|ADC, I/O PWM, Comparator<br />
|Very Simple Projects/Glue Logic<br />
|-<br />
|PIC16F88<br />
|18<br />
|ADC, I/O PWM, Comparator, UART, I2C/SPI<br />
|General Purpose<br />
|-<br />
|18F2620<br />
|28<br />
|ADC, I/O PWM, Comparator, UART, I2C/SPI<br />
|General Purpose<br />
|-<br />
|18F4620<br />
|40<br />
|ADC, I/O PWM, Comparator, UART, I2C/SPI, 8 Bit Parallel Port<br />
|General Purpose<br />
|-<br />
|18F2550/18F2553<br />
|28<br />
|ADC, I/O PWM, Comparator, UART, I2C/SPI, USB<br />
|USB Connectivity<br />
|-<br />
|18F4550/18F4553<br />
|40<br />
|ADC, I/O PWM, Comparator, UART, I2C/SPI, USB, 8 Bit Parallel Port<br />
|USB Connectivity<br />
|-<br />
|P24FJ64GA002<br />
|28<br />
|ADC, I/O PWM, Comparator (with software selectable pin assignment), 2 UART, 2 I2C, 2 SPI<br />
|General Purpose<br />
|}<br />
<br />
Note: J means the PIC is a native 3.3V part. Other PICs will run at 3.3V but only at slower clock speeds.<br />
<br />
External Links:<br />
<br />
== Atmel AVR ==<br />
<br />
Atmel's line of 8 and 32-bit RISC microcontrollers are extremely easy to use and a great choice for beginners. With four series&mdash;ATtiny, ATmega, ATxmega, and AVR32&mdash;there is a large variety in price, processing power, and size, making it simple to meet a variety of needs. Many small chips are available in a [[DIP]] package that allows for quick prototyping and breadboard use.<br />
<br />
Combined with an AVRDragon for about 60€ everybody with a budget of about 70€ is able to build and debug his own microprocessor applications. The AVRDragon allows you to debug all ATmega & ATtiny processors with less than 32k flash using DebugWire or JTAG and to program all ATmega / ATtiny devices using HVPP, ISP and JTAG.<br />
<br />
=== [[ATtiny]] ===<br />
<br />
Small and somewhat lacking in I/O, but still quite powerful (20MHz System Clock, 20MIPS, 64MHz Fast Peripheral Clock). Ideal for small spaces, limited resources, or a tight budget.<br />
<br />
Features include 10bit ADCs, USI, 8/16bit timer, PWM, I²C, SPI , BOD, and WDT.<br />
<br />
=== ATmega ===<br />
<br />
Middle of the road AVR with a good amount of I/O and a large amount of processing power.<br />
<br />
Features include 10bit ADCs, USARTs, 8/16bit timer, I²C, SPI, BOD, and WDT.<br />
<br />
Processors:<br />
<br />
* ATmega88<br />
* ATmega16/32<br />
* ATmega640/1280/2560<br />
* ATmega1281/2561<br />
<br />
=== ATxmega ===<br />
<br />
Geared toward application that require a large amount of processing power or a large number of I/O. <br />
<br />
Features include 12bit ADC, 12bit DAC, 16 bit timer, USARTs, SPI, I²C, DMA, real time clock, crypto engine.<br />
<br />
Processors:<br />
<br />
* ATxmega64A1/128A1/192A1/256A1<br />
* ATxmega64A3/128A3/192A3/256A3<br />
<br />
=== AVR32 ===<br />
<br />
High performance 32-bit microcontroller for multimedia purposes, with system clocks of 200 MHz or more.<br />
<br />
Processors:<br />
<br />
* AP7000<br />
* AP7001<br />
* AP7002<br />
* AT32UC3A0128/0256/0512<br />
<br />
=== Links ===<br />
<br />
* [[Arduino Links]] Arduino is a development board based on AVR Microcontrollers<br />
* [[Atmel]] AVR 8 bit FLASH microcontrollers<br />
* [http://www.atmel.com/products/AVR/ Atmel] ATmega & ATtiny<br />
* [http://www.atmel.com/products/AVR/default_xmega.asp Atmel] ATxmega<br />
* [http://www.atmel.com/products/AVR32/ Atmel] AVR 32<br />
* [http://makecircuits.com/blog/2009-03-23-simplest-atmega8-programmer-using-lpt-port.html Simplest AVR programmer Using LPT Port]<br />
<br />
== Development Boards ==<br />
Development Boards are printed circuit boards that contain a microcontroller and enough circuitry to get it going, typically at least some of the following: clock, voltage regulator, reset button, communications chip, buffer amplifiers, led's, prototyping area, and/or off chip connections. Sometimes the manufacturer of the chip sells development boards ( often called evaluation boards ). Development boards can be really basic, just enough to make the processor run, with connections to the IO pins. Or the boards can include communications, displays, input buttons etc. Often you can jump start a project by using a development board that does the boring standard stuff and let you focus on your project. The development board can let you use high density parts and surface mount parts that you might not want to mess with. The BitWacker kit from [[SparkFun]] is priced close the to the total price of the parts. This is probably true of some other development boards as well. Note that some development boards require you to build them they have not been made available as kits, some come both ways.<br />
<br />
*[[Chalk Roach]] based on AVR Atmega32<br />
*[[Arduino Links]] Arduino is based on AVR Microcontrollers<br />
*[[USB Bit Whacker]] This is a PIC 18 based system ... can be used with [[BitWacker Java Communications]]<br />
*[[RS232 Dev Board]]<br />
*[[dsPIC30F 5011 Development Board]]<br />
* [http://www.gogoboard.org GoGo Board] based on PIC18F4550 (via [http://www.blikstein.com/paulo/index.html Prof. Paulo Blikstein]): "an open-source platform that is designed to be low-cost and allow for local assembly by those who are interested." All parts are through-hole (even the USB connector). KiCAD PCB design files.<br />
<br />
<br />
Other demo boards: see [[demo board]].<br />
<br />
== Cypress PSoC ==<br />
<br />
* Cypress PSoC 8-bit and 32-bit FLASH microcontroller + mixed-signal array on one chip.<br />
<br />
External Links:<br />
* [http://www.psocdeveloper.com/forums/ PSoCDeveloper] -- friendly electronics discussion forums from beginner to advanced level, but focused on PSoC devices.<br />
* [http://en.wikibooks.org/wiki/Embedded_Systems/Cypress_PSoC_Microcontroller Wikibooks: Cypress PSoC]<br />
* [http://www.sparkfun.com/commerce/product_info.php?products_id=8480 SparkFun: Gainer PSoC Development Board] including USB interface -- looks very similar to the [[Arduino Links | Arduino Nano]], but it can do a lot more.<br />
<br />
== ARM ==<br />
<br />
* [[Image:lpc2103.jpg|69px|LPC2103]] [http://www.k9spud.com/arm/lpc2103/ LPC2103] Low cost 70MHz ARM7TDMI-S FLASH Microcontroller from Philips. The [http://coridiumcorp.com/arm7/ "$49" "Coridium ARMmite"] does use this chip.<br />
* the [http://www.open-research.org.uk/ARMuC/ ARM microcontroller wiki].<br />
<br />
There are no ARM chips currently manufactured in a through-hole package -- they are *all* surface-mount.<br />
However, there are many "adapter boards" aka [[demo board]] that make them easier to use, such as:<br />
* low-cost ARM demo boards at NGX Technologies: [http://shop.ngxtechnologies.com/index.php?cPath=21]<br />
* $10 STMicroelectronics’ STM32 Discovery Kit with ARM® Cortex-M3 microcontroller [http://www.st.com/internet/com/press_release/p3065.jsp] [http://www.st.com/internet/evalboard/product/250863.jsp]<br />
* [[Motherboards that run Linux]]<br />
<br />
== further reading ==<br />
<br />
* [[Microcontrollers for Beginners]]<br />
* [[Using ADCs]]<br />
* [[Microcontroller Serial Communications Articles]]<br />
<br />
* [http://www.instructables.com/id/How-to-choose-a-MicroController/ Instructables: How to choose a MicroController]<br />
* Thomas A. Coonan. [https://web.archive.org/web/20120117133103/http://www.mindspring.com/~tcoonan/design.html "Microcontroller Design Checklist. Or, My Top Seven uController Issues"].<br />
* [http://www.digikey.com/techxchange/thread/4280 "Help Me Select a Microcontroller"].<br />
* [http://en.wikibooks.org/wiki/Embedded_Systems/Particular_Microprocessors#brief_selection_guide Wikibooks: brief selection guide]<br />
*[http://www.veys.com/index.php?title=Main_Page Main Page] May have been a one man effort, now dropped. Has a bit of content that looks good.<br />
*[http://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/ Cornell University ECE 4760 Designing with Microcontrollers Final Projects] A ton on projects.<br />
*[http://forum.allaboutcircuits.com/showthread.php?t=21358 Which uC (Microcontroller)? - discussion]<br />
*[http://www.ladyada.net/library/picvsavr.html PIC vs. AVR Ultimate fight]<br />
* [http://chiphacker.com/questions/1092/whats-the-difference-between-a-microcontroller-and-a-microprocessor Chiphacker: "What’s the difference between a microcontroller and a microprocessor?"]<br />
* [http://piclist.com/techref/piclist/begin.htm "Beginners checklist for PIC Microcontrollers"].<br />
<br />
<br />
[[category:microcontroller]][[Category:Components]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=WikiNode&diff=90780WikiNode2024-02-24T22:39:43Z<p>DavidCary: link to related articles</p>
<hr />
<div>Welcome to Open Circuits.<br />
<br />
Open Circuits is a wiki for sharing electronics knowledge, schematics, board layouts, and parts libraries.<br />
<br />
== Key Points of Interest ==<br />
* [[Main Page]]<br />
* [[Open_Circuits:Community_Portal]]<br />
* [[Projects]]<br />
** open hardware cell phone projects: [[Open Mobile Gadgets]], [[Cellular Rotary Phone]]<br />
* [[Components]]<br />
* [[Techniques]]<br />
<br />
== Neighbors ==<br />
The WikiNode project tries to link every wiki in the world together. Our "WikiNode" links to closely-related wiki (and their WikiNode links back). <br />
<br />
If you want to talk about something that is not quite on-topic here at Open Circuits (say, "desktop PC case modding", or "embedded Linux programming"), our WikiNode helps you find another wiki where people love to talk about that exact topic. The corresponding WikiNode on each of those wiki helps people who want to talk about "open hardware" to discover this wiki.<br />
<br />
=== Medical Electronics ===<br />
* '''[http://openprosthetics.wikispot.org/ Open Prosthetics Project Wiki]'''<br />
* '''[http://openwetware.org/wiki/Wikiomics:WikiNode OpenWetWare]''' - promotes "the sharing of information, know-how, and wisdom among researchers and groups who are working in biology & biological engineering."<br />
** Some wiki pages describe "open hardware" electronic devices used as tools in those projects -- for example, [http://openwetware.org/wiki/DIYbio:Notebook/Open_Gel_Box_2.0 open-hardware gel electrophoresis chambers].<br />
* '''[http://wiki.asiaquake.org/openeeg/published/WikiNode OpenEEG Wiki]''' ''(offline as of 2014-10-26)'' - discusses building an OpenEEG, safe ways to attach it to your head, and software for it. (See also [[Programmable Chip EEG]]).<br />
<br />
=== Open Hardware Cell Phone ===<br />
<br />
* '''[http://opencellphone.org/ TuxPhone Wiki]''' ''(offline as of 2012-02-06, [http://web.archive.org/web/20120206015847/http://www.opencellphone.org/index.php?title=Main_Page Internet Archive capture])''<br />
* '''[http://hbmobile.org/wiki/ Homebrew Mobile Phone Club Wiki]''' ''(offline since 2013-08-13)''<br />
* '''[http://widgetry.org/dokuwiki/ OpenCell Wiki]'''<br />
* '''[http://wiki.openmoko.org/ OpenMoko]''' - discusses open hardware cell phone you can buy now.<br />
* '''[http://iphone.fiveforty.net/wiki/ http://iphone.fiveforty.net/wiki]''' ''(offline since 2014-10-26)'' - open-source software for a popular (but proprietary hardware) phone<br />
<br />
=== Other Open Wireless Communications ===<br />
<br />
* '''[http://amateur-radio-wiki.net/ Amateur Radio Wiki]''' - Online Encyclopedia for Hams<br />
* '''[http://wsn.oversigma.com/ WSN, the Wireless Sensor Network Wiki]''' - discusses wireless sensor networks. (wired sensor network discussion is also tolerated :-).<br />
* '''[http://wiki.twibright.com/ RONJA Wiki]''' ''(offline as of 2008-03-02)'' - Reasonable Optical Near Joint Access, Free Space Optics device[http://en.wikipedia.org/wiki/RONJA]. ("free technology" is the same as "open hardware", right?)<br />
* '''[http://wiki.openwrt.org/ OpenWRT Wiki]''' - "OpenWrt is an open source project to create a free embedded operating system for network devices."<br />
* '''[http://nfc-tools.org/ NFC Tools]''' - libnfc and other open-source projects for near-field communication (NFC).<br />
<br />
=== Microcontrollers ===<br />
* '''[http://gainer.cc/wiki/ The Gainer Wiki]''' ''(offline as of 2009-02-10, [https://web.archive.org/web/20090210231509/http://gainer.cc/wiki/index.php?title=Main_Page Internet Archive capture])'' - discusses the Cypress PSoC microcontroller<br />
* '''[http://avrwiki.com/Tthe Atmel AVR Wiki]''' ''([http://narwhaledu.com/AVRwiki/index.php?title=AVR_Wiki moved?])'' - discusses the Atmel AVR series of microcontrollers (see also the Arduino wiki)<br />
* '''[http://techref.massmind.org/techref/piclist/ PICList]''' - discusses the Microchip PIC series of microcontrollers<br />
* '''[http://oase.uci.kun.nl/~mientki/wikifarm/stef/index.php PiciWiki]''' ''(offline as of 2007-03-27, [https://web.archive.org/web/20070320193453/http://oase.uci.kun.nl/~mientki/wikifarm/stef/index.php Internet Archive capture])'' - discusses the Microchip PIC series of microcontrollers<br />
* '''[http://www.open-research.org.uk/ARMuC/WikiNode.html The ARM Microcontroller Wiki]''' ''(offline as of 2012-05-13, [https://web.archive.org/web/20120513043746/http://www.open-research.org.uk/ARMuC/ Internet Archive capture])''<br />
* '''[http://gnusim8085.sourceforge.net/ The GNUSim8085 Wiki]''' - for the Intel 8085 microprocessor<br />
* '''[http://nioswiki.jot.com/ Nios Community Wiki]''' ''(offline as of 2008-12-25, [https://web.archive.org/web/20081225044255/http://nioswiki.jot.com/WikiHome Internet Archive capture])'' - discusses the Nios II processor, and how to implement it on a FPGA<br />
* '''[http://www.jopwiki.com JOP Wiki]''' ''(offline as of 2013-03-15, [https://web.archive.org/web/20130315172041/http://www.jopwiki.com/ Internet Archive capture])'' - discusses the Java Optimized Processor, a simple and small Java processor optimized to execute Java bytecode, implemented in a low cost FPGA<br />
* '''[http://wiki.opensparc.net/ the OpenSPARC Wiki]''' ''(offline as of 2014-10-26)'' - discussing open-source versions of the SPARC processor architecture, including implementing it in a FPGA<br />
* '''[http://developer.axis.com/wiki/ Axis Developer Wiki]''' - discussing ETRAX CPUs and other Axis chips.<br />
* '''[http://microchip.com/wiki/ ICwiki]''' ''(offline as of 2008-07-24, [https://web.archive.org/web/20080724165541/http://www.microchip.com/wiki Internet Archive capture])'' - the official wiki at microchip.com for Microchip PICmicro microcontrollers etc. ''needs wikinode''<br />
* '''[http://propeller.wikispaces.com/ Propeller Wiki]''' - dedicated to documenting interesting stuff related to the Parallax Propeller microcontroller. ''needs wikinode''<br />
* '''[http://processors.wiki.ti.com/ Texas Instruments Embedded Processors Wiki]''' - the official wiki at ti.com for discussing the MSP430 (a 16-bit, ultra-low power, mixed signal microcontroller), TI DSPs, the TI OMAP (used to run Linux in the "open source handheld" Pandora handheld game console, the [[motherboards that run Linux | Beagle Board]], and the Gumstix Overo) and other ARM-based processors, and other TI processors.<br />
<br />
=== Computer Architecture ===<br />
<br />
We briefly touch on computer architecture on a few Open Circuits pages.<br />
(<br />
[[Kestrel]],<br />
[[Multi-purpose Embedded System]],<br />
[[Expansion bus]],<br />
[[relay CPU]]<br />
).<br />
For far more details, see other wikis such as<br />
<br />
* '''[http://en.wikibooks.org/wiki/Microprocessor_Design Microprocessor Design]''' - wikibook, a rough draft of a book <br />
* '''[http://en.wikiversity.org/wiki/Computer_Architecture_Lab Computer Architecture Lab]''' - Wikiversity (focuses entirely on CPU-in-a-FPGA designs) <br />
* '''[https://www.semipublic.comp-arch.net/wiki/ The Art of Computer Architecture]''' by Andy Glew - a rough draft of a book<br />
* '''[http://f-cpu.seul.org/ Freedom CPU]'''<br />
<br />
=== Vehicles, Robots, and CNC ===<br />
* '''[http://www.reprap.org/wiki/WikiNode RepRap Wiki]''' - discusses the RepRap project to build a "Replicating Rapid-prototyper", a self-copying 3D printer. "Complete open-source instructions and plans are published on this website for zero cost and available to everyone so, if you want to make one yourself, you can."<br />
* '''[http://evproduction.org/wiki EVProduction]''' - discusses several electric open source [[vehicle]]s.<br />
* '''[http://openservo.com/FrontPage OpenServo Wiki]''' - developing a digital servo motor that accepts "Go to position X" commands and also more complex curves, and returns actual servo position, speed, voltage and power consumption.<br />
* '''[http://www-robotics.usc.edu/~dshell/roboticswiki/ Robotics wiki]''' ''(offline as of 2007-07-07, [https://web.archive.org/web/20050106163726/http://www-robotics.usc.edu/~dshell/roboticswiki/ Internet Archive capture])''<br />
* '''[http://pminmo.com/PMinMOwiki/index.php5 PMinMO Wiki]''' - describes an open-source CNC machine—software, electronics, motors, hardware, etc.—and related information, such as [http://pminmo.com/PMinMOwiki/index.php5?title=CNC_PCB_Milling CNC PCB milling]. (was: [http://pminmo.com/wiki/] ) ''needs WikiNode''<br />
* '''[http://vems.hu/wiki/ VEMS Wiki]''' - has some interesting electronics projects. In particular, the [http://www.vems.hu/wiki/index.php?page=GoBox GoBox project] to tune automobile engines to minimize the amount of fuel used. ''needs wikinode''<br />
* '''[http://editthis.info/JMRI JMRI Wiki]''' - tools for model railroad computer control<br />
* '''[http://dccwiki.com/ DCCWiki]''' - "Digital Command Control", discusses computer-controlled model railroads<br />
* '''[http://ladyada.net/wiki/ AdaWiki]''' - discusses open source benchtop tools, laser cutters, and electronics DIY/hobbyists. ''needs wikinode''<br />
* '''[http://ecomodder.com/wiki/ EcoModder Wiki]''' - discusses various ways to measure and improve vehicle gas economy, including "MPGuino is an open source fuel economy computer (Arduino based) for any vehicle with electronic fuel injection and a Vehicle Speed Sensor."<br />
* '''[http://wiki.makerbot.com/ MakerBot Wiki]''' ''(offline as of 2014-10-26, [https://web.archive.org/web/20140404110743/http://wiki.makerbot.com/ Internet Archive capture])''<br />
* '''[http://code.google.com/p/arducopter/wiki/ArduCopter ArduCopter Wiki]''' - discusses ArduiCopter, the [[Arduino]]-based autopilot for [[multi-rotor]] craft, from quadcopters to traditional helis. From the DIY Drones development team. The open-hardware electronics connects gyros, magnetometers, accelerometers, GPS reciever, RC reciever, etc., and drives 2, 4, 6, or 8 rotors in a variety of configurations to give autolevel and auto altitude control and stabilized RC control.<br />
* '''[http://www.multiwii.com/wiki/index.php?title=Main_Page MultiWii]''' - software to control a RC multi copter, supports various sensors but was initially developed to support Nintendo Wii console gyroscopes and accelerometers<br />
<br />
=== Electronic Design Automation ===<br />
* '''[http://kicad.sourceforge.net/wiki/index.php/WikiNode KiCad]''' ''(offline as of 2010-05-07, [https://web.archive.org/web/20100507014640/http://kicad.sourceforge.net/wiki/index.php/WikiNode Internet Archive capture])'' - a GPL'd suite of programs for EDA<br />
* '''[http://kicadhowto.wikidot.com/ KiCadHowTo]''' - tutorials and other information to help you quickly become a fluent KiCad user<br />
* '''[http://protel-users.org/ Protel Users Wiki]''' ''(offline as of 2011-12-31, [https://web.archive.org/web/20111231095705/http://protel-users.org/tiki-index.php Internet Archive capture])'' - for people who design and draw schematics and circuit boards with Protel<br />
* '''[http://wiki.geda-project.org/ gEDA Project Wiki]''' - discusses "the gEDA project"—developing a full GPL'd suite of Electronic Design Automation tools (electrical circuit design, schematic capture, simulation, prototyping, and printed circuit board (PCB) layout.<br />
* '''[http://opencircuitdesign.com/cgi-bin/wiki.pl OpenCircuitDesign]''' - the other Open Circuit Wiki, discusses mostly free tools for designing integrated circuits<br />
* '''[http://opencomponentproject.org/wiki/WikiNode Open Component Project]''' - a shared repository of public domain symbols, footprints, and 3D component models for use in electronic design automation (EDA) software.<br />
<br />
=== Dorkbot ===<br />
Artists, inventors, scientists, engineers. The exciting thing to me is to learn about strange things that creative people are doing around the world, with no regard for genre, style, school of thought, area of expertise, etc. ... committed to the idea of "availability over promotion", meaning their main concern is to help things exist, rather than making hits or selling lots of copies.<br />
<br />
* '''[http://projects.dorkbot.org/dorkbot-wiki Dorkbot Wiki]''' ''(offline as of 2014-10-26, [https://web.archive.org/web/20110227202334/http://projects.dorkbot.org/dorkbot-wiki Internet Archive capture])''<br />
* '''[http://dorkbotpdx.org/ DorkbotPDX]''' - people doing strange things with electricity in Portland<br />
* '''[http://dorkbotlondon.org/wiki/index.php/Main_Page DorkBotLondon]''' - in London<br />
* '''[http://dorkbot.noodlefactory.co.uk/wiki DorkbotAlba]''' ''(offline as of 2014-10-26, [https://web.archive.org/web/20140105184016/http://dorkbot.noodlefactory.co.uk/wiki Internet Archive capture])''<br />
* '''[http://mightyohm.com/wiki MightyOhm Wiki]''' - discusses where to get supplies and tools for working with electronics. The sysop is apparently a member of Dorkbot SF.<br />
<br />
=== CPU ===<br />
Various small CPU modules that have their own wiki (see also [[ARMUS Embedded Linux Board]] and other [[motherboards that run Linux]])<br />
<br />
* '''[http://elinux.org/WikiNode eLinux]''' - information on running Linux on several small ARM-based embedded systems and Texas Instruments OMAP processors.<br />
* '''[http://linuxrobots.org/wiki/WikiNode Linux Robots Wiki]''' ''(offline as of 2014-10-26)'' robots that run Linux<br />
* '''[http://www.balloonboard.org/WikiNode Ballonboard Wiki]''' - for the Balloon Project. They have developed a small single-board computer that can run Linux. Also discusses "The Balloon Open Hardware License (BOHL) ... The license is intended as a general purpose open hardware license".<br />
* 2 Gumstix wiki: (Gumstix are [[motherboards that run Linux#Gumstix]]. Gumstix expansion board schematics and layouts open hardware -- published under a creative commons licence. )<br />
* '''[http://wiki.gumstix.org/index.php?title=Main_Page Gumstix User Wiki]''' - "Gumstix users can share their knowledge, showcase their Gumstix-based projects, and pass on links to other sources of information and materials." ''needs wikinode''<br />
** [http://docwiki.gumstix.org/ Gumstix DocsWiki]<br />
* '''[http://virtualcogs.com/wiki/ Virtual Cogs Wiki]''' ''(offline as of 2008-11-10, [https://web.archive.org/web/20081110100543/http://www.virtualcogs.com/ Internet Archive capture])'' - describes a CPU board that uses a stacking connector system.<br />
* '''[http://wiki.emqbit.com/wiki emQbit Wiki]''' ''(offline as of 2011-07-29, [https://web.archive.org/web/20110721192428/http://wiki.emqbit.com/wiki Internet Archive capture])'' - "The Free ECB_AT91 V1 is a Single Board Computer made by emQbit. You can download the specs and build your own." based on a 180 MHz ARM9 processor (Atmel AT91RM9200); runs Linux.<br />
* '''[https://code.google.com/p/beagleboard/ BeagleBoard Wiki]''' - The BeagleBoard runs Linux. The [http://elinux.org/Beagleboard:Main_Page embedded Linux wiki also discusses BeagleBoard].<br />
* '''[http://arduino.cc/playground/ Arduino Playground]''' - discusses the Arduino board based on the Atmel AVR ATmega168. (See also the Atmel AVR wiki).<br />
* '''[http://wiki.elphel.com/ ElphelWiki]''' - discusses the free software and open hardware inside [[Elphel camera]]s. That hardware includes a FPGA that handles video processing and video compression, and a ETRAX FS processor that runs Linux.<br />
* '''[http://wiki.leaflabs.com/ LeafLabs Wiki]''' - discusses the Maple, a [[Arduino Links | Arduino]]-compatible board that uses an [[ARM]] processor, and other stuff from [[LeafLabs]]. ''needs WikiNode''<br />
<br />
=== Related Wikis ===<br />
* '''[https://simpleelectronics.miraheze.org/wiki/Main_Page Simple Electronics Wiki]''', information and reference for learning about elementary electronics up to radio amateur level.<br />
* '''[http://publiclab.org/wiki The Public Lab Wiki]''' "At Public Lab, we all collaborate to invent and improve open source environmental science tools." Many of those tools -- [http://publiclab.org/wiki/spectrometer an open-source spectrometer], the [http://publiclab.org/wiki/riffle RIFFLE], the [http://publiclab.org/wiki/coqui Coqui], and etc. -- are open-hardware electronics. The Public Lab Wiki [http://publiclab.org/licenses Licenses] page discusses open-source hardware and software licenses.<br />
* '''[http://opensource.wikia.com/wiki/Main_Page Open Source Wikia]''' - For open source software (or open source in general)<br />
* '''[http://linksprite.com/wiki/ Linksprite wiki]''' has many open source products and open source projects.<br />
* '''[http://www.rockbox.org/twiki/ Rockbox Wiki]''' - an open source firmware for mp3 players, written from scratch. It runs on a wide range of players. It nicely complements the [[Music Player]] hardware we discuss here.<br />
* '''[http://adciv.org/ Advanced Civilization Wiki]''' - discusses "Open collaborative design", which seems to include the sort of [[open hardware]] designs we share at Open Circuits.<br />
* '''[http://electronicschat.org/ Electronics Chat Wiki]''' ''(offline as of 2012-05-14, [https://web.archive.org/web/20120514050005/http://electronicschat.org/index.php/Main_Page Internet Archive capture])''<br />
* '''[http://hcvl.hci.iastate.edu/cgi-bin/openEyeswiki/index.cgi openEyes]''' ''(offline as of 2007-07-28, [https://web.archive.org/web/20070728024738/http://hcvl.hci.iastate.edu/cgi-bin/openEyeswiki/index.cgi Internet Archive capture])'' - discusses an open-source open-hardware toolkit for low-cost real-time eye tracking.<br />
* '''[http://communitywiki.org/odd/ComputerComponent/WikiNode Computer Component Wiki]''' - "for computer and electronics enthusiasts to learn and contribute to an online database of computer hardware and electronics with an emphasis on how-to guides."<br />
* '''[http://hardwiki.com/ Hard Wiki]''' ''(offline as of 2006-12-18, [https://web.archive.org/web/20060423050210/http://www.hardwiki.com/index.php/Main_Page Internet Archive capture])'' - ''needs wiki-node''<br />
* '''[http://nslu2-linux.org/ NSLU2-Linux]''' - seems to do a lot of wiring and soldering. ''needs wiki-node''<br />
* '''[http://wikidevices.org/ Wiki Devices]''' ''(offline as of 2007-06-30)'' - "a highly organized repository for objective information, as well as opinions on consumer electronics."<br />
* '''[http://wiki.arcadecontrols.com/wiki/Main_Page Build Your Own Arcade Controls Wiki]''' - "building or buying authentic arcade controls and connecting them to your computer to play arcade style games with real arcade controls instead of a keyboard or mouse"<br />
* '''[http://en.wikibooks.org/wiki/Embedded_Systems Embedded Systems]''' - wikibook<br />
* '''[http://en.wikibooks.org/wiki/Practical_Electronics/PCB_Layout Practical Electronics]''' - wikibook<br />
* '''[http://sensorwiki.org/ SensorWiki]''' - "a thorough review of the main types of sensing technologies used in musical applications"<br />
* '''[http://linuxtv.org/wiki/ LinuxTVWiki]''' - occasionally has some chip-level information, such as the [http://linuxtv.org/wiki/index.php/I2c_Protocol I2C protocol] and [http://linuxtv.org/wiki/index.php/BT878 sampling analog data at 16 bits and 448000 Samples per second with a BT878 chip]<br />
* '''[http://howto.wikia.com/wiki/WikiNode How To Wikia]''' - occasionally has electronic projects such as <s>[http://howto.wikia.com/wiki/Howto_build_an_ultra_low_power_clock_with_a_large_period Howto build an ultra low power clock with a large period]</s> ''(deleted)''<br />
* '''[http://wiki.opengraphics.org/ Open Graphics Project]''' - developing graphics cards with fully published specs and open source drivers. Since the first version will be a FPGA, is also collecting information on FPGA programming and interfacing. Supported by [http://traversaltech.com/ Traversal Technology]. (''was at http://wiki.duskglow.com/ '')<br />
* '''[http://wikihost.org/wikis/openhardware/ Open Hardware Wiki]''' ''(offline as of 2008-09-27, [https://web.archive.org/web/20080821125847/http://wikihost.org/wikis/openhardware/ Internet Archive capture])'' - has electronics projects of various levels of complexity; the most complicated appears to be "KAD", a FPGA on a PCI card designed for reconfigurable computing.<br />
<br />
* '''[http://openjtag.net/ OpenJTAG Wiki]''' ''(offline as of 2014-10-26)''<br />
* '''[http://analogwiki.com/ The Analog Wiki]''' ''(offline as of 2014-10-26)'' - "The Wiki for Design & Verification Engineers by Design & Verification Engineers."<br />
* '''[http://hardwarebook.info/ The Hardware Book]''' - Internet's largest free collection of connector pinouts and cable descriptions. ''needs WikiNode''<br />
* '''[https://isl.ncsa.uiuc.edu/twiki/bin/view/OpenFPGA OpenFPGA Wiki]''' ''(offline as of 2014-10-26)'' - ''needs WikiNode''<br />
* '''[https://devel.goto10.org/packets/wiki/CATkit CATkit Wiki]''' ''(offline as of 2014-10-26)'' - CATkit is an open hardware project designed as a standalone interactive Forth computer for audio sound artists. (Based on Microchip PIC 18F).<br />
* '''[http://openbios.org/ OpenBIOS]''' - discusses several free and open source implementations of IEEE 1275-1994 (also called "Open Firmware"). Open Firmware allows expansion cards to provide a "boot ROM" that works all common platforms, like x86, AMD64, PowerPC, ARM and Mips.<br />
* '''[http://obook.info/ OpenBook Wiki]''' ''(offline as of 2014-10-26)'' - discusses OpenBook, an open source hardware and software project designing a computer tablet ... Everyone can contribute and help to shape the OpenBook hardware and software specifications.<br />
* '''[https://events.ccc.de/camp/2007/ Chaos Communication Camp 2007]'''<br />
* '''[http://tubeopedia.com/ Tubeopedia.com]''' ''(offline as of 2014-10-26)'' - discusses vacuum tube technology and science, circuits, theory, people and equipment related to vacuum tubes<br />
* '''[http://wiki.linux1394.org/ Linux1394 Wiki]''' ''(offline as of 2014-10-26)'' - discusses FireWire on Linux and related device drivers, tools, libraries, and hardware. ''needs wikinode''<br />
* '''[http://rfidguardian.org/ RFID Guardian]''' - discusses an open hardware project designed to guard privacy. ''needs wikinode''<br />
* '''[http://electronics.wikia.com/ Wikitronics]''' - ''needs wikinode''<br />
* '''[http://www.sdiy.info SDIY Wiki]''' - for learning and sharing knowledge about making, modifying, or repairing electronic musical instruments and related equipment.<br />
* '''[http://wiki.orbswarm.com/ OrbSWARM]''' - a wiki for an open hardware group that build swarms of semi-autonomous spherical robots. ''needs wikinode''<br />
* '''[http://tgimboej.org/ The Great Internet Migratory Box of Electronics Junk]''' - "a progressive lending library of electronic components. An internet meme in physical form halfway between P2P zip-archive sharing and a flea market. It arrives full of wonderful (and possibly useless) components, but you will surely find some treasures to keep. You will be inspired look through your own piles, such as they are, and find more mysterious components that clearly need to be donated to the box before it is passed on again." ''needs wikinode''<br />
* '''[http://wiki.dataflow.ws DataFlow Wiki]''' - a wiki about art, new medias, electronics, interaction design, Python, PureData and other dataflow languages. <br />
* '''[http://wockets.wikispaces.com/ Wockets]''' - a wiki about developing low-cost sensors for measuring physical activity on mobile phones. <br />
* '''[http://www.synthesizers.com/pmwiki/pmwiki.php Synthesizers.com Wiki]''' ''(offline as of 2014-10-26)'' - "up-to-date information about synthesizers, patches, modifications, etc." ''needs wikinode''<br />
* '''[http://code.google.com/p/bicycleledpov/w/list Bicycleledpov]''' - A bicycle visual LED artwork<br />
* '''[http://code.google.com/p/micropendous/ Micropendous]''' - Open Hardware Development Boards for the Atmel's Full-Speed (12Mbit/s) USB AVR Microcontrollers (AT90USB162, ATmega32U4, AT90USB646, AT90USB1287)<br />
* '''[https://noisebridge.net/wiki/Noisebridge Noisebridge]''' - Noisebridge is an infrastructure provider for technical-creative projects, collaboratively run by its members<br />
* '''[http://de.wikiants.org/WikiNode Wikiants do-it-yourself (in German)]''' ''(offline as of 2014-10-26)'' - has a section on [http://de.wikiants.org/Kategorie:Open_Hardware Wikiants: open hardware].<br />
* '''[http://qi-hardware.com/ Qi-Hardware]''' - Qi's mission is to promote and encourage the development of copyleft hardware.<br />
<br />
----<br />
<br />
Please add closely-related wikis. Keep the 7 or so of the most-closely-related wikis.<br />
Move less-relevant wikis to [http://wikiindex.org WikiIndex].<br />
<br />
''Are any of the wikis listed at http://www.communitywiki.org/odd/SoftwareBazaar/MicrocontrollerProgramming relevant enough to list here?''<br />
<br />
[[category: community]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Minimig_Expansion&diff=90779Minimig Expansion2024-02-24T21:22:40Z<p>DavidCary: Expansion bus</p>
<hr />
<div>{| class="wikitable"<br />
|- <br />
! Bus !! Comment<br />
|-<br />
|[http://en.wikipedia.org/wiki/Zorro_II ZorroII]|| 16bit direct cpu, autoconf, busmaster<br />
|-<br />
|[http://en.wikipedia.org/wiki/Zorro_III ZorroIII]|| 32bit, multiplexed<br />
|-<br />
|[http://en.wikipedia.org/wiki/Industry_Standard_Architecture ISA8]|| 8bit, dumb<br />
|-<br />
|[http://en.wikipedia.org/wiki/Industry_Standard_Architecture ISA16]|| 16bit<br />
|-<br />
|[http://en.wikipedia.org/wiki/Peripheral_Component_Interconnect PCI]|| 32bit, autoconf<br />
|-<br />
|[http://en.wikipedia.org/wiki/PCI_Express PCI-Express]|| serial lanes<br />
|-<br />
|[http://en.wikipedia.org/wiki/Universal_Serial_Bus USB]|| Options: Ethernet, Mass storage, Multimedia [http://www.vinculum.com/prd_vmusic1.html Vinculum Vmusic]<br />
|}<br />
<br><br />
http://www.amiga.org/modules/newbb/viewtopic.php?topic_id=39358&forum=8&viewmode=flat&order=ASC&start=140<br><br />
<br><br />
ATA (IDE), ZorroII, SCSI all wants a large number of I/O pins. There a currently 4 remaining. A few more possible by reusing boot configuration pins. Getting larger fpga means BGA and that is a path you don't want to go.<br><br />
<br><br />
But fpgas are capable of really fast communications, esp the standard spartan3. So a possibility is to use the leftover I/O to connect another fpga to hookup these things. Essentially a "south bridge" running on a pseudo serial bus.<br><br />
<br><br />
Not minding the cost of an extra fpga, special copper trace requirements, support circuitry, power, and connectors.<br><br />
<br><br />
Connect the Zorro bus bridge directly to the CPU bus<br><br />
<br><br />
The Zorro bus IS the CPU bus.<br><br />
[http://pinouts.ru/Slots/Zorro_pinout.shtml ZorroII/III pinout]<br><br />
<br><br />
== See also ==<br />
* [[Minimig Harddisc]]<br />
* [[Expansion bus]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Connectors&diff=90778Connectors2024-02-24T19:45:16Z<p>DavidCary: /* Power-only USB connectors and cables */ yet another option.</p>
<hr />
<div>[[Image:Main-GM862header.jpg|69px|GM862 SMD Connector]]<br />
[[GM862 SMD Connector]]<br />
<br />
[[Image:Main-DB9-PCB-1.jpg||69px|DB9 Connector]]<br />
[[DB9 Serial Connector]]<br />
<br />
[[Image:Main-Barrel-Connector.jpg|69px|Barrel Jack]]<br />
[[Barrel Power Jack]]<br />
<br />
[[Image:Mini-USB.jpg|69px|Mini-USB]]<br />
[[Mini-USB SMD connector]]<br />
<br />
[[Image:sf-microsd.jpg|69px|Mini-USB]]<br />
[[MicroSD/Transflash Socket]]<br />
<br />
UEXT: universal expansion connector. The standard UEXT connector consists of ten pins (two rows of five, with 0.1" spacing) and supports I2C, SPI, and RS-232 serial communication, as well as carrying +3.3V power and common ground. -- [http://en.wikipedia.org/wiki/UEXT Wikipedia: UEXT]<br />
<br />
[[JTAG]] connectors?<br />
<br />
[[ideas#better data cable ideas]]<br />
<br />
Some connector companies in no particular order:<br />
[[Samtec]], [[Molex]], <br />
<br />
Rather than wiring a connector up directly to a CPU, one typically has some [[input protection]] between them.<br />
<br />
The [[SFE Footprint Library]] includes a few connectors.<br />
<br />
Mark Whitis has a list of "common pitfalls of Micro Development Boards".<br />
He describes how the 26 pin connectors on his<br />
[https://web.archive.org/web/20110929182706/http://www.freelabs.com/~whitis/electronics/9S12DP256/micro_board/ Mark Whitis Microcontroller Development Board]<br />
avoid those pitfalls and<br />
have many non-obvious features that make them superior to many other connectors.<br />
<br />
[http://techref.massmind.org/techref/pcbixmax.htm Massmind: "Maximum interconnect options from minimum board space"]<br />
discusses a board pattern that gives you the option of plugging in any one of a variety of different connectors.<br />
<br />
Connectors and data cable ideas are further discussed at [[Ideas#better_data_cable_ideas]].<br />
<br />
== Power-only USB connectors and cables ==<br />
<br />
* Adafruit. [https://www.adafruit.com/product/4907 "USB C SMT / THM Jack Connector - Power Only"].<br />
<br />
* Simon Lewis. [https://www.instructables.com/USB-Condom/ "Make a USB Cable 'power Only'"].<br />
* Charlie Sorrel. [https://www.cultofmac.com/632796/how-and-why-to-make-your-own-power-only-usb-cable/ "How (and why) to make your own power-only USB cable"].<br />
* [https://arstechnica.com/civis/viewtopic.php?f=11&t=1377799 "I want to make a USB C charge only cable"].<br />
<br />
* Jeff Smoot. [https://www.cuidevices.com/blog/an-introduction-to-power-only-usb-type-c-connectors "An Introduction to Power-Only USB Type C Connectors"].<br />
** Jeff Smoot. [https://www.digikey.com/en/articles/an-overview-of-usb-type-c-in-power-only-designs "An Overview of USB Type-C in Power-Only Designs"].<br />
** [https://www.reddit.com/r/UsbCHardware/ Reddit "USB Type-C devices & hardware"] : [https://www.reddit.com/r/UsbCHardware/comments/qo24e6/an_introduction_to_poweronly_usb_type_c_connectors/ comments on "An Introduction to Power-Only USB Type C Connectors"]<br />
<br />
* [https://electronics.stackexchange.com/questions/140225/how-can-i-tell-charge-only-usb-cables-from-usb-data-cables "How can I tell charge-only USB cables from USB data cables?"].<br />
* [https://electronics.stackexchange.com/questions/327791/using-usb-c-as-a-power-source "Using USB-C as a power source"].<br />
* [https://hardwarerecs.stackexchange.com/questions/16164/what-is-the-max-usb-cable-type-a-male-to-type-c-male-volt-current-wattage-possib "What is the max USB cable type-A male to type-c male Volt/current/Wattage possible?"].<br />
* [https://superuser.com/questions/961176/usb-type-c-power-delivery-profile-max-length "USB Type C Power Delivery ... max length?"]: "Is there a maximum length for a charging only cable?"<br />
<br />
* Matthew Lai. [https://dubiouscreations.com/2021/04/06/designing-with-usb-c-lessons-learned/ "Designing with USB-C: Lessons Learned"]: "Type-C connectors tend to be much harder to solder ... Power-Only SMT ... simpler connectors that only have power and the CC pins ... [such as] Korean Hroparts TYPE-C-31-M-17."<br />
<br />
* [https://gct.co/news/6_pin_usb_type_c "GCT 6 Pin USB Type-C for Charging"]: [https://gct.co/usb-connector/list?style=Type%20C&version=Charging&interface=C "GCT USB Charging Connectors"]: GCT USB4125, GCT USB4135, GCT USB4515, GCT USB4715 Waterproof IP67 USB Type C Connector, GCT USB4180, GCT USB4130, GCT USB4140, GCT USB4175. All these USB C connectors have 6 contacts: the CC1 and CC2 pins used for USB PD negotiation, the 2 GND pins, and the 2 VBUS pins.<br />
<br />
"Directive 2022/2380 will require any electronical hand held devices marketed in the EU to contain a USB-C charging port."<br />
-- [https://gct.co/news/usb-eu-directive_2022_2380 "EU 2022/2380 directive - Are you (USB Type-C) compliant?"]<br />
<br />
== USB-C breakout boards ==<br />
<br />
* SparkFun. [https://www.sparkfun.com/products/15100 "USB-C Breakout"]: "breaks out the USB-C connector's VBUS, GND, CC1, CC2, D+, and D- pins intro a 0.1" pitch header"<br />
* SparkFun. [https://www.sparkfun.com/products/15096 "SparkFun Serial Basic Breakout - CH340C and USB-C"]: "USB-to-Serial adapter ... The pinout of the Serial Basic mimics the common DTR/RXI/TXO/VCC/CTS/GND pinout ..."<br />
* Adafruit. [https://www.adafruit.com/product/5180 "Simple USB C Socket Breakout"]: "it doesn't break out all the pads - it just gives you the classic 4 USB pins" Vbus, D-, D+, GND.<br />
* Adafruit. [https://www.adafruit.com/product/4090 "Adafruit USB Type C Breakout Board"] and [https://www.mouser.com/new/adafruit/adafruit-4090-usb-c-breakout-board/ "USB C Breakout Board"].<br />
* Adafruit. [https://www.adafruit.com/product/4396 "USB Type C Socket - SMT Inline Breakout Board"]. with nearly all of the 24 pins broken out.<br />
* Pololu. [https://www.pololu.com/product/2585 "USB 2.0 Type-C Connector Breakout Board"]: "The USB-C connector’s 24 tightly-spaced pins make it difficult to use in a hobby project or prototype design. This breakout board helps by providing access to the connector’s pins for power (VBUS and GND), USB 2.0 differential data (D+ and D−), Configuration Channel (CC), and Sideband Use (SBU)."<br />
* Pololu. [https://www.pololu.com/product/3411 "USB 2.0 Type-C Connector Breakout Board"].<br />
* PMD Way. [https://pmdway.com/products/usb-3-1-type-c-male-to-female-breakout-test-board "USB 3.1 Type C Male to Female Breakout Test Board"].<br />
* Tinkersphere. [https://tinkersphere.com/mini-usb/3551-usb-31-type-c-male-breakout-board.html "Male USB C Breakout Board"] and [https://tinkersphere.com/mini-usb/3549-female-usb-c-breakout-board-smt-inline-socket.html "Female USB C Breakout Board"].<br />
* Newegg. [https://www.newegg.com/p/181-0135-00082 "USB-C Male Plug Connector [Breakout] Board"].<br />
<br />
== Reduced pin count USB connectors and cables ==<br />
<br />
* Tony P. [https://web.archive.org/web/20220725125722/https://idyl.io/how-to-add-usb-type-c-micro-usb-replacement/ "How to add USB Type C to your USB 2.0 projects"]: "replace the micro-USB / mini-USB ... 24 pin connectors are really unfriendly packages. They are very dense making it incredibly hard to reliably solder. The solution to this is to use a reduced pin count type C. ... "TYPE-C-31-M-12" ... by Korean Hroparts Elec [is a] 12 pin USB Type C connector"<br />
* Sparkfun. [https://www.sparkfun.com/products/15424 "Reversible USB A to C Cable - 2m"]: "Supporting USB 2.0 speeds and charging up to 2A, ... the flexibility of a thinner cable and the wonderful feel of a '''reversible ... USB-A connection'''. ... This cable has the D+/D- wires along side large-gauge VBUS/GND wires."<br />
* SparkFun. [https://learn.sparkfun.com/tutorials/connector-basics/usb-connectors "Connector Basics: USB Connectors"]: "USB-B Connectors ... is bulky, but robust, so in applications where size is not an issue, it's the preferred means for providing a removable connector for USB connectivity."<br />
<br />
* Matthew Lai. [https://dubiouscreations.com/2021/04/06/designing-with-usb-c-lessons-learned/ "Designing with USB-C: Lessons Learned"]: "Type-C connectors tend to be much harder to solder ... The standard is also much more complicated, though as we will see shortly, actual implementation is VERY simple if we just want to use it to replace micro-B in USB 2.0 devices (as opposed to hosts). ... USB 2.0-Only SMT ... connectors ... omit all the pins not required for USB 2.0... [such as] the Korean Hroparts TYPE-C-31-M-12 (LCSC part number C165948)."<br />
<br />
* Morten Christiansen, Synopsys. [https://www.synopsys.com/designware-ip/technical-bulletin/converting-existing-designs.html "Converting Existing USB Designs to Support Type-C Connections"]<br />
<br />
* [https://electronics.stackexchange.com/questions/473773/usb-type-c-alternative-with-fewer-signal-wires "USB Type-C Alternative with fewer signal wires"].<br />
<br />
== Magnetic connectors ==<br />
<br />
* Adafruit. [https://www.adafruit.com/product/5524 "Magnetic USB Type-C Plug Tip"] and the matching [https://www.adafruit.com/product/5520 "USB A or Type-C to Type-C Cable with Magnetic Tip - 1 meter long"].<br />
<br />
* [https://electronics.stackexchange.com/questions/473773/usb-type-c-alternative-with-fewer-signal-wires "USB Type-C Alternative with fewer signal wires"]: some of the answers mention magnetic connectors.<br />
<br />
* Adafruit. [https://www.adafruit.com/product/5359 "DIY Magnetic Connector - Right Angle Five Contact Pins"]. A set of 2 halves that magnetically attract.<br />
<br />
<br />
== Further reading ==<br />
<br />
* SFUPTOWNMAKER, SparkFun member #23999 [https://learn.sparkfun.com/tutorials/connector-basics "Connector Basics"].<br />
<br />
[[Category:Connectors]][[Category:Components]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Microcontroller_Serial_Communications_Articles&diff=90777Microcontroller Serial Communications Articles2024-02-24T19:01:44Z<p>DavidCary: link to related articles</p>
<hr />
<div>We have several related articles about Microcontroller Serial Communications on this site. These articles themselves have many links off site.<br />
<br />
* Microcontroller Serial Communications Articles this article, the a root for the articles on the site.<br />
<br />
* [[BitWacker PIC and Other Microcontroller to Java Communications]] an oveview of the applications for Microcontroller Serial Communications.<br />
<br />
** [[RS232/USB Probe]] an application with much of the functionality of a terminal emulator but with specialized extensions for for MicroController command response control. The basis for a series of more specialized applications. See it for information on installation of all the applications and for access to the bug and enhancement list.<br />
<br />
** [[BitWacker Command GUI]] an application for issuing the basic commands of the BitWacker. Part of a series of articles based on the [[RS232/USB Probe]]<br />
<br />
** [[Graphical Data Logger]] an application data logging and graphing. Sometimes called the PICMeter. Part of a series of articles based on the [[RS232/USB Probe]]<br />
<br />
** [[USB Bit Whacker]] Brief discussion of this interesting development board with built in USB communications.<br />
<br />
** [[Making Your Own Microcontroller Serial Communications Application]] Using the code from the above applications to make your own.<br />
<br />
<br />
* [[RS232]] a discussion of some of the theory behind Microcontroller Serial Communications. The PC side of this is implemented by [[RS232/USB Probe]] and its related applications.<br />
<br />
* [[Serial Communications (RS232) in BoostC]] and the earlier more limited [[Serial Communications Library -- BoostC and 16F877A]] are examples PIC programs and communications libraries that uses the techniques discussed in [[RS232]], above.<br />
<br />
* [[PC-Microcontroller Communications]] an article on some of the technology of microcontroller communications and lots of external links. List of terminal emulators and alternatives to Hyper Terminal.<br />
<br />
* [[Analog Whacker]] a proposal for hardware to link the Bitwacker to the [[Graphical Data Logger]] above.<br />
<br />
* [[SPI]] is a popular protocol for many small peripheral chips<br />
<br />
* [[I2C]] is another popular protocol for many small peripheral chips<br />
<br />
* [[CAN bus]] is designed to allow low-cost devices to communicate with each other within a vehicle without a host computer.<br />
<br />
* Local Interconnect Network (LIN) is designed to be even lower-cost than CAN bus. Some large systems use many simple sensors in low-cost LIN sub-networks, then connect the single master of each LIN sub-network with CAN or some other backbone network.<br />
<br />
* The [[1-wire]] network is designed to be an even lower-cost network for small peripheral chips<br />
<br />
* The [[Servo control]] system for remote-control vehicles<br />
<br />
* [[JTAG]] is often used for programming and debugging.<br />
<br />
== Microcontroller Projects that Use Serial Communications ==<br />
<br />
*[[Stepper Motor Demonstration and Tester]] a project for both PIC's and Arduinos.<br />
<br />
*[[Arduino Command Interpreter]]<br />
<br />
*[[PIC based Stepper Motor Dancing Analog Clock]]<br />
<br />
*[[Experimenting with IR Remotes using a PIC running BoostC Project]]<br />
<br />
*[[Experimenting with Stepper Motors as Rotary Encoders using a PIC running BoostC Project]]<br />
<br />
*[[Arduino Laser Cannon]]<br />
<br />
== Other Readings ==<br />
<br />
* [[Projects#Audio as sensor data format]]: sending data as audio has many similarities (and some key differences) from sending data as binary Hi and Lo pulses.<br />
* [[Radio communication]] has many similarities (and some key differences) from sending data as binary Hi and Lo pulses.<br />
* Many [[Modules]] use serial communication<br />
* [[PC-Microcontroller Communications]] often use serial communication<br />
* [[Expansion bus]] discusses parallel communication, which was once far more common.<br />
<br />
*[http://en.wikibooks.org/wiki/Serial_Programming Serial Programming -- From Wikibooks, the open-content textbooks collection]<br />
*[http://www.pharmalabauto.com/Electronics/pdfs/RS232.pdf Application Note 83 Fundamentals of RS–232 Serial Communications] a pdf, good<br />
*[http://www.myplogger.com/circuit/admin/aa13af474cb1e3a0b1f51b6fa84e88c5.pdf {Serial Communications Protocol}] a pdf, not just for the PIC18<br />
<br />
[[category:Serial Communications]][[category:Microcontroller]][[category:Techniques]][[category:BoostC]][[category:Arduino]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Switching_regulator&diff=90776Switching regulator2024-02-24T18:34:15Z<p>DavidCary: yet another boost regulator.</p>
<hr />
<div>A "voltage regulator" is designed to hold a constant output voltage.<br />
<br />
A "switching voltage regulator", usually called a '''switching regulator''', also called a '''DC to DC converter''', accomplishes this goal by rapidly switching a transistor from full on and full off.<br />
<br />
A "linear voltage regulator", usually called a "linear regulator", accomplishes the same goal by holding a transistor in its active region, somewhere between full on or full off.<br />
[[Basic Voltage Regulators]] are generally linear regulators.<br />
<br />
[[The 723 Voltage Regulator]] can be used as either a linear or a switching regulator.<br />
<br />
The [[Linuxstamp]] uses a the LTC3407-3 switching regulator.<br />
<br />
The [[ARMUS Embedded Linux Board]] uses ...<br />
<br />
The [[MCP1252/3]] Flyback Switching Regulators can generate an output voltage greater than the input voltage -- something impossible with linear voltage regulators.<br />
<br />
The MC34063 is the favorite switching regulator IC of [http://electronics.stackexchange.com/questions/37214/what-is-the-standard-way-to-make-a-peltier-power-supply-with-variable-power/37225#37225 Russell McMahon].<br />
The [http://www.onsemi.com/pub_link/Collateral/MC34063A-D.PDF MC34063 datasheet]<br />
shows how to build a buck, boost, or switching SMPS with this 8-pin chip.<br />
(Several manufacturers produce pin-compatible MC34063 chips).<br />
<br />
While learning about SMPS, teachers typically try to gradually ease you into understanding them by starting with perhaps the easiest-to-understand switching converter, the buck converter.<br />
Then they move on to the other "simple" converters than can be built using 1 inductor, 1 switch, 1 diode, and 1 capacitor (and some stuff that turns the switch on and off "appropriately"): the buck converter, the boost converter, and the inverting converter.<br />
Then they throw every equation even remotely related to SMPS at you, making them sound far more complicated than they really are.<br />
<br />
In practice, it seems that many switchers are "flyback" converters -- although some people say that Cuk converters are better than flyback converters; some even go so far as to say that Cuk converters are the "optimum topology".<br />
<br />
A [[maximum power point tracker]] has many similarities to a switching voltage regulator.<br />
<br />
== dealing with over-current ==<br />
<br />
A chain of components inside the switching regulator transfers power from its input to its output.<br />
One component along that chain is the weakest link -- there's only a limited amount of current it can handle before it permanently fails.<br />
(Usually that weakest link is the power transistor.)<br />
<br />
If you gradually add more and more stuff to the output of the regulator, or if you suddenly short the output wires together, that is going to demand more power than that weak link can handle.<br />
<br />
There are at least 4 ways of dealing with this fact:<br />
To avoid permanent damage,<br />
* ignore it, and be very, very careful that you never overload the output. (This is usually fine if the regulator and the device it powers are hard-wired to each other in a way that makes it difficult to add more stuff or short the outputs together).<br />
* brick-wall current limit, often called current limit: design the regulator to measure the output current with some [[current sense]] method, and when it gets close to the current setpoint, the regulator automatically reduces the amount of power transferred to the output. When the output looks like a short circuit, allow exactly the setpoint current to flow. (current limit)<br />
* design the regulator to measures the output current, and if it ever goes even a tiny amount over the current setpoint, the regulator assumes something has gone horribly wrong, and automatically turns off all output power for a second or so.<br />
* Latch-off mode protection: the output current, and if it ever goes even a tiny amount over the current setpoint, the regulator assumes something has gone horribly wrong, and automatically turns off all output power indefinitely (until the input power is cycled).<br />
* Current fold-back limiting, often called "foldback": limits the short circuit current to a very small value, half or less of the rated load current. Foldback reduces the output current linearly as output voltage decreases. ([https://electronics.stackexchange.com/questions/2931/what-is-foldback-short-circuit-protection-in-a-power-supply 'What is "foldback short circuit protection" in a power supply?'])([http://www.ti.com/lit/an/snva736/snva736.pdf "Know Your Limits: TI application report"])<br />
* Use a "intelligent switch"[http://www.st.com/ips][http://www.st.com/st-web-ui/static/active/en/resource/technical/document/application_note/CD00003916.pdf][http://www.irf.com/product-info/ips/] that automatically turns itself off if it gets too close to failure.<br />
<br />
== history of switching power supplies ==<br />
<br />
<br />
"A key developer of switching power supplies was Robert Boschert, who quit his job and started building power supplies on his kitchen table in 1970."<br />
<ref><br />
Ken Shirriff. [http://www.righto.com/2012/02/apple-didnt-revolutionize-power.html "Apple didn't revolutionize power supplies; new transistors did"].<br />
</ref><br />
<br />
<br />
Rod Holt designed the switching power supply for the 1977 Apple II.<br />
1978 patent US4130862.<br />
<br />
<br />
== further reading ==<br />
<br />
* The [http://romanblack.com/smps/a04.htm 3-transistor Black regulator]: cheap, high-efficiency, current limited.<br />
* The [http://burningsmell.org/stupid-switch/ "Stupid Boost Converter"]: cheap, simple, boost regulator using the 555 IC. convert about 100ma of 3.6V DC power to about 50-60ma of current at 5V. Tyler Montbriand.<br />
* [http://code.google.com/p/bicycleledpov/wiki/TestsToDcDcCircuitsAndIcs "Tests to find a good, simple and cheap DC-DC IC and circuit"] at the LadyAda bicycleledpov wiki.<br />
* http://en.wikipedia.org/wiki/DC_to_DC_converter<br />
* http://en.wikipedia.org/wiki/Switched-mode_power_supply<br />
* http://www.smps.us/ "SMPS SWITCHING POWER SUPPLY DESIGN CIRCUITS, SCHEMATICS, PCBs, ELECTRICAL ENGINEERING REFERENCE, SOFTWARE, AND OTHER FREE ONLINE RESOURCES" ... including http://www.smps.us/layout.html "PRINTED CIRCUIT BOARD LAYOUT GUIDELINES FOR SWITCHING POWER SUPPLIES (SMPS)"<br />
* [http://massmind.org/techref/power.htm Massmind: Power] discusses a variety of linear and switching power supply regulators<br />
* [http://zwizwa.goto10.org/ramblings/brood/20070716-191312 "boost converter hack"] describes one way a microcontroller (uC) can control its own supply voltage, once it's given an initial push. (External diodes would be better than re-using the internal diodes, to avoid exceeding the manufacturer's recommendations).<br />
* [http://www.psocdeveloper.com/forums/viewtopic.php?f=3&t=1278 "AC DC Switch Mode Supply Controller Via PSoC"] discusses programmable current source switching mode controllers.<br />
* [http://www.edn.com/article/CA6335301.html "JFET-based dc/dc converter operates from 300-mV supply"] by Jim Williams 2006<br />
* [http://electronicdesign.com/Articles/ArticleID/15420/15420.html "Germanium Dual-Boost Starts At 260 mV"] by Clayton B. Grantham 2007<br />
* [http://focus.ti.com/lit/ml/slup067/slup067.pdf "Switching power supply topology review"] by Lloyd H. Dixon, Jr. 2001<br />
* [http://www.national.com/onlineseminar/2001/bpease/switching_controllers.html National: "Designing DC-DC Power Supplies Using High Performance Switching Controllers"]<br />
* "High-voltage, low-noise dc/dc converters" http://www.edn.com/article/CA6582859.html?spacedesc=readersChoice and http://www.edn.com/blog/1700000170/post/440031844.html : has nice photos of dead-bug solid-copper-plane wiring style.<br />
* [http://www.ti.com/lit/wp/snva575/snva575.pdf "Comparing Topologies and the (Design) Rules of the Game"] by Sanjaya Maniktala 2002 ... emphasizes "r", the ripple factor, the ratio of the ripple in the inductor to the average current in the inductor, which applies to practically every SMPS topology. It describes "The formal design procedure for any converter design".<br />
* [http://www.dos4ever.com/battery/battery.html "An Electronic 90V Plate/Anode Battery: A "power"-inverter which emulates the 90V plate/anode battery for vintage battery tube receivers."] (battery powered) a web-log by Ronald Dekker. A very well documented series describing the entire process from the original idea. It seems that everyone who designs a switching regulator hits several unexpected problems, and this description does not shirk from describing the particular unexpected problems seen here.<br />
* Flemming Frandsen made a design (based on Bob Blick) that takes noisy car power (8 to 16 volts) and converts to clean, regulated 12 V power. (Its SEPIC topology can convert up and down). A shutdown circuit turns it off when you take the key out of your car.[http://dren.dk/carpower.html]<br />
* "Underestimating Complexity of Power Supply Design" https://web.archive.org/web/20170627055906/http://www.smpstech.com/undest.htm<br />
* "Latchup of Constant-Power Load With Current-Limited Source" https://web.archive.org/web/20181231030919/http://www.smpstech.com/latch000.htm<br />
* Donald V. Comiskey. "Practical Guidelines to Designing an EMI Compliant PoE Powered Device with Isolated Flyback"[http://www.ti.com/lit/an/slua469/slua469.pdf] (power over Ethernet; perhaps its tips for improving EMI also apply to other switching voltage regulators)<br />
* [http://www.freewebs.com/acselectronics/buildregs.html Chris's favorite switching regulator], build around a LM317 and some power transistors.<br />
* [http://electronics.stackexchange.com/questions/31018/how-do-the-tiny-ac-usb-power-supplies-work "How do the tiny AC->USB power supplies work?"]<br />
* [http://electronics.stackexchange.com/tags/power-supply/info Electronics stackexchange "power supply" tag wiki]<br />
* Lloyd H. Dixon, Jr. [http://www.ti.com/lit/ml/slup076/slup076.pdf "Design of Flyback Transformers and Filter Inductors: for switching power supplies"].<br />
* Lazar Rozenblat. [http://www.smps.us/ "Lazar's power electronics guide: SMPS switching power supply design basics: circuits, schematics, electrical engineering reference, software and other info"].<br />
* [http://www.ti.com/lit/an/snva558/snva558.pdf "Linear and Switching Voltage Regulator Fundamental Part 1: TI SNVA558"]<br />
* [https://electronics.stackexchange.com/questions/51361/buck-switching-regulator-based-on-attiny84a-please-critique "Buck switching regulator based on ATtiny84a — please critique!"]<br />
<br />
<br />
[[category:Components]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=SPI&diff=90774SPI2024-02-23T19:32:01Z<p>DavidCary: link to more general article</p>
<hr />
<div><br />
'''Serial Peripheral Interface Bus (SPI bus)'''<br />
Connects circuitry with few wires over serial protocol.<br />
<br />
SPI supports an unlimited number of peripherals, which may all be identical.<br />
<br />
Daisy-chained SPI connects all the devices on a SPI bus in a loop.<br />
In a daisy-chain SPI loop, the serial data out pin (SDO) of each device connected to the serial data in pin (SDI) of the next device in the loop.<br />
A daisy-chained SPI bus uses 4 GPIO pins on the microcontroller, no matter how many SPI peripherals are attached.<br />
<br />
<br />
Chip-select SPI uses an additional dedicated chip-select pin for each SPI peripheral.<br />
<br />
<br />
(Other protocols, such as [[I2C]], require each peripheral on the bus to have a different (unique) address).<br />
<br />
<br />
== Further reading ==<br />
<br />
* [[Microcontroller Serial Communications Articles]]<br />
<br />
[http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus Serial Peripheral Interface Bus]<br />
* [https://www.sparkfun.com/spi_signal_names a redefinition of SPI signal names: "A REDEFINTION OF SPI SIGNAL NAMES"] by Nathan Seidle, founder of SparkFun Electronics.</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Part_Design_Parts&diff=90773Part Design Parts2024-02-23T19:12:48Z<p>DavidCary: Reverted edits by 93.152.140.4 (talk) to last revision by Russ hensel</p>
<hr />
<div><br />
This page is part of a planned series on FreeCad now being revised for .18 . Click on the category FreeCad for some more information. I work on it as I do FreeCadprojects<br />
so this can be very on and off. As of 2019 Dec it is on. '''This is not a document that is really ready for general reading'''.<br />
<br />
* Most of my models are designed to be parametric with many of the parameters having master control in a spreadsheet. So the notes here are more or less based on that assumption.<br />
<br />
== Introduction ==<br />
Part design is arguably the most useful workbench for 3 D printing. It should not be confused with the Part workbench. What is the difference? One brief summary would be that<br />
Part Workbench starts with basic 3D geometric objects and modifies and combines them. The Part Design workbench on the other hand seems to be more sketch based. Sketches can project positive<br />
( pad ) or negative ( pocket ) space. Parts and operations can be combined between the two workbenches but sometimes do not play nice particularly with parametric designs.<br />
<br />
*'''[https://yorikvanhavre.gitbooks.io/a-freecad-manual/content/working_with_freecad/all_workbenches_at_a_glance.html All workbenches at a glance · A FreeCAD manual ]'''<br />
<br />
== Issues with sketches ==<br />
<br />
The biggest problem seems to be a sketch loosing track of the face it is attached to. So the advice, as I decode it, is to only attach sketches to either a body axis plane or a datum plane.<br />
<br />
<br />
== Part Design ==<br />
<br />
If you used the old part design workbench ( .16 and earlier ) you may have some re-adjustment to the now one. I more or less considered Part Design and Part workbenches to be<br />
pretty much sections of a larger workbench. In particular parts from the Part workbench were freely and commonly used in the Part Design workbench. This no longer seems to be the case.<br />
Now Part Design parts should be used inside a body and it seems that Part workbench parts cannot be moved into a body. ( example file would be nice ) In some ways a cylinder is not a <br />
cylinder. If you need a cylinder for the Part Design look under Part Design -> Part Design -> Create Additive Primitive -> Additive Cylinder<br />
<br />
<br />
Russ it seems that Part Parts can be used in a part design body in two ways:<br />
Drag and drop them in this creates a xxx which then can be used ??<br />
A sketch attached to a Part not in the body produces a pad that is in the body <br />
<br />
=== Body ===<br />
<br />
Typically in part design you are making a body. At a later stage bodies may be combined ( subtracted ?? )<br />
<br />
* A sketch may be copied between bodies, not entriely clear what it binds to<br />
* a pad may not be copied into a body but some represention of it ( a base ferture does )<br />
<br />
=== Datums ===<br />
<br />
So what is a datum ( actually here a datum plane ). It is a plane that you attach things to. But what do you attach a datum to? Attach it to a plane in a body. You can then move an rotate the datum to any place you want it.<br />
<br />
Note on datum coords ??<br />
<br />
<br />
<br />
<br />
=== ShapeBinder ===<br />
<br />
<br />
==== Links ====<br />
<br />
some dups need deletion <br />
<br />
*'''[https://forum.freecadweb.org/viewtopic.php?t=33006 Shapebinder confusion - FreeCAD Forum ]'''<br />
*'''[https://freecadweb.org/wiki/PartDesign_ShapeBinder PartDesign ShapeBinder - FreeCAD Documentation ]'''<br />
*'''[https://www.youtube.com/watch?v=QfhbCkWt2iU HOW TO USE FACEBINDER TOOL IN FreeCAD - YouTube ]'''<br />
<br />
*'''[https://freecadweb.org/wiki/PartDesign_ShapeBinder PartDesign ShapeBinder - FreeCAD Documentation ]'''<br />
*'''[https://yorikvanhavre.gitbooks.io/a-freecad-manual/content/working_with_freecad/all_workbenches_at_a_glance.html All workbenches at a glance · A FreeCAD manual ]'''<br />
<br />
*'''[https://forum.freecadweb.org/viewtopic.php?t=33006 Shapebinder confusion - FreeCAD Forum ]'''<br />
*'''[https://freecadweb.org/wiki/PartDesign_ShapeBinder https://freecadweb.org/wiki/PartDesign_ShapeBinder ]'''<br />
*'''[https://www.youtube.com/watch?v=ZJABW0LZqgc FreeCAD 0.17 Tutorial : Shapebinder , Datum Plane, Datum Line, Groove - YouTube ]'''<br />
*'''[https://www.freecadweb.org/api/d0/ddd/classPartDesign_1_1ShapeBinder.html https://www.freecadweb.org/api/d0/ddd/classPartDesign_1_1ShapeBinder.html ]'''<br />
*'''[https://forum.freecadweb.org/viewtopic.php?t=23328 Usage of Shape binder - FreeCAD Forum ]'''<br />
*'''[https://www.youtube.com/watch?v=QfhbCkWt2iU HOW TO USE FACEBINDER TOOL IN FreeCAD - YouTube ]'''<br />
*'''[https://forum.freecadweb.org/viewtopic.php?t=34279 Master sketch + Shapebinder - FreeCAD Forum ]'''<br />
<br />
[[Category:FreeCad]] [[Category:FreeCad]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Switches&diff=90732Switches2024-01-30T02:40:05Z<p>DavidCary: linkify to article that goes into more detail, etc.</p>
<hr />
<div>== Switch Basics ==<br />
{{mergefrom|Switch Terminology}}<br />
<br />
<br />
A switch is often to turn something on or off. In the simplest case it is just a wire that is connected or not. Unplugging an appliance is one way to switch it off. A switch is usually a mechanical device where some sort of handle connects or disconnects conductors inside the switch. Another way of thinking of a switch is that it is like a resistor that sometimes has infinite resistance and sometimes has 0 resistance. A computer keyboard is made of a large number of switches. Some switches stay in the on or off position, others only stay on or off while you switch them, these are called momentary switches. A light switch is normally not momentary, a doorbell switch normally is momentary.<br />
<br />
Uses:<br />
*On Off control <br />
*Range change, as in a meter<br />
*Data input<br />
<br />
Links<br />
*[http://en.wikipedia.org/wiki/Electrical_switch Switch From Wikipedia,the free encyclopedia ( inc. Schematic and Picture )]<br />
*[http://www.kpsec.freeuk.com/components/switch.htm Switches]<br />
* [[Switch Terminology]] _P_T - SPST - SPDT - DPST - DPDT - 3PDT - ....<br />
<br />
== Relays ==<br />
{{mergefrom|relays}}<br />
<br />
A [[relay]] is a switch that is turned on and off by an electro-magnet. (So-called "solid state relays" do not use an electro-magnet ). Like other switching devices it allows a small amount of power to control a large amount of power. A nice feature of relays is that there is no electrical connection between the control circuit and the circuit connected to the switch. ( this is called electrical isolation ). They are often used to let low power digital circuits control normal 110v power in a home.<br />
<br />
Uses:<br />
*Turn on several circuits with one control circuit.<br />
*Control motors.<br />
*Isolate a low voltage circuit from power line.<br />
*Reverse current ( double pole double throw relay )<br />
* [[relay CPU]]<br />
<br />
Links<br />
<br />
*[[Image:Main-G5Q-14.jpg|69px|Relays]] [[Relays]] - Use these to control large power sources that a microcontroller cannot do alone<br />
*[http://en.wikipedia.org/wiki/Relay Relay From Wikipedia, the free encyclopedia]<br />
*[http://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=119 Controlling Big, Mean, Devices]<br />
*[http://www.kpsec.freeuk.com/components/relay.htm Relays]<br />
*[http://cp.literature.agilent.com/litweb/pdf/5988-6917EN.pdf Maximizing the Life Span of Your Relays]]<br />
*[[Driving_Large_Loads_with_the_Arduino#Relay Driving Large Loads with the Arduino]]<br />
*[http://relays.tycoelectronics.com/appnotes/ Tyco Electronics Application Notes]<br />
<br />
<br />
[[Category:Components]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Relays&diff=90731Relays2024-01-30T02:24:40Z<p>DavidCary: linkify to article that goes into more detail</p>
<hr />
<div>{| align=right<br />
|-<br />
| <br />
[[Image:Main-G5Q-14.jpg|Relay]]<br />
|}<br />
{{mergeto|switches}}<br />
<br />
=== Description ===<br />
A PIC can't source more than 25mA, so how do I turn on/off a light bulb? With a relay!<br />
<br />
A PIC can't source more than 25mA, so how do I turn on/off a relay? With a transistor!<br />
<br />
Relays are those large black boxes that go 'click'. There is a coil inside. When current flows through the coil a magnetic field causes the the internal paddle to move postions. This paddle usually carrys large currents or large voltages.<br />
<br />
Most relays have various ratings. We'll start with the coil voltage. '12VDC' for example means that the control coil requires 12V DC for the unit to switch the paddle. The other rating you'll see is '10A'. This refers to the amount of current you can run through the control paddle contact (''not'' the current through the coil). So a 10A relay can handle a load of up to 10A- less than 10A is no problem. What happens if you try to run more current than the max? Well, it will probably work, but at higher currents the internal sparking will tend to burn the contacts. The paddle can potentially spot-weld itself to the contacts in extreme cases.<br />
<br />
There are sealed and vented relays. Vented relays tend to run a bit cooler, but are more suceptible to gunk getting into the moving parts.<br />
<br />
There are many configurations based on the circuit you need to control. DPDT (double pull double throw), SPDT (single pull double throw) are two of the most common. View the equivalent circuits in the mfg's datasheets to get an idea of how they work.<br />
<br />
=== Relay circuit setup ===<br />
<br />
Many microcontrollers cannot source enough current to feed the control coil. So Q1 is any old BJT (2N3904 is a good one) to turn on/off the relay.<br />
<br />
When switching large loads, you can get something call ''fly-back current''. The fly-back current can cause surges of voltage when a device is kicked on/off (imagine when the lights dim when you turn on the microwave).<br />
These surges can arc and destroy nearby components.<br />
<br />
[[Image:Relay-Example.jpg|Example Relay Circuit]]<br />
<br />
The diode 1N4148 (simple, cheap, can handle ~200mA current) is there to direct the fly-back current to a safe path. Without that diode, the flyback current could arc and destroy some nearby component.<br />
Be sure to watch how you polarize your diode.<br />
<br />
=== Documents ===<br />
<br />
=== Footprints ===<br />
<br />
[[SFE_Footprint_Library|SFE Footprint Library]]<br />
<br />
There are various footprints available. Always be sure to do a 1:1 printout of your board and matchup the physical relay to the printout before PCB fab. Sometime the manufacturers list recommended footprints from the bottom view which can lead to mirrored and incorrect FPs.<br />
<br />
=== Manufacturer Info ===<br />
<br />
=== Supplier Info ===<br />
<br />
''(Is there anything special about these particular relays?)''<br />
<br />
Digikey part # : G5Q-1-DC12<br><br />
Single Piece Price : $2.25<br><br />
12 VDC SPDT <br />
<br />
All Electronics part # : [http://www.allelectronics.com/make-a-store/item/RLY-275/24-VDC-SPDT-PC-MOUNT-POWER-RELAY/-/1.html RLY-275]<br><br />
Single Piece Price: $0.50<br><br />
24 VDC SPDT<br />
<br />
<br />
=== Related Items ===<br />
<br />
=== Further Reading ===<br />
<br />
* [[Switch Terminology]]<br />
* [[Basic_Circuits_and_Circuit_Building_Blocks#Relay_with_Diode_Snubber | Relay with Diode Snubber]]<br />
* [[Basic_Circuits_and_Circuit_Building_Blocks#Transistor_Low_Side_Switch]]<br />
* [[relay CPU]]<br />
* [http://en.wikipedia.org/wiki/flyback_diode Wikipedia: flyback diode]<br />
* [http://www.dnatechindia.com/index.php/Tutorials/8051-Tutorial/Relay-Interfacing.html Interfacing Relay To Micro controller]<br />
<br />
[[Category:Components]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Chemical_Etchants&diff=90730Chemical Etchants2024-01-30T02:05:11Z<p>DavidCary: revert to 26 July 2022</p>
<hr />
<div>{{stub}}<br />
<br />
Chemical etching is one step of some popular [[techniques | PCB fabrication techniques]].<br />
<br />
In this technique,<br />
* one starts with a copper-clad board.<br />
* one puts a mask over all the copper he want to keep. There are a variety of ways to do this -- see [[Toner Transfer]] and [[Photoetching]].<br />
* one removes the parts he don't want to keep, by chemically etching away the copper.<br />
* cleanup: wash off the board in the sink; carefully store or dispose of the acid.<br />
<br />
There are a lot of different chemical techniques for doing this, each with its own advantages and drawbacks.<br />
<br />
None of these chemicals is incredibly dangerous, but they can all be toxic or caustic, and should be treated with care. Eye protection and gloves are a very good idea. Before you start, make sure you know how dangerous each chemical is, and figure out what you will need to do if you spill it or get it on yourself. Washing with plenty of water is usually a good start. For some chemicals you may want to keep a neutralizing agent handy. An MSDS (Materials Safety Data Sheet) for the chemical will give you some basic information.<br />
<br />
== vinegar and salt ==<br />
<br />
* [http://www.kobakant.at/DIY/?p=2575 How to get what you want: Salt and Vinegar Etching]<br />
* [http://www.flickr.com/photos/jeanbaptisteparis/4831465916/ smt pcb with Salt and Vinegar]<br />
* [http://www.instructables.com/id/The-Saltwater-etch-process/ The Saltwater etch process]<br />
* [http://www.electro-tech-online.com/general-electronics-chat/33876-electro-etching-no-acid.html electro etching a PCB with vinegar, salt, and a 12 V power supply] (the copper etched off the PCB is plated on the anode?) -- however, other people claim that "You should not be using any acids (or basic 'acids') with your [electro] etcher at all. No FeCl no vinegar, etc ".[http://www.bladeforums.com/forums/showthread.php?t=671936]<br />
<br />
== Ferric Chloride ==<br />
This is the most common hobbyist etchant. Ferric chloride, FeCl<sub>3</sub>, is a brownish substance. It's usually sold in a bottle (dissolved in water, perhaps with a little acid or peroxide) or as a powder (which you have to dissolve in water).<br />
<br />
When in solution, ferric chloride is a ferric ion (Fe<sup>3+</sup>) and a chloride ion (Cl<sup>-</sup>). The ferric ion reacts with the metallic copper on the circuit board in a redox reaction, producing a ferrous ion (Fe<sup>2+</sup>) and cuprous or cupric (Cu<sup>1+</sup> or Cu<sup>2+</sup>) copper. The chlorine is just along for the ride. The copper ion, unlike the metallic copper, is soluble, so it leaves the circuit board and goes into solution. The reaction products form a black sludge which settles to the bottom of the etching tank. After etching enough copper, all your Fe<sup>3+</sup> is used up and your solution is full of Cu<sup>1+</sup>, and you need to get more etchant.<br />
<br />
== Ammonium Persulfate ==<br />
Expensive & hard to control and optimize the process parameters (such as specific gravity & pH value).<br />
<br />
== HydroChloric Acid / Hydrogen Peroxide ==<br />
<br />
Mixing about 1 part HCl (Which can be found at most hardware stores, also known as Muriatic Acid. Ask for concrete cleaner.) into 2 parts Hydrogen peroxide (normally used for cleaning cuts) you can make a fairly powerful etchant. Use gloves and don't breathe the fumes though. This will etch a 3"x5" board in less than 10 minutes. No need to heat it up. I usually like to drill a small hole through the board on a corner and thread a wire or nylon string through to help agitate / remove the board.<br />
<br />
When the board is done etching, the etchant will probably look like green kool-aid, from the copper content in it. This stuff is highly corrosive and will burn skin, which is why you should wear gloves. But it is easy to handle, and fairly easy to dispose of. the etchant is easily deactivated with baking soda. Pour enough baking soda into it slowly (to keep it from boiling and overflowing... remember what happens with baking soda/vinegar? ya...) until it is a solid mass, then leave it in the sun to dry. You should contact your local authorities to find out what you should do with it next. Whatever you do, DO NOT dump the stuff down the drain, it will eat through your pipes just like any of the other etchants.<br />
<br />
Alternatively, instead of disposing of the etchant, you can re-use it again and again. In fact, after etching a few boards with this solution, you will have successfully made [[Chemical Etchants#Acid Cupric Chloride|Acid Cupric Chloride]] (see below).<br />
You can also find a detailed tutorial on etching at [http://robotplatform.com/howto/pcb%20etching/pcb_etching_1.html Muriatic Acid etching tutorial]<br />
<br />
== Sodium Persulfate ==<br />
More environmentally friendly than ferric chloride. Can monitor the etching as initially clear new etchant solution turns blue from the copper ions.<br />
<br />
== Acid Cupric Chloride ==<br />
Dead simple etchant made from ordinary, store-bought chemicals (hydrochloric acid and hydrogen peroxide). Has the advantage that it can be regenerated by bubbling oxygen/air through it, or by adding more H<sub>2</sub>O<sub>2</sub>. In addition, it doesn't get used up: the etchant bath simply grows with use (kind of like sourdough starter…)<br />
The used etchant also makes a great algecide/pH reducer for your pool (and a whole lot cheaper than that stuff they sell at the pool store).<br />
<br />
What you need:<br />
* 38% Hydrochloric Acid, HCl (available at finer hardware stores or pool supply stores as Muriatic Acid)<br />
* 3% Hydrogen Peroxide, H<sub>2</sub>O<sub>2</sub> (available from any drug store)<br />
* Plastic or Glass Pans, Jars, and tongs (no metal)<br />
Directions:<br />
<br />
# Mix your HCl and H<sub>2</sub>O<sub>2</sub> 1:1 in a non-metalic container, making sure to add the acid slowly to the H<sub>2</sub>O<sub>2</sub>. DO NOT ADD THE H<sub>2</sub>O<sub>2</sub> TO THE ACID!!!<br />
# After you've masked your board, dip it in the solution and constantly agitate. You should notice a dark green cloud start to come from the board almost immedately which quickly dissapears or turns lighter as it gets further from the surface of the board.<br />
# Etching should take about 10min depending on the temperature and how well you agitated the etchant. When all of the copper is gone, dip in water to wash off any stray etchant and stop the reaction.<br />
# When done etching, save used etchant in a non-metalic container and mark clearly its contents.<br />
# If your etchant has become a dark, murky green color, add a little bit of H<sub>2</sub>O<sub>2</sub> or bubble air/O<sub>2</sub> through the solution to regenerate it back to a light, transparent green color.<br />
See links at bottom for more information on the chemistry and some pictures of the process.<br />
<br />
== Disposal procedures ==<br />
Flushing used etchant down the drain is a bad idea (and usually illegal) because copper ion is toxic. The usual recommended way to dispose of hobbyist amounts of etchant is to convert it to a solid somehow and dispose of the solid in accordance with local laws.<br />
<br />
== External Links == <br />
<br />
* [http://www.instructables.com/id/Sponge-Ferric-Chloride-Method-Etch-Circuit-Bo/ "Sponge + Ferric Chloride Method -- Etch PCBs in One Minute!"]<br />
* [http://www.k9spud.com/wiki/PCB:Etchants Ferric Chloride vs. Ammonium Persulfate] and other etching chemicals.<br />
* [http://members.optusnet.com.au/~eseychell/PCB/etching_CuCl/index.html Etching with Air Regenerated Acid Cupric Chloride] — an excellent in-depth page on acid cupric chloride etching by Adam Seychell.<br />
* [http://www.esmonde-white.com/home/diversions/etching-a-copper-pcb Etching a Copper PCB with HCl and H2O2]<br />
* [http://www.mgchemicals.com/ MG Chemicals] A possible source?<br />
* [http://reprap.org/wiki/MakePCBInstructions RepRap wiki: Make PCB instructions]<br />
<br />
== Internal Links ==<br />
<br />
<br />
*[[Toner Transfer]]<br />
*[[Techniques]]<br />
*[[Eagle Links]]<br />
<br />
<br />
[[Category:Techniques]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Chemical_Etchants&diff=90708Chemical Etchants2024-01-11T22:23:25Z<p>DavidCary: Reverted edits by 38.153.140.159 (talk) to last revision by DavidCary</p>
<hr />
<div>{{stub}}<br />
<br />
Chemical etching is one step of some popular [[techniques | PCB fabrication techniques]].<br />
<br />
In this technique,<br />
* one starts with a copper-clad board.<br />
* one puts a mask over all the copper he want to keep. There are a variety of ways to do this -- see [[Toner Transfer]] and [[Photoetching]].<br />
* one removes the parts he don't want to keep, by chemically etching away the copper.<br />
* cleanup: wash off the board in the sink; carefully store or dispose of the acid.<br />
<br />
There are a lot of different chemical techniques for doing this, each with its own advantages and drawbacks.<br />
<br />
None of these chemicals is incredibly dangerous, but they can all be toxic or caustic, and should be treated with care. Eye protection and gloves are a very good idea. Before you start, make sure you know how dangerous each chemical is, and figure out what you will need to do if you spill it or get it on yourself. Washing with plenty of water is usually a good start. For some chemicals you may want to keep a neutralizing agent handy. An MSDS (Materials Safety Data Sheet) for the chemical will give you some basic information.<br />
<br />
== vinegar and salt ==<br />
<br />
* [http://www.kobakant.at/DIY/?p=2575 How to get what you want: Salt and Vinegar Etching]<br />
* [http://www.flickr.com/photos/jeanbaptisteparis/4831465916/ smt pcb with Salt and Vinegar]<br />
* [http://www.instructables.com/id/The-Saltwater-etch-process/ The Saltwater etch process]<br />
* [http://www.electro-tech-online.com/general-electronics-chat/33876-electro-etching-no-acid.html electro etching a PCB with vinegar, salt, and a 12 V power supply] (the copper etched off the PCB is plated on the anode?) -- however, other people claim that "You should not be using any acids (or basic 'acids') with your [electro] etcher at all. No FeCl no vinegar, etc ".[http://www.bladeforums.com/forums/showthread.php?t=671936]<br />
<br />
== Ferric Chloride ==<br />
This is the most common hobbyist etchant. Ferric chloride, FeCl<sub>3</sub>, is a brownish substance. It's usually sold in a bottle (dissolved in water, perhaps with a little acid or peroxide) or as a powder (which you have to dissolve in water).<br />
<br />
When in solution, ferric chloride is a ferric ion (Fe<sup>3+</sup>) and a chloride ion (Cl<sup>-</sup>). The ferric ion reacts with the metallic copper on the circuit board in a redox reaction, producing a ferrous ion (Fe<sup>2+</sup>) and cuprous or cupric (Cu<sup>1+</sup> or Cu<sup>2+</sup>) copper. The chlorine is just along for the ride. The copper ion, unlike the metallic copper, is soluble, so it leaves the circuit board and goes into solution. The reaction products form a black sludge which settles to the bottom of the etching tank. After etching enough copper, all your Fe<sup>3+</sup> is used up and your solution is full of Cu<sup>1+</sup>, and you need to get more etchant.<br />
<br />
== Ammonium Persulfate ==<br />
Expensive & hard to control and optimize the process parameters (such as specific gravity & pH value).<br />
<br />
== HydroChloric Acid / Hydrogen Peroxide ==<br />
<br />
Mixing about 1 part HCl (Which can be found at most hardware stores, also known as Muriatic Acid. Ask for concrete cleaner.) into 2 parts Hydrogen peroxide (normally used for cleaning cuts) you can make a fairly powerful etchant. Use gloves and don't breathe the fumes though. This will etch a 3"x5" board in less than 10 minutes. No need to heat it up. I usually like to drill a small hole through the board on a corner and thread a wire or nylon string through to help agitate / remove the board.<br />
<br />
When the board is done etching, the etchant will probably look like green kool-aid, from the copper content in it. This stuff is highly corrosive and will burn skin, which is why you should wear gloves. But it is easy to handle, and fairly easy to dispose of. the etchant is easily deactivated with baking soda. Pour enough baking soda into it slowly (to keep it from boiling and overflowing... remember what happens with baking soda/vinegar? ya...) until it is a solid mass, then leave it in the sun to dry. You should contact your local authorities to find out what you should do with it next. Whatever you do, DO NOT dump the stuff down the drain, it will eat through your pipes just like any of the other etchants.<br />
<br />
Alternatively, instead of disposing of the etchant, you can re-use it again and again. In fact, after etching a few boards with this solution, you will have successfully made [[Chemical Etchants#Acid Cupric Chloride|Acid Cupric Chloride]] (see below).<br />
You can also find a detailed tutorial on etching at [http://robotplatform.com/howto/pcb%20etching/pcb_etching_1.html Muriatic Acid etching tutorial]<br />
<br />
== Sodium Persulfate ==<br />
More environmentally friendly than ferric chloride. Can monitor the etching as initially clear new etchant solution turns blue from the copper ions.<br />
<br />
== Acid Cupric Chloride ==<br />
Dead simple etchant made from ordinary, store-bought chemicals (hydrochloric acid and hydrogen peroxide). Has the advantage that it can be regenerated by bubbling oxygen/air through it, or by adding more H<sub>2</sub>O<sub>2</sub>. In addition, it doesn't get used up: the etchant bath simply grows with use (kind of like sourdough starter…)<br />
The used etchant also makes a great algecide/pH reducer for your pool (and a whole lot cheaper than that stuff they sell at the pool store).<br />
<br />
What you need:<br />
* 38% Hydrochloric Acid, HCl (available at finer hardware stores or pool supply stores as Muriatic Acid)<br />
* 3% Hydrogen Peroxide, H<sub>2</sub>O<sub>2</sub> (available from any drug store)<br />
* Plastic or Glass Pans, Jars, and tongs (no metal)<br />
Directions:<br />
<br />
# Mix your HCl and H<sub>2</sub>O<sub>2</sub> 1:1 in a non-metalic container, making sure to add the acid slowly to the H<sub>2</sub>O<sub>2</sub>. DO NOT ADD THE H<sub>2</sub>O<sub>2</sub> TO THE ACID!!!<br />
# After you've masked your board, dip it in the solution and constantly agitate. You should notice a dark green cloud start to come from the board almost immedately which quickly dissapears or turns lighter as it gets further from the surface of the board.<br />
# Etching should take about 10min depending on the temperature and how well you agitated the etchant. When all of the copper is gone, dip in water to wash off any stray etchant and stop the reaction.<br />
# When done etching, save used etchant in a non-metalic container and mark clearly its contents.<br />
# If your etchant has become a dark, murky green color, add a little bit of H<sub>2</sub>O<sub>2</sub> or bubble air/O<sub>2</sub> through the solution to regenerate it back to a light, transparent green color.<br />
See links at bottom for more information on the chemistry and some pictures of the process.<br />
<br />
== Disposal procedures ==<br />
Flushing used etchant down the drain is a bad idea (and usually illegal) because copper ion is toxic. The usual recommended way to dispose of hobbyist amounts of etchant is to convert it to a solid somehow and dispose of the solid in accordance with local laws.<br />
<br />
== External Links == <br />
<br />
* [http://www.instructables.com/id/Sponge-Ferric-Chloride-Method-Etch-Circuit-Bo/ "Sponge + Ferric Chloride Method -- Etch PCBs in One Minute!"]<br />
* [http://www.k9spud.com/wiki/PCB:Etchants Ferric Chloride vs. Ammonium Persulfate] and other etching chemicals.<br />
* [http://members.optusnet.com.au/~eseychell/PCB/etching_CuCl/index.html Etching with Air Regenerated Acid Cupric Chloride] — an excellent in-depth page on acid cupric chloride etching by Adam Seychell.<br />
* [http://www.esmonde-white.com/home/diversions/etching-a-copper-pcb Etching a Copper PCB with HCl and H2O2]<br />
* [http://www.mgchemicals.com/ MG Chemicals] A possible source?<br />
* [http://reprap.org/wiki/MakePCBInstructions RepRap wiki: Make PCB instructions]<br />
<br />
== Internal Links ==<br />
<br />
<br />
*[[Toner Transfer]]<br />
*[[Techniques]]<br />
*[[Eagle Links]]<br />
<br />
<br />
[[Category:Techniques]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Basic_Voltage_Regulators&diff=90706Basic Voltage Regulators2024-01-08T21:01:22Z<p>DavidCary: link to related Open Circuits articles</p>
<hr />
<div><br />
<br />
<br />
[[Image:Main-LM1117.jpg|thumb|voltage regulator in (FIXME) package]]<br />
[[Image:Main-LM317.jpg|thumb|voltage regulator in TO-220 package]]<br />
[[Image:Main-LM7805.jpg|thumb|voltage regulator in TO-220 package]]<br />
<br />
<br />
<br />
<br />
A voltage regulator is an [[Integrated Circuits]] that converts "unregulated" input power into "regulated" output power at a fixed constant voltage. Input voltages should be at least 2V above output, and can range up to 30V. In the case of variable regulators, the larger the voltage drop, the larger the thermal output is. Heatsinking is strongly recommended for regulators, currents of 1-1.5A are achievable with proper heatsinks, and while regulators do feature an internal thermal cutoff, it should not be relied on to protect the regulator.<br />
<br />
The most commonly used linear regulators are listed below:<br />
<table border=1><br />
<tr><td></td> <td>Positive</td> <td>Negative</td> </tr><br />
<tr><td>3.3 V</td> <td>LM7833</td> <td>LM7933</td> </tr><br />
<tr><td>5V</td> <td>LM7805</td> <td>LM7905</td> </tr><br />
<tr><td>12V</td> <td>LM7812</td> <td>LM7912</td> </tr><br />
<tr><td>Variable</td> <td>LM317</td> <td>LM337</td> </tr><br />
</table><br><br />
<br />
Standard through-hole regulators typically come in TO-220 packages for low current, and TO-3P packages for currents above 1.5A. Heatsinking is typically easy, however note that regulators may or may not have a 'hot' tab, with the output electrically connected to the heatsinking tab, particularly in the case of older TO-3 metal can regulators. Electrical isolation is usually required for multiple regulators on the same heatsink -- a LM317 adjacent to a LM337 on a heatsink with the output tabs connected is a short circuit through the heatsink, causing high current and failure.<br />
<br />
<br />
As the LM7XXX series regulators are mass produced and relatively inexpensive, 200-500mV of noise can be expected. Manufacturer datasheets typically recommend a 10-100uF decoupling capacitor be placed between output and ground to smooth the output, and give voltages clean enough for TTL operation amongst other applications.<br><br><br />
<br />
Regulator pinouts are as follows:<br><br />
<table border=1><br />
<tr><td></td> <td>Pin 1</td> <td>Pin 2 and tab</td> <td>Pin 3</td></tr><br />
<tr><td>LM78XX Fixed</td> <td>Input</td> <td>Gnd</td> <td>Output</td></tr><br />
<tr><td>LM79XX Fixed</td> <td>Gnd</td> <td>Input</td> <td>Output</td></tr><br />
<tr><td>LM317 Adjustable</td> <td>Adj</td> <td>Output</td> <td>Input</td></tr><br />
<tr><td>LM337 Adjustable</td> <td>Adj</td> <td>Input</td> <td>Output</td></tr><br />
</table><br><br />
Note that positive regulators and negative regulators have different pinouts<br><br />
<br />
<b>Documents:</b><br><br />
The datasheets vary by vendor but most are similar if not identical. The 7805 and 7833 are what I call ''IGO'' regulators, because the pinouts are Input-Ground-Output when you are looking at the front.<br />
<br />
Even if your desired output voltage is less than your available input voltage, switching regulators and buck/boost regulators are more efficient, require a much smaller heat sink (if any), but are more complicated than linear voltage regulators.<br />
<br />
If you need an output voltage higher than the input voltage, you need a [[switching regulator]] -- it can't be done with a simple linear voltage regulator.<br />
<br />
<br />
[[Media:LM7805.pdf|LM7805 Datasheet]] - Good for the LM7833 as well.<br />
<br />
The LM317 and LM1117 are ''AOI'' regulators for the pins are Adjustment-Output-Input. Don't be afraid of using the variable regulators. Get a bag of 240Ohm resistors and then a handful of other values and you will be able to output 5V, 3.3V, and a range of other voltages with just a calculator and a resistor swap. Checkout the [[http://www.electronics-lab.com/articles/LM317/ LM317 calculator]] for more information.<br />
<br />
Note that <br />
<br />
The nice thing about the PTH (plated through hole) regulators, you can insert them directly into a bread board ''and'' you can heat sink these babies with nice TO-220 bolt-on type heat sink. With a heat sink, you can easily run 1A to 1.5A through these without long-term degredation.<br />
<br />
[[Media:LM317.pdf|LM317 Datasheet]]<br />
<br />
<b>Footprints:</b><br><br />
[[SFE_Footprint_Library|SFE Footprint Library]]<br />
<br />
FP Name: TO-220, TO-220 - ADJ, TO-220-Sinked, etc<br />
<br />
<b>Manufacturer Info:</b><br><br />
There are many mfgs for these basic v-regs.<br />
<br />
<b>Supplier Info:</b><br><br />
There are a whole range on Digikey and can range from ~0.50 to over $5 depending on the specs! Feel free to list prices and specs of the ones you discover and like to use.<br><br />
<br />
<b>Related Items:</b><br><br />
<br />
== Further reading ==<br />
<br />
* [[Switching regulator]]<br />
* [[The 723 Voltage Regulator]] and [[My Experience With The 723]]<br />
* [http://www.pmb.co.nz/psu_general_1.htm "Microcontroller Power Supplies"] from PMB Electronics.<br />
<br />
[[Category:Components]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=The_723_Voltage_Regulator&diff=90705The 723 Voltage Regulator2024-01-08T20:58:30Z<p>DavidCary: Basic Voltage Regulators</p>
<hr />
<div>== The 723 Voltage Regulator ==<br />
[[Image:UA723CN_Symbol.gif]]<br />
<br />
'''Description:'''<br />
<br />
The 723 is ancient in the world of IC voltage regulators. It is a 14-pin IC that needs some outboard components to tell it what to do. By itself it isn’t that impressive with a current capacity of 150mA, but with the addition of an external series pass transistor it can control whatever current the transistor can handle. It is designed primarily to be used as a positive regulator, but it can also be made to function as a negative regulator. In addition, although it is rated to 37 volts, it can be used in a “floating” mode and regulate voltages above that limit. All in all, I’ve found it to be a very stable, precise, and versatile device.<br />
<br />
The main IC: LM723 is specified at temperatures from -55°C to +125°C. This chip is a little harder to find, and is more expensive than the LM723C which is exactly the same (as far as I know) but for the temperature spec which is from 0°C to +70°C.<br />
<br />
The document: “The Many Talented 723" by Glen Prescott was my introduction to using the 723. The article was published in the August 1979 edition of 73 Magazine, and may be viewed at archive.org here: [http://archive.org/stream/73-magazine-1979-08/08_August_1979#page/n65/mode/2up]<br />
<br />
“[[My Experience With The 723]]” by Roger Furer is my own story of the different regulator circuits I’ve built with it and includes links to schematics and PC Board layouts. (Coming Soon)<br />
<br />
'''Documents:'''<br />
<br />
Several companies manufacture the LM723, but the data sheets are pretty much the same.<br />
<br />
Texas Instruments calls it the µA723:<br />
[http://focus.ti.com/lit/ds/symlink/ua723.pdf]<br />
<br />
National Semiconductor calls it the LM723 and LM723C (reduced temperature version)<br />
[http://cache.national.com/ds/LM/LM723.pdf]<br />
<br />
On Semiconductor never heard of it, but ST Microelectronics makes the LM723 (with various suffixes)<br />
[http://www.st.com/stonline/products/literature/ds/4553/lm723.pdf]<br />
<br />
'''Footprints:'''<br />
<br />
It is available as a 14-pin DIP from everyone. In a metal can: H10C from National, and as an SO-14 from STM and TI. There may be other packages available from other manufacturers, but I limited my search to these three. Note that only the DIP-14 package has the Vz pin--the output from the zener diode which is used for negative regulators. The metal can and the flat-pack do not have enough pins and so they skip this one.<br />
<br />
'''Manufacturer Info:'''<br />
<br />
'''Note: '''<br />
The LM723C is identical to the LM723 except that the LM723C has its performance guaranteed over a 0̊C to +70̊C temperature range, instead of −55̊C to +125̊C.<br />
<br />
<br />
National Semiconductor part # :<br />
<br />
LM723H, LM723H/883, or LM723CH : Metal Can Package (H), NS Package H10C<br />
<br />
LM723J/883 : Ceramic Dual-In-Line Package (J), NS Package J14A<br />
<br />
LM723CN : Molded Dual-In-Line Package (N), NS Package N14A<br />
<br />
<br />
ST Microelectronics part # :<br />
<br />
LM723N : DIP-14<br />
<br />
LM723CN : DIP-14<br />
<br />
LM723CD : SO-14<br />
<br />
<br />
Texas Instruments part # :<br />
<br />
µA723CN : Plastic DIP (N),<br />
<br />
µA723CD : Small Outline (D)<br />
<br />
<br />
NTE makes a substitute: NTE923<br />
<br />
'''Supplier Info:'''<br />
<br />
'''Jameco'''<br />
<br />
Major Brands<br />
<br />
LM723CN, DIP-14, Jameco part# : 24467, price: 1+ 0.34<br />
<br />
LM723H, TO-5, Jameco part# : 301719, price: 1+ 3.69<br />
<br />
Texas Instruments<br />
<br />
UA723CDE4 Jameco part# : 1129851, price: 50+ 0.319<br />
<br />
UA723CNE4 Jameco part# : 1129914, price: 1000+ 0.295<br />
<br />
<br />
National Semiconductor<br />
<br />
LM723CN/NOPB Jameco part# : 840691, price: 10+ 0.482<br />
<br />
<br />
<br />
'''Mouser'''<br />
<br />
Fairchild Semiconductor<br />
<br />
KA723, DIP-14 Mouser part# : 512-KA723, price: 1+ .67<br />
<br />
KA723DTF, SOP-14 Mouser part# : 512-KA723DTF, price: 1+ .67<br />
<br />
<br />
ST Microelectronics<br />
<br />
LM723CD, SO-14 Mouser part# : 511-LM723CD, price: 1+ .38<br />
<br />
LM723CN, DIP-14 Mouser part# : 511-LM723CN, price: 1+ .32<br />
<br />
LM723N, DIP-14 Mouser part# : 511-LM723N, price: 1+ .64<br />
<br />
Texas Instruments<br />
UA723CN, DIP-14 Mouser part# : 595-UA723CN, price: 1+ .53<br />
<br />
<br />
'''Digikey'''<br />
<br />
National Semiconductor<br />
<br />
LM723CH/NOPB, TO-5 Digikey part # : LM723CH-ND, price: 1+ 5.48<br />
<br />
LM723H, TO-5 Digikey part # : LM723H-ND, price: 1+ 5.48<br />
<br />
LM723CN/NOPB, DIP-14 Digikey part # : LM723CNNS-ND, price: 1+ 1.12<br />
<br />
<br />
ST Microelectronics<br />
<br />
LM723N, DIP-14 Digikey part # : 497-4268-5-ND, price: 1+ 0.99<br />
<br />
LM723CD, 14-SOIC Digikey part # : 497-1595-5-ND, price: 1+ 0.86<br />
<br />
<br />
there are more, but you get the idea.<br />
<br />
== further reading ==<br />
<br />
* [[Basic Voltage Regulators]]<br />
* [http://www.midcoast.com.au/~paulb/faq_723.html "Power supply design with the LM723"] by Paul B. Webster VK2BZC<br />
* [http://www.circuitcellar.com/archives/viewable/Popov206/2.html "Smart Power: An Intelligent Power Supply for Embedded Systems"] by Alexander Popov & Jordan Popov, "Circuit Cellar" September 2007; uses a LM723 voltage regulator.<br />
* [https://electronics.stackexchange.com/questions/696661/what-are-the-tradeoffs-between-npn-vs-pnp-power-transistors "What are the tradeoffs between NPN vs PNP power transistors... {with} a linear power supply design leveraging the uA723 regulator... ?"].<br />
<br />
<br />
[[Category:Components]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=The_723_Voltage_Regulator&diff=90704The 723 Voltage Regulator2024-01-08T20:56:00Z<p>DavidCary: comparing 723 with NPN vs 723 with PNP</p>
<hr />
<div>== The 723 Voltage Regulator ==<br />
[[Image:UA723CN_Symbol.gif]]<br />
<br />
'''Description:'''<br />
<br />
The 723 is ancient in the world of IC voltage regulators. It is a 14-pin IC that needs some outboard components to tell it what to do. By itself it isn’t that impressive with a current capacity of 150mA, but with the addition of an external series pass transistor it can control whatever current the transistor can handle. It is designed primarily to be used as a positive regulator, but it can also be made to function as a negative regulator. In addition, although it is rated to 37 volts, it can be used in a “floating” mode and regulate voltages above that limit. All in all, I’ve found it to be a very stable, precise, and versatile device.<br />
<br />
The main IC: LM723 is specified at temperatures from -55°C to +125°C. This chip is a little harder to find, and is more expensive than the LM723C which is exactly the same (as far as I know) but for the temperature spec which is from 0°C to +70°C.<br />
<br />
The document: “The Many Talented 723" by Glen Prescott was my introduction to using the 723. The article was published in the August 1979 edition of 73 Magazine, and may be viewed at archive.org here: [http://archive.org/stream/73-magazine-1979-08/08_August_1979#page/n65/mode/2up]<br />
<br />
“[[My Experience With The 723]]” by Roger Furer is my own story of the different regulator circuits I’ve built with it and includes links to schematics and PC Board layouts. (Coming Soon)<br />
<br />
'''Documents:'''<br />
<br />
Several companies manufacture the LM723, but the data sheets are pretty much the same.<br />
<br />
Texas Instruments calls it the µA723:<br />
[http://focus.ti.com/lit/ds/symlink/ua723.pdf]<br />
<br />
National Semiconductor calls it the LM723 and LM723C (reduced temperature version)<br />
[http://cache.national.com/ds/LM/LM723.pdf]<br />
<br />
On Semiconductor never heard of it, but ST Microelectronics makes the LM723 (with various suffixes)<br />
[http://www.st.com/stonline/products/literature/ds/4553/lm723.pdf]<br />
<br />
'''Footprints:'''<br />
<br />
It is available as a 14-pin DIP from everyone. In a metal can: H10C from National, and as an SO-14 from STM and TI. There may be other packages available from other manufacturers, but I limited my search to these three. Note that only the DIP-14 package has the Vz pin--the output from the zener diode which is used for negative regulators. The metal can and the flat-pack do not have enough pins and so they skip this one.<br />
<br />
'''Manufacturer Info:'''<br />
<br />
'''Note: '''<br />
The LM723C is identical to the LM723 except that the LM723C has its performance guaranteed over a 0̊C to +70̊C temperature range, instead of −55̊C to +125̊C.<br />
<br />
<br />
National Semiconductor part # :<br />
<br />
LM723H, LM723H/883, or LM723CH : Metal Can Package (H), NS Package H10C<br />
<br />
LM723J/883 : Ceramic Dual-In-Line Package (J), NS Package J14A<br />
<br />
LM723CN : Molded Dual-In-Line Package (N), NS Package N14A<br />
<br />
<br />
ST Microelectronics part # :<br />
<br />
LM723N : DIP-14<br />
<br />
LM723CN : DIP-14<br />
<br />
LM723CD : SO-14<br />
<br />
<br />
Texas Instruments part # :<br />
<br />
µA723CN : Plastic DIP (N),<br />
<br />
µA723CD : Small Outline (D)<br />
<br />
<br />
NTE makes a substitute: NTE923<br />
<br />
'''Supplier Info:'''<br />
<br />
'''Jameco'''<br />
<br />
Major Brands<br />
<br />
LM723CN, DIP-14, Jameco part# : 24467, price: 1+ 0.34<br />
<br />
LM723H, TO-5, Jameco part# : 301719, price: 1+ 3.69<br />
<br />
Texas Instruments<br />
<br />
UA723CDE4 Jameco part# : 1129851, price: 50+ 0.319<br />
<br />
UA723CNE4 Jameco part# : 1129914, price: 1000+ 0.295<br />
<br />
<br />
National Semiconductor<br />
<br />
LM723CN/NOPB Jameco part# : 840691, price: 10+ 0.482<br />
<br />
<br />
<br />
'''Mouser'''<br />
<br />
Fairchild Semiconductor<br />
<br />
KA723, DIP-14 Mouser part# : 512-KA723, price: 1+ .67<br />
<br />
KA723DTF, SOP-14 Mouser part# : 512-KA723DTF, price: 1+ .67<br />
<br />
<br />
ST Microelectronics<br />
<br />
LM723CD, SO-14 Mouser part# : 511-LM723CD, price: 1+ .38<br />
<br />
LM723CN, DIP-14 Mouser part# : 511-LM723CN, price: 1+ .32<br />
<br />
LM723N, DIP-14 Mouser part# : 511-LM723N, price: 1+ .64<br />
<br />
Texas Instruments<br />
UA723CN, DIP-14 Mouser part# : 595-UA723CN, price: 1+ .53<br />
<br />
<br />
'''Digikey'''<br />
<br />
National Semiconductor<br />
<br />
LM723CH/NOPB, TO-5 Digikey part # : LM723CH-ND, price: 1+ 5.48<br />
<br />
LM723H, TO-5 Digikey part # : LM723H-ND, price: 1+ 5.48<br />
<br />
LM723CN/NOPB, DIP-14 Digikey part # : LM723CNNS-ND, price: 1+ 1.12<br />
<br />
<br />
ST Microelectronics<br />
<br />
LM723N, DIP-14 Digikey part # : 497-4268-5-ND, price: 1+ 0.99<br />
<br />
LM723CD, 14-SOIC Digikey part # : 497-1595-5-ND, price: 1+ 0.86<br />
<br />
<br />
there are more, but you get the idea.<br />
<br />
== further reading ==<br />
<br />
* [http://www.midcoast.com.au/~paulb/faq_723.html "Power supply design with the LM723"] by Paul B. Webster VK2BZC<br />
* [http://www.circuitcellar.com/archives/viewable/Popov206/2.html "Smart Power: An Intelligent Power Supply for Embedded Systems"] by Alexander Popov & Jordan Popov, "Circuit Cellar" September 2007; uses a LM723 voltage regulator.<br />
* [https://electronics.stackexchange.com/questions/696661/what-are-the-tradeoffs-between-npn-vs-pnp-power-transistors "What are the tradeoffs between NPN vs PNP power transistors... {with} a linear power supply design leveraging the uA723 regulator... ?"].<br />
<br />
<br />
[[Category:Components]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Chemical_Etchants&diff=90683Chemical Etchants2023-11-26T05:13:07Z<p>DavidCary: Reverted edits by 23.230.11.227 (talk) to last revision by DavidCary</p>
<hr />
<div>{{stub}}<br />
<br />
Chemical etching is one step of some popular [[techniques | PCB fabrication techniques]].<br />
<br />
In this technique,<br />
* one starts with a copper-clad board.<br />
* one puts a mask over all the copper he want to keep. There are a variety of ways to do this -- see [[Toner Transfer]] and [[Photoetching]].<br />
* one removes the parts he don't want to keep, by chemically etching away the copper.<br />
* cleanup: wash off the board in the sink; carefully store or dispose of the acid.<br />
<br />
There are a lot of different chemical techniques for doing this, each with its own advantages and drawbacks.<br />
<br />
None of these chemicals is incredibly dangerous, but they can all be toxic or caustic, and should be treated with care. Eye protection and gloves are a very good idea. Before you start, make sure you know how dangerous each chemical is, and figure out what you will need to do if you spill it or get it on yourself. Washing with plenty of water is usually a good start. For some chemicals you may want to keep a neutralizing agent handy. An MSDS (Materials Safety Data Sheet) for the chemical will give you some basic information.<br />
<br />
== vinegar and salt ==<br />
<br />
* [http://www.kobakant.at/DIY/?p=2575 How to get what you want: Salt and Vinegar Etching]<br />
* [http://www.flickr.com/photos/jeanbaptisteparis/4831465916/ smt pcb with Salt and Vinegar]<br />
* [http://www.instructables.com/id/The-Saltwater-etch-process/ The Saltwater etch process]<br />
* [http://www.electro-tech-online.com/general-electronics-chat/33876-electro-etching-no-acid.html electro etching a PCB with vinegar, salt, and a 12 V power supply] (the copper etched off the PCB is plated on the anode?) -- however, other people claim that "You should not be using any acids (or basic 'acids') with your [electro] etcher at all. No FeCl no vinegar, etc ".[http://www.bladeforums.com/forums/showthread.php?t=671936]<br />
<br />
== Ferric Chloride ==<br />
This is the most common hobbyist etchant. Ferric chloride, FeCl<sub>3</sub>, is a brownish substance. It's usually sold in a bottle (dissolved in water, perhaps with a little acid or peroxide) or as a powder (which you have to dissolve in water).<br />
<br />
When in solution, ferric chloride is a ferric ion (Fe<sup>3+</sup>) and a chloride ion (Cl<sup>-</sup>). The ferric ion reacts with the metallic copper on the circuit board in a redox reaction, producing a ferrous ion (Fe<sup>2+</sup>) and cuprous or cupric (Cu<sup>1+</sup> or Cu<sup>2+</sup>) copper. The chlorine is just along for the ride. The copper ion, unlike the metallic copper, is soluble, so it leaves the circuit board and goes into solution. The reaction products form a black sludge which settles to the bottom of the etching tank. After etching enough copper, all your Fe<sup>3+</sup> is used up and your solution is full of Cu<sup>1+</sup>, and you need to get more etchant.<br />
<br />
== Ammonium Persulfate ==<br />
Expensive & hard to control and optimize the process parameters (such as specific gravity & pH value).<br />
<br />
== HydroChloric Acid / Hydrogen Peroxide ==<br />
<br />
Mixing about 1 part HCl (Which can be found at most hardware stores, also known as Muriatic Acid. Ask for concrete cleaner.) into 2 parts Hydrogen peroxide (normally used for cleaning cuts) you can make a fairly powerful etchant. Use gloves and don't breathe the fumes though. This will etch a 3"x5" board in less than 10 minutes. No need to heat it up. I usually like to drill a small hole through the board on a corner and thread a wire or nylon string through to help agitate / remove the board.<br />
<br />
When the board is done etching, the etchant will probably look like green kool-aid, from the copper content in it. This stuff is highly corrosive and will burn skin, which is why you should wear gloves. But it is easy to handle, and fairly easy to dispose of. the etchant is easily deactivated with baking soda. Pour enough baking soda into it slowly (to keep it from boiling and overflowing... remember what happens with baking soda/vinegar? ya...) until it is a solid mass, then leave it in the sun to dry. You should contact your local authorities to find out what you should do with it next. Whatever you do, DO NOT dump the stuff down the drain, it will eat through your pipes just like any of the other etchants.<br />
<br />
Alternatively, instead of disposing of the etchant, you can re-use it again and again. In fact, after etching a few boards with this solution, you will have successfully made [[Chemical Etchants#Acid Cupric Chloride|Acid Cupric Chloride]] (see below).<br />
You can also find a detailed tutorial on etching at [http://robotplatform.com/howto/pcb%20etching/pcb_etching_1.html Muriatic Acid etching tutorial]<br />
<br />
== Sodium Persulfate ==<br />
More environmentally friendly than ferric chloride. Can monitor the etching as initially clear new etchant solution turns blue from the copper ions.<br />
<br />
== Acid Cupric Chloride ==<br />
Dead simple etchant made from ordinary, store-bought chemicals (hydrochloric acid and hydrogen peroxide). Has the advantage that it can be regenerated by bubbling oxygen/air through it, or by adding more H<sub>2</sub>O<sub>2</sub>. In addition, it doesn't get used up: the etchant bath simply grows with use (kind of like sourdough starter…)<br />
The used etchant also makes a great algecide/pH reducer for your pool (and a whole lot cheaper than that stuff they sell at the pool store).<br />
<br />
What you need:<br />
* 38% Hydrochloric Acid, HCl (available at finer hardware stores or pool supply stores as Muriatic Acid)<br />
* 3% Hydrogen Peroxide, H<sub>2</sub>O<sub>2</sub> (available from any drug store)<br />
* Plastic or Glass Pans, Jars, and tongs (no metal)<br />
Directions:<br />
<br />
# Mix your HCl and H<sub>2</sub>O<sub>2</sub> 1:1 in a non-metalic container, making sure to add the acid slowly to the H<sub>2</sub>O<sub>2</sub>. DO NOT ADD THE H<sub>2</sub>O<sub>2</sub> TO THE ACID!!!<br />
# After you've masked your board, dip it in the solution and constantly agitate. You should notice a dark green cloud start to come from the board almost immedately which quickly dissapears or turns lighter as it gets further from the surface of the board.<br />
# Etching should take about 10min depending on the temperature and how well you agitated the etchant. When all of the copper is gone, dip in water to wash off any stray etchant and stop the reaction.<br />
# When done etching, save used etchant in a non-metalic container and mark clearly its contents.<br />
# If your etchant has become a dark, murky green color, add a little bit of H<sub>2</sub>O<sub>2</sub> or bubble air/O<sub>2</sub> through the solution to regenerate it back to a light, transparent green color.<br />
See links at bottom for more information on the chemistry and some pictures of the process.<br />
<br />
== Disposal procedures ==<br />
Flushing used etchant down the drain is a bad idea (and usually illegal) because copper ion is toxic. The usual recommended way to dispose of hobbyist amounts of etchant is to convert it to a solid somehow and dispose of the solid in accordance with local laws.<br />
<br />
== External Links == <br />
<br />
* [http://www.instructables.com/id/Sponge-Ferric-Chloride-Method-Etch-Circuit-Bo/ "Sponge + Ferric Chloride Method -- Etch PCBs in One Minute!"]<br />
* [http://www.k9spud.com/wiki/PCB:Etchants Ferric Chloride vs. Ammonium Persulfate] and other etching chemicals.<br />
* [http://members.optusnet.com.au/~eseychell/PCB/etching_CuCl/index.html Etching with Air Regenerated Acid Cupric Chloride] — an excellent in-depth page on acid cupric chloride etching by Adam Seychell.<br />
* [http://www.esmonde-white.com/home/diversions/etching-a-copper-pcb Etching a Copper PCB with HCl and H2O2]<br />
* [http://www.mgchemicals.com/ MG Chemicals] A possible source?<br />
* [http://reprap.org/wiki/MakePCBInstructions RepRap wiki: Make PCB instructions]<br />
<br />
== Internal Links ==<br />
<br />
<br />
*[[Toner Transfer]]<br />
*[[Techniques]]<br />
*[[Eagle Links]]<br />
<br />
<br />
[[Category:Techniques]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Ideas&diff=90672Ideas2023-11-14T00:18:35Z<p>DavidCary: link to more quasi-standard power jack ideas</p>
<hr />
<div>Got an idea about electronics development?<br />
Add it to the list!<br />
<br />
* ''Add new ideas here, to the top of the list''<br />
<br />
* [http://visualthinkingart.blogspot.com/2006/01/portable-context-device.html Portable Context Device]<br />
* Open power connector for [[mobile phone]]s, [[PDA]]s and laptops. ''(Wikipedia lists [http://en.wikipedia.org/wiki/DC_plug a variety of connectors] -- or were you looking for an AC [http://en.wikipedia.org/wiki/Power_connector power connector]? What sort of specification do you want?)''<br />
* "Open Source Disability Gadgets: DIY for PWD" [http://panelpicker.sxsw.com/ideas/view/1745] "Gear and software for people with disabilities is usually provided through charity or from medical supply companies. It's hard or impossible to repair it, or get anyone to repair it. We need to hack the model for accessibility tools! With a culture of open source designs, Instructables, wikis, and blogs, we can start an international movement."<br />
* Maybe we should have a page on "bus termination". The "1/10 speed of light" rule of thumb; theoretical optimum "impedance matching" parallel end termination resistor; the advantages of (series) source termination over end termination (lower power, less EMI); Schottky diode termination clamps (lower power; protects against ESD). Also other things people put at the end of long cables -- stuff to deal with accidental electrostatic discharge (ESD); various ways to bias differential pairs so that "cable unplugged" doesn't cause lots of unwanted noise glitches; various ways of connecting the shield of shielded cables at one end or the other end or both; galvanic isolation -- MIDI-like opto-isolation; Ethernet-like transformer isolation -- etc. Perhaps a brief summary of the best answers from [http://electronics.stackexchange.com/questions/tagged/termination questions tagged "termination"] and [http://electronics.stackexchange.com/questions/tagged/signal-integrity questions tagged "signal-integrity"] would be good?<br />
<br />
== open design laptop ==<br />
: ''main: [[PC#open laptop]]''<br />
<br />
* Open design laptop (you can replace the components). ''(see [http://communitywiki.org/odd/ComputerComponent/CustomNotebook computer component wiki: custom notebook])''<br />
<br />
-- OCZ has an open design customizable laptop [http://www.ocztechnology.com/products/diy_notebooks/ here]. --BlueFusion<br />
<br />
''How do I make a laptop with 2 independent internal disk drives (so I can do RAID 1)? --[[User:DavidCary|DavidCary]] 21:31, 5 September 2008 (PDT)''<br />
<br />
== better data cable ideas ==<br />
<br />
* Open data cable. Random good ideas: "One under-appreciated attribute is that the moving parts of the connector are on the cable side, not the system side; when the connector begins to show some wear and tear, the cable is thrown away, not the PC (or printer, or disk drive, or camera)." -- Michael Teener [http://www.commsdesign.com/main/multsupp/0002/0002fire.htm] ... Many popular data cables also include power (Power over Ethernet, FireWire -- but not the iLink variant, USB)... What voltage? extra-low voltage [http://en.wikipedia.org/wiki/Extra-low_voltage]? ... Is it better to have the same connector on both ends of the cable, or have different connectors? Same connector allows peer-to-peer arbitrary mesh; different connectors afford/suggest a tree topology ... putting 2 connectors on every device, "upstream" and "downstream", allows linear daisy-chaining; 3 identical connectors allow any arbitrary-dimensional topology ... the round pins vs. flat blades (vs. other connector shapes) controversy[http://en.wikipedia.org/wiki/Talk:Domestic_AC_power_plugs_and_sockets#round_pins_vs_flat_blades] ... optical isolation (like MIDI hardware) seems like a good idea ...<br />
<br />
* When someone trips over the cable, destruction of the fixed socket is unacceptable -- but is it better to destroy the cable, or to let the cable pop out -- like [http://en.wikipedia.org/wiki/MagSafe MagSafe]? ... twisted pair for power, and twisted pair for data ... Some data line codes (such as the one used for USB) are designed to work even when the twisted pair is accidentally twisted an extra half-twist; is it worth arranging things so the entire plug can be plugged in with an extra half-twist with no problems (like automobile keys and MagSafe) ? ... What's this I hear about non-contact power pads?<br />
<br />
<br />
"What we would like to see is one cable that carries audio, video and power to or from whatever device you need to use. It needs to be small, it needs to have tremendous bandwidth (perhaps using fiber optics), and it needs to be smart enough not to ruin anything you plug it into. ... Please, someone round up all the consumer electronics manufacturers, and somehow make them all use the same connectors."<br />
--<br />
[http://gizmodo.com/gadgets/allgizwants/all-giz-wants-one-plug-for-everything-335155.php Gizmodo].<br />
<br />
Some commenters on Gizmodo have some interesting ideas:<br />
* wireless for all data, wires only for power<br />
* use a standard power connector -- [http://greenplug.us/ Green Plug]<br />
* fiber<br />
* "something can be really good new, but how many tests have there been which rate performance over time? Especially with in-wall installations, this may be a very serious issue."<br />
* "You can already do everything on a CAT5e cable network ... the next version of the PoE spec is supposed to allow for 56 watts of power per cable, which is more than enough for hard drives and such."<br />
* "You already have it, its called FireWire."<br />
* "we already had one cable for everything. It was coax. It was used for audio, video, even networking. But then people wanted better. The that pretty much messed everything up. Stop wanting more and you'll be fine."<br />
<br />
A few commenters on Gizmodo seem to think it is impossible or unfeasible.<br />
* "If it does all of that at the same time, it will need to somehow send and receive data at the same time- is that possible?"<br />
* "This whole concept is ridiculous..."<br />
* "There's money to be made in chaos."<br />
* "some cables need a lot of pins and some don't and it would be silly to have a 24 pin connector for USB for instance, and it would be costly to have cables that have lots of pointless wires in it."<br />
* "power inside the transmission cable? thats just asking for interference."<br />
<br />
Related:<br />
* [[Connectors]]<br />
[[Category:Connectors]]<br />
<br />
Understanding how cables fail might help us design better ones:<br />
* [http://anandtech.com/storage/showdoc.aspx?i=3185 "A Lesson in User Failure: Investigating the Serial ATA Connector"] by Ryan Smith 2008<br />
* "If I were a manufacturer of a delicate, expensive, high-quality precision instrument, I would design one-way connectors, so they could not be plugged in the wrong way. But Caviar does not share this philosophy." -- Carla Schroder<br />
<br />
== LaTeX circuit diagramme markup ==<br />
:Hello, I've just joined!<br />
:I've just started using PmWiki as a "MyWiki" (home CMS/PIM offline personal desktop intranet wiki)(I've decided to call it a "MyWiki" rather than keep reeling off a description!)<br />
:One of my main objectives in using this is to write up my electronics degree notes and sort of build my own encyclopaedia. Naturally, that means you have to use LaTex (haven't quite got MathML or jsMath to do as their told, but they work well enough for the meantime); and use of GraphViz is on the agenda for making block diagrammes, flowcharts; and (I hope!) making bode plots, smith charts, simulated 'scope readings, and what I'd really like is to make actual analogue circuits just by markup. I'm only just learning Java, and my PHP knowledge is pretty rank. Does anyone share my interest and want to set up a team to work on this problem? I think it'd be a great addition to this wiki as well!<br />
:cheers! [[User:212.159.117.182|212.159.117.182]] 04:28, 29 November 2008 (PST)<br />
<br />
That sounds like a great idea.<br />
I see that Wikipedia's "WikiProject Electronics" is taking a few small steps in that direction.<br />
Have you seen<br />
[http://en.wikipedia.org/wiki/Wikipedia:WikiProject_Electronics#Drawing_circuits Wikipedia: WikiProject Electronics#Drawing circuits]<br />
and<br />
[http://en.wikipedia.org/wiki/Wikipedia:WikiProject_Electronics/Programs Wikipedia: WikiProject Electronics/Programs]<br />
?<br />
And the [[Techniques#Software_design_tools]] already available?<br />
--[[User:DavidCary|DavidCary]] 19:54, 14 December 2008 (PST)<br />
<br />
The [http://home.dei.polimi.it/mredaelli/circuitikz/index.html CircuiTikz] package for LaTeX can be used to draw circuit diagrams.<br />
--[[Special:Contributions/66.245.11.48|66.245.11.48]] 07:25, 24 December 2009 (UTC)<br />
<br />
-----<br />
<br />
== Multi PIO interface ==<br />
<br />
I've been thinking about this idea for a while now, but I don't have the time, resources, or software coding expertise to see it into existence. The concept is sort of like Arduino, but would ease several limitations such as I/O bandwidth and program size. It could streamline embedded system development or make it possible for an old PC to to become the heart of very sophisticated projects. It could have the following features:<br />
<br />
* 64 (or some other arbitrary number) lines of I/O which can be configured as:<br />
** TTL input<br />
** TTL output<br />
** Analog input<br />
** Analog output<br />
** PWM output<br />
* Multiple design versions (sharing a common code/design base):<br />
** USB<br />
** SPI<br />
** PCI<br />
** I<sup>2</sup>C<br />
* Fully open design/source - both hardware, and software<br />
* Built from easily accessible (and preferably inexpensive) parts<br />
* APIs for a variety of programming/scripting languages<br />
(Please expand this list if you have an idea!)<br />
<br />
<br />
There are a number of microcontrollers that could do the task with very few support components. Determining which one is right for the job would take a bit of reflection.<br />
<br />
It would have hundreds of applications, and have enough I/O to perform several of them at once. It could be used to collect input and turn switches on and off for a simple home control system or run a model train set. It could be used to create software implementations of obscure communications protocols (such as [http://en.wikipedia.org/wiki/Wiegand_protocol Wiegand]). It could be used to build very complex robots.<br />
<br />
--[[User:Dovregubben|Dovregubben]] 06:04, 12 June 2009 (UTC)<br />
<br />
: Sounds like a great idea.<br />
: I've been thinking about building something vaguely like this, based on the [http://en.wikipedia.org/wiki/Parallax_Propeller Parallax Propeller].<br />
: However, it looks like someone took all your cool ideas and crammed them into the [http://arduino.cc/en/Main/ArduinoBoardMega the Arduino Mega]. The Arduino Mega has 54 digital input/output pins (of which 14 can be used as PWM outputs, another 8 can be used as 4 independent hardware UARTS, and 2 more can be used as an I2C port), 16 analog inputs, and a USB port. I think it also [http://www.arduino.cc/playground/Code/Spi supports SPI].<br />
: Is there anything else you wanted to do that the Arduino Mega can't do? --[[User:DavidCary|DavidCary]] 04:14, 24 June 2009 (UTC)<br />
<br />
<br />
== open power connector ==<br />
<br />
: ''See also: [[connectors]]''.<br />
<br />
I wish there was some kind of standardized set of power plugs, such that a 12 V power plug obviously would not fit in an incompatible socket<br />
<br />
Even better would be an even more restricted standard, such that there wouldn't be a dozen different voltages available between 1 V and 100 V, but instead only one or a few voltages, such that randomly swapping power adapters I would have a much better chance that everything "just works".<br />
<br />
Is there an optimum shape for the power connector?<br />
<br />
Some contenders for the "best" power connector:<br />
<br />
* Many ham radio operators make all their equipment run on 12 V and a red/black Anderson Powerpole connector. [http://en.wikipedia.org/wiki/DC_connector#Anderson_Powerpole_connectors Wikipedia: DC connector#Anderson Powerpole connectors]<br />
* [[Barrel Power Jack]]. <br />
* Dale Davis makes all his equipment run off 12 V, and uses a standard cable everywhere with identical barrel power plugs -- center positive, barrel ground -- at both ends. [[Barrel Power Jack]]. The outer barrel is ground so that if a one end of the cord is plugged into 12 V power supply and the other end touches a metal case (which is always grounded), it's harmless. A nice feature of barrel plugs is that you can plug them in at any angle, and it Just Works.<br />
** [https://www.youtube.com/watch?v=eIJDOeSTQgM "Hacking a Dymo Letratag to run on a normal 12v adapter"]. ZL3CLV prefers barrel jacks center-positive, barrel-negative 12 V power, and re-wires things to make them conform.<br />
* The [http://greenplug.us/ Green Plug] universal power adapter<br />
* [http://www.myaups.org/ The Alliance for Universal Power Supplies]<br />
* Some people are using USB cables and USB host sockets as a "universal" source of (small amounts of) 5V power, by default 150 mA (0.75 W); with smart negotiation up to 900 mA (4.5 W).<br />
** [http://lifehacker.com/5303800/remains-of-the-day-europeans-charge-each-others-phones-edition "Europeans Charge Each Other's Phones"]: "All the major cellphone providers of Europe, including Apple, agreed to make phones powered by micro-USB charging slots going forward."<br />
* Some people are using special [http://en.wikipedia.org/wiki/Powered_USB "powered USB"] sockets and cables to carry 12 V at 6 A = 72 W.<br />
* Some people are using CAT5e Ethernet cables and power-over-Ethernet (PoE) as a convenient source of up to 30W of DC power.<br />
* "wireless power transfer" pad.<br />
<br />
power connector review:<br />
Stefan Vorkoetter<br />
([http://www.stefanv.com/rcstuff/qf200001.html "Electric Flight Power Connectors"] 2006)<br />
reviews several kinds of power connectors,<br />
points out some non-obvious features that are nice to have in a power connector,<br />
and makes some recommendations on which to use and which to avoid.<br />
<br />
* https://douglasadams.com/dna/980707-03-a.html "Dongly Things"] by Douglas Adams: "Time to declare war, I think, on little dongly things. ... a possible DC power standard. ... we should probably just be grateful that it was designed by a car mechanic in an afternoon and not a computer industry standards committee ... Keep the voltage level, design a new, small, plug and you have a new standard. ...". Published MacWorld magazine; September 1996 (p. 140).<br />
<br />
Is it possible for the device to "negotiate" for exactly the voltage it needs, such that the same power adapter provides different voltages to different devices?<br />
* Perhaps the device could include a resistor+zener voltage divider to produce a feedback voltage precisely half of the voltage it desires?<br />
* Perhaps the device could include a resistor+resistor voltage divider or resistor+zener voltage divider to produce a feedback voltage precisely 1.25 V lower than the voltage it desires, so a LM317 or equivalent regulator will produce exactly the desire voltage?<br />
* ... in such a way that the power adapter automatically produces 0 V or "disconnected" soon after any device is unplugged. (hmm.. that would not be the case using the LM317...)<br />
* What do we need to do, ahead of time, to design things so they don't overheat, posing a safety risk? (Rather than, say, finding out problems after they are in the field, and issuing a recall).<ref><br />
[http://www.bbc.com/news/technology-28956813 "HP recalls more than six million power cords"]<br />
</ref><br />
* ... ?<br />
<br />
== micro controller based voip client ==<br />
A wireless micro controller based voip device, capable of working independently of a full blown computer system.<br />
<br />
== Model Rocket Launch Controller ==<br />
I know, there are a bunch of these projects on the web, but a good, truly open source one can't hurt. Plus, I'd like to develop one with an optional, largish countdown timer display for public launch days. (which I have seen talked about, but never written up well)<br />
<br />
Some possible features:<br />
- A "hold-to-fire" or deadman safety switch<br />
- Pressing the FIRE button actually starts an auto sequence that counts down from a pre-programed time and then fires<br />
- key-locking safety arm switch<br />
- LCD or LED display at firing position<br />
- remote countdown timer(s) for audience<br />
- controller and accessories pack into sturdy, weather-tight case for transport/storage<br />
- ability to control/sequence multiple firings(?)<br />
- GO/NO-GO polling/voting system and display(?)<br />
<br />
Reference material:<br />
- http://northackton.stdin.co.uk/blog/2010/07/arduino-rocket-launcher/<br />
<br />
Possible pieces:<br />
- 6.5" Seven-segment Displays (reported visible for ~100') http://www.sparkfun.com/commerce/product_info.php?products_id=8530<br />
- Deadman/pendant switch (http://www.newark.com/switchcraft/e903/pendant-switch/dp/22F243)<br />
<br />
What processor to use?<br />
- Arduino/ATmega? (popular, available, relatively cheap, open source, probably a good one for me to learn)<br />
- MSP430? (Fun, have a bit of experience, huge family range, low-power for battery conservation)<br />
- PIC?<br />
- Basic Stamp?<br />
- 68HC11/12?<br />
<br />
== Open PRO Audio Interface ==<br />
<br />
* Firewire based with openhardware / drivers for Pro quality audio recording<br />
* Interface which can be used with Laptops or Desktops<br />
<br />
There is a distinct lack of audio interfaces compatible with Linux, most manufacturers of interfaces do not support Linux, the ones which do are usually on the higher end of price scale and changes to hardware architecture often breaks compatibility with the reversed engineered drivers made by the community. <br />
<br />
Something affordable with say 8 or 10 in and outs which can record @ 24 bits @ 44.1/48/88.2/96 kHz would be very popular with Linux Audio enthusiasts. <br />
<br />
I'm not a technical expert and don't mention USB interface as understand that this is less capable at handling the higher sampling / bit rates. Some commercial manufacturers do make USB interfaces that can record at 24 bits but do this using propriety drivers, if this is possible a USB based interface would be more accessible and open more possibilities ! <br />
<br />
<br />
== Electronic Legos ==<br />
<br />
Currently rapid prototyping consists of getting a few boards and chips, doing some soldering, finding the right libraries for communication, and then writing some programs. I'd like to see an open design for snap together components which includes the case. Imaging a Lego blocks each of which contains a micro-controller, sensor, radio, battery, or ... You just snap them together and communication uses a standard library. A small ASIC in each block provides the networking layer and translation to the appropriate protocol for the on board chips. Currently I'm thinking a 4 wire connector with, +3.3V, GND, Clock, and Data would be the way to go. It could use standard modular phone connectors to make the connection since they are cheap. Something like this would open up the rapid prototyping world to anyone with programming skills for the micro-controllers. A good set of building blocks and a GUI on the dev kit could open up the design even farther. It should also drop the price of eval boards, since they should then consist of a single block.<br />
<br />
== How you can help ==<br />
<br />
People are innovating faster than we can keep up.<br />
This is our standard "ideas to place" page.<br />
(Similar pages on other wiki:<br />
[http://reprap.org/wiki/ideas_to_place RepRap: Ideas to place];<br />
[http://features.sheep.art.pl/IdeasToPlace WikiFeatures: Ideas to place];<br />
etc.<br />
)<br />
<br />
Help us move the above ideas to a more appropriate page:<br />
* Ideas involving small subcircuits that could be re-used in many different projects will probably be moved to [[Basic Circuits and Circuit Building Blocks]] or its still-unnamed sequel for not-so-basic circuit building blocks. (What should we name it?)<br />
* Once an idea for stand-alone project grows longer than a few sentences, please move it to a new page dedicated to the project, and indexed on the [[Projects]] page.<br />
* Ideas involving techniques for drawing, laying out, prototyping, mass production, or testing circuits -- once such an idea grows longer than a few sentences, please move it to a new page dedicated to that technique, and indexed on the [[Techniques]] page.<br />
* Ideas involving the OpenCircuits.com website itself -- those should go on [[Open Circuits website]] or one of its sub-pages.<br />
* Ideas about coordinating people over multiple projects -- perhaps somewhere near [[Meta Open Source]] ???<br />
* Ideas that have nothing to do with electronics? Hey, there are [http://wikiindex.org/FAQ over 20 000 other wiki on the internet]. Perhaps such ideas should be moved entirely off this website and to some other more relevant wiki.<br />
<br />
<br />
[[Category:Ideas]]<br />
<br />
{{Stub}}</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Switching_regulator&diff=90658Switching regulator2023-10-27T18:36:44Z<p>DavidCary: link to archived version of reference</p>
<hr />
<div>A "voltage regulator" is designed to hold a constant output voltage.<br />
<br />
A "switching voltage regulator", usually called a '''switching regulator''', also called a '''DC to DC converter''', accomplishes this goal by rapidly switching a transistor from full on and full off.<br />
<br />
A "linear voltage regulator", usually called a "linear regulator", accomplishes the same goal by holding a transistor in its active region, somewhere between full on or full off.<br />
[[Basic Voltage Regulators]] are generally linear regulators.<br />
<br />
[[The 723 Voltage Regulator]] can be used as either a linear or a switching regulator.<br />
<br />
The [[Linuxstamp]] uses a the LTC3407-3 switching regulator.<br />
<br />
The [[ARMUS Embedded Linux Board]] uses ...<br />
<br />
The [[MCP1252/3]] Flyback Switching Regulators can generate an output voltage greater than the input voltage -- something impossible with linear voltage regulators.<br />
<br />
The MC34063 is the favorite switching regulator IC of [http://electronics.stackexchange.com/questions/37214/what-is-the-standard-way-to-make-a-peltier-power-supply-with-variable-power/37225#37225 Russell McMahon].<br />
The [http://www.onsemi.com/pub_link/Collateral/MC34063A-D.PDF MC34063 datasheet]<br />
shows how to build a buck, boost, or switching SMPS with this 8-pin chip.<br />
(Several manufacturers produce pin-compatible MC34063 chips).<br />
<br />
While learning about SMPS, teachers typically try to gradually ease you into understanding them by starting with perhaps the easiest-to-understand switching converter, the buck converter.<br />
Then they move on to the other "simple" converters than can be built using 1 inductor, 1 switch, 1 diode, and 1 capacitor (and some stuff that turns the switch on and off "appropriately"): the buck converter, the boost converter, and the inverting converter.<br />
Then they throw every equation even remotely related to SMPS at you, making them sound far more complicated than they really are.<br />
<br />
In practice, it seems that many switchers are "flyback" converters -- although some people say that Cuk converters are better than flyback converters; some even go so far as to say that Cuk converters are the "optimum topology".<br />
<br />
A [[maximum power point tracker]] has many similarities to a switching voltage regulator.<br />
<br />
== dealing with over-current ==<br />
<br />
A chain of components inside the switching regulator transfers power from its input to its output.<br />
One component along that chain is the weakest link -- there's only a limited amount of current it can handle before it permanently fails.<br />
(Usually that weakest link is the power transistor.)<br />
<br />
If you gradually add more and more stuff to the output of the regulator, or if you suddenly short the output wires together, that is going to demand more power than that weak link can handle.<br />
<br />
There are at least 4 ways of dealing with this fact:<br />
To avoid permanent damage,<br />
* ignore it, and be very, very careful that you never overload the output. (This is usually fine if the regulator and the device it powers are hard-wired to each other in a way that makes it difficult to add more stuff or short the outputs together).<br />
* brick-wall current limit, often called current limit: design the regulator to measure the output current with some [[current sense]] method, and when it gets close to the current setpoint, the regulator automatically reduces the amount of power transferred to the output. When the output looks like a short circuit, allow exactly the setpoint current to flow. (current limit)<br />
* design the regulator to measures the output current, and if it ever goes even a tiny amount over the current setpoint, the regulator assumes something has gone horribly wrong, and automatically turns off all output power for a second or so.<br />
* Latch-off mode protection: the output current, and if it ever goes even a tiny amount over the current setpoint, the regulator assumes something has gone horribly wrong, and automatically turns off all output power indefinitely (until the input power is cycled).<br />
* Current fold-back limiting, often called "foldback": limits the short circuit current to a very small value, half or less of the rated load current. Foldback reduces the output current linearly as output voltage decreases. ([https://electronics.stackexchange.com/questions/2931/what-is-foldback-short-circuit-protection-in-a-power-supply 'What is "foldback short circuit protection" in a power supply?'])([http://www.ti.com/lit/an/snva736/snva736.pdf "Know Your Limits: TI application report"])<br />
* Use a "intelligent switch"[http://www.st.com/ips][http://www.st.com/st-web-ui/static/active/en/resource/technical/document/application_note/CD00003916.pdf][http://www.irf.com/product-info/ips/] that automatically turns itself off if it gets too close to failure.<br />
<br />
== history of switching power supplies ==<br />
<br />
<br />
"A key developer of switching power supplies was Robert Boschert, who quit his job and started building power supplies on his kitchen table in 1970."<br />
<ref><br />
Ken Shirriff. [http://www.righto.com/2012/02/apple-didnt-revolutionize-power.html "Apple didn't revolutionize power supplies; new transistors did"].<br />
</ref><br />
<br />
<br />
Rod Holt designed the switching power supply for the 1977 Apple II.<br />
1978 patent US4130862.<br />
<br />
<br />
== further reading ==<br />
<br />
* The [http://romanblack.com/smps/a04.htm 3-transistor Black regulator]: cheap, high-efficiency, current limited.<br />
* [http://code.google.com/p/bicycleledpov/wiki/TestsToDcDcCircuitsAndIcs "Tests to find a good, simple and cheap DC-DC IC and circuit"] at the LadyAda bicycleledpov wiki.<br />
* http://en.wikipedia.org/wiki/DC_to_DC_converter<br />
* http://en.wikipedia.org/wiki/Switched-mode_power_supply<br />
* http://www.smps.us/ "SMPS SWITCHING POWER SUPPLY DESIGN CIRCUITS, SCHEMATICS, PCBs, ELECTRICAL ENGINEERING REFERENCE, SOFTWARE, AND OTHER FREE ONLINE RESOURCES" ... including http://www.smps.us/layout.html "PRINTED CIRCUIT BOARD LAYOUT GUIDELINES FOR SWITCHING POWER SUPPLIES (SMPS)"<br />
* [http://massmind.org/techref/power.htm Massmind: Power] discusses a variety of linear and switching power supply regulators<br />
* [http://zwizwa.goto10.org/ramblings/brood/20070716-191312 "boost converter hack"] describes one way a microcontroller (uC) can control its own supply voltage, once it's given an initial push. (External diodes would be better than re-using the internal diodes, to avoid exceeding the manufacturer's recommendations).<br />
* [http://www.psocdeveloper.com/forums/viewtopic.php?f=3&t=1278 "AC DC Switch Mode Supply Controller Via PSoC"] discusses programmable current source switching mode controllers.<br />
* [http://www.edn.com/article/CA6335301.html "JFET-based dc/dc converter operates from 300-mV supply"] by Jim Williams 2006<br />
* [http://electronicdesign.com/Articles/ArticleID/15420/15420.html "Germanium Dual-Boost Starts At 260 mV"] by Clayton B. Grantham 2007<br />
* [http://focus.ti.com/lit/ml/slup067/slup067.pdf "Switching power supply topology review"] by Lloyd H. Dixon, Jr. 2001<br />
* [http://www.national.com/onlineseminar/2001/bpease/switching_controllers.html National: "Designing DC-DC Power Supplies Using High Performance Switching Controllers"]<br />
* "High-voltage, low-noise dc/dc converters" http://www.edn.com/article/CA6582859.html?spacedesc=readersChoice and http://www.edn.com/blog/1700000170/post/440031844.html : has nice photos of dead-bug solid-copper-plane wiring style.<br />
* [http://www.ti.com/lit/wp/snva575/snva575.pdf "Comparing Topologies and the (Design) Rules of the Game"] by Sanjaya Maniktala 2002 ... emphasizes "r", the ripple factor, the ratio of the ripple in the inductor to the average current in the inductor, which applies to practically every SMPS topology. It describes "The formal design procedure for any converter design".<br />
* [http://www.dos4ever.com/battery/battery.html "An Electronic 90V Plate/Anode Battery: A "power"-inverter which emulates the 90V plate/anode battery for vintage battery tube receivers."] (battery powered) a web-log by Ronald Dekker. A very well documented series describing the entire process from the original idea. It seems that everyone who designs a switching regulator hits several unexpected problems, and this description does not shirk from describing the particular unexpected problems seen here.<br />
* Flemming Frandsen made a design (based on Bob Blick) that takes noisy car power (8 to 16 volts) and converts to clean, regulated 12 V power. (Its SEPIC topology can convert up and down). A shutdown circuit turns it off when you take the key out of your car.[http://dren.dk/carpower.html]<br />
* "Underestimating Complexity of Power Supply Design" https://web.archive.org/web/20170627055906/http://www.smpstech.com/undest.htm<br />
* "Latchup of Constant-Power Load With Current-Limited Source" https://web.archive.org/web/20181231030919/http://www.smpstech.com/latch000.htm<br />
* Donald V. Comiskey. "Practical Guidelines to Designing an EMI Compliant PoE Powered Device with Isolated Flyback"[http://www.ti.com/lit/an/slua469/slua469.pdf] (power over Ethernet; perhaps its tips for improving EMI also apply to other switching voltage regulators)<br />
* [http://www.freewebs.com/acselectronics/buildregs.html Chris's favorite switching regulator], build around a LM317 and some power transistors.<br />
* [http://electronics.stackexchange.com/questions/31018/how-do-the-tiny-ac-usb-power-supplies-work "How do the tiny AC->USB power supplies work?"]<br />
* [http://electronics.stackexchange.com/tags/power-supply/info Electronics stackexchange "power supply" tag wiki]<br />
* Lloyd H. Dixon, Jr. [http://www.ti.com/lit/ml/slup076/slup076.pdf "Design of Flyback Transformers and Filter Inductors: for switching power supplies"].<br />
* Lazar Rozenblat. [http://www.smps.us/ "Lazar's power electronics guide: SMPS switching power supply design basics: circuits, schematics, electrical engineering reference, software and other info"].<br />
* [http://www.ti.com/lit/an/snva558/snva558.pdf "Linear and Switching Voltage Regulator Fundamental Part 1: TI SNVA558"]<br />
* [https://electronics.stackexchange.com/questions/51361/buck-switching-regulator-based-on-attiny84a-please-critique "Buck switching regulator based on ATtiny84a — please critique!"]<br />
<br />
<br />
[[category:Components]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=SPI&diff=90418SPI2023-10-21T01:42:08Z<p>DavidCary: fill in a few details, etc.</p>
<hr />
<div><br />
'''Serial Peripheral Interface Bus (SPI bus)'''<br />
Connects circuitry with few wires over serial protocol.<br />
<br />
SPI supports an unlimited number of peripherals, which may all be identical.<br />
<br />
Daisy-chained SPI connects all the devices on a SPI bus in a loop.<br />
In a daisy-chain SPI loop, the serial data out pin (SDO) of each device connected to the serial data in pin (SDI) of the next device in the loop.<br />
A daisy-chained SPI bus uses 4 GPIO pins on the microcontroller, no matter how many SPI peripherals are attached.<br />
<br />
<br />
Chip-select SPI uses an additional dedicated chip-select pin for each SPI peripheral.<br />
<br />
<br />
(Other protocols, such as [[I2C]], require each peripheral on the bus to have a different (unique) address).<br />
<br />
<br />
== Further reading ==<br />
<br />
[http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus Serial Peripheral Interface Bus]<br />
* [https://www.sparkfun.com/spi_signal_names a redefinition of SPI signal names: "A REDEFINTION OF SPI SIGNAL NAMES"] by Nathan Seidle, founder of SparkFun Electronics.</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Programmable_Chip_EEG&diff=89177Programmable Chip EEG2023-04-01T03:41:09Z<p>DavidCary: link to post about reducing noise in EKG electronics</p>
<hr />
<div>== The Programmable Chip EEG ==<br />
Welcome to the PCEEG Wiki, where everyone can add to this EEG brain-computer interface!<br />
<br />
== PCEEG, What it is and why it can be the best ==<br />
* The [http://pceeg.sourceforge.net The Programmable Chip EEG] gets its name because its hardware and software can be adjusted digitally from a home pc. <br />
* [http://pceeg.sourceforge.net The Programmable Chip EEG] is a Modular Multi-channel electroencephalograph.<br />
* This can be used for a brain-computer interface with biofeedback using a flex sensor or servo to detect fingure movements. <br />
* The [http://opencircuits.com/LT1168 LT1168 Programmable-Gain Precision Instrumentation Amplifier] is used to amplify the weak electric signals coming from the brain through electrodes attached to the scalp, and has internal protection circuitry for the user.<br />
* ESD Protection in [http://opencircuits.com/LT1168 LT1168 Programmable-Gain Precision Instrumentation Amplifier] Chips have been chosen that fallow the human body model of esd protection this can be seen in the 1168 datasheet.<br />
* To reduce noise in the readout of the analog part of this circuit, a common-mode feedback is passed back into the body by the driver right leg circuit, for example, 60Hz noise from nearby A/C power wiring.<br />
* The amplifier board will amplify the signal then the analog to digital converter will digitize the signal and pass the data to the microcontroler board. The microcontroler board is based on the AVR Mega168 which will, further process the signals, and provide an interface to a computer.<br />
*we are using the AVR Mega 168.<br />
*The arduino software tools & GCC C tools and the AVR Mega 168 allows for a complete open source system...<br />
<br />
== News == <br />
The Microcontroler board has been bought from sparkfun's prototyping site. A order for components for the parts of the pceeg microcontroler board will be this weekend<br />
<br />
The design is useing Eagle CAD, because the auto-router is excellent for open-source productivity. <br />
It will allow the design to evolve faster and with less work with a wider selection of [[PCB Manufacturers]]. <br />
Batch PCB from sparkfun.com worked well.<br />
<br />
The robot arm interface by [http://www.answers.com/topic/miguel-nicolelis Miguel Nicolelis]is very inspiring. He used implanted electrodes to monitor and allow monkeys to control a robot arm as if it was their own. Could the PCEEG do the same with its electrodes on the scalp. Only the future will show.<br />
<br />
== Status ==<br />
*The microcontroler pcb is in my hand the components will be ordered this weekend.<br />
*Using the open Boarduno design to prototype the design.<br />
<br />
== Hardware Overview ==<br />
look at [http://www.pceeg.sourceforge.net pceeg.sourceforge.net]<br />
<br />
== Description of How it Works ==<br />
<br />
Neurons in the brain are not perfectly insulated -- some of their electrical activity leaks out and causes (very faint) electrical signals on the skin.<br />
<br />
Dry skin is an excellent insulator, so "electrode gel" (typically skin lotion or shampoo) is used to help conduct the electrical signals to the electrode.<br />
The researcher tapes the gel-coated electrodes to the skin, or uses a headband to press the electrodes through the hair against the skin.<br />
Insulated wires attached to the electrodes bring the signals to the signal processing daughter board.<br />
<br />
The signal amplificant and analog to digital converter board amplifies and digitises the signals from the body.<br />
Then the signals are passed to the microcontroler board.<br />
The motherboard then can pass the signal to a larger computer. <br />
<br />
On the amplifier board is a passive high pass filter on the input, an amplifier.<br />
The instrumentation amplifier amplifies the differential analog signal on the input wires.<br />
<br />
The analog to digital converter board a [[Integrated_Circuits#ADC_analog_to_digital_converter | analog to digital converter]].<br />
Then the signal is digitized by a a/d converter.<br />
The a/d converter has approximately 20 bits accuracy so the signal does not have to be conditioned or filtered as much.<br />
<br />
The "right leg driver" circuit on the analog to digital converter board is intended to decrease common mode signal.<br />
That circuit inverts the common mode signal from the instrumentation amp, sums the result from each instrumentation amp, and sends the total back to the body.<br />
<br />
The ADCs have a syncronise option... I have to look into this....<br />
The ADCs send bits of information (representing the original analog electrical signals) to the controller motherboard.<br />
<br />
The controller board is the mother board of the system.<br />
All the signal processing daughter boards plug into the mother board.<br />
The controller board is based off the [[open hardware]] [[Arduino Links| Boarduino]] design.<br />
The controller board includes a Atmel [[AVR]] Mega 168.<br />
The controller board can be programmed using AVR GCC.<br />
<br />
Here is the Schematic <br />
look at [http://www.pceeg.sourceforge.net pceeg.sourceforge.net]<br />
<br />
Partlist <br />
look at [http://www.pceeg.sourceforge.net pceeg.sourceforge.net]<br />
<br />
Here is the circuit board<br />
look at [http://www.pceeg.sourceforge.net pceeg.sourceforge.net]<br />
<br />
== Parts used in the PCEEG: ==<br />
* [http://opencircuits.com/LT1168 LT1168 Resistor-Programmable-Gain Precision Instrumentation Amplifier] is used to amplify the weak electric signals coming from the brain through electrodes attached to the scalp, etc.<br />
* and more...<br />
<br />
==ESD Protection in 1168==<br />
Chips have been chosen that fallow the human body model of esd protection this can be seen in the 1168 datasheet.<br />
<br />
<br />
To reduce noise in the readout of the analog part of this circuit, a common-mode feedback is passed back into the body by the driver right leg circuit. Band reject filter may also be used (to reject, for example, 60Hz noise from nearby A/C power wiring).<br />
<br />
The analog signal prossesing board will digitise the signal and pass the data to the control board. The control board is based on the UBW which will, further process the signals, and provide an interface to a computer & lcd display.<br />
<br />
== A/D Converters ==<br />
<br />
The programmable chip EEG needs an A/D converter to convert the analog signal (at the output of the instrumentation amplifier) into digital bits.<br />
We expect this project to require at least 20 bit ADC. It will amplify the signal less requiring less analog signal processing and use the more sensitive a/d converter to make up for less amplification and cause less signal attenuation.<br />
<br />
* $12.00 The ads1255 or ads1256 by ti is a great a2d converter it has programmable gain and digital low pass filtering with 24 bits of resolution 30KSPS. It is a 20-SSOP so it can be soldered by a hotplate or hot air rework tool.<br />
<br />
The newest system is a dc amplifier without a high-pass, and all the low-pass filtering is digital<br />
<br />
==Electrical Isolation From the PC. ==<br />
This isolates the PCEEG from the computer when used with a DC to DC converter.<br />
<br />
=== DC to DC converter ===<br />
The design is based on the modular eeg and monolith eeg they use a TMV0505S, but it is not available in many places. It will be replaced with NMV0505SA. This converter has a rather high output voltage (6-7 V) at very light loads.<br />
Therefore, when building the digital board measure the voltage in the +5V/3 of modular eeg designnet, e.g. at IC103 pin 8.<br />
<br />
The voltage should be LESS than 6V. If not, you must reduce the value of R127 (near the LED), in order to present the DCDC converter with a higher load.<br />
<br />
=== Optocoupler ===<br />
A optocoupler by Fairchild 6N137 is used to transfer data from the microprossesor to the Rs232 converter by light.<br />
<br />
"The MonolithEEG uses 6N137 opto-couplers which can reliably transmit data at rates above 1MBaud. This provides a simple way to higher sampling rates for the MonolithEEG"<br />
<br />
"The ModularEEG allows the replacement of the 6N139 with the faster 6N137. Soley the resistors R125 and R130 on the digital board have to be taken out otherwise both receivers would be disabled permanently."<br />
<br />
== Software Tools ==<br />
* EAGLE CAD is being used to create the first PCB. surface mount is used to save space.<br />
*[[gEDA | gEDA tools]] may be a option for opening this design to a wider audience.<br />
* Maxima a computer algebra system s used for graphing and math displays.<br />
*SPI interface code for a/d converters from TI for developers<br />
*SPI interface for the arduino with a eeprom<br />
*kicad<br />
=== How You Can Help ===<br />
#. get the tools<br />
#. what is better old or new analog to digital converter boards power supply?<br />
#. simulate the circuit?<br />
#. how does the circuit look to you analog amplifier board needs more people looking at it and so does the analog to digital converter board. <br />
#. help code for the avr mega 168 arduino clone with isolation to communicate with the ads1256 a/d converter.<br />
<br />
== Open Source Circuit Design ==<br />
* [http://opencircuits.com/Programmable_Chip_EEG Open Source Circuit Design ]<br />
* [http://pceeg.sourceforge.net/ The Programmable Chip EEG Brain Computer Interface Open Source Circuit Design]<br />
<br />
== ideas for future work ==<br />
<br />
Currently most EEGs (and EKGs) have "passive electrodes" -- it's a conductive button pressed against the skin, with a long wire that takes the faint signal to the amplifier in the box.<br />
<br />
A few EEGs have [http://openeeg.sourceforge.net/doc/hw/ae.html "active electrodes"] -- the amplifier is on top of the conductive button, and sends a strong analog signal down the long wire to the ADC in the box.<br />
<br />
[[User:DavidCary]] is thinking about going one step further:<br />
put the amplifier and the ADC on the electrode, sending out digital packets to the box.<br />
Can I do all that with a single chip -- an 8-pin PSoC?<br />
Also, instead of each electrode having its own dedicated wire to the data collection box, all the PSoCs are connected in a string (or some other network), forwarding packets from one to the next, so no matter how many electrodes are connected, only about 4 wires (2 power + 2 digital data) are connected.<br />
I haven't decided yet whether it's better to have every node do both -- sample data and forward packets -- or if I should split them up, with PSoCs sampling data and sending it to a hub, and hubs (perhaps not PSoCs) forwarding data from a few local PSoCs and from other hubs.<br />
--[[User:DavidCary|DavidCary]] 08:50, 10 October 2007 (PDT)<br />
<br />
----<br />
<br />
== Open source (public) results! ==<br />
PHP will be used to create a database of users and what they sample and choose to share with the open source community.<br />
<br />
The database will give statistical analysis on users recordings. <br />
<br />
Also the extension of SETI called BIONIC could be used as a distributed library creation of artifacts and data mining.<br />
<br />
Please contribute and make the PCEEG a great tool for researching brain computer interfaces.<br />
<br />
<br />
== Related wiki ==<br />
<br />
* [[OpenEEG]]<br />
* [http://wiki.asiaquake.org/openeeg/published/ The OpenEEG wiki]<br />
* [http://pceeg.wikia.com/wiki/Main_Page wiki cities on pceeg]<br />
* [http://en.wikibooks.org/wiki/Biomedical_Engineering:_A_Roadmap/Biomedical_Instrumentation/Electrocardiography Wikibooks: Biomedical Engineering: Electrocardiography]<br />
<br />
== See also: ==<br />
* [https://electrical.codidact.com/posts/287954 "what can you do to mitigate noise pickup... [in] ... EKGs...?"]<br />
* [https://electrical.codidact.com/posts/288010 "What is a good PCB-layout? ... an ECG-amplifier circuit."]<br />
* [http://www.nytimes.com/2008/01/15/science/15robo.html?ex=1359090000&en=69146e0fb3807a74&ei=5124&partner=permalink&exprod=permalink/ Monkey’s Thoughts Propel Robot, a Step That May Help Humans ]<br />
* [http://www.larryheadinstitute.com/eeg-training.html EEG Training Seminars]<br />
* [http://pceeg.sourceforge.net pceeg.sourceforge.net]<br />
* [http://www.answers.com/topic/miguel-nicolelis miguel nicolelis]<br />
* [http://maxima.sourceforge.net/ Maxima - a computer algebra system]<br />
* [[PCB Manufacturers]]<br />
* [http://www.meta-mind.de Brainwave Neurofeedback open source]<br />
* [http://vulliard.dyndns.org/~vulliard/ eeg biofeedback "mind machine"]<br />
* [http://freenet-homepage.de/moosec/projekte/simpleeeg/index-Dateien/Page431.htm monolith eeg]<br />
* [http://www.stencilsunlimited.com/solder_products.php solder paste for surface mount that can be stored at room temperature]<br />
* The thread [http://forum.microchip.com/tm.aspx?m=114626 "amplifying biomedical signals: 150 uA with 16 bit resolution?"] has several op-amp suggestions, and mentions that "a good, low-noise, low-cost, isolated EMG/EEG amplifier is one of the most demanding analog electronics designs."<br />
* [http://www.e-dsp.com/how-to-build-your-own-heart-monitoring-device-a-simple-ecg/ How to build your own ECG device]<br />
* [http://www.alertfocus.com/evidence/music17.php neurofeedback helps musicians improve their musical performances by 13 to 17 per cent.]<br />
* [http://health.groups.yahoo.com/group/biofeedback/ "the World's largest Biofeedback and Neurofeedback Discussion Group"]<br />
* TI app note [http://focus.ti.com/docs/solution/folders/print/272.html "Biophysical Monitoring: Electrocardiogram (ECG) Front End"] has a simple circuit: 390 KOhm resistors in-line with each lead -- one end touches patient, the other end directly connected to the instrumentation amp input (or the right-leg drive amplifier output, which has no further protection). The inst. amp has 2 protection diodes on each input, directly to +power and -power. Also, 39 pF capacitor from each input to analog GND, and 200 pF between the 2 inputs. The TI publication "Information for Medical Applications" (2Q 2004) reprints that circuit, but leaves out the caps and the diodes.<br />
* (*) [http://www.ieeta.pt/~escadas/ucecg/applications.htm Some people use 420 Hz sampling rate, 10 bits/sample.]<br />
* [http://bsamig.uku.fi/pdf/QRSdet.pdf "High-Resolution QRS Detection Algorithm for Sparsely Sampled ECG Recordings"] by Timo Bragge et. al. 2004 recommends: "the sampling frequency of the ECG should be at least 500 Hz"<br />
* [http://www.analog.com/library/analogDialogue/archives/29-3/low_power.html "Low-Power, Low-Voltage IC Choices for ECG System Requirements"] by Jon Firth and Paul Errico says "The multiplexed architecture, based on an old assumption that the converter is by far the most-expensive front-end component, is prevalent in today's electrophysiological measurement systems. However, with the proliferation of sigma-delta converter architectures, converter-per-channel is now a power- and cost-competitive alternative". It also gives a typical schematic for both architectures and suggests some parts.<br />
* Is there a [http://www.electronicproducts.com/ShowPage1.asp?SECTION=&PRIMID=&FileName=medtelconf3%2Ejul2004%2Ehtml&ReturnLink=%2FSearch1%2Easp%3FManufacturer%3D%26Keyword%3Dimplantables%26Slot%3D0%26StartNum%3D1%26stype%3D%26year%3D10&MonthYear=Jul+2004 Medical Electronics Forum]?<br />
* [http://www.makezine.com/blog/archive/2006/01/homemade_electrocardiograph.html Make: Homemade Electrocardiograph] ([http://www.eng.utah.edu/~jnguyen/ecg/ecg_index.html] recommends skin lotion or shampoo as a low-cost electrode gel)<br />
* [http://www.techradar.com/reviews/pc-mac/peripherals/input-devices/general-input-devices/ocz-neural-impulse-actuator--269721/review "OCZ Neural Impulse Actuator review"]<br />
* the [http://vadim.oversigma.com/esl/esl.html "Every Sign of Life"] project proposes a "personal health monitor capable of measuring EKG, temperature, respiration, and other physiological parameters". Perhaps the Programmable Chip EEG could somehow be used with it?<br />
* [http://solar-blogg.blogspot.com/search/label/Heart solar-blogg]: Optical Heartbeat Detector and yet another DIY Electrocardiograph<br />
* [http://www.biosemi.com/publications/artikel3.htm "High quality recording of bioelectric events. I: Interference reduction, theory and practice"] by A. C. MettingVanRijn, A. Peper, C. A. Grimbergen. (1988?)<br />
* [http://www.swharden.com/blog/2009-08-14-diy-ecg-machine-on-the-cheap/ "DIY ECG Machine On The Cheap"] by Scott Harden.<br />
* [http://wish.seeedstudio.com/?p=60 "2-lead electrocardiogram (ECG) analog frontend."]<br />
* [http://www.youtube.com/watch?v=yADsi5W-Lls "Collin's Lab: Infrared heart sensor"] using an Arduino, an infrared emitter and detector pair, and two resistors.<br />
* [http://code.google.com/p/opendous/wiki/BioSensorPlatform "BioSensorPlatform: ADS1298 Based Biopotential Sensor Platform"] "an OpenHardware Biopotential Sensor Platform based on TI's ADS1298 ADC with ECG/EEG front end." "Design files are available in Open Formats for the KiCAD Open Source EDA Suite." 8 channels of simultaneous sampling 24-bit ADC inputs, and also a Wilson central terminal output and a right-leg drive (RLD) output.<br />
* [https://github.com/qdot/emokit emokit], now part of [http://www.openyou.org/ OpenYou], supports the Emotiv headset, also called the Emotiv EPOC Brain-Computer Interface. (via [http://daeken.com/emokit-hacking-the-emotiv-epoc-brain-computer-0 Daeken])<br />
* [http://electronics.stackexchange.com/questions/tagged/biopotential Electronics Stackexchange questions tagged "biopotential"]<br />
* [http://electronics.stackexchange.com/questions/21924/16-channel-eeg-data-aquisition-system "16 channel EEG data aquisition system"]<br />
* [http://electronics.stackexchange.com/questions/25198/noise-reduction-strategies-in-electrophysiology "Noise reduction strategies in electrophysiology"]<br />
* [http://en.wikipedia.org/wiki/Multiscale_Electrophysiology_Format Wikipedia: Multiscale Electrophysiology Format]<br />
<br />
[[Category:Projects]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Programmable_Chip_EEG&diff=89176Programmable Chip EEG2023-04-01T01:43:48Z<p>DavidCary: link to related PCB layout tips</p>
<hr />
<div>== The Programmable Chip EEG ==<br />
Welcome to the PCEEG Wiki, where everyone can add to this EEG brain-computer interface!<br />
<br />
== PCEEG, What it is and why it can be the best ==<br />
* The [http://pceeg.sourceforge.net The Programmable Chip EEG] gets its name because its hardware and software can be adjusted digitally from a home pc. <br />
* [http://pceeg.sourceforge.net The Programmable Chip EEG] is a Modular Multi-channel electroencephalograph.<br />
* This can be used for a brain-computer interface with biofeedback using a flex sensor or servo to detect fingure movements. <br />
* The [http://opencircuits.com/LT1168 LT1168 Programmable-Gain Precision Instrumentation Amplifier] is used to amplify the weak electric signals coming from the brain through electrodes attached to the scalp, and has internal protection circuitry for the user.<br />
* ESD Protection in [http://opencircuits.com/LT1168 LT1168 Programmable-Gain Precision Instrumentation Amplifier] Chips have been chosen that fallow the human body model of esd protection this can be seen in the 1168 datasheet.<br />
* To reduce noise in the readout of the analog part of this circuit, a common-mode feedback is passed back into the body by the driver right leg circuit, for example, 60Hz noise from nearby A/C power wiring.<br />
* The amplifier board will amplify the signal then the analog to digital converter will digitize the signal and pass the data to the microcontroler board. The microcontroler board is based on the AVR Mega168 which will, further process the signals, and provide an interface to a computer.<br />
*we are using the AVR Mega 168.<br />
*The arduino software tools & GCC C tools and the AVR Mega 168 allows for a complete open source system...<br />
<br />
== News == <br />
The Microcontroler board has been bought from sparkfun's prototyping site. A order for components for the parts of the pceeg microcontroler board will be this weekend<br />
<br />
The design is useing Eagle CAD, because the auto-router is excellent for open-source productivity. <br />
It will allow the design to evolve faster and with less work with a wider selection of [[PCB Manufacturers]]. <br />
Batch PCB from sparkfun.com worked well.<br />
<br />
The robot arm interface by [http://www.answers.com/topic/miguel-nicolelis Miguel Nicolelis]is very inspiring. He used implanted electrodes to monitor and allow monkeys to control a robot arm as if it was their own. Could the PCEEG do the same with its electrodes on the scalp. Only the future will show.<br />
<br />
== Status ==<br />
*The microcontroler pcb is in my hand the components will be ordered this weekend.<br />
*Using the open Boarduno design to prototype the design.<br />
<br />
== Hardware Overview ==<br />
look at [http://www.pceeg.sourceforge.net pceeg.sourceforge.net]<br />
<br />
== Description of How it Works ==<br />
<br />
Neurons in the brain are not perfectly insulated -- some of their electrical activity leaks out and causes (very faint) electrical signals on the skin.<br />
<br />
Dry skin is an excellent insulator, so "electrode gel" (typically skin lotion or shampoo) is used to help conduct the electrical signals to the electrode.<br />
The researcher tapes the gel-coated electrodes to the skin, or uses a headband to press the electrodes through the hair against the skin.<br />
Insulated wires attached to the electrodes bring the signals to the signal processing daughter board.<br />
<br />
The signal amplificant and analog to digital converter board amplifies and digitises the signals from the body.<br />
Then the signals are passed to the microcontroler board.<br />
The motherboard then can pass the signal to a larger computer. <br />
<br />
On the amplifier board is a passive high pass filter on the input, an amplifier.<br />
The instrumentation amplifier amplifies the differential analog signal on the input wires.<br />
<br />
The analog to digital converter board a [[Integrated_Circuits#ADC_analog_to_digital_converter | analog to digital converter]].<br />
Then the signal is digitized by a a/d converter.<br />
The a/d converter has approximately 20 bits accuracy so the signal does not have to be conditioned or filtered as much.<br />
<br />
The "right leg driver" circuit on the analog to digital converter board is intended to decrease common mode signal.<br />
That circuit inverts the common mode signal from the instrumentation amp, sums the result from each instrumentation amp, and sends the total back to the body.<br />
<br />
The ADCs have a syncronise option... I have to look into this....<br />
The ADCs send bits of information (representing the original analog electrical signals) to the controller motherboard.<br />
<br />
The controller board is the mother board of the system.<br />
All the signal processing daughter boards plug into the mother board.<br />
The controller board is based off the [[open hardware]] [[Arduino Links| Boarduino]] design.<br />
The controller board includes a Atmel [[AVR]] Mega 168.<br />
The controller board can be programmed using AVR GCC.<br />
<br />
Here is the Schematic <br />
look at [http://www.pceeg.sourceforge.net pceeg.sourceforge.net]<br />
<br />
Partlist <br />
look at [http://www.pceeg.sourceforge.net pceeg.sourceforge.net]<br />
<br />
Here is the circuit board<br />
look at [http://www.pceeg.sourceforge.net pceeg.sourceforge.net]<br />
<br />
== Parts used in the PCEEG: ==<br />
* [http://opencircuits.com/LT1168 LT1168 Resistor-Programmable-Gain Precision Instrumentation Amplifier] is used to amplify the weak electric signals coming from the brain through electrodes attached to the scalp, etc.<br />
* and more...<br />
<br />
==ESD Protection in 1168==<br />
Chips have been chosen that fallow the human body model of esd protection this can be seen in the 1168 datasheet.<br />
<br />
<br />
To reduce noise in the readout of the analog part of this circuit, a common-mode feedback is passed back into the body by the driver right leg circuit. Band reject filter may also be used (to reject, for example, 60Hz noise from nearby A/C power wiring).<br />
<br />
The analog signal prossesing board will digitise the signal and pass the data to the control board. The control board is based on the UBW which will, further process the signals, and provide an interface to a computer & lcd display.<br />
<br />
== A/D Converters ==<br />
<br />
The programmable chip EEG needs an A/D converter to convert the analog signal (at the output of the instrumentation amplifier) into digital bits.<br />
We expect this project to require at least 20 bit ADC. It will amplify the signal less requiring less analog signal processing and use the more sensitive a/d converter to make up for less amplification and cause less signal attenuation.<br />
<br />
* $12.00 The ads1255 or ads1256 by ti is a great a2d converter it has programmable gain and digital low pass filtering with 24 bits of resolution 30KSPS. It is a 20-SSOP so it can be soldered by a hotplate or hot air rework tool.<br />
<br />
The newest system is a dc amplifier without a high-pass, and all the low-pass filtering is digital<br />
<br />
==Electrical Isolation From the PC. ==<br />
This isolates the PCEEG from the computer when used with a DC to DC converter.<br />
<br />
=== DC to DC converter ===<br />
The design is based on the modular eeg and monolith eeg they use a TMV0505S, but it is not available in many places. It will be replaced with NMV0505SA. This converter has a rather high output voltage (6-7 V) at very light loads.<br />
Therefore, when building the digital board measure the voltage in the +5V/3 of modular eeg designnet, e.g. at IC103 pin 8.<br />
<br />
The voltage should be LESS than 6V. If not, you must reduce the value of R127 (near the LED), in order to present the DCDC converter with a higher load.<br />
<br />
=== Optocoupler ===<br />
A optocoupler by Fairchild 6N137 is used to transfer data from the microprossesor to the Rs232 converter by light.<br />
<br />
"The MonolithEEG uses 6N137 opto-couplers which can reliably transmit data at rates above 1MBaud. This provides a simple way to higher sampling rates for the MonolithEEG"<br />
<br />
"The ModularEEG allows the replacement of the 6N139 with the faster 6N137. Soley the resistors R125 and R130 on the digital board have to be taken out otherwise both receivers would be disabled permanently."<br />
<br />
== Software Tools ==<br />
* EAGLE CAD is being used to create the first PCB. surface mount is used to save space.<br />
*[[gEDA | gEDA tools]] may be a option for opening this design to a wider audience.<br />
* Maxima a computer algebra system s used for graphing and math displays.<br />
*SPI interface code for a/d converters from TI for developers<br />
*SPI interface for the arduino with a eeprom<br />
*kicad<br />
=== How You Can Help ===<br />
#. get the tools<br />
#. what is better old or new analog to digital converter boards power supply?<br />
#. simulate the circuit?<br />
#. how does the circuit look to you analog amplifier board needs more people looking at it and so does the analog to digital converter board. <br />
#. help code for the avr mega 168 arduino clone with isolation to communicate with the ads1256 a/d converter.<br />
<br />
== Open Source Circuit Design ==<br />
* [http://opencircuits.com/Programmable_Chip_EEG Open Source Circuit Design ]<br />
* [http://pceeg.sourceforge.net/ The Programmable Chip EEG Brain Computer Interface Open Source Circuit Design]<br />
<br />
== ideas for future work ==<br />
<br />
Currently most EEGs (and EKGs) have "passive electrodes" -- it's a conductive button pressed against the skin, with a long wire that takes the faint signal to the amplifier in the box.<br />
<br />
A few EEGs have [http://openeeg.sourceforge.net/doc/hw/ae.html "active electrodes"] -- the amplifier is on top of the conductive button, and sends a strong analog signal down the long wire to the ADC in the box.<br />
<br />
[[User:DavidCary]] is thinking about going one step further:<br />
put the amplifier and the ADC on the electrode, sending out digital packets to the box.<br />
Can I do all that with a single chip -- an 8-pin PSoC?<br />
Also, instead of each electrode having its own dedicated wire to the data collection box, all the PSoCs are connected in a string (or some other network), forwarding packets from one to the next, so no matter how many electrodes are connected, only about 4 wires (2 power + 2 digital data) are connected.<br />
I haven't decided yet whether it's better to have every node do both -- sample data and forward packets -- or if I should split them up, with PSoCs sampling data and sending it to a hub, and hubs (perhaps not PSoCs) forwarding data from a few local PSoCs and from other hubs.<br />
--[[User:DavidCary|DavidCary]] 08:50, 10 October 2007 (PDT)<br />
<br />
----<br />
<br />
== Open source (public) results! ==<br />
PHP will be used to create a database of users and what they sample and choose to share with the open source community.<br />
<br />
The database will give statistical analysis on users recordings. <br />
<br />
Also the extension of SETI called BIONIC could be used as a distributed library creation of artifacts and data mining.<br />
<br />
Please contribute and make the PCEEG a great tool for researching brain computer interfaces.<br />
<br />
<br />
== Related wiki ==<br />
<br />
* [[OpenEEG]]<br />
* [http://wiki.asiaquake.org/openeeg/published/ The OpenEEG wiki]<br />
* [http://pceeg.wikia.com/wiki/Main_Page wiki cities on pceeg]<br />
* [http://en.wikibooks.org/wiki/Biomedical_Engineering:_A_Roadmap/Biomedical_Instrumentation/Electrocardiography Wikibooks: Biomedical Engineering: Electrocardiography]<br />
<br />
== See also: ==<br />
* [https://electrical.codidact.com/posts/288010 "What is a good PCB-layout? ... an ECG-amplifier circuit."]<br />
* [http://www.nytimes.com/2008/01/15/science/15robo.html?ex=1359090000&en=69146e0fb3807a74&ei=5124&partner=permalink&exprod=permalink/ Monkey’s Thoughts Propel Robot, a Step That May Help Humans ]<br />
* [http://www.larryheadinstitute.com/eeg-training.html EEG Training Seminars]<br />
* [http://pceeg.sourceforge.net pceeg.sourceforge.net]<br />
* [http://www.answers.com/topic/miguel-nicolelis miguel nicolelis]<br />
* [http://maxima.sourceforge.net/ Maxima - a computer algebra system]<br />
* [[PCB Manufacturers]]<br />
* [http://www.meta-mind.de Brainwave Neurofeedback open source]<br />
* [http://vulliard.dyndns.org/~vulliard/ eeg biofeedback "mind machine"]<br />
* [http://freenet-homepage.de/moosec/projekte/simpleeeg/index-Dateien/Page431.htm monolith eeg]<br />
* [http://www.stencilsunlimited.com/solder_products.php solder paste for surface mount that can be stored at room temperature]<br />
* The thread [http://forum.microchip.com/tm.aspx?m=114626 "amplifying biomedical signals: 150 uA with 16 bit resolution?"] has several op-amp suggestions, and mentions that "a good, low-noise, low-cost, isolated EMG/EEG amplifier is one of the most demanding analog electronics designs."<br />
* [http://www.e-dsp.com/how-to-build-your-own-heart-monitoring-device-a-simple-ecg/ How to build your own ECG device]<br />
* [http://www.alertfocus.com/evidence/music17.php neurofeedback helps musicians improve their musical performances by 13 to 17 per cent.]<br />
* [http://health.groups.yahoo.com/group/biofeedback/ "the World's largest Biofeedback and Neurofeedback Discussion Group"]<br />
* TI app note [http://focus.ti.com/docs/solution/folders/print/272.html "Biophysical Monitoring: Electrocardiogram (ECG) Front End"] has a simple circuit: 390 KOhm resistors in-line with each lead -- one end touches patient, the other end directly connected to the instrumentation amp input (or the right-leg drive amplifier output, which has no further protection). The inst. amp has 2 protection diodes on each input, directly to +power and -power. Also, 39 pF capacitor from each input to analog GND, and 200 pF between the 2 inputs. The TI publication "Information for Medical Applications" (2Q 2004) reprints that circuit, but leaves out the caps and the diodes.<br />
* (*) [http://www.ieeta.pt/~escadas/ucecg/applications.htm Some people use 420 Hz sampling rate, 10 bits/sample.]<br />
* [http://bsamig.uku.fi/pdf/QRSdet.pdf "High-Resolution QRS Detection Algorithm for Sparsely Sampled ECG Recordings"] by Timo Bragge et. al. 2004 recommends: "the sampling frequency of the ECG should be at least 500 Hz"<br />
* [http://www.analog.com/library/analogDialogue/archives/29-3/low_power.html "Low-Power, Low-Voltage IC Choices for ECG System Requirements"] by Jon Firth and Paul Errico says "The multiplexed architecture, based on an old assumption that the converter is by far the most-expensive front-end component, is prevalent in today's electrophysiological measurement systems. However, with the proliferation of sigma-delta converter architectures, converter-per-channel is now a power- and cost-competitive alternative". It also gives a typical schematic for both architectures and suggests some parts.<br />
* Is there a [http://www.electronicproducts.com/ShowPage1.asp?SECTION=&PRIMID=&FileName=medtelconf3%2Ejul2004%2Ehtml&ReturnLink=%2FSearch1%2Easp%3FManufacturer%3D%26Keyword%3Dimplantables%26Slot%3D0%26StartNum%3D1%26stype%3D%26year%3D10&MonthYear=Jul+2004 Medical Electronics Forum]?<br />
* [http://www.makezine.com/blog/archive/2006/01/homemade_electrocardiograph.html Make: Homemade Electrocardiograph] ([http://www.eng.utah.edu/~jnguyen/ecg/ecg_index.html] recommends skin lotion or shampoo as a low-cost electrode gel)<br />
* [http://www.techradar.com/reviews/pc-mac/peripherals/input-devices/general-input-devices/ocz-neural-impulse-actuator--269721/review "OCZ Neural Impulse Actuator review"]<br />
* the [http://vadim.oversigma.com/esl/esl.html "Every Sign of Life"] project proposes a "personal health monitor capable of measuring EKG, temperature, respiration, and other physiological parameters". Perhaps the Programmable Chip EEG could somehow be used with it?<br />
* [http://solar-blogg.blogspot.com/search/label/Heart solar-blogg]: Optical Heartbeat Detector and yet another DIY Electrocardiograph<br />
* [http://www.biosemi.com/publications/artikel3.htm "High quality recording of bioelectric events. I: Interference reduction, theory and practice"] by A. C. MettingVanRijn, A. Peper, C. A. Grimbergen. (1988?)<br />
* [http://www.swharden.com/blog/2009-08-14-diy-ecg-machine-on-the-cheap/ "DIY ECG Machine On The Cheap"] by Scott Harden.<br />
* [http://wish.seeedstudio.com/?p=60 "2-lead electrocardiogram (ECG) analog frontend."]<br />
* [http://www.youtube.com/watch?v=yADsi5W-Lls "Collin's Lab: Infrared heart sensor"] using an Arduino, an infrared emitter and detector pair, and two resistors.<br />
* [http://code.google.com/p/opendous/wiki/BioSensorPlatform "BioSensorPlatform: ADS1298 Based Biopotential Sensor Platform"] "an OpenHardware Biopotential Sensor Platform based on TI's ADS1298 ADC with ECG/EEG front end." "Design files are available in Open Formats for the KiCAD Open Source EDA Suite." 8 channels of simultaneous sampling 24-bit ADC inputs, and also a Wilson central terminal output and a right-leg drive (RLD) output.<br />
* [https://github.com/qdot/emokit emokit], now part of [http://www.openyou.org/ OpenYou], supports the Emotiv headset, also called the Emotiv EPOC Brain-Computer Interface. (via [http://daeken.com/emokit-hacking-the-emotiv-epoc-brain-computer-0 Daeken])<br />
* [http://electronics.stackexchange.com/questions/tagged/biopotential Electronics Stackexchange questions tagged "biopotential"]<br />
* [http://electronics.stackexchange.com/questions/21924/16-channel-eeg-data-aquisition-system "16 channel EEG data aquisition system"]<br />
* [http://electronics.stackexchange.com/questions/25198/noise-reduction-strategies-in-electrophysiology "Noise reduction strategies in electrophysiology"]<br />
* [http://en.wikipedia.org/wiki/Multiscale_Electrophysiology_Format Wikipedia: Multiscale Electrophysiology Format]<br />
<br />
[[Category:Projects]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Printed_Circuit_Boards&diff=89175Printed Circuit Boards2023-04-01T01:36:58Z<p>DavidCary: clarified (I hope)</p>
<hr />
<div>== Printed circuit board design/fabrication ==<br />
=== Overview ===<br />
=== Software Design ===<br />
See [[software tool#Software_design_tools|Software Design Tools]].<br />
"gEDA", [https://en.wikibooks.org/wiki/Kicad "Kicad"], and "Eagle" are popular low-cost PCB layout tools.<br />
<br />
==== Step by Step by using Software Design Tool ====<br />
*make sure the dimension and shape of PCB<br />
*make sure the size and location of mounting holes for PCB stand (typically 0.125" in diameter in all four corners)<br />
*Make sure each components footprint. [[PCB Footprints]].<br />
*each components are placed on suitable place by put on a hardcopy of simulation PCB<br />
*All components get enough clearance between them.<br />
*Silkscreen layout is confirmed.<br />
*PCB is drawn.<br />
*silkscreen adding the following:<br />
**version no.<br />
**organization name<br />
**board name<br />
*Netlist is ran and got a no error result.<br />
*DRC is ran and got a no error result.<br />
*Overall is checked.<br />
*generate Gerber and send to [[PCB Manufacturers]].<br />
<br />
=== Manual Design ===<br />
Some people do PCB layout on clear film or by directly drawing on a circuit board, of even by scratching, grinding.... For now let them google this.<br />
<br />
=== Homebrew fabrication ===<br />
Before exploring these techniques, you should understand your options with regard to services such as BatchPCB.com, ExpressPCB.com and PCB123.com. Being able to have several boards fabbed in 2 days for $59 (for example) makes it harder to justify the hassle of etching your own boards at home.<br />
* [[Eagle Links]]Lots of links to the Eagle design tool.<br />
* [http://www.electricstuff.co.uk/pcbs.html "How to make really really good homemade PCBs"] by Mike Harrison 2007<br />
* [http://paulwanamaker.wordpress.com/perfect-single-or-double-sided-pcbs-with-the-toner-transfer-method/ "Perfect Single or Double Sided PCBs with the Toner transfer Method"] by Paul Wanamaker 2012<br />
* [http://paulwanamaker.wordpress.com/300-2/ "DIY Copper Riveted Vias"] by Paul Wanamaker 2012<br />
* [http://www.esmonde-white.com/home/diversions/etching-a-copper-pcb "Etching PCBs using Toner Transfer"] and [http://www.esmonde-white.com/home/diversions/milling-a-copper-pcb "Milling PCBs"] by Francis Esmonde-White, includes information on how to go from Eagle PCB to the etching or milling step<br />
* [[Toner Transfer]] -- This method involves laser printing your PCB design onto paper, then transferring toner onto copper-clad board.<br />
* [[Photoetching]] -- Exposure of PCB designs onto photosensitized copper-clad board.<br />
* [[Chemical Etchants]]<br />
* [http://groups.yahoo.com/group/pcb-gcode "Mechanically etching or milling PCBs. No chemicals!"] -- Use your CNC router/mill to make PC boards.<br />
* [http://openfarmtech.org/index.php?title=Routed_Circuit_Board Open Source Ecology wiki: "Routed Circuit Board"]<br />
* [http://tech.groups.yahoo.com/group/Homebrew_PCBs/ Yahoo group: Homebrew_PCBs · Homebrew Printed Circuit Boards]<br />
* [http://reprap.org/wiki/Automated_Circuitry_Making RepRap wiki] has details on how to use open-source RepRap-based desktop routers to cut PCBs out of copper-clad board.<br />
* [http://www.pabr.org/pcbprt/pcbprt.en.html "pcbprt - Experiments in inkjet PCB printing"] by pascal. Some inkjet printers can print directly CD and DVD. Pascal explains step-by-step how to get those printers to print on copper-clad FR4 to make reasonably good etch resist. The main trick seems to be baking the freshly-printed boards to dry out the ink and get the dyes/pigments to stick to the copper -- otherwise the water-based ink immediately washes off as soon as you drop the board in the etch tank.<br />
* A few people have made "DIY Flex Circuits".[http://diydrones.com/profiles/blogs/diy-flex-circuits]<br />
<br />
=== Commercial PCB fabrication ===<br />
* [[Submitting PCB's for fabrication]] -- Common processes for submitting PCB's for fabrication.<br />
* [[PCB Manufacturers]]<br />
* [http://diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A30196 "PCB fabbing advice"] by Chris Anderson 2008<br />
<br />
==Best Practices for PCB Layout==<br />
===Theory===<br />
*Provide the easiest path (lowest impedance) for current to flow<br />
**Return current tends to flow directly under signal trace (for PCB having ground plane)<br />
**Inductance increases with length of traces<br />
**Inductance increases with the area enclosed by signal trace and ground<br />
*Prevent digital currents from contaminating analog currents<br />
*Decouple high speed components<br />
*Use ground loop avoidance techniques<br />
<br />
=== Layer stack-up ===<br />
<br />
1-layer, 2-layer, and 4-layer boards all have their advantages and disadvantages.<br />
<br />
* [http://electronics.stackexchange.com/questions/5284/how-much-more-does-it-cost-to-fab-a-4-layer-board-compared-to-a-2-layer-board-and "How much more does it cost to fab a 4 layer board compared to a 2 layer board and is it worth it?"]<br />
<br />
<br />
Many people recommend going to 4-layer boards when using high-speed digital logic, since that allows a solid ground plane that improves EMI/EMC.<br />
See:<br />
Nansen Chen, Hongchin Lin.<br />
[http://www.smtnet.com/library/files/upload/2-layer-board.pdf "A Two-Layer Board Intellectual Property to Reduce Electromagnetic Radiation"].<br />
They manage to directly connect a DDR SDRAM in a 66-pin TSOP package<br />
to a digital LCD-TV controller,<br />
both on the top layer of a 2-layer PCB,<br />
with<br />
the DRAM CLOCK operating at about 250 Mbit/s and<br />
the DRAM DQ operating at about 500 Mbit/s (DDR),<br />
the Addr/CMD at about 125 Mbit/s,<br />
playing 1080i video with picture in picture display.<br />
Of the two very similar PCB layouts they present,<br />
the one where the bottom layer to be a solid ground layer<br />
under *all* the DRAM data and clock lines<br />
produced significantly less EMI.<br />
<br />
===Design===<br />
*Partition PCB into "analog stuff" and "digital stuff".<br />
*No digital signal traces should cross over analog ground, and vice versa <br />
*For components having both analog and digital signals (e.g. ADC), orientate components so that the analog signal traces goes only over the analog ground plane, and digital signal traces goes only over the digital ground plane<br />
*AGND and DGND of ADC must have a small impedance (i.e. separated by short distance)<br />
*Add decoupling capacitors close to Vcc and DGND of ICs<br />
*Add ferrite beads and capacitors (PI-filter) to power rail for low-pass filtering (reduce ripples).<br />
<br />
===Routing===<br />
*Place fixed components first (components location that cannot be changed, e.g. connectors, buttons, etc)<br />
* Make installing parts onto the PCB fast:<br />
** Fastest: No through-hole parts. All surface-mount parts on the bottom side.<br />
** Next-fastest: All through-hole parts on the top side. All surface-mount parts on the bottom side. ( [http://www.psocdeveloper.com/articles/apple-mighty-mouse-spills-its-guts/the-capacitive-touch-sense-buttons-pcb.html "Mighty Mouse Main Printed Circuit Board (PCB)"] )<br />
*Separate components into groups<br />
**Digital signals only<br />
**Analog signals only<br />
**Digital and analog (Mixed) signals<br />
**High current devices (e.g. led backlight for LCD/buzzer)<br />
*Do not partition ground into analog and digital planes.<br />
**Use a single ground plane. See the "[[#References | Grounding References]]" below.<br />
*Orientate components that have mixed signals according to the orientation of the ground planes, and straddle components over DGND and AGND<br />
*Place digital only components over DGND<br />
*Place analog only components over AGND<br />
[[File:Pcb layout.png|thumb|800px|center|Grounding Example for PCB]]<br />
*Decoupling capacitors should be as close to the ICs as possible<br />
Vcc<br />
| | | | |<br />
+-----------+<br />
-------+-+--|-+---------|-------- Vcc<br />
|C| | IC |<br />
-------+-+--|---------+-|-------- GND<br />
+-----------+<br />
| | | | |<br />
GND<br />
*Lay critical (noise-sensitive) traces first (e.g. crystal, analog signals)<br />
**As short as possible<br />
**Use 45<sup>o</sup> turnings instead of 90<sup>o</sup><br />
*Paired signal traces (e.g. TX+, TX- in ethernet chips) should run parallel along each other<br />
TX+ -----\<br />
TX- ----\ \<br />
\ \<br />
\ \<br />
\ \<br />
\ \------------ TX+<br />
\------------- TX-<br />
<br />
===References===<br />
* [http://en.wikibooks.org/wiki/Practical_Electronics/PCB_Layout "Practical Electronics/PCB Layout"] has more tips on PCB layout<br />
*Grounding<br />
**[http://www.hottconsultants.com/pdf_files/june2001pcd_mixedsignal.pdf Partitioning and Layout of a Mixed Signal PCB]: The importance of single ground plane and partitioning of analog and digital signal trace<br />
** [http://techref.massmind.org/techref/noises.htm#unsplit_ground Massmind Techref: "Unsplit ground"]<br />
** Rob Reeder. "Mine These High-Speed ADC Layout Nuggets For Design Gold"[http://electronicdesign.com/article/analog-and-mixed-signal/Mine-These-High-Speed-ADC-Layout-Nuggets-For-Design-Gold.aspx] "Electronic Design" 2011. "Splitting Grounds: ... [should] the ground plane ... be split into an AGND and DGND ground plane when using an ADC [?] ... not usually. In most situations a split ground plane can cause more harm than good, as blindly splitting the ground plane only serves to increase the inductance for the return current."<br />
**[http://www.hottconsultants.com/pdf_files/ground.pdf Ground- A Path For Current Flow]: The importance of decoupling capacitors<br />
**[http://www.ece.msstate.edu/courses/ece4512/des1_syllabus/current/PCB_Layout_Tips.ppt PCB Layout Tips]: a power point presentation<br />
**[http://pemclab.cn.nctu.edu.tw/w3news/%E6%8A%80%E8%A1%93%E5%A0%B1%E5%91%8A/TR-040.%E9%9B%BB%E8%B7%AF%E6%9D%BF%E4%BD%88%E5%B1%80%E5%8E%9F%E5%89%87/html/layout.htm PCB Layout Guidelines]: in Traditional Chinese<br />
*Crystals and Oscillators<br />
**[http://www.atmel.com/dyn/resources/prod_documents/doc8128.pdf AVR186]: Best Practices for the PCB layout of Oscillators<br />
*ADC & Analog Filters<br />
**[http://ww1.microchip.com/downloads/en/DeviceDoc/adn007.pdf ADN007]: Techniques that Reduce System Noise in ADC Circuits<br />
**[http://ww1.microchip.com/downloads/en/DeviceDoc/ADN010.pdf ADN010]: Predict the Repeatability of your ADC to the BIT<br />
**[http://ww1.microchip.com/downloads/en/AppNotes/00699b.pdf AD699]: Anti-Aliasing, Analog Filters for Data Acquisition Systems<br />
**[http://ww1.microchip.com/downloads/en/AppNotes/00682c.pdf AN682]: Using Single Supply Operational Amplifiers in Embedded Systems <br />
**[http://ww1.microchip.com/downloads/en/AppNotes/00990a.pdf AN990]: Analog Sensor Conditioning Circuits - An Overview<br />
*EMC<br />
**[http://www.atmel.com/dyn/resources/prod_documents/doc1619.pdf AVR040]: EMC Design Considerations<br />
**[http://www.freescale.com/files/microcontrollers/doc/app_note/AN1705.pdf AN1705]: Noise Reduction Techniques for Microcontroller-Based Systems<br />
** [http://www.st.com/stonline/books/pdf/docs/4988.pdf AN898: EMC general information]<br />
** [http://www.st.com/stonline/books/pdf/docs/4967.pdf AN901: EMC guidelines for microcontroller-based applications]<br />
** [http://www.st.com/stonline/books/pdf/docs/9914.pdf AN1709: EMC design guide for ST microcontrollers]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Motherboards_that_run_Linux&diff=89174Motherboards that run Linux2023-03-31T21:35:13Z<p>DavidCary: yet another open-source motherboard that runs Linux</p>
<hr />
<div>Motherboards that run Linux, and are [[open hardware]].<br />
Some of these have all the connections you may expect on a [[PC]],<br />
while others don't.<br />
In no particular order:<br />
<br />
<br />
==== Elphel camera ====<br />
<br />
[[Elphel camera]]s are free software and open hardware cameras.<br />
The cameras run Linux.<br />
The cameras have several interfaces -- 10/100 Ethernet, USB, IDE, RS-232, etc.<br />
It uses a FPGA for video processing and video compression.<br />
More information here at Open Circuits: [[Elphel camera]]; and at the [http://wiki.elphel.com/ Elphel wiki].<br />
<br />
<br />
==== The $9 CHIP Computer ====<br />
<br />
<br />
David Scheltema writes in [http://makezine.com/2015/07/22/with-linux-and-creative-commons-the-9-chip-computer-reveals-its-open-source-details/ "With Linux and Creative Commons, The $9 CHIP Computer Reveals Its Open Source Details"]<br />
that Next Thing Co.<br />
has published [https://github.com/NextThingCo/CHIP-Hardware open hardware files for CHIP on github].<br />
<br />
CHIP runs Linux.<br />
CHIP has a 1GHz R8 ARM processor, 512MB of RAM, 4GB of NAND storage, and WiFi and Bluetooth built-in.<br />
<br />
==== ZimaBoard ====<br />
<br />
"ZimaBoard is open source and always will be."<br />
-- https://www.zimaboard.com/zimaboard/product<br />
<br />
ZimaBoard comes with Linux pre-installed; can also run Windows.<br />
<br />
ZimaBoard has:<br />
LAN: 2x GbE LAN Ports;<br />
Display: 1x MiniDP Mini-DisplayPort 1.2 up to 4K @ 60Hz video;<br />
HDD/SSD: 2x SATA 6.0 Gb/s Ports;<br />
USB: 2x USB 3.0;<br />
PCIe: 1x PCIe 2.0 x4<br />
Power: DC 12V 5.5x2.5mm<br />
Cooling: passive (quiet, fanless)<br />
<br />
<br />
==== ARMUS Embedded Linux Board ====<br />
The [[ARMUS Embedded Linux Board]] is<br />
An ARM920T board running Linux at 200 Mips with sound, Ethernet, CAN, 48+ bidirectionnal IOs and 4 DSPs for motor control (DC, Servos, etc...). Built as a student proof robotics design platform.<br />
<br />
==== 68 Katy ====<br />
<br />
Steve Chamberlin.<br />
[http://www.bigmessowires.com/2014/11/17/68-katy-68000-linux-on-a-solderless-breadboard/ "68 Katy – 68000 Linux on a Solderless Breadboard"].<br />
Based on the Motorola 68008 CPU, 20 bit address bus and 8 bit data bus, running at 2 MHz.<br />
(Apparently it is now impossible to build on a solderless breadboard, using only chips currently in production, a computer that can run Linux -- so running Linux on a solderless breadboard necessarily requires using some out-of-producing part like the 68008).<br />
Runs uClinux, heavily pruned to fit in 480 KB Flash ROM (the remaining 32 KB of the 512 KB Flash ROM is masked by memory-mapped I/O devices) and and 512 KB of SRAM.<br />
Runs vi and Colossal Cave Adventure.<br />
"a super-minimal uClinux system ... it needs about 343K of ROM and 312K of RAM, or just 628K of RAM if you’ve got a bootloader that can fill RAM from some external source. My 68 Katy system is slightly heavier than that due to including vi and Adventure".<br />
<br />
Steve Chamberlin.<br />
[http://www.bigmessowires.com/68-katy/ "68 Katy"].<br />
a later PCB version runs at 12 MHz.<br />
schematic and board layout available in KiCad format.<br />
<br />
Steve Chamberlin.<br />
[http://www.bigmessowires.com/2015/01/14/make-your-own-katy/ "Make Your Own Katy"].<br />
<br />
==== Bifferboard ====<br />
The [http://bifferos.co.uk/ Bifferboard] <!-- was [http://bifferos.bizhat.com/] --> has:<br />
# 150MHz CPU, Intel 486SX instruction set, MMU.<br />
# 1 watt power consumption (200mA @5v)<br />
# 68mm x 28mm x 21mm (weight 28g)<br />
# 32MB SDRAM/8MB Flash<br />
# OHCI/EHCI USB 2.0<br />
# 10/100 ethernet<br />
# Serial console 115200 baud (can be used as 2 GPIO)<br />
# 4-pin JTAG (can be used as GPIO)<br />
# 2 permanent GPIO (1 LED, 1 button)<br />
* [http://sites.google.com/site/bifferboard/ bifferboard wiki]<br />
<br />
==== Balloon Xscale ARM+FPGA dev board ====<br />
[http://balloonboard.org Balloon Xscale ARM+FPGA dev board]<br />
The Balloon project has produced Balloon3, a high-performance ARM board designed for use by OEMs and Higher education. Spec is PXA270 (583Mhz), FPGA or CPLD, 1GB flash, 784MB RAM, USB (master, slave, OTG), CF slot, expansion bus, 16-bit bus, I2C, LCD, serial, audio. Very low power in CPLD confiuguration. Small, light. Various add-on boards: VGA LCD driver, robot motor driver+A/D, digital IO. Released under the Balloon Open Hardware license, which allows anyone to manufacture and for people to make derivatives. The expansion bus allows balloon to be used as the computing component for various special-purpose devices.<br />
* [http://www.linuxfordevices.com/c/a/News/Tiny-StrongARM-SBC-combines-open-source-software-AND-hardware/ "Aleph One is shipping a one-ounce, one-watt, 206MHz StrongARM-based single-board computer (SBC) that comes pre-installed with embedded Linux and features an "open source" hardware design."] 2004.<br />
* The 320 Volt blog reviews the Balloonboard: [http://320volt.com/en/acik-kaynak-arm-fpga-xscale-gelistirme-karti/ "Open Source Fpga Arm Xscale Development Board"]<br />
<br />
==== Linuxstamp ====<br />
The [[linuxstamp]] is an open source processor module. It is designed to be a very simple board capable of running linux. It is based on the Atmel AT91RM9200 processor (An ARM9 processor with a MMU).<br />
<br />
==== Linuxstamp Mboard 1 ====<br />
[[Linuxstamp Mboard 1]]<br />
This is the first mother board for the linuxstamp. It is still in the planning stages (no pcbs).<br />
<br />
==== Linuxstamp II 9260 ====<br />
[[Linuxstamp II 9260]]<br />
The Linuxstamp II is an open source processor module. It is designed to be a very simple board capable of running linux. It is based on the Atmel AT91SAM9260 processor (An ARM9 processor with a MMU).<br />
<br />
==== Linuxstamp II 8-channel RC Control board ====<br />
[[Linuxstamp II 8-channel RC Control board]]<br />
Motherboard for the Linuxstamp II to interface with RC servos.<br />
<br />
==== LART -- an open license StrongARM based tiny SBC ====<br />
<s>http://www.linuxdevices.com/links/LK9764937601.html (broken link)</s><br />
LART -- an open license StrongARM based tiny SBC.<br />
<br />
"All CAD files required for building LART are available under the closest we could get to an Open/Free Hardware License."<br />
The link in the Linux Devices article no longer works; the most recent link is http://www.lartmaker.nl/ .<br />
75 mm x 100 mm.<br />
<br />
* [http://www.linuxfordevices.com/c/a/News/Tiny-open-hardware-SBC-now-available-commercially/ "Tiny "open hardware" SBC now available commercially"]: "Aleph One Ltd and Remote12 ... announce that they are able to supply LART boards, with a User Guide, software and cables." 2001.<br />
* [http://www.linuxfordevices.com/c/a/News/Open-hardware-for-open-software/ "Open hardware for open software"] "Aleph One Ltd of Cambridge, England and Remote 12 Systems Ltd of London, England are now able to supply both LART and KSB boards, plus a User Guide, software, and cables." 2001. "The KSB board plugs onto LART and provides: IDE/ATA interface (44 pins on 2mm centers); stereo 16-bit 44KHz audio output at line and headphone levels; PS/2 connections for mouse and keyboard; mono audio I/O, POTS and ADC fron a UCB 1200chip; connectors for IrDA, USB Client, video, and touchscreen."<br />
* [http://www.linuxfordevices.com/c/a/News/More-LART-SBCs/ "More LART SBCs?"] 2002.<br />
<br />
==== Gumstix ====<br />
[https://www.gumstix.com/store/index.php?cPath=27 Gumstix - Motherboards the size of a stick of gum]<br />
<br />
A Gumstix motherboard is called a COM, which stands for computer-on-module. Gumstix COMs are inexpensive, and have RAM/Flash, 802.11b/g, Bluetooth and power management "on COM". Each COM connects to a wide variety of openly published expansion boards that include USB interface (gadget mode and host mode) and have things like Ethernet, GPIO and LCD module interface. <br />
<br />
An Overo COM is powered by a Texas Instruments ARM-based Stellaris, DaVinci or OMAP 35xx processor. A Verdex Pro COM is driven by a Marvel PXA270 (Verdex Pro series). <br />
<br />
Very cool site.<br />
<br />
All Gumstix expansion boards are open hardware.<br />
Gumstix expansion board schematics and layouts at pubs.gumstix.com/boards are published under a creative commons licence.[http://www.gumstix.org/hardware-design/overo-coms/73-overo-design/113-schematics.html]<br />
<br />
[https://www.gumstix.com/cbg-industrial-strength.html Designing with Gumstix]<br />
<br />
[https://www.gumstix.org Gumstix Developers Center].<br />
<br />
[http://wiki.gumstix.org/index.php?title=Main_Page User Wiki]<br />
<br />
The [http://sourceforge.net/p/gumstix/mailman/ gumstix mailing list at SourceForge].<br />
<br />
==== Toradex Colibri ====<br />
<br />
Although the actual Toradex Colibri processor board is apparently proprietary (?),<br />
* The processor board runs open-source Linux.<br />
* All (?) Toradex carrier boards are open source hardware.<br />
<br />
* "The 4-layer Open Source Viola carrier board measuring just 74mm x 74mm is compatible with the entire Colibri family of COMs." [http://www.toradex.com/products/customized-single-board-computer "ultra-low cost Customized Single Board Computers"]<br />
* [http://developer.toradex.com/software-resources/arm-family/linux/linux-(colibri) "Linux (Colibri)"]<br />
* Ixora Carrier Board[https://www.toradex.com/products/carrier-boards/ixora-carrier-board][http://developer.toradex.com/product-selector/ixora-carrier-board]<br />
* Viola Carrier Board[https://www.toradex.com/products/carrier-boards/viola-carrier-board][http://developer.toradex.com/product-selector/viola-carrier-board]<br />
* Iris Carrier Board[https://www.toradex.com/products/carrier-boards/iris-carrier-board][http://developer.toradex.com/product-selector/iris-carrier-board]<br />
<br />
==== Raspberry Pi ====<br />
: ''main article: [[R Pi Notes]]''<br />
<br />
The Raspberry Pi is a low-cost (USD $35; GBP ~£22) credit-card sized Linux computer for teaching computer programming to children, and often used by hobbyists. This board is so small and cheap that it is often though of with micro-controllers, which it is not.<br />
<br />
To use it you will need a power supply ( usb ) and a memory card ( perhaps 8 gigs ) It has an Ethernet connection and you will probably want to use it; either straight or, through a usb wireless dongle. <br />
Compare the cost to adding Internet and memory disk storage to an arduino, and you will see how economical this guy is.<br />
<br />
It also has connections for a usb keyboard and mouse. If used these push the cost of the Pi into the 100 dollar range. However, the mouse and keyboard are not necessary ( at least past initial setup ), instead you can use a remote desktop connection and use your PC's keyboard and mouse.<br />
<br />
The Pi has nice support for Python which is a powerful but friendly language.<br />
<br />
The Pi does not run programs in deterministic time ( nor to most Linux machine ) which is a disadvantage compared to most micro-controller systems. A nice combination is an arduino connected to Pi, low level task running in deterministic time ( blinking an IR Led as remote control ) can be done by the arduino while large memory space, Internet connectivity, and logging to memory cards is doe by the Pi.<br />
<br />
There are several different models available, check them out.<br />
<br />
<br />
* http://www.raspberrypi.org/<br />
* [http://en.wikipedia.org/wiki/Raspberry_Pi Wikipedia: Raspberry Pi]<br />
* [http://elinux.org/RaspberryPiBoard Raspberry Pi wiki]<br />
<br />
Various open-hardware things related to the Raspberry Pi:<br />
* [http://picru.st/ Pi Crust] fully open source hardware breakout board ([https://github.com/joewalnes/pi-crust github: joewalnes/pi-crust])<br />
* Some [[Enclosures#Raspberry Pi enclosure]]s are open-source.<br />
<br />
==== Chumby ====<br />
<br />
The Chumby http://chumby.com/ is designed as open source hardware.<br />
Hacking the Chumby hardware is encouraged by the manufacturer.[http://en.wikipedia.org/wiki/Chumby]<br />
<br />
The same system sofware (Linux and mostly open-source software) runs on a very similar "Chumby Hacker Board" available from adafruit.[http://www.ladyada.net/learn/chumby/]<br />
<br />
[http://wiki.chumby.com The Chumby wiki]<br />
discusses the Chumby from chumby.com, the CHB from adafruit, and a few other closely related devices.<br />
<br />
<br />
==== storage hardware ====<br />
<br />
''(Is there a better page for open-source storage hardware?)''<br />
<br />
Many people have published all the details needed to build<br />
a network-attached storage device (NAS),<br />
typically running Linux or other open-source OS.<br />
Alas, most of them use some proprietary motherboard,<br />
rather than the open-hardware motherboards elsewhere on this page.<br />
<br />
In no particular order:<br />
<br />
People at the XBMC wiki and XBMC forum often discuss building a network-attached storage (NAS) to support their home theater personal computer (HTPC) [http://wiki.xbmc.org/index.php?title=NAS] [http://forum.xbmc.org/forumdisplay.php?fid=112]<br />
* Some people at XBMC use CuBox-i Network Attached Storage (NAS) [http://www.solid-run.com/cubox-i-network-attached-storage-nas-opportunities-high-reliability-storage-2/] [http://forum.xbmc.org/showthread.php?tid=179462&pid=1565231]<br />
<br />
DIY NAS "Do It Yourself NAS"<br />
[http://diynas.com/].<br />
<br />
"Top 10 Linux Networked Storage Systems Under $1,000"<br />
[http://www.linux.com/news/enterprise/storage/699464-top-10-linux-nas-systems-under-1000].<br />
<br />
<br />
"Storage Pod 4.0: Direct Wire Drives – Faster, Simpler and Less Expensive"<br />
[http://blog.backblaze.com/2014/03/19/backblaze-storage-pod-4/].<br />
<br />
"180TB of Good Vibrations – Storage Pod 3.0"<br />
"we open sourced the Backblaze Storage Pod design and introduced the world’s most cost-efficient way to store big data."<br />
[http://blog.backblaze.com/2013/02/20/180tb-of-good-vibrations-storage-pod-3-0/]<br />
<br />
"18TB Home NAS/HTPC with ZFS on Linux".<br />
[http://blog.ashodnakashian.com/2013/11/18tb-home-nashtpc-with-zfs-on-linux-part-1/].<br />
<br />
"advice on cheap hardware for debian NAS"].<br />
[http://www.reddit.com/r/linux/comments/1uff5z/advice_on_cheap_hardware_for_debian_nas/]<br />
<br />
"the FreeNAS project".<br />
[https://en.wikipedia.org/wiki/FreeNAS].<br />
<br />
"How to build your own NAS box".<br />
with OpenMediaVault (OMV).<br />
[http://apcmag.com/how-to-build-your-own-nas-box.htm].<br />
<br />
the Netflix Open Connect Appliance Hardware<br />
[http://www.netflix.com/openconnect/hardware].<br />
<br />
"Building a tiny low-power Linux NAS".<br />
[http://www.timj.co.uk/2013/07/building-a-tiny-low-power-linux-nas/].<br />
<br />
"Building a NAS Server".<br />
[http://blog.superuser.com/2011/09/14/building-a-nas-server-2/].<br />
<br />
<br />
The Linksys NSLU2 , a.k.a. the "Slug", is a small low cost network storage device from Linksys.<br />
It can be flashed with Unslung, SlugOS, Debian/NSLU2 or OpenWrt/NSLU2 open-source firmware.<br />
* [http://www.nslu2-linux.org/ "NSLU2-Linux"].<br />
* [http://wiki.openwrt.org/toh/linksys/nslu2 "OpenWrt on the NSLU2"].<br />
* [http://linuxgazette.net/138/kapil.html "Debian on a Slug"].<br />
* [http://lwn.net/Articles/248747/ "Linux-based SLUG spawns highly hackable NAS (LinuxDevices)"].<br />
<br />
As of 2013, network-attached storage devices all use hard disk drives.<br />
People building NAS devices may be interested in<br />
<br />
"Minimizing Hard Disk Drive Failure and Data Loss".<br />
[https://en.wikibooks.org/wiki/Minimizing_Hard_Disk_Drive_Failure_and_Data_Loss].<br />
<br />
People building NAS boxes sometimes don't have enough motherboard connectors for all the hard drives they want to attach.<br />
(It is practically impossible to find a motherboard with more than 8 SATA connectors, and often people pick motherboards with even fewer connectors).<br />
* Plug SATA port multiplier(s) into the motherboard SATA connector. Alas, this doesn't work with every motherboard -- the "List of SATA controller hardware features" at the Linux ATA wiki will help you find a motherboard that does.[https://ata.wiki.kernel.org/index.php/SATA_hardware_features]<br />
* Plug a SATA card into (the PCI or PCIe slot of) the motherboard, then plug the hard drives into the SATA ports on that card, as in Backblaze Storage Pod 4.0<br />
* Both, as in Backblaze Storage Pod 3.0<br />
<br />
==== Banana Pi ====<br />
<br />
Banana Pi<br />
<br />
* [[Wikipedia: Banana Pi]]<br />
* http://www.banana-pi.org/ "Banana Pi Open-source Hardware"<br />
* http://wiki.lemaker.org/ LeMaker wiki: for LeMaker open source SBCs, including the LeMaker Banana Pi.<br />
* http://www.bananapi.com/<br />
* http://www.bananapi.org/<br />
* http://www.development-board.com/<br />
<br />
==== EDM ====<br />
<br />
"EDM is a Embedded Design Module standard under the Creative Commons license<br />
...<br />
targeting ... embedded applications and controllers ...<br />
A copy of the specifications can be found at www.edm-standard.org ."<br />
--<br />
http://www.wandboard.org/index.php/faq<br />
<br />
==== Embedded Open Modular Architecture ====<br />
<br />
"Embedded Open Modular Architecture] is an initiative to create robust, reliable and interoperable hardware standards for mass-volume systems".<br />
--<br />
http://elinux.org/Embedded_Open_Modular_Architecture<br />
http://rhombus-tech.net/<br />
<br />
==== Leopardboard ====<br />
<br />
[http://Leopardboard.org/ Leopardboard]<br />
has the complete schematics and bill of materials (BOM) available online.<br />
<br />
''(FIXME: What exactly does "Royalty-free open source 2A functions" mean?)''<br />
<br />
"Leopardboard.org is an open source community to provide developers a convenient place to get support for TI DM355 and Aptina CMOS Sensor applications"<br />
--<br />
[http://designsomething.org/leopardboard/p/links.aspx Leopardboard: Useful Links]<br />
<br />
<br />
==== Other Boards that Run Linux ====<br />
<br />
* Is it possible to [http://groups.google.com/group/comp.arch.embedded/browse_thread/thread/be085ff0772cde21/8331dee5db8eb083#8331dee5db8eb083 Linux on a "soft CPU"] inside a FPGA?<br />
<br />
* FriendlyARM produces several motherboards that support running Linux and Android [http://www.friendlyarm.net/products/comparison (comparison)], and posts the schematics for each one online. Is that close enough to open hardware?<br />
* Most [[Open Mobile Gadgets]] run Linux<br />
* [http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/Single-Board-Computer-SBC-Quick-Reference-Guide/ Linux Devices: "Single Board Computer (SBC) Quick Reference Guide"] lists a huge number of single-board computers that run Linux, from very tiny, low-power, specialized boards, to standard PC/104 and PC/104-Plus SBCs (96 mm × 90 mm) to Mini-ITX (170 mm × 170 mm) to EBX motherboards (203 mm × 146 mm).<br />
* [http://www.linuxhosts.org/article.cfm/id/158855 The ARM9 AT91SAM9261 is capable of running Linux].<br />
* <s>http://www.linuxdevices.com/articles/AT8498487406.html (broken link)</s> [http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/Teeny-weeny-Linux-SBCs/ "teeny weeny Linux single board computers"]<br />
* $49 (?) [http://forum.sparkfun.com/viewtopic.php?t=13105&sid=650394b1a9a8d19cc6179937bc088a42 Yoggie Open Firewall] runs Linux on an ARM PXA270 @ 520MHz<br />
* [http://armadeus.com/ Armadeus] boards run Linux with a Freescale 400MHz i.MX27 ARM926 processor. There is a [http://www.armadeus.com/wiki/ Armadeus Project Wiki].<br />
* [[BeagleBone]] and Beagle Board are open-hardware boards that runs Linux on a Texas Instruments 200MHz ARM processor. (The BeagleBoard also includes a TMS320C64x+ DSP).<br />
* the Analog Devices Blackfin was one of the first DSPs to run Linux.<br />
** the [http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/Blackfin-uClinux-platform-runs-networked-audio-player/ ADI Blackfin STAMP Board] has a Analog Devices Blackfin ADSP-BF533 running uClinux.<br />
** the [http://www.analog.com/en/embedded-processing-dsp/blackfin/bf537-stamp/processors/product.html ADSP-BF537 STAMP] has a Analog Devices Blackfin ADSP-BF537 running at 500 MHz ... but does it run Linux?<br />
** the [http://www.cs.uml.edu/blackfin/ Blackfin Handy Board] has a Analog Devices Blackfin ADSP-BF537 running at 600 MHz plus a Xilinx Spartan 3e FPGA ... but does it run Linux?<br />
** the [http://blackfin.uclinux.org/ uClinux project's "Blackfin" wiki pages] has a list of devices that apparently all run uClinux on a Blackfin.<br />
* [http://www.linuxfordevices.com/c/a/News/Meet-Dragonix-an-open-hardware-Linux-SBC/ Dragonix, an 'open hardware' Linux SBC], based on a Motorola Dragonball 68VZ328 processor, running uClinux. 100 x 100 mm. Designed to have a 2.5-inch IDE hard drive mounted to it.<br />
<br />
* "Cubieboard: ARM A8 CPU with SATA for Under $50" [https://www.linux.com/learn/tutorials/735815-cubieboard-arm-a8-cpu-with-sata-for-under-50].<br />
** [http://cubieboard.org/ CubieBoard]: "A series of open source hardware"<br />
<br />
<br />
* [http://www.cubietruck.com/ CubieTruck] "open ARM miniPC"<br />
<br />
* The MinnowBoard "The hardware design is open." with SATA. [http://www.minnowboard.org/].<br />
<br />
* How open is the "Open Android" [http://www.engblaze.com/take-prototyping-to-new-level-with-odroid-u2-dev-platform/ ODRIOD] ? 1.7Ghz quad-core ARM Cortex-A9; 10/100 Ethernet; runs Android Linux or Ubuntu Linux; etc.<br />
** [[Wiki Odroid plus USB troubleshooting and GPIO upgrade notes]] for Odroid XU4.<br />
<br />
* Are all the motherboards listed at [http://electronics.stackexchange.com/questions/11659/seeking-very-small-web-server "Seeking very small web server"] already listed here?<br />
* Are all the devices listed at [http://electronics.stackexchange.com/questions/1738/whats-the-simplest-linux-capable-board-i-could-make-at-home "What's the simplest Linux capable board I could make at home?"] already listed here?<br />
<br />
* http://www.parallella.org/ The Parallella Board: 18-core credit card sized computer; open source design files; runs Linux.<br />
<br />
* OLinuXino<br />
** [[Wikipedia: OLinuXino]]: "open hardware single-board computer"<br />
** [http://www.newark.com/olimex/a10s-olinuxino-micro/a10s-cortex-a8-olinuxino-linux/dp/69W8084 OLinuXino A10s]<br />
** [https://eewiki.net/display/linuxonarm/A20-OLinuXino-LIME A20-OLinuXino-LIME]<br />
<br />
* [http://www.digikey.com/product-search/en/embedded-computers/single-board-computers-sbcs/ Digi-Key Single Board Computers (SBCs)] has a list ... are any of them missing from the above list?<br />
<br />
* [http://www.wandboard.org/ Wandboard]<br />
** [https://eewiki.net/display/linuxonarm/Wandboard Wandboard at eewiki.net]<br />
** [http://www.digikey.com/product-search/en?keywords=wandboard Wandboard at Digi-Key]<br />
<br />
* [http://wiki.radxa.com/ Radxa]: "Open Source Hardware".<br />
** [https://github.com/radxa Radxa Limited]: "An OSHW company from China"<br />
** [http://www.seeedstudio.com/depot/Radxa-Rock-Pro-p-1979.html Radxa Rock Pro] from Seeed Studio. Micro-SD card slot; Bluetooth, Wifi, Ethernet, USB Host and USB OTG, HDMI; supports Linux, Android, and FreeBSD; ...<br />
<br />
* [http://linux-sunxi.org/Miniand_Hackberry "Miniand Hackberry"]<br />
<br />
* [http://www.8devices.com/carambola-2 Carambola 2] Wi-Fi enabled Linux module<br />
** [http://jeelabs.org/2013/05/06/embedded-linux-carambola-2/ "Embedded Linux – Carambola 2"]: "the development bundle ... has a Carambola2 permanently soldered onto it, with 2 Ethernet ports, a slave USB / console / power port, a USB host port, a WiFi chip antenna ... and a switching power supply to generate 3.3V from the USB’s 5V. ... The processor is a MIPS-based Atheros chip ... uses amazingly little power – considering that it’s running a full Linux-based OpenWrt setup."<br />
** [http://nut-bolt.nl/2012/carambola/ "8devices Carambola"]<br />
** [http://wiki.openwrt.org/toh/8devices/carambola2 "8devices Carambola 2"]<br />
** [http://dangerousprototypes.com/2011/11/14/carambola-based-project/ "Carambola wiki page"]<br />
** [http://uracoli.nongnu.org/carambola.html "First contact with Carambola"]<br />
<br />
* Eric Brown. [http://www.linux.com/news/embedded-mobile/mobile-linux/773852-top-10-open-source-linux-and-android-sbcs/ "Top 10 Open Source Linux and Android SBCs"] lists over 30 Linux single-board computers -- are all of them really open hardware?<br />
<br />
* [[Wikipedia: Single-board microcontroller]] has a list that has some overlap with this list.<br />
* [[Wikipedia: Comparison of single-board computers]] has a huge list of single-board computers, most of which run Linux and many of which are open hardware.</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Vehicle&diff=89044Vehicle2023-03-04T02:26:09Z<p>DavidCary: unicycle-related</p>
<hr />
<div>Vehicle-related open hardware projects,<br />
for both manned and unmanned vehicles.<br />
<br />
=== Open OBDII ===<br />
[http://www.sterntech.com/obdii.php Link to source and schematics]<br />
Open source hardware and software implementing OBDII tester for cars. <br />
Two versions one using a [[Microcontrollers#Microchip_PIC | PIC microcontroller ]] and one using an [[Microcontrollers#Atmel_AVR | AVR microcontroller]].<br />
<br />
== Mowbot ==<br />
an open project to build Mowbot, a [[robot]] lawnmower.<br />
http://mowbot.ro.nu/<br />
<br />
== helicopter ==<br />
<br />
See [[multi-rotor]].<br />
<br />
== cycle electronics ==<br />
<br />
I have created a web site where I am going to post my projects, mostly electronic but also some software. So, to start, if anyone like to enhance tail light on his motorcycle - welcome to [http://www.boldline.org BoldLine.org].<br />
<br />
P.S. I don't know if you guys have a some kind of formatting standard here. So, if I posted this incorrectly could someone correct me, please?<br />
<br />
''Welcome. --[[User:DavidCary|DavidCary]] 14:38, 23 July 2007 (PDT)''<br />
<br />
== small rocket computer ==<br />
<br />
What kind of electronics are small enough to fit into a small hobby model rocket?<br />
<br />
See [[rocket computer]].<br />
<br />
=== RCAP: R/C Auto Pilot: Remote Control Auto Pilot ===<br />
<br />
"The RCAP2 is a Remote Control AutoPilot] for model airplanes, cars and boats. The autopilot function can be switched off or on during flight with the flick of a switch." Uses PIC16F876A to:<br />
* read (servo) commands from the RC server<br />
* read (RS-232) GPS location from a NMEA capable GPS (with programmable goto/waypoints functions)<br />
* drive (servo) commands to the rudder.<br />
<br />
[http://en.wikibooks.org/wiki/RCAP RCAP Documentation at Wikibooks ],<br />
and [http://rcpilot.sourceforge.net/modules/rcap/index.php RCAP PCB layout at Sourceforge ].<br />
<br />
<br />
<br />
== bicycle computer ==<br />
<br />
What sort of electronics are useful mounted to a bicycle?<br />
Does it make any sense to mount the display on the bicycle helmet rather than on the handlebars?<br />
<br />
* speed (miles, kilometers, and wheel RPM), trip distance covered, trip time, total distance (odometer), elapsed time and calories burned.<br />
* pedal rpm == pedals per minute<br />
* beep every 10 minutes to remind me to get a drink of water<br />
* torque, force, power, etc.<br />
<br />
* [http://www.massmind.org/techref/piclist/biketut/index.htm "Build a simple bike computer: Learn how to program a PIC] by Fred Maher<br />
<br />
* [http://cyclerecorder.org/blog/20070421 The CycleRecorder Project]: "open source hardware and software project started by ... Robert Fitzsimons. The main goal of the project is to develop a modular and portable platform suitable for use with a bicycle, which can be used to record various aspects of a cyclists journey." ... used the open source tools [[GEDA | gschem and pcb]] ... (also links to several similar projects)<br />
<br />
* [http://solar-blogg.blogspot.com/2009/08/bicycle-speedometer-project.html "Bicycle Speedometer Project"] at the "solarwind" blog.<br />
<br />
* [http://www.mystrobl.de/ws/pic/tacho/bikecurrent.htm A data logging tool for the bicycle] by Wolfgang Strobl 1998: a PIC processor that interfaces between a reed contact (wheel revolution sensor) and a standard serial interface (to a handheld computer or PDA). mentions connector problems -- have USB connectors solved this problem?<br />
<br />
* [http://www.obico.de/ oBiCo: the open bicycle computer]: ARM9 processor and ATMEGA88 processor; Micro-SD Interface; plays MP3, OGG, etc. files; TFT-color display; 3 axis accelerometer; battery charged by dynamo or USB; Logging your tour data like GPS coordinates, heart frequency, speed and other parameters to a MicroSD-Card. The [http://p2pfoundation.net/Open_Bicycle_Computer p2pfoundation wiki discusses the open bicycle computer]<br />
<br />
* [http://www.mail-archive.com/community@lists.openmoko.org/msg13075.html OpenMoko: use of the Neo1973 and tangoGPS as a bicycle computer]<br />
<br />
* [http://www.treehugger.com/files/2009/01/sensors-on-board-bicycle-computer-rider-feedback-riding-easier.php "Sensors Linked To On-Board Bicycle Computer Could Make Riding Easier"]<br />
<br />
* [http://microship.com/bike/behemoth/ BEHEMOTH] (Big Electronic Human-Energized Machine... Only Too Heavy).<br />
* [http://microship.com/bike/winnebiko2/ Winnebiko II]: primary design objective -- being able to type while riding a bike<br />
<br />
* Spoke-POV [[POV display]].<br />
<br />
== UUV ==<br />
<br />
The people at [http://openrov.com/ OpenROV] are working on open source underwater robots for exploration, education, and adventure.<br />
<br />
* Doug at SV Seeker in Tulsa is asking the internet for help building a "open source towed sonar remotely operated vehicle". http://www.svseeker.com/wp/sv-seeker-2/open-source-towed-sonar-rov<br />
<br />
Several people at [http://diydrones.com/ DIY drones] and elsewhere are working on a UUV: unmanned underwater vehicle.<br />
See<br />
[http://diydrones.com/profiles/blog/list?tag=ArduRov ArduRov] and<br />
[http://diydrones.com/photo/rov-progress-pictures-52506-2] and<br />
[http://diydrones.com/forum/topics/705844:Topic:30854] and<br />
[http://diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A741095] and<br />
[http://diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A611851].<br />
<br />
* [http://web.mit.edu/imoyer/www/portfolio/yellowsub/index.html "The Yellow Submarine" built by Ilan E. Moyer] is a relatively small, low-cost UUV.<br />
<br />
<br />
* http://robotics.stackexchange.com/search?q=underwater<br />
<br />
* "[http://engineering.dartmouth.edu/epps/openprop/ OpenProp] is free software for the design and analysis of marine propellers and horizontal-axis turbines."<br />
<br />
* [http://www.seaperch.org/ SeaPerch website] sponsored by [http://www.auvsifoundation.org/foundation/programsandoutreach/seaperch the AUVSI Foundation: association for unmanned vehicle systems international]<br />
* [http://seaperch.mit.edu/ "MIT Sea Grant Sea Perch Program"]<br />
* [http://www.phillyseaperch.org/ "Greater Philadelphia SeaPerch Challenge"]<br />
* [https://en.wikipedia.org/wiki/SeaPerch Wikipedia: SeaPerch]<br />
<br />
== robot clubs ==<br />
''FIXME: should Tulsa robotics clubs go here, or at [[Tulsa electronics club#Tulsa robotics groups]]?''<br />
<br />
== Wanky The Safety Cat ==<br />
<br />
Murilee Martin.<br />
"If You Can't Buy It, Build It: Wanky The Safety Cat".[http://jalopnik.com/238353/if-you-cant-buy-it-build-it-wanky-the-safety-cat]<br />
<br />
has got a bit of attention:<br />
<br />
"Any Thoughts on Wanky the Safety Cat?".[http://forum.miata.net/vb/showthread.php?t=411154]<br />
<br />
"Jalopnik’s DIY attempt at nine-lives of road safety".<br />
[http://www.slashgear.com/jalopniks-diy-attempt-at-nine-lives-of-road-safety-224031/]<br />
<br />
"You've seen Winky/Wanky the safety cat...<br />
...now here's my "Dr Braker - Lazer Ed".<br />
[http://www.volkszone.com/VZi/showthread.php?t=550490]<br />
<br />
"What Does A High End Camera Company Have To Do With Old Turn Signals?".[http://jalopnik.com/what-does-a-high-end-camera-company-have-to-do-with-old-1605156555]<br />
<br />
<br />
== unicycle-related ==<br />
<br />
* "Code and Designs for a OneWheel clone" https://github.com/kelliott121/OneWheel via a comment on https://hackaday.com/2019/08/07/new-teensy-4-0-blows-away-benchmarks-implements-self-recovery-returns-to-smaller-form/<br />
<br />
<br />
== unsorted ==<br />
<br />
* [http://opensourceecology.org/wiki/LifeTrac LifeTrac] -- the world's first open-source high-performance four-wheel-drive tractor<br />
* [http://osbots.com/ Open Source Robotics]<br />
* [http://evproduction.org/wiki EV production wiki] discusses several electric open source vehicles.<br />
* [http://theoscarproject.org the OScar project] is developing an open-source automobile. Will it [http://www.theoscarproject.org/index.php?option=com_joomlaboard&Itemid=21&func=view&id=418&catid=13 get its own wiki]? perhaps at [http://openfarmtech.org/index.php?title=Open_Source_Car Open Source Ecology: Open Source Car]?<br />
* [http://p2pfoundation.ning.com/profiles/blogs/wikispeed-and-open-source-ecology-announce-partnership-in-open "WIKISPEED and Open Source Ecology Announce Partnership in Open-Hardware Movement"]: "The open-hardware movement got a tremendous boost today when WIKISPEED... and Open Source Ecology (OSE)... announced that they are teaming up to revolutionize transportation in the developing world. ... a high-performance modular car that gets 100 mpg and meets all U.S. safety standards": [http://opensourceecology.org/ OSE] and [http://www.wikispeed.com/ WIKISPEED]<br />
* [http://www.core77.com/blog/object_culture/cmmn_the_worlds_first_opensource_car__5847.asp "c,mm,n", the world's first open-source car] (via [http://www.guardian.co.uk/technology/blog/2007/mar/30/dutchattempta the Guardian])<br />
* Are the designs for General Motors' first all-electric car -- the Lunar Rover -- available?<br />
* Are the designs for any of the electric cars mentioned in "[http://en.wikipedia.org/wiki/Land_speed_record Wikipedia: land speed record]" available?<br />
* [http://tlb.org/eunicycle.html the Electric Unicycle]: the [http://en.wikipedia.org/wiki/Eunicycle eunicycle].<br />
* heads-up display in a motorcycle helmet[http://www.tgdaily.com/content/view/34462/149/]<br />
* [http://openuav.astroplanes.com/ OpenUAV, Open Source UAV Project]: "All source code/hardware schematics are open source (GPL) and can be freely downloaded from this site."<br />
* [http://www.metricmind.com/ac_honda/main2.htm DIY advanced high performance electric vehicle conversion project]. The [http://www.metricmind.com/ac_honda/images/led21.jpg stop light text matrix] is a pretty cool project all by itself.<br />
* [http://www.sciencedaily.com/releases/2008/04/080402204950.htm "Smart Brake Light System Would Provide More Information To Drivers"]<br />
* Openflight http://openflight.org/ wiki: "Crowdsourcing the flying car - collaborative design of flying cars"<br />
<br />
* [http://massmind.org/techref/postbot.asp?by=thread&id=PIC%5Fk+You+Brains Massmind: "PIC_k You Brains"] has a long thread on a rocket-launch computer including a big count-down display, ignition control, and various safety features.<br />
* [http://www.mikrokopter.de "Mikrokopter"] AVR powered quadrocopter.<br />
* Infineon has information on [http://www.infineon.com/cms/en/product/applications/automotive/ "Automotive Electronics"]<br />
* [http://www.panaceauniversity.org/ Panacea University] has several open-source projects, some of them involving vehicle electronics.<br />
* [http://endless-sphere.com/forums/ Endless-sphere.com: Electric Vehicle Technology Forums]<br />
* [http://en.wikipedia.org/wiki/MegaSquirt MegaSquirt] aftermarket electronic fuel injection (EFI) controller is relatively "open" hardware -- the source code and schematics are available for troubleshooting and modification and educational purposes, but not for copying -- they can be freely downloaded from the MegaSquirt website. See also the MegaSquirt HowTos at [http://en.wikibooks.org/wiki/BMW_E30_Megasquirt_%26_Wasted_Spark_ECU_Convertion Wikibooks: "BMW E30 Megasquirt & Wasted Spark ECU Convertion"] and [http://en.wikibooks.org/wiki/Nissan_240SX_Performance_Modification/KA24DE_and_KA24E/ITB%27s Wikibooks: "Nissan 240SX Performance Modification"] and the [http://wiki.diyefi.co.uk/ DIYEFI wiki] and the [http://www.diy-efi.org/ DIY-EFI wiki]<br />
* [http://www.vems.hu/wiki/ VEMS Wiki] discusses a Versatile Engine Management System<br />
* [http://freeems.sourceforge.net/ SourceForge: FreeEMS]: A free and open source Engine Management System including both hardware and software design. Also has a [http://wiki.freeems.org/doku.php FreeEMS wiki]. Apparently somehow related to http://DIYEFI.org/ ? Is there a more recent version of the information in the [http://deletionpedia.dbatley.com/w/index.php?title=FreeEMS_(deleted_24_Aug_2008_at_07:02) 2008 backup]?<br />
* [http://en.wikibooks.org/wiki/RC_Airplane/RCAP RCAP2 is a Remote Control AutoPilot] for model airplanes, cars and boats. Uses a PIC16F876 to interface between a GPS serial port and RC servo motors. Mike Pawlowski released the original version as open hardware. Also uses a [[PIC Programmers, In Circuit Programming and BootLoaders| PIC bootloader]]. [http://rcpilot.sourceforge.net/modules/rcap/index.php RCAP firmware at Sourceforge].<br />
* [http://code.google.com/p/xarias/ Xarias is an embedded car computer system]. It reads data directly from the sensors -- speed, rpm, fuel injectors, etc -- and displays speed, fuel consumption, engine RPM, internal and external temperature, journey time, distance, average speed and fuel consumption, total fuel consumed, cost, etc. Xarias is based on the Atmel ATMega32 MCU. The firmware is in C and is open source (GPL). All PCBs were designed using open-source gEDA software (schematic and PCB layout).<br />
* [https://sourceforge.net/projects/opengauge/ OpenGage] measures miles per gallon fuel efficiency. Open source.<br />
* Freedom EV is an open source hardware electric vehicle.[http://en.wikipedia.org/wiki/Freedom_EV Wikipedia: Freedom EV]; [http://evproduction.org/wiki/index.php?title=Freedom_EV EVProduction wiki: Freedom EV]<br />
* [http://www.pegasushabproject.org.uk/wiki/doku.php Pegasus HAB Project wiki] documents the Pegasus High Altitude Balloon project.<br />
* "This is what my car needs": a "Sorry, my bad!" button [http://theoatmeal.com/blog/car_needs]<br />
* [http://multiplo.org/ Multiplo] is apparently an open-source robot building system. Via [http://singularityhub.com/2012/10/25/build-your-own-robot-with-multiplo/ "Build your own robot with Multiplo"]<br />
* [http://code.google.com/p/er9x/ "er9x"] is open-source custom firmware for the Atmel AtMega64 inside a Eurgle/FlySky/Imax/Turnigy 9x r/c Transmitter. The hardware includes 2 sticks, 3 pots, 7 switches, and a 128x64px screen. (via [http://robotics.stackexchange.com/questions/413/questions-about-quadcopter-and-radio-controller "Robotics: Questions about quadcopter and radio controller"]). People are also publishing more-or-less "open hardware" mods to get it to do things it was never designed to do: [http://9xforums.com/wiki/index.php/Hardware_Mods_%26_Other_Guides Hardware Mods "9x radio Hardware Mods"].<br />
* [http://www.lowtechmagazine.com/2010/01/wood-gas-cars.html "Wood gas vehicles: firewood in the fuel tank"]: "During the Second World War, almost every motorised vehicle in continental Europe was converted to use firewood. ... Wood gas cars ... Wood gasification"<br />
<br />
''(FIXME: clearly separate open-source designs for entire vehicles, including moving parts -- cars, skateboards, quadcopters, etc. -- from vehicle-related projects that have no moving parts in themselves -- miles-per-gallon meters and other measurement and datalogger tools, engine management systems, eye-catching turn signals and wheel-POV displays, etc.)''<br />
<br />
----<br />
[[category:projects]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Kalman_filter&diff=88626Kalman filter2023-02-01T23:06:53Z<p>DavidCary: rough draft, including references.</p>
<hr />
<div><br />
<br />
A Kalman filter is used in highly dynamic [[robot]]ic systems, such as balancing [[walking robot]]s and [[multi-rotor]] helicopters.<br />
<br />
<br />
<br />
== External links ==<br />
<br />
* Tim Babb. [https://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/ "How a Kalman filter works, in pictures"]<br />
* Project Quadcopter: "try make ... decent explanation of the Kalman filter for non-mathematicians" [http://quadcopter.wordpress.com/2010/04/28/not-taking-a-break/]<br />
* Project Quadcopter: "Data logging and Kalman Filtering" [http://quadcopter.wordpress.com/2009/11/11/data-logging-and-kalman-filtering/]<br />
* Robotics: [https://robotics.stackexchange.com/questions/277/why-do-i-need-a-kalman-filter "Why do I need a Kalman filter?"]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Multi-rotor&diff=88625Multi-rotor2023-02-01T22:52:01Z<p>DavidCary: link to related articles, etc.</p>
<hr />
<div>A multi-rotor helicopter is a flying [[vehicle]] with more than one rotor.<br />
<br />
The nice people at http://www.quadheli.com/ have asked for our help designing and building a multi-rotor helicopter.<br />
<br />
Several people are using small unmanned helicopters with 4 rotors ("quadheli" or "quadcopter").<br />
<br />
DavidCary is designing a helicopter that can independently control all 6 degrees of freedom, using at least 6 rigid rotors.<br />
Does any other aircraft directly control all 6 degrees of freedom?<br />
(In principle, a tandem rotor helicopter with 2 fully articulated rotors can independently control all 6 degrees of freedom. But do tandem rotor helicopters really make all 6 degrees of freedom available to the pilot?).<br />
<br />
== critical goals ==<br />
<br />
# the aircraft must fly<br />
# able to mount a typical hand-held digital camera, and record video with it.<br />
# two-way communication with a ground station -- commands to helicopter, telemetry to the ground station (IMU sensor and output, estimated battery life remaining, etc.).<br />
# low cost<br />
# learn something new, and post that knowledge for others to use<br />
<br />
== nice to have but not critical features ==<br />
<br />
* sleek design<br />
* fast<br />
* goes high<br />
* everything open-source?<br />
* generic enough payload tray to swap out different CPUs? (OpenPilot, Gluonpilot, ARM-o-Kopter, etc)?<br />
* autonomous flight?<br />
** GPS homing -- records its GPS location on the ground launch site; if radio communications are lost, it returns to that location.?<br />
** Flightpaths uploaded via computer to the unit - Make a path in google maps/google earth, and have the unit run that path automatically?<br />
* remote control of camera: record video/snapshot?<br />
* accurate positioning relative to floor or walls or ceiling in house, to avoid accidentally hitting them? This requires better-than-GPS precision -- would ultrasonics work?<br />
** set anti-crash ceiling/wall limits<br />
* accurate velocity relative to floor or walls or ceiling in house ... to gently land, rather than slamming into the ground? This requires better-than-GPS precision -- would ultrasonics work? doppler ultrasonics?<br />
* safety bumper around perimeter? (Does making this a ducted fan improve its lift?)<br />
* real-time wireless video transmitter to ground?<br />
** heads-up display, able to fly it from a first-person perspective?<br />
* runs Linux?<br />
** TS-7500[http://www.embeddedarm.com/products/board-detail.php?product=TS-7500] : 67mm x 75mm; 400mA @ 5V; runs Linux.<br />
** gumstix: runs Linux<br />
* able to lift a 1 Kg payload?<br />
* weight well below the "fifty-five pounds" FAA recommended weight limit?[http://faa.custhelp.com/cgi-bin/faa.cfg/php/enduser/std_adp.php?p_faqid=108&p_created=1071245802&p_sid=IhBf8Gtj&p_accessibility=&p_lva=&p_sp=cF9zcmNoPSZwX3NvcnRfYnk9JnBfZ3JpZHNvcnQ9JnBfcm93X2NudD0mcF9wcm9kcz0mcF9jYXRzPSZwX3B2PSZwX2N2PSZwX3BhZ2U9MQ**&p_li=&p_topview=1]<br />
** weight less than 10 pounds to meet the First Person View (FPV) recommendations?[http://www.modelaircraft.org/files/550.pdf]<br />
** weight less than 2 pounds (and electric powered) to meet the "park flyer" limit?[http://www.modelaircraft.org/files/918.pdf]<br />
* control the helicopter with a wii remote (Bluetooth HID)<br />
* more sensors: air pressure (barometric pressure altitude), air temperature, humidity, air speed, communication signal strength, etc.?<br />
** perhaps eventually automatically "catch an updraft"?<br />
* Would it help to pan/tilt the camera on an independent gimbal auto-stabilized camera mount gimbal?[http://diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A2525]<br />
* automatic docking station for battery recharge?(perhaps similar to the one Professor Jonathan How uses?)<br />
* can be dressed as an ominous-looking hovering black sphere? [http://www.orangecoat.com/the-week-in-self-aware-robots-must-stop]<br />
* can be dressed up as an Imperial probe droid?<br />
* runs image-recognition software on-board?<br />
** flight control based on images?<br />
* [[Kalman filter]] ?<br />
<br />
== motors and propellers ==<br />
<br />
== frame ==<br />
<br />
* decent place to mount the motor controllers<br />
<br />
Is it better to put one big battery pack in the middle (simpler wiring), or several smaller battery packs as far as possible from the center (bigger rotational inertia for the same mass, so easier to stabilize pitch, roll, yaw)?<br />
<br />
== camera ==<br />
<br />
== electronics ==<br />
<br />
If the aircraft transmits both telemetry data and live video to the ground to the ground, is it better to use 2 independent transmitters on the aircraft, or to embed all the information into the video stream and use 1 transmitter?<br />
<br />
=== autopilots ===<br />
<br />
"Autopilot code projects, by processor/OS type" at DIY Drones[http://diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A19367]<br />
lists over 2 dozen (!) autopilot projects, many of them specifically designed for multi-rotor helicopters.<br />
That list includes:<br />
* Announcing ArduCopter, the merger of the ArduPilot and AeroQuad projects![http://www.diydrones.com/profiles/blogs/announcing-arducopter-the]<br />
* the NG Multikopter Project wiki [http://ng.uavp.ch/moin]: a open source community project to build a modern autonomously flying Multicopter.<br />
* ArduPilot [http://www.diydrones.com/profiles/blogs/ardupilot-main-page] is a full-featured autopilot based on the Arduino open-source hardware platform. It uses infrared (thermopile) sensors or an IMU for stabilization and GPS for navigation. Optionally uses XBee modules for wireless telemetry. Jose Julio at DIY Drones [http://www.diydrones.com/profiles/blog/list?user=3n7oxlg4fanvy] uses it in his two quadcopters. He uses 4 standard props (No counter-rotating !).<br />
* the R/C Pilot Project [http://rcpilot.sourceforge.net/][http://sourceforge.net/projects/rcpilot/]: an open source project to design a R/C Autopilot and a R/C Ground Station such that GPS and other telemetry from the plane is displayed.<br />
<br />
== testing ==<br />
<br />
DIYdrones recommends following the<br />
The Remote Control Aerial Photography Association guidelines[http://www.rcapa.net/guidelines.htm].<br />
<br />
== BLDC ==<br />
<br />
It appears that most modern small electric aircraft use so-called "brushless DC motors", each one driven by its own "BLDC ESC". (These are easily recognized -- BLDC motors have exactly 3 equally-fat wires that go into them, which come from the BLDC ESC -- as opposed to most electric aircraft a few years ago, which used brushed DC motors with exactly 2 equally-fat wires).<br />
<br />
We discuss brushless DC motors and BLDC ESCs in more detail at [[motor driver#BLDC]]<br />
<br />
== unnecessarily complicated equations ==<br />
<br />
In hover, each rotor gives (equations from Paul Pounds et. al 2004?)<br />
T = 2 p A v_i^2<br />
P_i = sqrt( T^3 / 2 p A )<br />
where<br />
T is the thrust produced<br />
p is the density of air, approximately 1.2 kg/m^3 at sea level and 20 'C.<br />
A is the area of the rotor disk<br />
v_i is the induced air velocity at the rotor<br />
P_i is the power induced in the air.<br />
<br />
For a quad-rotor helicopter weighing 4 kg, with a 30 per cent control margin, and a rotor radius of 0.165 m, such as the Australian X-4 Flyer, the above equation results in about 101 W of power induced in the air per rotor.<br />
With a shaft-to-air rotor efficiency of 90% that requires 112 W of shaft power.<br />
With a battery-to-shaft motor efficiency of 50%, each rotor pulls about 224 W of power from the battery at full thrust.<br />
<br />
To double thrust requires either pulling almost 3 times as much power from the batteries, or using rotors with almost 3 times the diameter.<br />
<br />
== APM-compatible quadcopter platform ==<br />
<br />
* [[User: CodeThatThinks]] has posted: Drawings, Schematics, Firmware for a ArduPilotMega (APM)-compatible quadcopter platform [https://github.com/codeThatThinks/Quadcopter/tree/master/pcbs]<br />
<br />
FIXME:<br />
If I'm designing a custom PCB for a quadcopter or hexacopter,<br />
what do I need to do to make it compatible with ArduPilotMega (APM)<br />
so I don't *also* have to re-write a bunch of code from scratch?<br />
(Designing one big custom PCB with the APM stuff<br />
and the one extra thing I wanted to add<br />
seems like it will weigh less than<br />
buying some off-the-shelf APM board<br />
and wiring it up to a separate board supporting that extra thing).<br />
<br />
== Indoor navigation ==<br />
<br />
Indoor navigation is more difficult in some ways than outdoor navigation:<br />
GPS receivers often don't work;<br />
it is now possible, and even easy to crash into the ceiling;<br />
etc.<br />
<br />
However, there are very light-weight sensors that work better indoors than outdoors:<br />
light sensors are not swamped by light from the sun;<br />
sonar sensors can measure XYZ position pretty much all the time,<br />
unlike outdoors where sonar only (?) seems to work "relatively close" to the ground, and even then only gives altitude and not X or Y;<br />
etc.<br />
<br />
* [[User: CodeThatThinks]] has posted: INS-for-Multirotors: indoor navigation system on a quadcopter[https://github.com/codeThatThinks/INS-for-Multirotors/tree/master/pcbs]<br />
<br />
== ground station ==<br />
<br />
<br />
* [[User: CodeThatThinks]] has posted: ground station for multirotors: acts as a USB to RF bridge for ground control, FPV, and telemetry for multirotors.[https://github.com/codeThatThinks/Ground-Station-for-Multirotors/tree/master/pcbs]<br />
<br />
<br />
== what can a helicopter do besides hover in the air? ==<br />
<br />
* "Cooperative Grasping and Transport using Quadrotors" [http://www.youtube.com/watch?v=YBsJwapanWI]<br />
* "Construction with Quadrotor Teams" [http://hackedgadgets.com/2011/01/14/building-by-connecting-parts-with-quadrotors-penn-engineering-grasp-labs/]<br />
* "Aggressive Maneuvers for Autonomous Quadrotor Flight" at UPenn’s GRASP Lab [http://www.robshangar.com/tag/quadcopter/], [http://www.popsci.com/technology/article/2010-06/upenns-autonomous-quadcopter-makes-navigating-tight-spaces-look-easy], [http://buildawebsitenow.net/trends/video-quadcopter-uav-careens-through-extremely-tight-spaces-autonomously], [http://www.sparkfun.com/news/460], [http://www.popsci.com/technology/article/2010-06/upenns-autonomous-quadcopter-makes-navigating-tight-spaces-look-easy]<br />
<br />
* The TurtleCam "acquires high resolution video and images which are streamed live to a base station.". [http://processors.wiki.ti.com/index.php/Beagle_Board_Challenge:_TurtleCam TurtleCam overview]; [http://code.google.com/p/turtlecam/ TurtleCam source code and BeagleLeashPCB details]<br />
<br />
* ''(FIXME: I hear there is a web site or two somewhere that describes how to take snapshots in flight, then after it lands, pull the SD card out of the camera, and then how to stitch the photos into an aerial map?)''<br />
<br />
== unsorted ==<br />
''way too many links here. Please delete the ones not relevant to multi-rotor helicopters.''<br />
<br />
* [http://en.wikipedia.org/wiki/quadrotor Wikipedia: quadrotor] is a nice introduction. But what are these "three rotor craft" it mentions? (TriCopter? Tri-copter?)<br />
* the OpenPilot Wiki [http://www.openpilot.org/]: open source community<br />
* Vicacopter[http://vicacopter.com/] helicopter autopilot claims to be "the only English language source code for a fully functional helicopter autopilot that you can download without paying for." "Can fly with under $100 of parts, not including the airframe."<br />
* The Gluonpilot wiki (autopilot) mentions "Quadrocopter" [http://gluonpilot.com/wiki/File:Quad.jpg]<br />
* MikroKopter wiki [http://www.mikrokopter.de/ucwiki/] semi-open-source "for noncommercial use"<br />
* QC-Copter Wiki [http://www.qc-copter.de/] : updates all motor speeds at 500 Hz.<br />
* the Wolferl Open Source QuadCopter (Universal Aerial Video Platform) wiki [http://uavp.ch/]. Apparently NS Rana at DIY Drones uses it in a very low-cost-frame quadcopter[http://diydrones.com/profiles/blogs/return-to-home-quadrocopter].<br />
* QuadroCopter Wikia [http://scratchpad.wikia.com/wiki/QuadroCopter]<br />
* ARM-o-Kopter wiki [http://www.armokopter.at/]<br />
* comparing some currently known projects of airborne non-commercial or open community projects of multicopters[http://ng.uavp.ch/moin/Comparison]<br />
* DIYdrones: "Newbie Quadcopter Questions" [http://diydrones.com/forum/topics/newbie-quadcopter-questions]<br />
* DIYdrones: "Quadcopter Basics" [http://diydrones.com/forum/topics/quadcopter-basics]<br />
* DIYdrones: "There are a zillion quad- and tri-copters out there" [http://diydrones.com/profiles/blogs/all-things-quad-megalist]<br />
* DIYdrones: Quadcopters discussion forum [http://diydrones.com/forum/categories/quadcopters-1/listForCategory]<br />
* DIYdrones: Return to Home Quadrocopter (UAVX) [http://diydrones.com/profiles/blogs/return-to-home-quadrocopter]<br />
* DIYdrones: "There are loads of open source quadcopters out there, but they're all ..." [http://diydrones.com/profiles/blogs/turning-the-parrot-ardrone] ''Is it possible to design a helicopter that avoids this problem?''<br />
* the "ChRoMicro - Cheap Robotic Microhelicopter HOWTO" [http://docwiki.gumstix.org/index.php/Customer_projects#Cheap_Robotic_Microhelicopter], [http://www.pabr.org/chromicro/doc/chromicro.en.html] describes "how to build a 300 g helicopter with embedded Linux and Bluetooth datalink from off-the shelf components for less than 500 EUR." Can these ideas be adapted to helicopters with more rotors?<br />
* Quadrotto: Project Quadcopter<br />
** Quadrotto: Project Quadcopter [http://docwiki.gumstix.org/index.php/Customer_projects#Quadrotto], [http://quadcopter.wordpress.com/]. Is there any way to avoid making the same mistakes all over again, and instead make fresh new mistakes? :-).<br />
** Project Quadcopter [http://quadcopter.wordpress.com/] "altimeter is ... not our only altitude sensing device. We ... plan ... an ultrasound sensor for landing and low altitude flights. ... they work pretty well out to about 4 or 5 feet." ... apparently using an ARM cortex-m3 microcontroller<br />
** the Quadrotto project[http://docwiki.gumstix.org/index.php/Customer_projects#Quadrotto] uses an ARM-based gumstix + an Atmel AVR ATMega128-based robostix<br />
** the Quadrotto Project[http://sied.dis.uniroma1.it/quadrotto/]<br />
** Project Quadcopter: "try make ... decent explanation of the Kalman filter for non-mathematicians" [http://quadcopter.wordpress.com/2010/04/28/not-taking-a-break/]<br />
** Project Quadcopter: "Data logging and Kalman Filtering" [http://quadcopter.wordpress.com/2009/11/11/data-logging-and-kalman-filtering/]<br />
* RCgroups: Multi Rotor Helis discussion forum [http://www.rcgroups.com/multi-rotor-helis-659/]<br />
** RCgroups: [http://www.rcgroups.com/forums/showthread.php?t=768115 "A New 1000mm Quad Copter Design"] 2007<br />
* Make magazine How-To: Quadrocopter based on Arduino[http://blog.makezine.com/archive/2010/01/how-to_quadrocopter_based_on_arduin.html] "The Quaduino NG & AeroQuad RC projects both make use of Arduino boards"<br />
** Quaduino NG[http://quaduino.org/]<br />
* AeroQuad discussion forum [http://aeroquad.com/]: dedicated to the design and construction of the AeroQuad, a remote controlled four rotor helicopter ... that uses the Arduino (Mega or Duemilanove with 328P) microcontroller as the flight control board, with a "AeroQuad Shield" that connects to all the other electronics -- radio receiver, gyros, accelerometers, and off-the-shelf ESCs. An excellent [http://aeroquad.googlecode.com/files/AeroQuad%20Tutorial_v6.pdf tutorial] showing how it all goes together with whatever frame you have; it claims "A good motor-to-motor distance to start with is around 60cm." (2 foot)<br />
** [http://hackaday.com/2010/01/15/aeroquad-build-your-own-quadcopter/ Hack A Day: "AeroQuad – build your own quadcopter"]<br />
* [http://www.crunchgear.com/2010/01/14/the-quadcopter-or-build-your-own-drone/ "The Quadcopter, or build your own Drone"] by Dave Freeman. CruchGear 2010. "Tuning the Quaduino" shows the effect of too much P in the PID. "Having fun with the AeroQuad".<br />
* microdrones [http://www.microdrones.com/]<br />
* whatnick blog: [http://whatnicklife.blogspot.com/2010/01/quadcopter-taking-shape.html "quadcopter taking shape"]; and other [http://whatnicklife.blogspot.com/search/label/quadcopter quadcopter posts] ... he apparently has a Gumstix Verdex and a BeagleBoard -- are either one of these going on the quadcopter?<br />
* [http://wsn.oversigma.com/wiki/index.php?title=WSN_Platforms WSN wiki: wireless sensor node platforms] -- perhaps we could use one of these boards for our wireless communication, or perhaps make incremental improvements, rather than designing yet another one from scratch?<br />
* Dr. Igor Bensen designed the eight rotor helicopter[http://books.google.com/books?id=f9kDAAAAMBAJ&pg=PA172&lpg=PA172&dq=%22eight+rotor%22+helicopter&source=bl&ots=fq2nUjB0y9&sig=lAW25I249Pozm1wIQ9EwIABPBgc&hl=en&ei=uQLNS7nTDY3wsQOnt6ivDg&sa=X&oi=book_result&ct=result&resnum=10&ved=0CDAQ6AEwCQ#v=onepage&q=%22eight%20rotor%22%20helicopter&f=false] on the front page of Popular Mechanics 1982 September.<br />
* Google: "Real-time stabilization of an eight-rotor UAV using optical flow"[http://www.google.com/#q=&quot;Real-time+stabilization+of+an+eight-rotor+UAV+using+optical+flow&quot;]<br />
* kapteinkuk built a low-cost quadrotor flight stabilizer based on a Atmel AVR ATMega48 [http://www.rcgroups.com/forums/showthread.php?t=1143569]; connected to a standard RC receiver, 3 gyros with ordinary analog output, and 4 ESCs. That's all the electronics.<br />
* "Intelligent Aircraft Fly, Cooperate Autonomously"[http://www.sciencedaily.com/releases/2006/09/060926171119.htm]: ScienceDaily 2006. "MIT researchers, in collaboration with Boeing's advanced research and development arm, Phantom Works ... Professor Jonathan How, who heads the research team, believes it is the first platform to publicly demonstrate sustained, coordinated, autonomous flight with multiple UAVs. ... miniature "quadrotor" aircraft - helicopters with four whirling blades instead of one ... an indoor positioning system ... The team has also designed an automatic docking station that allows the UAVs to recharge their batteries when they are running low. ..." more information: http://vertol.mit.edu/<br />
* "Towards Dynamically-Favourable Quad-Rotor Aerial Robots"[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.124.8460&rep=rep1&type=pdf] by Paul Pounds, Robert Mahony, Joel Gresham (2004?): "the Australian National University’s ‘X-4 Flyer’ platform." "The use of inverted rotors [pusher props] is shown to produce favorable stability properties"<br />
* [http://spectrum.ieee.org/automaton/robotics/robotics-software/quadcopter-hexacopter-octocopter-uavs "Quadcopter, Hexacopter, Octocopter ... UAVs"] by Markus Waibel. IEEE Spectrum 2010.<br />
* [http://www.diydrones.com/photo/arduimu-quadcopter-4? "ArduIMU Quadcopter 4"] by Jose Julio 2010<br />
* [http://reprap.org/wiki/RepCopter RepRap wiki: "RepCopter"]: early stages of a project to design a quadcopter frame that can be printed on a [[RepRap]] plastic extruder.<br />
* ArduPilotOne: A universal autopilot system for the ArduPilotMega platform.[http://code.google.com/p/ardupilotone/][http://code.google.com/p/ardupilotone/wiki/Home][http://diydrones.com/profiles/blogs/apm-the-universal-autopilot]<br />
* A simple flight controller for multi rotor helicopter: Inexpensive: $20 for the main board. $10 for the gyro board. [http://code.google.com/p/simple-flight-controller/]<br />
* "KapteinKUKs Simple and Low Part Count Quad, Hex and Tricopter Flight Controller" based on Atmega48 and 3 HK401B gyros and lots of hot glue.[http://www.rcgroups.com/forums/showthread.php?s=92ab2c4d478d5d37bac81dc1ce516304&t=1143569]<br />
* "Stopping drift in hovering quadrocopter"[http://electronics.stackexchange.com/questions/7632/stopping-drift-in-hovering-quadrocopter]<br />
* Go to http://code.google.com/ and search for "quadcopter": there are dozens of projects.<br />
* The [http://code.google.com/p/keadrone/ KeaDrone] is a three axis stabilizer/lock PCB used for RC helicopters (Accelerometer AND Gyro). It tries to hover your helicopter at a fixed place, even with changing winds. (It was originally designed to work with a low-cost 2-rotor coaxial rotor helicopter). open-source. "24grams including GPS". Board includes: Microchip PIC24HJ64GP204, ST LPY5150 gyro, ADXL345B accelerometer.<br />
* [http://spectrum.ieee.org/automaton/robotics/industrial-robots/sfly-quadrotors-navigate-outdoors-all-by-themselves "sFly Quadrotors Navigate Outdoors All By Themselves"]: "the sFly project, led by ETH Zurich's Autonomous Systems Lab, ... The only thing that sFly has to go on is an IMU and an onboard camera (and an integrated computer), but using just those systems (and a "very efficient onboard inertial-aided visual simultaneous localization and mapping algorithm"), sFly is capable of navigating all by itself. ... Each quadrotor is completely autonomous, but they're also ... stream stereo imagery back to a central computer over GSM or Wi-Fi that ... combines it into an overall 3D model of the environment as a whole."<br />
<br />
----</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Open-source_robot&diff=88624Open-source robot2023-02-01T22:42:53Z<p>DavidCary: link to related articles, etc.</p>
<hr />
<div><br />
"A robot is an autonomous machine capable of sensing its environment, carrying out computations to make decisions, and performing actions in the real world."<ref><br />
IEEE.<br />
[https://robots.ieee.org/learn/what-is-a-robot/ "What Is a Robot?"]<br />
</ref><br />
<br />
A robot is "any automatically operated machine that replaces human effort, though it may not resemble human beings in appearance or perform functions in a humanlike manner."<ref><br />
[https://www.britannica.com/technology/robot-technology "Britannica: Robot"].<br />
</ref><br />
<br />
Here at Open Circuits, we are most interested in open-source robotics.<br />
In particular, we are most interested in open designs for motor drivers and controller boards and all the other electronics that goes into a robot.<br />
We also find interesting open designs for rocker-bogie and other wheeled robot suspension arrangements, open designs for robot legs and arms and grippers, and open-source software intended to run on robot hardware as well as intended to be used to design improved robot hardware and electronics.<br />
<br />
== Complete robots already mentioned on Open Circuits ==<br />
<br />
* [[Odroid XU4 Weeding Spraying Robot]]<br />
* [[Vehicle]]s such as quadcopters and other [[Multi-rotor]] flying machines often technically qualify as a robot.<br />
<br />
== Robot components already mentioned on Open Circuits ==<br />
<br />
Motors, batteries, and the stuff between them:<br />
* [[Servo control]]<br />
* [[Motor driver]]<br />
* [[Arduino Motor Workshop]]<br />
* [[Instructables Stepper Links]]<br />
* [[Battery]]<br />
<br />
Sensors:<br />
<br />
* [[Piezoelectric transducer]] often used for robot sonar.<br />
<br />
Robot brains:<br />
<br />
* [[Motherboards that run Linux]] are useful for robots that do any sort of visual processing or WiFi networking.<br />
* [[Microcontrollers]] are useful for robots that balance or need any other sort of quick reflexes.<br />
* Some robots use both.<br />
<br />
== possibly related pages ==<br />
<br />
* [[Arduino Links]] mentions a few robots<br />
* [[3D Printed Mechanisms]]<br />
* [[Tulsa electronics club]] mentions robotics clubs<br />
* [[Kalman filter]] is used in highly dynamic robotic systems, such as balancing [[walking robot]]s and [[multi-rotor]] helicopters<br />
<br />
== External links ==<br />
<br />
* Electrical Engineering & Robotics Professor Dr. Carlotta A. Berry often discusses Open Source Hardware for robots in her blog https://www.noiresteminist.com/ and "Robotics for the Streets" videos https://www.youtube.com/@carlottaberry/videos<br />
* A list of open-source, affordable, less-known, or visionary robotics projects: https://github.com/mjyc/awesome-robotics-projects<br />
* Nybble, a palm-size Open Source Robotic Cat https://www.petoi.com/pages/nybble-cutest-bionic-robot-cat<br />
* Bittle, a palm-size Open Source Robot Dog https://www.petoi.com/pages/bittle-open-source-bionic-robot-dog ( https://www.the-diy-life.com/meet-bittle-an-advanced-open-source-robot-dog-by-petoi/ )<br />
* "9 open source robotics projects" https://opensource.com/life/16/4/open-source-robotics-projects<br />
* "Open Source Stories" mentions several robots and other open-source hardware: https://www.redhat.com/en/open-source-stories</div>DavidCaryhttp://www.opencircuits.com/index.php?title=All_About_Salvage&diff=88608All About Salvage2023-01-31T00:34:05Z<p>DavidCary: link to related articles, etc.</p>
<hr />
<div>Salvage can be a great way to produce a project at low cost or even get a project<br />
partly assembled from something you salvage ( power supplies are a simple and common example )<br />
<br />
<br />
* A master list of stuff to find and where to find it: [[Salvage Parts and Sources]]<br />
* A guide to all our salvage information [[Salvage Topics]].<br />
* Ideas for how to used salvaged stuff: [[Free From Salvage]]<br />
* [[Salvage Ideas]]<br />
* [[Salvage Challenges]]<br />
* projects based on salvaged material: [[Projects From Salvage]]<br />
* SCIL class: [[Electronics Salvage]] and [[Salvage Workshop]]<br />
<br />
<br />
<br />
<br />
[[category:Salvage]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=A_C_Program_Header_Example&diff=88580A C Program Header Example2023-01-28T18:38:56Z<p>DavidCary: link to related articles, etc.</p>
<hr />
<div>== What ==<br />
<br />
It has taken me a while to work out a header for C programs that I like. It is for both me and for those who try to reproduce or modify the project.<br />
(This particular example is from [[PIC based Stepper Motor Dancing Analog Clock]],<br />
but every project could use a similar header<br />
filled out with specific details that will be helpful to help people reproduce or modify that project).<br />
<br />
== The Example ==<br />
<br />
<br />
// Overview:<br />
// A program to drive the PIC based Stepper Motor Dancing Analog Clock<br />
// Author: russ_hensel, see: http://www.opencircuits.com/User:Russ_hensel <br />
// <br />
//<br />
// Environment: <br />
// SourceBoost BoostC 6.90 full version on XP<br />
// PIC: 16f877A<br />
// Check: Settings -> Options -> Extra compiler options: <none><br />
// Check: Settings -> Options -> Extra linker options: -v -swcs 6 2<br />
// Check: Settings -> Options -> Tools -> Compiler and Linker Location to match your configuration<br />
// Clock: see pragma and #define below<br />
//<br />
//<br />
// Hardware Assignment<br />
// <br />
// RB.0 interrupt input from IR reviever <br />
// Timer1 timing for IR<br />
// Serial Pins for serial interface <br />
// <br />
// <br />
// Reminder notes:<br />
// keep help db up to date as to the location of libraries, for this the serial comm library<br />
// see help db "serial comm"<br />
// <br />
// check out clock speed and baud rate!<br />
//<br />
// adjust CYC_PER_SEC to set to demo or true speed<br />
//<br />
// check version in rptVersion()<br />
// arrays may be in rom or not, trade off for which resource seems more restricted. ( tested for most arrays )<br />
// Status of comments<br />
// take with a grain of salt, in particular the effect on globals may be incomplete<br />
// <br />
//<br />
// status/history ( indented when done )<br />
// location now: C:\Russ\PER\_XX\PIC\BoostC\DDClock_OpenCircuits\DDClock.__c<br />
// seems to work, fine, but want to enhance<br />
//<br />
// Compile results:<br />
// Serial WClock version = Dec 24 2008 a<br />
// RAM available:368 bytes, used:160 bytes (43.5%), free:208 bytes (56.5%), <br />
// Heap size:208 bytes, Heap max single alloc:95 bytes<br />
//<br />
<br />
== Comments ==<br />
Something to add, take away...<br />
<br />
<br />
== Got another Example? ==<br />
<br />
<br />
[[Category:BoostC]][[Category:PIC]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Types_of_Things_in_Python&diff=88495Types of Things in Python2023-01-20T23:32:05Z<p>DavidCary: link to related articles, etc.</p>
<hr />
<div>= What are Types = <br />
<br />
Almost from the beginning in programming you should have seen two different things in Python: text ( ex: "Hello World" ) and numbers ( ex: 4 ). You may or may not have seen that these 2 types of things cannot be added together. That makes sense, they are sort of apples and oranges. Numbers are actually more complicated because 4 and 4., for example, are not not quiet of the same type one is an integer one is a float. They can be added because that too makes sense, the answer will be 8. also a float.<br />
The types of things is an important [[Python Topics]], and an important concepts in every programming language (see [[Overview of Programming]]).<br />
<br />
So how do you tell what type something is? There is a function called type( xyz ) which will tell you what type of thing xyz is. Some examples.<br />
<br />
<pre><br />
what_type_1 = 4<br />
what_type_2 = 4.<br />
what_type_3 = 4 + 0j<br />
<br />
print "what_type_1", type( what_type_1 )<br />
print "what_type_2", type( what_type_2 )<br />
print "what_type_3", type( what_type_3 )<br />
</pre><br />
<br />
= Types and Classes =<br />
<br />
Another lens to look at types is that of classes for types really are classes. What do I mean? In Python you can create new types which are called classes. A class is a software object which can be created and assigned to a variable. I will not go into the reasons why this is so great for programming ( it is part of Object Oriented Programming, you can gooogle it ) but will briefly show you how. It is a bit like defining a function. Note that you can more or less skim this code, there will be lots more on classes later.<br />
<br />
= Convert Object to String! =<br />
<br />
Almost any object can be converted to a string. This is done with the str() function. This can let you log information to a file, or print the object. Sometimes the string is useful ( it usually is for lists ) and sometimes not so much. Nice to know however.<br />
<br />
Examples:<br />
<br />
= Printing Objects =<br />
<br />
Pretty much any object can be printed. This may or may not be useful. Python first changes it to a string and then prints the string, see above.<br />
<br />
<br />
[[Category:Python]] [[Category:Draft]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Wireless_remote_switch_with_1_second_ON,_3_seconds_OFF_feature&diff=88494Wireless remote switch with 1 second ON, 3 seconds OFF feature2023-01-20T23:10:31Z<p>DavidCary: redirect to renamed page</p>
<hr />
<div>#REDIRECT [[Wireless remote switch, button press: 1 second=ON, 3 seconds=OFF]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=BoostC_tiny_Wiki&diff=88489BoostC tiny Wiki2023-01-20T19:49:02Z<p>DavidCary: tweak formatting</p>
<hr />
<div>== Introduction ==<br />
<br />
This is the very beginning of a Wiki for BoostC. Its organization will probably change a lot in the near future ( if we can get the free labor required ). It may move to the SourceBoost site if they want to host it. Since BoostC is proprietary it may be inappropriate for it to grow too big here unless we can find some explicit support for it. For now here it is. Much of this material applies to compilers other than BoostC and to environments other than PICs embedded systems. Major sections will probably be split into seperate pages. [http://www.sourceboost.com/ SourceBoost Homepage]<br />
<br />
== BoostC Wiki Contents ==<br />
<br />
In addition to this page see:<br />
<br />
===[[BoostC from the Forum]]=== <br />
Quickly review a year's worth ( or more ) of the forum for the most useful posts.<br />
<br />
===[[A Really Basic Guide to the PIC Microprocessor and BoostC]]===<br />
<br />
This is about as simple as it gets, does not assume much hardware knowledge either.<br />
<br />
===Go to [[PIC Links]]===<br />
Go to and search ( page search not google ) on "BoostC". There are projects, tips, tutorials..... <br />
=== [[BoostC Inline Functions]] ===<br />
=== [[How the BoostC Compiler Works]] ===<br />
<br />
<br />
=== [[BoostC Explaining Dot H Files]] === <br />
=== [[BoostC Wiki Help Needed]] === <br />
<br />
<br />
=== and even more comming soon.....===<br />
<br />
== Tips/Tricks/Gotchas ==<br />
<br />
=== Watch out for set-bit! ===<br />
<br />
The function set-bit() is almost right, but it should be set_bit(). This and similar errors are subtraction, and the result is error messages ( how about a sample ) that are not very helpful.<br />
<br />
=== Rebuild It === <br />
<br />
Sometimes I have been able to get rid of odd errors by forcing a rebuild by erasing all but the project file and the .c and .h files. The manual suggests that Ctrl+F7 or Ctrl+build command do pretty much the same thing.<br />
<br />
=== Subroutine Signatures === <br />
<br />
Often we have several versions of a subroutine with different signatures ( set and type of call arguments ) Try to check that you are calling the version you want. Casting may help.<br />
<br />
=== Flakey Stack === <br />
<br />
If a program is flakey, particularly after working in earlier versions you may have run out of stack space for the call return stack. <br />
<br />
To help you tell, look at all the linker messages. Also open the code window and look at the call tree ( View -> Code Bar -> Call Tree ), see anything in red?<br />
<br />
The fix:<br />
<br />
* Move the function inline in the code ( if only called once or if small )<br />
* Declare as an inline function.<br />
* Use the linker options to add a software stack.<br />
<br />
=== Bad Options ===<br />
<br />
Check you options, target should be right. Recently I had a problem with the Compiler location option. It seems to be a option of the project ( which makes sense if you want different projects to behave differently ) not the ide installation, so especially if you got the project from someone else check it. For me a bad compiler location made the build take forever and do nothing; the compiler gave a useful error message.<br />
<br />
=== Types and Booleans ===<br />
<br />
This may be standard C or just BoostC, but type checking is not as strict as languages like Java. Especially be careful of the idea that booleans and numbers are interchangable. Especially do not think that 0 is false and 1 is true. You can count on 0 being false ( I think ) I have seen test_bit evaluate to 64.<br />
<br />
=== Read Before Write Problems ===<br />
<br />
[[Read before write]]<br />
<br />
=== BootLoader Madness ===<br />
<br />
Had a program, programmed with a programmer, worked fine. Added a bootloader, bootloaded the program, NG. Why why why!<br />
<br />
Some hints, the fuses are inherited from the bootloader, your program cannot change, but that is not what got me. I did not use, set, or enable interrupts. This defult worked fine, but the bootloader apparently did not leave the settings in the default condition. My fix, added an interrupt handler which did nothing, but even more important turned the global interrupts off at the very beginning of my program. Not all bootloaders may behave in this way, but if you have a problem, consider the above. See also: [[PIC Programmers, In Circuit Programming and BootLoaders]]<br />
<br />
=== Include the Library ===<br />
<br />
Normally the compiler will find the library file needed, but if you get messages that functions are not found include the library that contains them, see the .h file with the same name for the library function. This has been know to work with the EEProm Library. Choose the right one, for the 18F or 16F if there is a choice.<br />
<br />
=== How to use PIC registers as C variables === <br />
<br />
BoostC compiler can map C variables on specific addresses. This becomes handly when one wants to use PIC registers as C variables. For example PIC CCPR1L and CCPR1H are a consecutively addressed register pair.<br />
<br />
volatile unsigned short ccpr1 @ 0xFBE; //declare a 16 bit variable that is located at address 0xFBE, just where CCPR1 registers start<br />
//Now this variable can be used in C cone<br />
ccpr1 = 0x2400; //for example assign 0x2400 to it what writes 0x00 into CCPR1L and 0x24 into CCPR1H <br />
<br />
== Standard C Issues ==<br />
<br />
==== Use a Lint Program ====<br />
Has anyone configured one for BoostC?<br />
<br />
==== Read This ====<br />
[http://en.wikipedia.org/wiki/C_Traps_and_Pitfalls C Traps and Pitfalls From Wikipedia, the free encyclopedia] Note that there is a free download or a longer ( for purchase ) book.<br />
<br />
=== Good Practices ===<br />
<br />
Opinions may differ!<br />
<br />
===== Put a good header in the program =====<br />
<br />
I keep refining my, see one of my projects like [[PIC Stepper Motor Demonstration and Test Project]] or an page with a version of the header [[A C Program Header Example]].<br />
<br />
===== Avoid Shortcuts =====<br />
<br />
For example I always use braces with an if statement, there is less chance of error if someone adds a line:<br />
<br />
if ( isTrue ) {<br />
ix ++;<br />
}<br />
<br />
Use full declarations:<br />
<br />
unsigned char ix;<br />
<br />
//not<br />
<br />
char ix;<br />
<br />
The reader, and perhaps even the programmer may not remember the default or remember it correctly<br />
<br />
<br />
Use parenthesis not operation conventions:<br />
<br />
c = a + ( b * c ) <br />
<br />
//not<br />
<br />
c = a + b * c<br />
<br />
In the good "old days" of the PDP-11 where large memory was measured in killobytes it was necessary to conserve memory -- even at the source code level. In the 21st century environment of gigabyte memories it's no longer necessary to conserve bytes at the expense of readability and clarity. Many programmers (particularly the old grumpy ones) take pride in saving a few bytes -- but mostly its a tradition thing except where the shortcuts save a bit of program run time. ....but then there might be a reason why they call it 'code'.<br />
<br />
Keep in mind that the following two sections are not equal. While the first looks neater at the source code level, it generates many times(!) more (redundant) machine instructions than the second form.<br />
<br />
<br />
bit LED1_TRIS @ TRISB.5;<br />
bit LED2_TRIS @ TRISB.6;<br />
bit LED3_TRIS @ TRISB.4;<br />
<br />
LED1_TRIS = LED2_TRIS = LED3_TRIS = 0; // make output<br />
<br />
<br />
Writing it this way, generates smaller and faster code:<br />
<br />
bit LED1_TRIS @ TRISB.5;<br />
bit LED2_TRIS @ TRISB.6;<br />
bit LED3_TRIS @ TRISB.4;<br />
<br />
// make output<br />
LED1_TRIS = 0;<br />
LED2_TRIS = 0;<br />
LED3_TRIS = 0;<br />
<br />
==== Read This ====<br />
<br />
[http://www.csd.uoc.gr/~hy255/reading/cstyle.pdf Recommended C Style and Coding Standards] from Bell Labs<br />
<br />
== How to pages ==<br />
<br />
[[Index of sample code pages]] showing sample code, showing the various ways tricky, or not so tricky issues have been tackled<br />
<br />
== Optimization ==<br />
<br />
As a general rule it has been observed that many programmers spend too much time on optimization and that often the compiler can do a better job than the programmer. Often readability of the code suffers for "optimizations" that do not really optimize anything. That said, it is worthwhile to optimize the algorithm. C does not know the purpose of the code, the programmer should, the compiler can only optimize the code in doing what you said, not what you want.<br />
<br />
<br />
=== Questions ===<br />
Questions:<br />
<br />
*Is shifting better than multiplying/dividing by poweres of 2?<br />
<br />
*does if( intcon & (1<<T0IF) ) work better than test_bit( intcon, T0IF )? --- answered see below.<br />
<br />
*Is there a time penality to using local variables.<br />
<br />
=== Optimizations that Seem to Work ===<br />
<br />
Declare variables as the simplest type that will work. Keep it small, keep it unsigned unless you need it otherwise.<br />
<br />
=== Optimizations that Seem Not to Work ===<br />
<br />
Some of these may not truely attempts at optimization, just different ways of writing code, in andy case we compare them to other presumabably clearer ways of writing the code.<br />
<br />
Generally these test were done by writing the code and then examining the casm file.<br />
<br />
==== Shift, vs Test ==== <br />
<br />
In interrupts we often see a bit test as <br />
<br />
if( intcon & (1<<T0IF) )<br />
<br />
by which it is meant:<br />
<br />
if( test_bit( intcon, T0IF) )<br />
<br />
Looking at the generated code: it is identical, so why not use the clearer formulation? { Also looking at boostc.h it seems this is the definition of the expression }<br />
<br />
=== "x" vs 'x' ===<br />
<br />
Sometimes there is "no difference" between "x" vs 'x'. For example serial_printf( '\r' ); and serial_printf( "\r" ); both print a carriage return. But the character formulation, '\r', will take less memory and run faster. Often a function will take either a character or a string, if the string is one character long use the character formulation.<br />
<br />
==== More ====<br />
<br />
More in process... and soon to be the new home for all [[BoostC Optimizations]]<br />
<br />
== Code Snips that may Be Helpful ==<br />
<br />
<br />
moved to and merged with [[Index of sample code pages]]<br />
<br />
== Example Programs and Projects ==<br />
<br />
Go to [[PIC Links]] and search ( page search not google ) on "BoostC".<br />
<br />
== Getting help ==<br />
<br />
Struggling with a new PIC feature? Check out the PIC tutorials at: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1959 for some useful help on the various PIC peripherals<br />
<br />
== Further reading ==<br />
<br />
* [[Microcontrollers]] This Wiki's main page on microcontrollers including the PIC.<br />
<br />
* [[Playing With PIC Pack]] A user developed package in BoostC for the PIC.<br />
<br />
* [[BoostC from the Forum]] Information extracted and summarized from the BoostC Forum. <br />
<br />
* [http://en.wikibooks.org/wiki/C_programming Wikibooks: C programming] is about C programming in general (alas, focuses on programs running on desktop computers, rather than small microcontrollers).<br />
<br />
* Gooligum C Tutorials [http://www.gooligum.com.au/tut_midrange_C.html ] C language Tutorials for mid range PICs with extensive examples and detailed explanations. Written for HITEC and PICC but easily convertable to SourceBoost C.<br />
[[Category:BoostC]][[Category:PIC]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Open-source_robot&diff=88405Open-source robot2023-01-06T07:25:27Z<p>DavidCary: more links to open-source robots</p>
<hr />
<div><br />
"A robot is an autonomous machine capable of sensing its environment, carrying out computations to make decisions, and performing actions in the real world."<ref><br />
IEEE.<br />
[https://robots.ieee.org/learn/what-is-a-robot/ "What Is a Robot?"]<br />
</ref><br />
<br />
A robot is "any automatically operated machine that replaces human effort, though it may not resemble human beings in appearance or perform functions in a humanlike manner."<ref><br />
[https://www.britannica.com/technology/robot-technology "Britannica: Robot"].<br />
</ref><br />
<br />
Here at Open Circuits, we are most interested in open-source robotics.<br />
In particular, we are most interested in open designs for motor drivers and controller boards and all the other electronics that goes into a robot.<br />
We also find interesting open designs for rocker-bogie and other wheeled robot suspension arrangements, open designs for robot legs and arms and grippers, and open-source software intended to run on robot hardware as well as intended to be used to design improved robot hardware and electronics.<br />
<br />
== Complete robots already mentioned on Open Circuits ==<br />
<br />
* [[Odroid XU4 Weeding Spraying Robot]]<br />
* [[Vehicle]]s such as quadcopters and other [[Multi-rotor]] flying machines often technically qualify as a robot.<br />
<br />
== Robot components already mentioned on Open Circuits ==<br />
<br />
Motors, batteries, and the stuff between them:<br />
* [[Servo control]]<br />
* [[Motor driver]]<br />
* [[Arduino Motor Workshop]]<br />
* [[Instructables Stepper Links]]<br />
* [[Battery]]<br />
<br />
Sensors:<br />
<br />
* [[Piezoelectric transducer]] often used for robot sonar.<br />
<br />
Robot brains:<br />
<br />
* [[Motherboards that run Linux]] are useful for robots that do any sort of visual processing or WiFi networking.<br />
* [[Microcontrollers]] are useful for robots that balance or need any other sort of quick reflexes.<br />
* Some robots use both.<br />
<br />
== possibly related pages ==<br />
<br />
* [[Arduino Links]] mentions a few robots<br />
* [[3D Printed Mechanisms]]<br />
* [[Tulsa electronics club]] mentions robotics clubs<br />
<br />
== External links ==<br />
<br />
* Electrical Engineering & Robotics Professor Dr. Carlotta A. Berry often discusses Open Source Hardware for robots in her blog https://www.noiresteminist.com/ and "Robotics for the Streets" videos https://www.youtube.com/@carlottaberry/videos<br />
* A list of open-source, affordable, less-known, or visionary robotics projects: https://github.com/mjyc/awesome-robotics-projects<br />
* Nybble, a palm-size Open Source Robotic Cat https://www.petoi.com/pages/nybble-cutest-bionic-robot-cat<br />
* Bittle, a palm-size Open Source Robot Dog https://www.petoi.com/pages/bittle-open-source-bionic-robot-dog ( https://www.the-diy-life.com/meet-bittle-an-advanced-open-source-robot-dog-by-petoi/ )<br />
* "9 open source robotics projects" https://opensource.com/life/16/4/open-source-robotics-projects<br />
* "Open Source Stories" mentions several robots and other open-source hardware: https://www.redhat.com/en/open-source-stories</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Open-source_robot&diff=88404Open-source robot2023-01-06T06:02:02Z<p>DavidCary: rough draft, including references.</p>
<hr />
<div><br />
"A robot is an autonomous machine capable of sensing its environment, carrying out computations to make decisions, and performing actions in the real world."<ref><br />
IEEE.<br />
[https://robots.ieee.org/learn/what-is-a-robot/ "What Is a Robot?"]<br />
</ref><br />
<br />
A robot is "any automatically operated machine that replaces human effort, though it may not resemble human beings in appearance or perform functions in a humanlike manner."<ref><br />
[https://www.britannica.com/technology/robot-technology "Britannica: Robot"].<br />
</ref><br />
<br />
Here at Open Circuits, we are most interested in open-source robotics.<br />
In particular, we are most interested in open designs for motor drivers and controller boards and all the other electronics that goes into a robot.<br />
We also find interesting open designs for rocker-bogie and other wheeled robot suspension arrangements, open designs for robot legs and arms and grippers, and open-source software intended to run on robot hardware as well as intended to be used to design improved robot hardware and electronics.<br />
<br />
== Complete robots already mentioned on Open Circuits ==<br />
<br />
* [[Odroid XU4 Weeding Spraying Robot]]<br />
* [[Vehicle]]s such as quadcopters and other [[Multi-rotor]] flying machines often technically qualify as a robot.<br />
<br />
== Robot components already mentioned on Open Circuits ==<br />
<br />
Motors, batteries, and the stuff between them:<br />
* [[Servo control]]<br />
* [[Motor driver]]<br />
* [[Arduino Motor Workshop]]<br />
* [[Instructables Stepper Links]]<br />
* [[Battery]]<br />
<br />
Sensors:<br />
<br />
* [[Piezoelectric transducer]] often used for robot sonar.<br />
<br />
Robot brains:<br />
<br />
* [[Motherboards that run Linux]] are useful for robots that do any sort of visual processing or WiFi networking.<br />
* [[Microcontrollers]] are useful for robots that balance or need any other sort of quick reflexes.<br />
* Some robots use both.<br />
<br />
== possibly related pages ==<br />
<br />
* [[Arduino Links]] mentions a few robots<br />
* [[3D Printed Mechanisms]]<br />
* [[Tulsa electronics club]] mentions robotics clubs<br />
<br />
== External links ==<br />
<br />
* Electrical Engineering & Robotics Professor Dr. Carlotta A. Berry often discusses Open Source Hardware for robots in her blog https://www.noiresteminist.com/ and "Robotics for the Streets" videos https://www.youtube.com/@carlottaberry/videos</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Robot&diff=88403Robot2023-01-06T05:26:30Z<p>DavidCary: Redirected page to Open-source robot</p>
<hr />
<div>#REDIRECT [[open-source robot]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Tulsa_electronics_club&diff=88402Tulsa electronics club2023-01-06T05:22:49Z<p>DavidCary: link to related articles, etc.</p>
<hr />
<div>Welcome to the Tulsa electronics club wiki pages.<br />
<br />
We build amazing things.<br />
Often with lots of blinky lights.<br />
<br />
<br />
----<br />
<br />
[http://8bitsystem.com/TEC/TECpowersupply.pdf "Bench-Top Power Supply"]<br />
by James Littlejohn<br />
for the Tulsa Electronics Club<br />
<br />
----<br />
<br />
<br />
Should the Tulsa electronics club remain independent,<br />
or should it join up with the dorkbot network?<br />
<br />
What do we need to do to get Tulsa -- or even Oklahoma -- on this map:<br />
http://makezine.com/groups<br />
?<br />
<br />
What do we need to do to get Tulsa -- or even Oklahoma -- on this map:<br />
http://hackerspaces.org/wiki/List_of_People<br />
?<br />
<br />
What do we need to do to get Tulsa -- or even Oklahoma -- on this map:<br />
[http://maps.google.com/maps/ms?ie=UTF8&hl=en&msa=0&msid=117099291054388532447.0004409098b1c5b712553 RepRap Users Map]<br />
<br />
What do we need to do to get Tulsa -- on<br />
the National Robotics Week map<br />
http://www.nationalroboticsweek.org/events<br />
(I see Broken Arrow is already on that map -- Yay!)<br />
<br />
----<br />
<br />
== Robotics groups ==<br />
<br />
=== Tulsa robotics groups ===<br />
<br />
[http://www.usfirst.org FIRST Robotics Challenge] is always looking for mentors and volunteers to help with the teams and competitions.<br />
<br />
Dr. Jack Sellers is apparently the primary coordinator and promoter of the FIRST activities in Oklahoma.<br />
<br />
Lane Matheson is apparently the contact person for FIRST robotics at MHS TEAM (Memorial High School -- The Engineering Academy at Memorial).<br />
<br />
Dr. Gerry Kane at TU is apparently the contact person for about robotics-related TU courses, and also about TU teachers and students that help mentor K-12 students in the FIRST Robotics Challenge, and the Razor Hall robotics lab.<br />
<br />
Tonya Scott is apparently the Oklahoma contact person for FIRST Tech Challenge (formerly FIRST Vex Challenge).<br />
<br />
Teddy Wyatt at Tulsa Tech apparently is also involved in in the FIRST Tech Challenge.<br />
<br />
David Cary (918)813-2279 wants to see people build cool and amazing and possibly even useful things. He used to hang out with the Portland PARTs group before moving to Tulsa. In 2012, David is building a [[Projects#RepRap | RepRap]] which might be useful for fabbing prototype robot parts, and which apparently itself technically meets some definitions of a "[[robot]]".<br />
<br />
Is [http://www.bestinc.org/ BESTRobotics] doing anything in Oklahoma?<br />
<br />
=== other robot groups ===<br />
''(Perhaps this section should move to its own page?)''<br />
''(Perhaps move to [[open-source robot]]?)''<br />
<br />
* [http://www.portlandrobotics.org/ PARTS: the Portland Area Robotics Society]<br />
* [http://www.seattlerobotics.org/ SRS: the Seattle Robotics Society]<br />
* [http://wiki.therobotgroup.org/ The Robot Group of Austin] (wiki)<br />
* [http://www.hbrobotics.org/ The HomeBrew Robotics Club of Silicon Valley]<br />
* [http://www.circpeoria.org/ Central Illinois Robotics Club]<br />
* [http://www.botlanta.org/ Atlanta Hobby Robot Club]<br />
* [http://www.dprg.org/ Dallas Personal Robotics Group]<br />
* [http://www.techgeek.com/ Techgeek]<br />
* [http://www.robotcombat.com/ Robot Combat]<br />
<br />
<br />
... and probably many others that I would list here if only I knew about them.<br />
<br />
=== Other groups near Tulsa that build cool things that may include electronics ===<br />
<br />
* Tulsa Open Source Hardware: [http://tosh.wikia.com the Tulsa Open Source Hardware Wiki]; [https://groups.google.com/forum/#!forum/tulsa-open-source-hardware Tulsa Open Source Hardware group]. "Meetings will be every 2nd Saturday of the month. They will take place at the Tulsa Fab Lab on 7th and Lewis. If you have a topic you want to bring up at the meeting, let me know. All meetings are from 1pm to 3pm unless otherwise posted."<br />
<br />
* [http://www.svseeker.com/ SV Seeker] is building many cool things, including a UUV ([[Vehicle#UUV]])<br />
* [http://www.habitat-tulsa.org/ Tulsa Habitat for Humanity]<br />
* Engineers Without Borders<br />
* Institute of Electrical and Electronics Engineers (IEEE) (often lots of students and professors from ORU, TU, and OSU show up at a meeting)<br />
* [http://www.tulsarocketry.org/ Tulsa Rocketry]<br />
* [http://www.tulsahamradio.org/ Tulsa Repeater Organization, Inc.] (ham radio)<br />
* [http://www.w5bbs.us/ the Broken Arrow Amateur Radio Club website]<br />
* [http://reprap.org/wiki/RUG/Oklahoma Oklahoma RepRap User Group]<br />
* [http://www.geeksok.com/ GeeksOK] ... at least one member is building a [[Projects#RepRap | RepRap ]].<br />
* [http://www.tcs.org/ Tulsa Computer Society] is building a [http://www.tcs.org/hotspot.htm map of Tulsa WiFi Hotspots]<br />
<br />
Whatever happened to the Tulsa group that was building a robot for BattleBots?<br />
<br />
== local supplier ==<br />
<br />
Should we make a list of local robot parts [[supplier]] in or near Tulsa here,<br />
analogous to the way<br />
[http://www.10bitworks.com/wiki/doku.php/localsupplies the 10BitWorks hackerspace community lists the local San Antonio suppliers]?<br />
<br />
* http://www.affiliatedelectronics.com/ 8901 East Admiral Place, TULSA OK<br />
* http://www.graybar.com/ 12535 East 52nd Street, TULSA OK -- fiber optic cable, Stahlin [[enclosures]], etc.<br />
* http://rulecompany.com/ 616 S Rockford Ave, TULSA OK<br />
* RadioShack <br />
** 2730 South Harvard<br />
** 4965 South Peoria<br />
** Garnett Plaza, 11613 E 31 Street<br />
** 15 South Sheridan Road<br />
** 8518 East 71st Street<br />
** Tulsa Hills Shopping Ctr, 7454 S Olympia Ave West<br />
** 9591 S Riverside Dr #2<br />
** 10035 South Memorial<br />
** 40 South Memorial Drive<br />
* [http://www.naturalevolution.com/main.htm Natural Evolution - Recycling & E-Waste] 5719 East 13th Street<br />
* ... and probably many others that would save me time and effort if only I knew about them.</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Vehicle&diff=88400Vehicle2023-01-06T04:47:34Z<p>DavidCary: </p>
<hr />
<div>Vehicle-related open hardware projects,<br />
for both manned and unmanned vehicles.<br />
<br />
=== Open OBDII ===<br />
[http://www.sterntech.com/obdii.php Link to source and schematics]<br />
Open source hardware and software implementing OBDII tester for cars. <br />
Two versions one using a [[Microcontrollers#Microchip_PIC | PIC microcontroller ]] and one using an [[Microcontrollers#Atmel_AVR | AVR microcontroller]].<br />
<br />
== Mowbot ==<br />
an open project to build Mowbot, a [[robot]] lawnmower.<br />
http://mowbot.ro.nu/<br />
<br />
== helicopter ==<br />
<br />
See [[multi-rotor]].<br />
<br />
== cycle electronics ==<br />
<br />
I have created a web site where I am going to post my projects, mostly electronic but also some software. So, to start, if anyone like to enhance tail light on his motorcycle - welcome to [http://www.boldline.org BoldLine.org].<br />
<br />
P.S. I don't know if you guys have a some kind of formatting standard here. So, if I posted this incorrectly could someone correct me, please?<br />
<br />
''Welcome. --[[User:DavidCary|DavidCary]] 14:38, 23 July 2007 (PDT)''<br />
<br />
== small rocket computer ==<br />
<br />
What kind of electronics are small enough to fit into a small hobby model rocket?<br />
<br />
See [[rocket computer]].<br />
<br />
=== RCAP: R/C Auto Pilot: Remote Control Auto Pilot ===<br />
<br />
"The RCAP2 is a Remote Control AutoPilot] for model airplanes, cars and boats. The autopilot function can be switched off or on during flight with the flick of a switch." Uses PIC16F876A to:<br />
* read (servo) commands from the RC server<br />
* read (RS-232) GPS location from a NMEA capable GPS (with programmable goto/waypoints functions)<br />
* drive (servo) commands to the rudder.<br />
<br />
[http://en.wikibooks.org/wiki/RCAP RCAP Documentation at Wikibooks ],<br />
and [http://rcpilot.sourceforge.net/modules/rcap/index.php RCAP PCB layout at Sourceforge ].<br />
<br />
<br />
<br />
== bicycle computer ==<br />
<br />
What sort of electronics are useful mounted to a bicycle?<br />
Does it make any sense to mount the display on the bicycle helmet rather than on the handlebars?<br />
<br />
* speed (miles, kilometers, and wheel RPM), trip distance covered, trip time, total distance (odometer), elapsed time and calories burned.<br />
* pedal rpm == pedals per minute<br />
* beep every 10 minutes to remind me to get a drink of water<br />
* torque, force, power, etc.<br />
<br />
* [http://www.massmind.org/techref/piclist/biketut/index.htm "Build a simple bike computer: Learn how to program a PIC] by Fred Maher<br />
<br />
* [http://cyclerecorder.org/blog/20070421 The CycleRecorder Project]: "open source hardware and software project started by ... Robert Fitzsimons. The main goal of the project is to develop a modular and portable platform suitable for use with a bicycle, which can be used to record various aspects of a cyclists journey." ... used the open source tools [[GEDA | gschem and pcb]] ... (also links to several similar projects)<br />
<br />
* [http://solar-blogg.blogspot.com/2009/08/bicycle-speedometer-project.html "Bicycle Speedometer Project"] at the "solarwind" blog.<br />
<br />
* [http://www.mystrobl.de/ws/pic/tacho/bikecurrent.htm A data logging tool for the bicycle] by Wolfgang Strobl 1998: a PIC processor that interfaces between a reed contact (wheel revolution sensor) and a standard serial interface (to a handheld computer or PDA). mentions connector problems -- have USB connectors solved this problem?<br />
<br />
* [http://www.obico.de/ oBiCo: the open bicycle computer]: ARM9 processor and ATMEGA88 processor; Micro-SD Interface; plays MP3, OGG, etc. files; TFT-color display; 3 axis accelerometer; battery charged by dynamo or USB; Logging your tour data like GPS coordinates, heart frequency, speed and other parameters to a MicroSD-Card. The [http://p2pfoundation.net/Open_Bicycle_Computer p2pfoundation wiki discusses the open bicycle computer]<br />
<br />
* [http://www.mail-archive.com/community@lists.openmoko.org/msg13075.html OpenMoko: use of the Neo1973 and tangoGPS as a bicycle computer]<br />
<br />
* [http://www.treehugger.com/files/2009/01/sensors-on-board-bicycle-computer-rider-feedback-riding-easier.php "Sensors Linked To On-Board Bicycle Computer Could Make Riding Easier"]<br />
<br />
* [http://microship.com/bike/behemoth/ BEHEMOTH] (Big Electronic Human-Energized Machine... Only Too Heavy).<br />
* [http://microship.com/bike/winnebiko2/ Winnebiko II]: primary design objective -- being able to type while riding a bike<br />
<br />
* Spoke-POV [[POV display]].<br />
<br />
== UUV ==<br />
<br />
The people at [http://openrov.com/ OpenROV] are working on open source underwater robots for exploration, education, and adventure.<br />
<br />
* Doug at SV Seeker in Tulsa is asking the internet for help building a "open source towed sonar remotely operated vehicle". http://www.svseeker.com/wp/sv-seeker-2/open-source-towed-sonar-rov<br />
<br />
Several people at [http://diydrones.com/ DIY drones] and elsewhere are working on a UUV: unmanned underwater vehicle.<br />
See<br />
[http://diydrones.com/profiles/blog/list?tag=ArduRov ArduRov] and<br />
[http://diydrones.com/photo/rov-progress-pictures-52506-2] and<br />
[http://diydrones.com/forum/topics/705844:Topic:30854] and<br />
[http://diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A741095] and<br />
[http://diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A611851].<br />
<br />
* [http://web.mit.edu/imoyer/www/portfolio/yellowsub/index.html "The Yellow Submarine" built by Ilan E. Moyer] is a relatively small, low-cost UUV.<br />
<br />
<br />
* http://robotics.stackexchange.com/search?q=underwater<br />
<br />
* "[http://engineering.dartmouth.edu/epps/openprop/ OpenProp] is free software for the design and analysis of marine propellers and horizontal-axis turbines."<br />
<br />
* [http://www.seaperch.org/ SeaPerch website] sponsored by [http://www.auvsifoundation.org/foundation/programsandoutreach/seaperch the AUVSI Foundation: association for unmanned vehicle systems international]<br />
* [http://seaperch.mit.edu/ "MIT Sea Grant Sea Perch Program"]<br />
* [http://www.phillyseaperch.org/ "Greater Philadelphia SeaPerch Challenge"]<br />
* [https://en.wikipedia.org/wiki/SeaPerch Wikipedia: SeaPerch]<br />
<br />
== robot clubs ==<br />
''FIXME: should Tulsa robotics clubs go here, or at [[Tulsa electronics club#Tulsa robotics groups]]?''<br />
<br />
== Wanky The Safety Cat ==<br />
<br />
Murilee Martin.<br />
"If You Can't Buy It, Build It: Wanky The Safety Cat".[http://jalopnik.com/238353/if-you-cant-buy-it-build-it-wanky-the-safety-cat]<br />
<br />
has got a bit of attention:<br />
<br />
"Any Thoughts on Wanky the Safety Cat?".[http://forum.miata.net/vb/showthread.php?t=411154]<br />
<br />
"Jalopnik’s DIY attempt at nine-lives of road safety".<br />
[http://www.slashgear.com/jalopniks-diy-attempt-at-nine-lives-of-road-safety-224031/]<br />
<br />
"You've seen Winky/Wanky the safety cat...<br />
...now here's my "Dr Braker - Lazer Ed".<br />
[http://www.volkszone.com/VZi/showthread.php?t=550490]<br />
<br />
"What Does A High End Camera Company Have To Do With Old Turn Signals?".[http://jalopnik.com/what-does-a-high-end-camera-company-have-to-do-with-old-1605156555]<br />
<br />
<br />
== unsorted ==<br />
<br />
* [http://opensourceecology.org/wiki/LifeTrac LifeTrac] -- the world's first open-source high-performance four-wheel-drive tractor<br />
* [http://osbots.com/ Open Source Robotics]<br />
* [http://evproduction.org/wiki EV production wiki] discusses several electric open source vehicles.<br />
* [http://theoscarproject.org the OScar project] is developing an open-source automobile. Will it [http://www.theoscarproject.org/index.php?option=com_joomlaboard&Itemid=21&func=view&id=418&catid=13 get its own wiki]? perhaps at [http://openfarmtech.org/index.php?title=Open_Source_Car Open Source Ecology: Open Source Car]?<br />
* [http://p2pfoundation.ning.com/profiles/blogs/wikispeed-and-open-source-ecology-announce-partnership-in-open "WIKISPEED and Open Source Ecology Announce Partnership in Open-Hardware Movement"]: "The open-hardware movement got a tremendous boost today when WIKISPEED... and Open Source Ecology (OSE)... announced that they are teaming up to revolutionize transportation in the developing world. ... a high-performance modular car that gets 100 mpg and meets all U.S. safety standards": [http://opensourceecology.org/ OSE] and [http://www.wikispeed.com/ WIKISPEED]<br />
* [http://www.core77.com/blog/object_culture/cmmn_the_worlds_first_opensource_car__5847.asp "c,mm,n", the world's first open-source car] (via [http://www.guardian.co.uk/technology/blog/2007/mar/30/dutchattempta the Guardian])<br />
* Are the designs for General Motors' first all-electric car -- the Lunar Rover -- available?<br />
* Are the designs for any of the electric cars mentioned in "[http://en.wikipedia.org/wiki/Land_speed_record Wikipedia: land speed record]" available?<br />
* [http://tlb.org/eunicycle.html the Electric Unicycle]: the [http://en.wikipedia.org/wiki/Eunicycle eunicycle].<br />
* heads-up display in a motorcycle helmet[http://www.tgdaily.com/content/view/34462/149/]<br />
* [http://openuav.astroplanes.com/ OpenUAV, Open Source UAV Project]: "All source code/hardware schematics are open source (GPL) and can be freely downloaded from this site."<br />
* [http://www.metricmind.com/ac_honda/main2.htm DIY advanced high performance electric vehicle conversion project]. The [http://www.metricmind.com/ac_honda/images/led21.jpg stop light text matrix] is a pretty cool project all by itself.<br />
* [http://www.sciencedaily.com/releases/2008/04/080402204950.htm "Smart Brake Light System Would Provide More Information To Drivers"]<br />
* Openflight http://openflight.org/ wiki: "Crowdsourcing the flying car - collaborative design of flying cars"<br />
<br />
* [http://massmind.org/techref/postbot.asp?by=thread&id=PIC%5Fk+You+Brains Massmind: "PIC_k You Brains"] has a long thread on a rocket-launch computer including a big count-down display, ignition control, and various safety features.<br />
* [http://www.mikrokopter.de "Mikrokopter"] AVR powered quadrocopter.<br />
* Infineon has information on [http://www.infineon.com/cms/en/product/applications/automotive/ "Automotive Electronics"]<br />
* [http://www.panaceauniversity.org/ Panacea University] has several open-source projects, some of them involving vehicle electronics.<br />
* [http://endless-sphere.com/forums/ Endless-sphere.com: Electric Vehicle Technology Forums]<br />
* [http://en.wikipedia.org/wiki/MegaSquirt MegaSquirt] aftermarket electronic fuel injection (EFI) controller is relatively "open" hardware -- the source code and schematics are available for troubleshooting and modification and educational purposes, but not for copying -- they can be freely downloaded from the MegaSquirt website. See also the MegaSquirt HowTos at [http://en.wikibooks.org/wiki/BMW_E30_Megasquirt_%26_Wasted_Spark_ECU_Convertion Wikibooks: "BMW E30 Megasquirt & Wasted Spark ECU Convertion"] and [http://en.wikibooks.org/wiki/Nissan_240SX_Performance_Modification/KA24DE_and_KA24E/ITB%27s Wikibooks: "Nissan 240SX Performance Modification"] and the [http://wiki.diyefi.co.uk/ DIYEFI wiki] and the [http://www.diy-efi.org/ DIY-EFI wiki]<br />
* [http://www.vems.hu/wiki/ VEMS Wiki] discusses a Versatile Engine Management System<br />
* [http://freeems.sourceforge.net/ SourceForge: FreeEMS]: A free and open source Engine Management System including both hardware and software design. Also has a [http://wiki.freeems.org/doku.php FreeEMS wiki]. Apparently somehow related to http://DIYEFI.org/ ? Is there a more recent version of the information in the [http://deletionpedia.dbatley.com/w/index.php?title=FreeEMS_(deleted_24_Aug_2008_at_07:02) 2008 backup]?<br />
* [http://en.wikibooks.org/wiki/RC_Airplane/RCAP RCAP2 is a Remote Control AutoPilot] for model airplanes, cars and boats. Uses a PIC16F876 to interface between a GPS serial port and RC servo motors. Mike Pawlowski released the original version as open hardware. Also uses a [[PIC Programmers, In Circuit Programming and BootLoaders| PIC bootloader]]. [http://rcpilot.sourceforge.net/modules/rcap/index.php RCAP firmware at Sourceforge].<br />
* [http://code.google.com/p/xarias/ Xarias is an embedded car computer system]. It reads data directly from the sensors -- speed, rpm, fuel injectors, etc -- and displays speed, fuel consumption, engine RPM, internal and external temperature, journey time, distance, average speed and fuel consumption, total fuel consumed, cost, etc. Xarias is based on the Atmel ATMega32 MCU. The firmware is in C and is open source (GPL). All PCBs were designed using open-source gEDA software (schematic and PCB layout).<br />
* [https://sourceforge.net/projects/opengauge/ OpenGage] measures miles per gallon fuel efficiency. Open source.<br />
* Freedom EV is an open source hardware electric vehicle.[http://en.wikipedia.org/wiki/Freedom_EV Wikipedia: Freedom EV]; [http://evproduction.org/wiki/index.php?title=Freedom_EV EVProduction wiki: Freedom EV]<br />
* [http://www.pegasushabproject.org.uk/wiki/doku.php Pegasus HAB Project wiki] documents the Pegasus High Altitude Balloon project.<br />
* "This is what my car needs": a "Sorry, my bad!" button [http://theoatmeal.com/blog/car_needs]<br />
* [http://multiplo.org/ Multiplo] is apparently an open-source robot building system. Via [http://singularityhub.com/2012/10/25/build-your-own-robot-with-multiplo/ "Build your own robot with Multiplo"]<br />
* [http://code.google.com/p/er9x/ "er9x"] is open-source custom firmware for the Atmel AtMega64 inside a Eurgle/FlySky/Imax/Turnigy 9x r/c Transmitter. The hardware includes 2 sticks, 3 pots, 7 switches, and a 128x64px screen. (via [http://robotics.stackexchange.com/questions/413/questions-about-quadcopter-and-radio-controller "Robotics: Questions about quadcopter and radio controller"]). People are also publishing more-or-less "open hardware" mods to get it to do things it was never designed to do: [http://9xforums.com/wiki/index.php/Hardware_Mods_%26_Other_Guides Hardware Mods "9x radio Hardware Mods"].<br />
* [http://www.lowtechmagazine.com/2010/01/wood-gas-cars.html "Wood gas vehicles: firewood in the fuel tank"]: "During the Second World War, almost every motorised vehicle in continental Europe was converted to use firewood. ... Wood gas cars ... Wood gasification"<br />
<br />
''(FIXME: clearly separate open-source designs for entire vehicles, including moving parts -- cars, skateboards, quadcopters, etc. -- from vehicle-related projects that have no moving parts in themselves -- miles-per-gallon meters and other measurement and datalogger tools, engine management systems, eye-catching turn signals and wheel-POV displays, etc.)''<br />
<br />
----<br />
[[category:projects]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=PIC_Links&diff=88399PIC Links2023-01-06T04:26:19Z<p>DavidCary: link to related Open Circuits article</p>
<hr />
<div>Lots of external PIC Links, a few on this site.<br />
<br />
=== Section 0 === <br />
<br />
In some cases the links are to search results, all these searches give results that have been judged useful, they are not just shots in the dark. These sites may be project sites like instructables or various blogs. Sometimes individual project from the same sites are listed separately.<br />
<br />
Key words to help you search the table.<br />
<br />
*Asm: for assembler programs<br />
*BootLoader: for bootloader software.<br />
*Clang: for C programs.<br />
*Compiler: so you can program in something resembling a language, include assemblers which is technically not correct. In a section of their own.<br />
*DBoard: development board for the controller<br />
*Eagle: If the projects include eagle files for making the circuit boards.<br />
*Forum: for a forum, mail list and their ilk.<br />
*Info: Useful information that does not rise to a tutorial, misc. tips.<br />
*Links: a link to more links<br />
*PICIntro: Intro material<br />
*Projects: project descriptions, enough to reproduce the project, not just nice pictures.<br />
*Programmer: programmer, hardware or software ( to program you need both plus a compiler ). In a section of their own.<br />
*Stepper: for stepper motors.<br />
*Servo: for servo motors.<br />
*Tutorial: a tutorial or how to.<br />
*WebRing: for a Web Ring.<br />
<br />
<br />
<br />
So, for example, if you are looking for projects then search on Projects.<br />
<br />
Note: Help us out with this list by adding links or improving the site comments, fix errors....<br />
<br />
=== Open Circuits Own Pages === <br />
<br />
{| class="wikitable"<br />
|-valign="top" <br />
! Topic<br />
! Topic Link<br />
! Comment<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*PIC<br />
*Clang<br />
|<br />
[[A Really Basic Guide to the PIC Microprocessor and BoostC]]<br />
|<br />
Very Basic, that is BoostC.<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*PIC<br />
*Clang<br />
*Eagle<br />
|<br />
[[PIC based Stepper Motor Dancing Analog Clock]]<br />
|<br />
One very confused clock. Project includes source code, BoostC project file, and eagle ( single sided board for toner transfer ) file.<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
*Links<br />
*PIC<br />
|<br />
[[Microcontroller Serial Communications Articles]]<br />
|<br />
A series of pages of interest to those who would like to use serial communications with a PIC<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* CLang<br />
* BoostC<br />
|[[Serial Communications Library -- BoostC and 16F877A]]<br />
|A library with source code for serial communications with the PIC. Includes a demo application showing how to use the library.<br />
<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* CLang<br />
* BoostC<br />
* Eagle<br />
|[[PointLess LED Array]]<br />
|Displays characters and words on an array of LEDs. Includes source code, BoostC project file, and eagle ( single sided board for toner transfer ) files.<br />
<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* CLang<br />
* BoostC<br />
|[[Russ Hensel's EL Wire Project]]<br />
|More of a proposal than a project, looking for collaborators.<br />
<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* CLang<br />
* BoostC<br />
* Eagle<br />
|[[Stepper Motor Tester]]<br />
|Demonstrate and test stepper motors. Includes source code, BoostC project file, and eagle ( single sided board for toner transfer ) files.<br />
<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* CLang<br />
* BoostC<br />
|[[Experimenting with IR Remotes using a PIC running BoostC Project]]<br />
|Includes source code, BoostC project file.<br />
<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* CLang<br />
* BoostC<br />
|[[Experimenting with Stepper Motors as Rotary Encoders using a PIC running BoostC Project]]<br />
|Includes source code, BoostC project file.<br />
<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* CLang<br />
* INFO<br />
|[[Use C for PIC Programming!]]<br />
|If you program, you need to pic a language.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* CLang<br />
* Stepper<br />
|[http://www.mastincrosbie.com/mark/electronics/pic/stepper.html PIC Stepper Motor Controller]<br />
|Running a stepper with little external support.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* CLang<br />
* BootLoader<br />
* PICIntro<br />
* Tutorial<br />
|[[Playing With PIC Pack]]<br />
| library of PIC C code for BoostC<br />
<!------------------------------<br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* CLang<br />
* Stepper<br />
|[]<br />
|comment<br />
<!------------------------------<br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* CLang<br />
* Stepper<br />
|[]<br />
|comment<br />
<!------------------------------<br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* CLang<br />
* Stepper<br />
|[]<br />
|comment<br />
<!------------------------------><br />
<br />
|}<br />
<br />
=== Section 1 === <br />
<br />
{| class="wikitable"<br />
|-valign="top" <br />
! Topic<br />
! Topic Link<br />
! Comment<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
*Links<br />
*PIC<br />
|<br />
[http://www.geocities.com/SiliconValley/Way/5807/dat.html Microchip Net resources]<br />
|<br />
This has the most links on the PIC that I have seen in one place.<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
*Projects<br />
*Info<br />
*PIC<br />
|[http://piclist.com/techref/piclist/index.htm Welcome to the official PICList home page.]<br />
|This is the place to go for a PIC message board, also many articles. Do not post here until you know what you are doing.<br />
<!-------------------------------><br />
http://embeddedadventures.blogspot.com/2008_03_01_archive.html<br />
|-valign="top" <br />
|<br />
*Info<br />
*Clang<br />
*PIC<br />
|[http://embeddedadventures.blogspot.com/2008_03_01_archive.html Embedded Adventures]<br />
|Seems to be a blog, in many parts, about a very interesting utility library for the PIC. In Boostc.<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
*Info<br />
*General Links<br />
*PIC<br />
|[http://www.vermontficks.org/picbegin.htm PIC hints and direction]<br />
|A a page of links. Small DC Power Supply, other link pages, may be useful.<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*PIC<br />
*Asm<br />
|[http://www.riccibitti.com/casio.htm Casio data loggerAs Bring the REAL world inside the Casio!]<br />
|AWARD - This design has been judged the "best overall" at the Circuit Cellar Ink "Design 98" Contest sponsored by Microchip and Hewlett Packard. As seen on CIRCUIT CELLAR issue 99, oct '98<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
*Projects<br />
*PIC<br />
|<br />
[http://mondo-technology.com/ Mondo Technology]<br />
|This is an educational site of PIC Projects in various stages of development along with pictures, source files, object code files, schematics, and board layouts. You are welcome to use what you like at your own risk.<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
*Info<br />
*PIC<br />
|[http://www.tinaja.com/picup01.html Pick a Peck of PIC's Library ]<br />
|Interesting not always easy.<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*PIC<br />
*Asm<br />
|[http://pe1grl.khds.nl/logan18.htm LOGAN18: Logic Analyser based on the 18F252]<br />
|A very simple low-cost logic analyser using the PIC18F252 of PIC18F2525 as capture device and a windows based PC for display. <br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*PIC<br />
|[http://jap.hu/electronic/combination_lock.html Electronic combination lock with PIC]<br />
|Electronic combination lock with PIC<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*PIC<br />
|[http://pe1grl.khds.nl/flogger.htm F-Logger: A frequency recorder ]<br />
|F-Logger is a frequency recorder. Its primary goal is to easily check the drift of a VFO over a long duration.<br />
It is a variation of the well published PIC 16F84 frequency counters on the web like the "Weeder 50 MHz frequency counter"<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
*Info<br />
*Tutorial<br />
*PICIntro<br />
*PIC<br />
|[http://piclist.com/techref/piclist/begin.htm Beginners checklist for PIC Microcontrollers]<br />
|Beginners checklist for PIC Microcontrollers. An excellent place to start.<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
*Links<br />
*PIC<br />
|[http://www.sss-mag.com/pic.html Spread Spectrum Scene PIC STUFF]<br />
|Lots of links.<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*PIC<br />
|[http://jap.hu/electronic/ Peter's electronic projects and links]<br />
|Not all PIC but quite a few.<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
*Info<br />
*PICIntro<br />
*Project<br />
*PIC<br />
|[http://www.voti.nl/pic/index.html What is a PICmicro?]<br />
|This guy is very smart, a good site.<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
*Pic<br />
*Links<br />
|[http://o.webring.com/hub?ring=picmicro PicMicro Webring]<br />
|If you do not know what a WebRing perhaps you can figure it out from here.<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
*Project <br />
*Robotics<br />
*PIC<br />
|<br />
[http://www.voti.nl/stepbots/index.html Stepbots]<br />
|<br />
A stepbot is a three wheeled robot using stepper motors.<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*Pic<br />
|[http://www3.telus.net/chemelec/Projects/Anemometer/Anemometer.htm An Anemometer Circuit]<br />
|Measure wind speed. This has no moving parts, works by measuring cooling of a “hot” transistor. Fairly low parts count.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*PIC<br />
|[http://members.cox.net/berniekm/Bench.html Bench Power Supply]<br />
|Uses a PIC for control and to measure voltage and current. Not simple but nice.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*PIC<br />
|[http://www.users.bigpond.com/pbhandary/pic/iralyze/iralyze.html IR Remote Signal Analyzer]<br />
|Pretty big PIC project, but cool. Know what your IR remote is sending. IR receivers are a pretty common salvage component<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*Tutorial<br />
*PIC<br />
|[http://www.users.bigpond.com/pbhandary/pic/IRSony.html IR Receiver for Sony Remotes]<br />
|Simpler project than IR Remote Signal Analyzer which may be the better project<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*PIC <br />
|[http://electronics-lab.com/projects/mcu/012/index.html PIC diode tester]<br />
|Nice simple project. Good Starting project. Software is assembler.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*PIC<br />
|[http://www.sbprojects.com/projects/ircontrol/picir/picir.htm PIC IR Decoders]<br />
|Decodes IR transmissions, has its own 4 digit display. Software is assembler.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*PIC<br />
|[http://www.dprg.org/projects/1998-08a/ IR Proximity Detector Project]<br />
|More fun with IR<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*Robotics<br />
*Links<br />
*PIC<br />
|[http://www.dprg.org/projects/index.html INDEX OF PROJECTS for Robots]<br />
|Not entire robots but basic components for them. Some are PIC based.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*PIC<br />
|[http://users.frii.com/dlc/robotics/projects/botproj.htm IR Robot Controller]<br />
|Control of a robot. Software is assembler.<br />
<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
<br />
*PICIntro<br />
*Tutorial<br />
*PIC<br />
|[http://www.rentron.com/Myke3.htm Your first PICMicro Project]<br />
|Introduction to PIC processors using assembler. Even if you are using another language this is a good introduction.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*Tutorial<br />
*PICIntro<br />
*PIC<br />
|[http://www.sparkfun.com/commerce/present.php?p=BEE-1-PowerSupply Beginning Embedded Electronics]<br />
|This is not actually a PIC tutorial but lots of the material applies. This link is to the first of 10 + sections.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*Kit<br />
*PIC<br />
|[http://www.rentron.com/Fire-Stick-II.htm Fire-Stick ]<br />
|This is an under $20. kit for long range IR communications. Uses some special parts so kit is probably a good idea.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*PIC<br />
|[http://www.rentron.com/serial.htm How to build a Serial Voltmeter using the PIC16C71]<br />
|Software in PIC basic, you could rewrite in a different language, or use a different chip. Voltmeter talks to a PC. They may have a kit, you may do not need it.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*Tutorial<br />
*Links<br />
*PicIntro<br />
*PIC<br />
|[http://www.seattlerobotics.org/encoder/may97/picchip.html The PIC Chip Uncovered]<br />
|Introduction to the PIC.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*PIC<br />
|[http://members.cox.net/berniekm/unichg.html Battery Charger]<br />
|Nice little battery charger. Universal Nicad/NiMH Includes printed circuit design. Software is assembler.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*Tutorial<br />
*PICIntro<br />
*PIC<br />
|[http://robotag.carleton.ca/resources/technical/pic_introduction.shtml Using the MicroChip PIC Microcontroller ]<br />
|A technical overview designed for students. Another simple introduction.<br />
<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*Tutorial<br />
*PICIntro<br />
*PIC<br />
|[http://forum.sourceboost.com/index.php?showtopic=2399 pic Micro Programming In Boostc For Beginners]<br />
|Good beginner level.<br />
<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*PICIntro<br />
*Tutorial<br />
*PIC<br />
|[http://www.winpicprog.co.uk/pic_tutorial.htm WinPicProg PIC Tutorial]<br />
|Good introduction. Software is assembler. A series of simple projects. Good introduction to simple interface circuits. You might want to use a different programmer<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*PIC<br />
|[http://fly.srk.fer.hr/~nix/Projects/Sonar/Sonar.html Nix's PIC based sonar system]<br />
|This is a simple range detection system, perhaps for a robot. Directions are a bit brief.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*PIC<br />
|[http://ironbark.bendigo.latrobe.edu.au/~rice/lc/ A Surprisingly Accurate Digital LC Meter]<br />
|L is inductance ( what a coil of wire has. C is capacitance, what a capacitor has ). Very useful to identify unmarked parts.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*PIC<br />
|[http://www.geocities.com/dariuskrail20/PICCapMeter.html Autorange Capacitance Meter]<br />
|Measure the value of a capacitance ( the stuff in a capacitor ). Auto ranging means the device switches itself between low and high measurement ranges.<br />
<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*CLang<br />
*PIC<br />
|[http://www.microchipc.com/sourcecode/ C sample code for PIC micros and Hi-Tech C]<br />
|From Microchip. Lots of example programs in C: note that different versions of C can be quite different, esp. in their included libraries.<br />
<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*CLang<br />
*PIC<br />
|[http://www.microchipc.com/sourcecode/index.php C Compiler Example Code]<br />
| Lots of example programs in C: note that different versions of C can be quite different, esp. in their included libraries. Sample projects for the Microchip PIC micro series of microcontrollers, including the PIC12x, PIC16x, PIC18x, PIC24x, and dsPICx microcontrollers. <br />
Code is targeted at the Hi-Tech C compiler, from www.htsoft.com, the C18 or C30 compiler from www.microchip.com, or CCS C.<br />
<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*Info<br />
*PIC<br />
*Links<br />
|[http://en.wikibooks.org/wiki/Embedded_Systems/PIC_Microcontroller Embedded Systems/PIC Microcontroller]<br />
|A wiki, a bit brief, may be improved over time. Seems to share at least one author ( you know who you are ) with this wiki.<br />
<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*Project<br />
*PIC<br />
|[http://www.best-microcontroller-projects.com/pic-projects.html PIC Projects based on flash pic microcontrollers.]<br />
|A big collection of projects.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
*PIC<br />
*Forum<br />
|[http://forum.microchip.com The official Microchip forum]<br />
|Lots of discussion -- try using Google to search this site, rather than the built-in search tool.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* CLang<br />
* ASM<br />
|<br />
[http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en529949 Microchip "Code Module Library"]<br />
|While different versions of C are different, these may help no matter which version you are using. Some versions of Microchips compilers are free.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* ASM<br />
|[http://eng-serve.com/pic/index.html Dring Engineering Services]<br />
|Wizards and calculators for generating PIC code.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* Project<br />
* ASM<br />
|[http://www.uchobby.com/index.php/2007/10/13/pic-based-logic-probe/ PIC Based Logic Probe]<br />
|Might be handy around your lab.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* Tutorial<br />
|[http://www.picprojects.247n.com/ Introduction - How I got into using the PIC 16F628, 16F876 and other processors]<br />
|One person's experience.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* Project<br />
|[http://www.picguide.org/ PICGuide.org]<br />
|Lots of projects.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* Project<br />
|<br />
[http://people.zeelandnet.nl/whhofman/jen/PIC/index.html Drake: PICmicro and Maarten's computer]<br />
|<br />
A nice little game built out of a PICmicro, a 2-line LCD screen, and a few supporting components on a solderless breadboard. Also more complex version with larger screen display. Source code and schematics available for download.<br />
<br />
<!---------------------------------><br />
|-valign="top"<br />
|<br />
* Tutorial<br />
* ASM<br />
|[triggers spam filter: www.geocities.com/nozomsite/pic1.htm PIC 16F84]<br />
|Nice little introduction, more stuff elsewhere on site.<br />
<!---------------------------------><br />
|-valign="top"<br />
|<br />
* ?<br />
* ASM<br />
|[http://microchip.com/wiki/ ICwiki]<br />
|The ICwiki at microchip.com.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* CLang<br />
* ASM<br />
* Info<br />
* Tutorial<br />
|[http://pic18fusb.online.fr/ Wiki about Microchip USB PIC]<br />
|Wiki dedicated to PIC microcontrollers with a USB interface (such as PIC18F2550, PIC18F4550, PIC18F2553, etc.)<br />
[http://pic18fusb.online.fr/wiki/wikka.php?wakka=UsbBootload PIC USB tutorial]. is this link misplaced <br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
* CLang<br />
* PIC<br />
* Project<br />
* Tutorial<br />
|[http://www.pyroelectro.com/index.php Pyros Electro]<br />
|Seems to have quite a bit of original material and some links to other sites. Tutorials are nice. I think this is a new site ( Feb 08 ).<br />
<!---------------------------------><br />
|-valign="top" <br />
| <br />
* Pic<br />
* Project<br />
|[http://www.cheaphack.net/2008/01/turing-alarm-clock.html The Turing Alarm Clock]<br />
|You have to prove you can think to turn off your alarm clock!<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* Project<br />
|[http://pp06.sourceforge.net/ PP06 PIC Programmer Software]<br />
|Has some [[open hardware]] PIC programmer designs. (Also open source software to use with them).<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Info<br />
|[http://www.ladyada.net/library/picvsavr.html PIC vs. AVR]<br />
|OK, I know what you people want. You want ultimate fighting, embedded E.E. style. You want to know WHICH IS BETTER, PIC OR AVR?<br />
<!---------------------------------<br />
|-valign="top" <br />
|<br />
* PIC<br />
* Info<br />
|[http://www.embedded.com/TechSearch/Search.jhtml?sortSpec=score+desc&site_id=Embedded.com&Site+ID=Embedded.com&queryText=pic&Search.x=0&Search.y=0 Search Results]<br />
|Search Embedded.com for PIC topics.<br />
<!---------------------------------<br />
|-valign="top" <br />
|<br />
* PIC<br />
* Projects<br />
|[http://www.instructables.com/tag/?q=pic+microchip&limit%3Atype%3Aid=on&type%3Aid=on&type%3Auser=on&type%3Acomment=on&type%3Agroup=on&type%3AforumTopic=on&sort=none Search Results]<br />
|Search Instructables for "PIC Microchip".<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* CLang<br />
* PIC<br />
* Project<br />
|[http://www.beyondlogic.org/pic/ringtones.htm Generate Ring Tones on your PIC16F87x Microcontroller]<br />
|Looks good.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* CLang<br />
* Project<br />
|[http://www.jeffree.co.uk/pages/revmaster.htm RevMaster - A Simple Tachometer Tony Jeffree Wednesday, 07 February 2007]<br />
|For machine tools. Optical sensor. <br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* ?Lang<br />
* PIC<br />
* Project<br />
|[http://www.instructables.com/id/USB-LED-scrolling-marquee-sign/ USB LED scrolling marquee sign]<br />
|A bit of POV here. Read to see how to drive a lot of LED's ( or at least one way ). Has boot loader and hex file, not sure if source code is there.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* ?Lang<br />
* Project<br />
|[http://hem.passagen.se/communication/frcpll.html 2.5 GHz Frequency counter]<br />
|From the site: "This project describes a very powerful frequency counter. <br />
Very simple construction which everyone can build. <br />
6 LED display will present the frequency with 1kHz resolution and <br />
RS232 communication to computer is available as option. <br />
The software has also been implemented with some smart functions, <br />
for calculating frequencies in receivers where IF is 455kHz or 10.7MHz. <br />
I present schematic, PCB, components and window software." Not sure if site has source code, does have hex file<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* CLang<br />
* PIC<br />
* Tutorial<br />
|[http://www.best-microcontroller-projects.com/12F675.html#Program_1_:_12F675_Flashing_an_LED PIC 12F675 Microcontroller Tutorial.]<br />
|Not that many introductory tutorials are done in C, this one is. There is some sort of sale of the source code, this may be a problem.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* CLang<br />
* PIC<br />
* Project<br />
| [http://builders.reprap.org/2006/12/pic-programming-for-biollante.html PIC Programming for Biollante]<br />
| "a bunch of working examples of using the PIC16F628A with SDCC." (the open-source Simple Device C Compiler) (part of a blog discussing building a RepRap rapid-prototyping machine)<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* CLang<br />
* ASM<br />
|[http://openprog.altervista.org/OP_eng.html Open Programmer]<br />
|An open source USB PIC Programmer based on 18F2550, with support for Linux an Windows <br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Projects<br />
* CLang<br />
* Tutorials<br />
|[http://www.best-microcontroller-projects.com/index.html Best-Microcontroller-Projects.com ]<br />
|Site Says: "Looking For The Best Microcontroller Projects And Resources?" Here you can find microcontroller Tools Projects and Tutorials designed <br />
by me... [[russ_hensel]] says lots of interesting info.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* CLang<br />
* ASM<br />
|[http://www.embeddedravi.com/forum/viewtopic.php?f=2&t=15#p26 Demo here]<br />
| LED Blinking Demo PIC 16f84A<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Projects<br />
* CLang<br />
* Tutorials<br />
|[http://romux.com/projects/embedded-projects/pic-usb-application Pic USB Application]<br />
[http://romux.com/projects/embedded-projects Pic USB Bootloader kit]<br />
|Site Says: "Looking For The PIC and 8051 Microcontroller Projects And Tutorials?" Here you can find microcontroller Tools Projects and Tutorials.<br />
<!---------------------------------><br />
<br />
|}<br />
<br />
=== Focus on BoostC === <br />
<br />
There are links in other sections, but this section specialized in BoostC, use page search to find all.<br />
<br />
{| class="wikitable"<br />
|-valign="top" <br />
! Topic<br />
! Topic Link<br />
! Comment<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
*BoostC<br />
*PIC<br />
|<br />
[http://forum.sourceboost.com/index.php?showtopic=4114&pid=15334&mode=threaded&start=#entry15334 Rotary Encoder]<br />
|Code to read a rotery encoder and communicate over a serial link using PIC16F87x. On the boostc forum.<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
*BoostC<br />
*PIC<br />
|<br />
[http://forum.sourceboost.com/index.php?showtopic=3282&pid=12381&mode=threaded&start=#entry12381 Using I2c Functions With 16f877]<br />
|I2C driver working on a 16F887. On the boostc forum. <br />
<!-------------------------------<br />
<br />
|-valign="top" <br />
|<br />
*BoostC<br />
*PIC<br />
|<br />
[]<br />
|<br />
<!-------------------------------<br />
|-valign="top" <br />
|<br />
*BoostC<br />
*PIC<br />
|<br />
[]<br />
|<br />
<!-------------------------------<br />
|-valign="top" <br />
|<br />
*BoostC<br />
*PIC<br />
|<br />
[]<br />
|<br />
<!-------------------------------<br />
|-valign="top" <br />
|<br />
*BoostC<br />
*PIC<br />
|<br />
[]<br />
|<br />
<!-------------------------------<br />
|-valign="top" <br />
|<br />
*BoostC<br />
*PIC<br />
|<br />
[]<br />
|<br />
<br />
<br />
<!-------------------------------><br />
<br />
<br />
|}<br />
<br />
=== Section 2 === <br />
<br />
{| class="wikitable"<br />
|-valign="top" <br />
! Topic<br />
! Topic Link<br />
! Comment<br />
<!-------------------------------><br />
<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* CLang<br />
|[http://www.dimensionengineering.com/appnotes/Gmeter/Gmeter.htm DE-ACCM5G Application Note G Meter]<br />
|This is in some ways a promotion for the accelerometer they are selling but still looks like an interesting project. accelerometer is about $20. might be worth a look.<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* CLang<br />
|[http://www.dimensionengineering.com/appnotes/vibration_meter/vibration_meter.htm Building a simple vibration meter]<br />
|This is in some ways a promotion for the accelerometer they are selling but still looks like an interesting project. accelerometer is about $20. might be worth a look.<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* CLang<br />
* PIC<br />
* Project<br />
|[http://www.uchobby.com/index.php/2008/02/19/pic-based-tengu/ PIC Based Tengu]<br />
|From the site: In this article Juan Mateos creates a PIC version of the Tengu companion. Tengu was originally developed by Crispin Jones as a USB controlled LED matrix that made faces and lip synced to music or other sounds it hears with a built in microphone.<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* CLang<br />
* PIC<br />
* Project<br />
|[http://www.best-microcontroller-projects.com/frequency-counter-circuit.html Schematics and C code for a PIC frequency counter circuit operating up to about 50 MHz.]<br />
|Looks interesting.<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* Links<br />
* PIC<br />
* Project<br />
|[http://www.best-microcontroller-projects.com/pic-projects.html PIC Projects based on flash pic microcontrollers.]<br />
|Some of these projects are already listed here.<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* Asm<br />
* PIC<br />
* Project<br />
|[http://www.sixca.com/eng/articles/remote/index.html 3 channel IR remote control]<br />
|and some theory for IR remotes.<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* CLang<br />
* DBoard<br />
|[http://www.greta.dhs.org/UBW/ USB Bit Whacker]<br />
|From the site: ''The UBW board is a small board that contains a Microchip PIC USB-capable microcontroller, headers to bring out all of the PICs signal lines (to a breadboard for example), only costs about $15-$20 to build and is powered from the USB connection.'' There seem to be a fair number of additional projects based on this device. Google "Bit Wacker".<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* CLang<br />
|[http://www.raccoonrezcats.com/soundcard.html USB Audio Streamer A Microchip PIC based USB sound card]<br />
|Farily low chip count project. <br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* CLang<br />
|[http://www.raccoonrezcats.com/rfmodem.html PINGPONG-CDC A FHSS USB RF Modem]<br />
|Demonstrates how to use frequency hopping techniques to create a bidirectional link. <br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* CLang<br />
|[http://www.raccoonrezcats.com/rfethernet.html XE1205-RNDIS FHSS USB Wireless Ethernet]<br />
|The PINGPONG-CDC project that emulates Ethernet via RNDIS rather then a serial link. <br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* POV LED Array<br />
* PIC<br />
* Project<br />
* CLang<br />
|[http://www.raccoonrezcats.com/rfdisplay.html RFDISPLAY A Scrolling Display with RF connection to a PC]<br />
|Lots and lots of LED's. Wireless!<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* POV LED<br />
* PIC<br />
* Project<br />
* ?Lang<br />
|[http://www.best-microcontroller-projects.com/led-dot-matrix-display.html How to drive an led display matrix.]<br />
|Some basics. Uses row and column drive.<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* POV LED Array<br />
* PIC<br />
* Project<br />
* ?Lang<br />
|[http://www.larwe.com/zws/products/picxie/index.html Picxie - Animated LED Signboard]<br />
|A little 4 by 4 display<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* POV LED Array<br />
* PIC<br />
* Project<br />
* ?Lang<br />
|[http://www.larwe.com/zws/products/picxie2/index.html Picxie 2 - 8x8 Animated LED Signboard]<br />
|Just what it says.<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* POV LED Array<br />
* PIC<br />
* Project<br />
* ?Lang<br />
|[http://users.tpg.com.au/users/talking/Introduction.html 5x7 DISPLAY]<br />
|A series of experiments with a 5 x 7 display.<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Tutorial<br />
* Asm<br />
|[http://amqrp.org/elmer160/lessons/index.html PIC Elmer 160 Course Lessons]<br />
|Tutorial in Asembley Language.<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* Tutorial<br />
* PIC<br />
* Project<br />
* PICBasic<br />
|[http://www.digital-diy.net/default.aspx Digital-DIY.net Spency PICBasic ]<br />
|This site has heaps of examples on how to interface with different components with PIC micro's and PICBasic. As I learn something new, I'll throw it on the site, like a keeping an online record as a reference. All of the examples can be explored by using the navigation tree at the bottom of any page, or by going to either the 16F Home or 18F Home page.<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Projects<br />
* BoostC<br />
|[http://www.n9efj.net/PIC.html PIC Projects with source code]<br />
|I am a fan of BoostC<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Projects<br />
* ?Lang<br />
|[http://www.trash.net/~luethi/microchip/projects/projects.html PIC Microcontroller Projects]<br />
|Review me<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* DBoard<br />
|[http://esipcb.com/embedded.htm PIC based ready to use OEM boards]<br />
|[http://www.embeddedsense.com/ Embedded Sense Inc] offers the OEM boards, based on the Microchip dsPIC® and PIC18F®. Each model is designed to meet different price/performance requirements with the smallest possible footprint.<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Tutorial<br />
* CLang<br />
|[http://courses.ece.uiuc.edu/ece445/wiki/?n=Topics.PICCCSCInterrupts PIC CCS C Interrupts HOW-TO]<br />
|One of the few tutorial on interrupts in C. A Wiki.<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Info<br />
* Wiki<br />
|[http://en.wikipedia.org/wiki/PIC_microcontroller PIC microcontroller From Wikipedia, the free encyclopedia]<br />
|Always good to check Wikipedia<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Projects<br />
* Tutorials<br />
* Info<br />
|[http://www.1337robotics.com/ Welcome to the home of 1337-Robotics]<br />
|1337 Robotics was formed by what was then a group of friends studying Cybernetics at University. We needed a name to produce our projects under, and thus "1337 Robotics" was born! -- Not all PIC but a bunch on the site, poke around, more linking to different parts would be good. Tutorials include a good one on interrupts in C.<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Tutorial<br />
* Asm<br />
|[http://www.mstracey.btinternet.co.uk/pictutorial/pipage2.htm Connect to the PIC]<br />
|Series of tutorials including interrupt processing. Part of a loarger site which also looks interesting.<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Tutorial<br />
* Asm<br />
|[http://www.phanderson.com/PIC/16C84/interrupts/interrupt_1.html PIC Interrupts - Part 1]<br />
|A nice tutorial, I think there may be a part 2 as well. Part of a larger site. PIC Interrupts - Part 1<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* Books<br />
* PIC<br />
* Tutorials<br />
* LangMany<br />
|[http://www.scribd.com Scribd]<br />
|This site has a bunch of useful documents - books -- for free download. You need to register. Search on "PIC Microcontroller"<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* CLang<br />
|[http://www.phanderson.com/ Peter H. Anderson - Embedded Processor Control]<br />
|Fairly large site with lots of stuff, some not PIC but lots is. Some stuff for sale. Could use a better review.<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Links<br />
|[http://www.ubasics.com/adam/pic/piclinks.shtml PIC Links]<br />
|Lots of links, some seem to be out of date<br />
<!------------------------------<br />
|-valign="top" <br />
|<br />
* POV<br />
* PIC<br />
* Project<br />
* ?Lang<br />
|[ ]<br />
|<br />
<!------------------------------<br />
|-valign="top" <br />
|<br />
* POV<br />
* PIC<br />
* Project<br />
* ?Lang<br />
|[ ]<br />
|<br />
<!------------------------------<br />
|-valign="top" <br />
|<br />
* POV<br />
* PIC<br />
* Project<br />
* ?Lang<br />
|[ ]<br />
|<br />
<!------------------------------><br />
|}<br />
<br />
=== Section 3 === <br />
<br />
{| class="wikitable"<br />
|-valign="top" <br />
! Topic<br />
! Topic Link<br />
! Comment<br />
<!-------------------------------><br />
<br />
<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
<br />
* PIC<br />
* Project<br />
* ?Lang<br />
|[http://mypic32.com/web/guest/home;jsessionid=A2EF0E0726367937DB5D06ACF3EFDD52 PIC 32 Design Challenge ]<br />
|A contest for high end PICs<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* Info<br />
* Link<br />
* PIC<br />
* Project<br />
* ?Lang<br />
|[http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1469 Browse Application Notes]<br />
|Lots of application notes, include techniques and projects. Worth looking over. Bookmark does not work well you may need to choose: -> Product Line: 8-bit PIC® Microcontrollers -> All<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* CLang<br />
* Asm<br />
|[http://tedrossin.x10hosting.com/ElectroArt/ElectroArt.html Electro Art]<br />
|A collection of PIC projects -- could use more discription here.<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* CLang<br />
* Asm<br />
|[http://tedrossin.x10hosting.com/Electronics/Pic/Pic.html#LogicAnalyzer PIC Microcontrollers]<br />
|A variety of PIC projects -- could use more discription here.<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* Asm<br />
|[http://www.embedinc.com/pic/dload.htm PIC software downloads]<br />
|Software for working with PICs or PIC projects. -- could use more discription here, will you do it?<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* Assorted<br />
* PIC<br />
|[http://www.romanblack.com/ www.RomanBlack.com]<br />
|An assortmentment of stuff including PIC stuff.<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* Clang<br />
* PIC<br />
* Projects<br />
* Info<br />
* Tutorial<br />
|[http://www.rocklore.com/3v0/Programming.htm PIC Programming for High School Students]<br />
|In this series of tutorials you will learn to program the PIC18F family of micro controllers using MPLAB and the Student version of MCC18 C compiler. See the MPLAB and MCC18 documentation for more details on these products.<br />
In this class the student learns the material required to build a microprocessor based robot. The intended audience is the person who knows nothing about electronics or programming. Some level of computer experience is desirable. Every effort will be made to introduce information on a level which is understandable by bright people as young as 12, average people over the age of 18.<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* Projects<br />
* PIC<br />
* Tutorial<br />
* Info<br />
* CLang<br />
|[http://www.8051projects.net/index.html Rickey's World of MicroControllers]<br />
|Interesting site, lots of content. More review info would be useful.<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Project<br />
* Asm<br />
|[http://www.tedrossin.x10hosting.com/Electronics/Pic/Pic.html#LogicAnalyzer Cheap Logic Analyzer]<br />
|Nice project to turn your pc into a Logic Analyzer<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Tutorial<br />
* CLang<br />
|[http://www.fored.co.uk/html/learn_c_with_fed.htm Learn C with FED]<br />
|Tutorial on C<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Tutorial<br />
* CLang<br />
|[http://www.gooligum.com.au/tut_baseline_C.html Baseline PIC C Programming Tutorials]<br />
|Tutorial on C<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Tutorial<br />
* CLang<br />
|[http://www.mikroe.com/en/books/pic-books/mikroc/ Book: PIC Microcontrollers - Programming in C]<br />
|Tutorial on C<br />
<!------------------------------<br />
|-valign="top" <br />
|<br />
* PIC<br />
* Tutorial<br />
* CLang<br />
|[http://www.fored.co.uk/html/Learn%20to%20use%20C%20with%20FED.pdf Learn to Use C]<br />
|Tutorial on C PFD<br />
<!------------------------------<br />
|-valign="top" <br />
|<br />
* POV<br />
* PIC<br />
* Project<br />
* ?Lang<br />
|[ ]<br />
|<br />
<!------------------------------<br />
|-valign="top" <br />
|<br />
* POV<br />
* PIC<br />
* Project<br />
* ?Lang<br />
|[ ]<br />
|<br />
<!------------------------------<br />
|-valign="top" <br />
|<br />
* POV<br />
* PIC<br />
* Project<br />
* ?Lang<br />
|[ ]<br />
|<br />
<!------------------------------<br />
|-valign="top" <br />
|<br />
* POV<br />
* PIC<br />
* Project<br />
* ?Lang<br />
|[ ]<br />
|<br />
<!------------------------------<br />
|-valign="top" <br />
|<br />
* POV<br />
* PIC<br />
* Project<br />
* ?Lang<br />
|[ ]<br />
|<br />
<!------------------------------><br />
|}<br />
<br />
=== Compiler Section === <br />
<br />
{| class="wikitable"<br />
|-valign="top" <br />
! Topic<br />
! Topic Link<br />
! Comment<br />
<!-------------------------------><br />
<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Compiler <br />
* CLang<br />
|[http://www.sourceboost.com/Products/BoostC/Overview.html BoostC Compiler Overview]<br />
|BoostC from SourceBoost Complete with IDE, Source code debugger and other nice features. Not pricy. Wide range of PIC's inc 16F and 18 F supported. Active formum. Several projects on this Wiki. Seems to be being actively developed. Free version for up to 2K programs. <br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Compiler <br />
* CLang<br />
|[http://www.fored.co.uk/html/wiz-c.HTM WIZ-C Version 11]<br />
|Review me! Price does not seem too steep.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Compiler <br />
* CLang<br />
|[http://bytecraft.com/MPC_C_Compiler_for_Microchip_PIC MPC C Compiler for Microchip PIC]<br />
|MPC supports the Microchip PIC 12/14/16/17 families, including 8K and flash parts.<br />
<br />
The MPC Code Development System includes:<br />
*an optimizing C Cross-compiler.<br />
*the BCLink linker.<br />
*an Integrated Development Environment and editor.<br />
*a built-in macro cross-assembler.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Compiler <br />
* CLang<br />
|[http://sdcc.sourceforge.net/ SDCC - Small Device C Compiler]<br />
| SDCC is a retargettable, optimizing ANSI - C compiler that will "soon" support the Microchip PIC16 and PIC18 series (and many other microcontrollers).<br />
SDCC is Free Open Source Software, distributed under GNU General Public License (GPL).<br />
SDCC itself runs on Linux, Microsoft Windows, and Mac OS X.<br />
Piklab and [http://sourceforge.net/search/?type_of_search=soft&words=sdcc several other IDEs at sourceforge] support SDCC.<br />
[http://sdcc.wiki.sourceforge.net/ SDCC wiki].<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Compiler <br />
* python<br />
|[http://pyastra.sourceforge.net/ Pyastra: python assembler translator]<br />
|Not sure why Python would work well, but I do not know Python. Thing is free, how about someone try it and let us know.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Compiler <br />
|[http://www.romux.com Microcontroller and Electronics Projects Links]<br />
|Contains lot of Electronics projects including circuits.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Compiler <br />
|[http://www.pmpcomp.fr/ Pic Micro Pascal compiler - Home site]<br />
|Pic Micro Pascal compiler<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Eagle<br />
* DBoard<br />
* Project<br />
|[http://www.instructables.com/id/18-pin-PIC-Development-Board/ 18 pin PIC Development Board]<br />
|From the link: I have long been playing with Microchip PICs but have always made do without some form of development board. To that end I have designed a basic board that I was hoping to get some input for. I haven't yet made this board as I am waiting for some kit to turn up to finish it off and make it, however I thought others may be in a position to use or modify it.<br />
<!---------------------------------<br />
|-valign="top" <br />
|<br />
* PIC<br />
* Compiler <br />
|[]<br />
|<br />
<!---------------------------------<br />
|-valign="top" <br />
|<br />
* PIC<br />
* Compiler <br />
|[]<br />
|<br />
<!---------------------------------<br />
|-valign="top" <br />
|<br />
* PIC<br />
* Compiler <br />
|[]<br />
|<br />
<!---------------------------------<br />
|-valign="top" <br />
|<br />
* PIC<br />
* Compiler <br />
|[]<br />
|<br />
<!---------------------------------<br />
|-valign="top" <br />
|<br />
* PIC<br />
* Compiler <br />
|[]<br />
|<br />
<!------------------------------><br />
<br />
|}<br />
<br />
=== Programmers/BootLoaders Section === <br />
<br />
Programmers -- the hardware/software to burn the program into your chip -- Searching the internet you will find a ton, some opne source, some kits, some assembled. Or design your own you will belong to a club of 100s ?<br />
<br />
{| class="wikitable"<br />
|-valign="top" <br />
! Topic<br />
! Topic Link<br />
! Comment<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Programmer<br />
|[[PIC Programmers, In Circuit Programming and BootLoaders]]<br />
|A discussion of bootloaders and programmers<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Programmer<br />
|[http://freenet-homepage.de/dl4yhf/winpicpr.html WinPic - A PIC Programmer for Windows]<br />
|Software, Open source <br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Programmer<br />
|[http://usbpicprog.org Usbpicprog - an open source USB PIC programmer for Windows, Linux and Macosx]<br />
|Software, Hardware, Open source <br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Programmer<br />
|[http://search.ebay.com/ws/search/AdvSearch?sofindtype=13 Ebay Search ]<br />
|For hardware programmers search ebay, typically there are quite a few, not expensive ( < $50 ) Often USB ( good? ).<br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* BootLoader<br />
|[http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm Tiny PIC bootloader]<br />
|16F and 18F chips. Has a terminal emulator <br />
<!------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Programmer<br />
|[http://members.aon.at/electronics/pic/picpgm/index.html PICPgm - PIC Development Programmer]<br />
|A free and simple PIC Development Programmer Software for Windows. This freeware programmer Software supports 10F, 12F, 16F and 18F PICs. Also dsPIC30F devices are supported now.<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Programmer<br />
|[http://members.aon.at/electronics/pic/picpgm/ PICPgm - PIC Development Programmer]<br />
|A free and simple PIC Development Programmer Software for Windows<br />
<!---------------------------------<br />
|-valign="top" <br />
|<br />
* PIC<br />
* Programmer<br />
<br />
|<br />
|<br />
<br />
<!---------------------------------<br />
|-valign="top" <br />
|<br />
* PIC<br />
* Programmer<br />
<br />
|<br />
|<br />
<br />
<!---------------------------------<br />
|-valign="top" <br />
|<br />
* PIC<br />
* Programmer<br />
<br />
|<br />
|<br />
<!------------=======------------------><br />
<br />
<br />
<br />
|}<br />
<br />
<br />
<!--------- scratch area <br />
<br />
How to drive an led display matrix.<br />
<br />
end scratch area -----------------><br />
<br />
=== Forum Mail Lists Etc === <br />
<br />
<br />
{| class="wikitable"<br />
|-valign="top" <br />
! Topic<br />
! Topic Link<br />
! Comment<br />
<!-------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* <br />
|[Micro Controllers Discuss all aspects of micro controllers - building them, coding them, etc. All controllers are welcome - PIC, BASIC, Z8 Encore!, etc. http://www.electro-tech-online.com/micro-controllers/]<br />
|<br />
<!---------------------------------><br />
|-valign="top" <br />
|<br />
* PIC<br />
* Wiki<br />
|[http://courses.ece.uiuc.edu/ece445/wiki/?n=Main.Homepage Welcome to the ECE 445 Wiki! ]<br />
|This portion of the site is designed to allow ECE 445 students to collaboratively create and maintain online guides to common topics. The wiki is completely open to all Web users, but the ability to edit is limited to UIUC students and faculty.<br />
<!---------------------------------<br />
|-valign="top" <br />
|<br />
* PIC<br />
* Programmer<br />
|[]<br />
|<br />
<!---------------------------------<br />
|-valign="top" <br />
|<br />
* PIC<br />
* Programmer<br />
|[]<br />
|<br />
<!---------------------------------<br />
|-valign="top" <br />
|<br />
* PIC<br />
* Programmer<br />
|[]<br />
|<br />
<!---------------------------------<br />
|-valign="top" <br />
|<br />
* PIC<br />
* Programmer<br />
|[]<br />
|<br />
<!---------------------------------<br />
|-valign="top" <br />
|<br />
* PIC<br />
* Programmer<br />
|[http://search.ebay.com/ws/search/AdvSearch?sofindtype=13 Ebay Search ]<br />
|For hardware programmers search ebay, typically there are quite a few, not expensive ( < $50 ) Often USB ( good? ).<br />
<!------------------------------<br />
|-valign="top" <br />
|<br />
* PIC<br />
* Programmer<br />
<br />
|<br />
|<br />
<br />
<!---------------------------------<br />
|-valign="top" <br />
|<br />
* PIC<br />
* Programmer<br />
<br />
|<br />
|<br />
<!------------=======------------------><br />
<br />
<br />
<br />
|}<br />
<br />
== display type ==<br />
''display type is not particularly PIC-specific -- is there a better page for this section?''<br />
<br />
The most common ways of communicating from a microcontroller to a person (roughly in order of increasing complexity and increasing data density) are:<br />
* a few fixed LEDs; 1 microcontroller pin per LED (with 8 free pins, can drive up to 8 LEDs)<br />
* character LCD display<br />
* a matrix of LEDs; each column connected to 1 microcontroller pin; each row connected to 1 microcontroller pin (with 8 free pins, can drive up to 4x4= 16 LEDs)<br />
* [[Charlieplexing]]; each column connected to 1 microcontroller pin; each row connected to 1 microcontroller pin (with 8 free pins, can drive up to 8*7= 56 LEDs) ([http://en.wikipedia.org/wiki/Charlieplexing Wikipedia: Charlieplexing])<br />
* shift register; microcontroller shifts bits one at a time into a SIPO shift register chip; 1 SIPO output pin per LED (with 4 free microcontroller pins, can drive any number of LEDs)(typically uses a 74HC595 [[Popular Parts]]).<br />
* mechanically-scanned POV: a linear row of LEDs is wiped across a large area. Each LED is turned on and off with precise timing to generate a 2D image. (p.s.: each LED must be directly driven from the microcontroller or a shift register. "matrix" or "Charlieplexing" does not work in combination with mechanically scanned POV.)<br />
<br />
<br />
[[category:PIC]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Odroid_XU4_Weeding_Spraying_Robot&diff=88398Odroid XU4 Weeding Spraying Robot2023-01-06T04:00:00Z<p>DavidCary: link to related articles, etc.</p>
<hr />
<div>All my projects are located here: https://opencircuits.com/index.php?title=User:Definitionofis<br />
<br />
=== [[Odroid XU4 Weeding Spraying Robot]] ===<br />
The [https://vimeo.com/spinningwindmillfredhi project video] shows the completed [[robot]] spraying weeds. I proved the prototype works, although it is impracticably slow.<br />
<br />
I have not posted any details about the software nor construction here, yet.<br />
<br />
---- some technical details about one issue: <br />
GPIO via Odroid XU4 Shifter Shield<br />
<br />
I used all the GPIO IN/OUT pins between 1 and 40 of the first connector. I needed one more. There is only one more on the 12 pin connector but it is 1.8v not 5v logic.<br />
<br />
Here I describe how to access pin 5 of CONN11, which is a 12 pin connector which was inaccessible using wiringPi library. <br />
<br />
First, here is the wiring diagram from pin 5 to a mosfet to control the solenoid valve which turns the spray OFF/ON. I mounted and soldered the parts onto the spare area of the shifter shield.<br />
[[File:odroid-xu4-pin5-mosfet-switch.png]]<br />
<br />
I solved how to use that undocumented pin.<br />
* https://github.com/hardkernel/wiringPi<br />
* https://ameridroid.com/products/odroid-xu4<br />
* https://wiki.odroid.com/odroid-xu4/odroid-xu4<br />
* https://wiki.odroid.com/odroid-xu4/software/gpio_register_map#gpio_port_register_map<br />
* [[Wiki Odroid plus USB troubleshooting and GPIO upgrade notes]]<br />
* [[HOW TO ACCESS pin 5 of CONNECTOR 11 GPIO]]<br />
<br />
You can modify the C language file odroidxu3.c which has a placeholder filled with several -1 items as an error return code. The XU3 and XU4 both have 1 to 40 pins accessible from the Shifter Shield. I used all the GPIO (GPX) IN/OUT pins with success. That is the 40 pin connector. https://wiki.odroid.com/accessory/add-on_boards/xu4_shift_shield<br />
<br />
Here is the library wiringPi which I started with: https://github.com/hardkernel/wiringPi and you will find a file odroidxu3.c in there.<br />
<br />
See the other 12 pin connector of the XU4. Pin 5 is a GPX3.2 IN/OUT pin. I will arbitrarily call it pin 45, as in 40 pins plus the 5th one on the other connector. The CPU register space sees it as mathematically adjacent to GPX3.1, which is pin 36, GPX3.1 and CONN11/pin 5 is GPX3.2. https://wiki.odroid.com/odroid-xu4/software/gpio_register_map#gpio_port_register_map<br />
<br />
You can simply change one number from -1 to 34 without understanding why:<br />
<br />
Change odroidxu3.c and recompile the library. Then you can simply do things like digitalWrite(45, 1); and pinMode (45, OUTPUT ) and instead of getting a return -1 error you will get proper success where previously the range of pins was 1 to 40.<br />
<br />
Here is the change to odroidxu3.c See the number 34 in there, just below "//Not Used"? That was a -1. Change the -1 to a 34 and recompile. That is all you have to do. That 34 is in the 45th position thus pin 45.<br />
<br />
static const int phyToGpio[64] = {<br />
<br />
// physical header pin number to native gpio number<br />
-1, // 0<br />
-1, -1, // 1 | 2 : 3.3V, 5.0V<br />
209, -1, // 3 | 4 : GPB3.2(I2C_1.SDA), 5.0V<br />
210, -1, // 5 | 6 : GPB3.3(I2C_1.SCL), GND<br />
18, 172, // 7 | 8 : GPX1.2, GPA0.1(UART_0.TXD)<br />
-1, 171, // 9 | 10 : GND, GPA0.0(UART_0.RXD)<br />
174,173, // 11 | 12 : GPA0.3(UART_0.CTSN), GPA0.2(UART_0.RTSN)<br />
21, -1, // 13 | 14 : GPX1.5, GND<br />
22, 19, // 15 | 16 : GPX1.6, GPX1.3<br />
-1, 23, // 17 | 18 : 3.3V, GPX1.7<br />
192, -1, // 19 | 20 : GPA2.7(SPI_1.MOSI), GND<br />
191, 24, // 21 | 22 : GPA2.6(SPI_1.MISO), GPX2.0<br />
189,190, // 23 | 24 : GPA2.4(SPI_1.SCLK), GPA2.5(SPI_1.CSN)<br />
-1, 25, // 25 | 26 : GND, GPX2.1<br />
187,188, // 27 | 28 : GPA2.2(I2C_5.SDA), GPA2.4(I2C_5.SCL)<br />
28, -1, // 29 | 30 : GPX2.4, GND<br />
30, 29, // 31 | 32 : GPX2.6, GPX2.5<br />
31, -1, // 33 | 34 : GPX2.7, GND<br />
-1, 33, // 35 | 36 : PWR_ON(INPUT), GPX3.1<br />
-1, -1, // 37 | 38 : ADC_0.AIN0, 1.8V REF OUT<br />
-1, -1, // 39 | 40 : GND, AADC_0.AIN3<br />
<br />
// Not used (August 2, 2019, add pin 45 to be pin 5 of CON11 Odroid Shifter Shield XU4<br />
-1, -1,<br />
-1, -1,<br />
34, -1, // pin 5 of CONN11 GPX3.2(#34) wiki.odroid.com/odroid-xu4/hardware/expansion_connectors#gpio_map_for_wiringpi_library_con10_2_x_15<br />
-1, -1, // 41...48<br />
-1, -1,<br />
-1, -1,<br />
-1, -1,<br />
-1, -1, // 49...56<br />
-1, -1,<br />
-1, -1,<br />
-1, -1,<br />
-1 // 57...63<br />
<br />
};<br />
<br />
I am using Phys mode. I never tested other modes.</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Mini-USB_SMD_connector&diff=88383Mini-USB SMD connector2022-11-28T22:20:45Z<p>DavidCary: link to main "connectors" article</p>
<hr />
<div>{| align=right<br />
|-<br />
| <br />
[[Image:Mini-USB.jpg|Mini-USB SMD Connector]]<br />
|}<br />
<br />
<b>Description:</b><br><br />
This is one of Hirose' UX series of USB [[connectors]].<br />
<br />
<b>Documents:</b><br><br />
[[Media:Hirose UX.pdf|Hirose Product specs for UX line of Connectors]]<br />
<br />
<b>Footprints:</b><br><br />
[[Media:Mini-usb.zip|mini-USB connector footprint]] - This is an EAGLE Library file (.lbr) with package, device, and symbol.<br><br />
The exact dimensions can be found on page 4 of the hardware datasheet.<br />
<br />
<b>Notes:</b><br><br />
This part has two positioning posts on the bottom of the package. An alternative part, UX60<b>A</b>-MB-5ST, also described in the Product Specs, has no positioning posts.<br><br />
<br />
<b>Manufacturer Info:</b><br><br />
[[Hirose]] part # : UX60-MB-5ST<br />
<br />
<b>Supplier Info:</b><br><br />
[[Digikey]] part # : H2959CT-ND<br><br />
Single Piece Price : $1.45<br />
<br />
<b>Original Creator:</b> --[[User:Roach|Roach]] 22:39, 15 February 2006 (EST)<br />
<br />
I hear that, as of 2007, the mini-USB connector had been deprecated and should be replaced by the micro-USB connector.[http://www.usb.org/developers/Deprecation_Announcement_052507.pdf]<br />
A.though some people are resisting the switchover.[http://groups.google.com/group/beagleboard/browse_thread/thread/4765b005528befce]<br />
<br />
<br />
[[Category:Connectors]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Field-programmable_gate_array&diff=88375Field-programmable gate array2022-11-23T20:29:07Z<p>DavidCary: mention related devices</p>
<hr />
<div>A '''Field-Programmable Gate Array''' (FPGA) is a general purpose logic matrix configurable integrated circuit. It consists of a collection of logic gates that can be connected together in an almost unlimited number of combinations to produce custom operations that would normally only be possible with full-custom integrated circuits. Since FPGAs are produced in high volume, they can bring economies of scale to one-off and low volume projects.<br />
<br />
Several open hardware projects use FPGAs, such as<br />
* [[Minimig FPGA]]<br />
* ...<br />
* [[Motherboards that run Linux#Balloon_Xscale_ARM.2BFPGA_dev_board | Balloon Xscale + FPGA board]]<br />
* [[RTL m68k]]<br />
* [[WikiNode | The Open Graphics Project]] (OGP) is developing graphics cards with fully published specs and open source drivers. Since the first version will be a FPGA, is also collecting information on FPGA programming and interfacing.<br />
* ...<br />
* ... ''(Add other open hardware projects I'm forgetting to this list)''<br />
<br />
[[Verilog]] ...<br />
[[Xilinx]] ...<br />
[[Altera]] ...<br />
[[Lattice]] ...<br />
<br />
== Verilog ==<br />
Verilog is a hardware description language (HDL) used to model electronic systems. The language (sometimes called Verilog HDL) supports the design, verification, and implementation of analog, digital, and mixed-signal circuits at various levels of abstraction.<br />
<br />
== VHDL ==<br />
VHDL (VHSIC hardware description language) is commonly used as a design-entry language for designing digital circuits as field-programmable gate arrays (FPGAs) and application-specific integrated circuits (ASICs).<br />
<br />
== History ==<br />
<br />
... standard logic devices ...<br />
<br />
The 1978 programmable array logic ([[PAL]]) was a revolutionary device.<br />
Previous CPUs were built from a rack of PCBs full of of TTL ICs ([[standard logic CPU]]);<br />
PALs allowed CPUs that were just as complex to be built from far fewer ICs on less than a dozen PCBs.<br />
The book "Soul of a New Machine" described the development<br />
of the "Eagle", one of the first CPUs to use PALs rather than fixed-function TTL ICs ([[TTL CPU]]).<ref><br />
[https://www.embeddedrelated.com/showthread/fpga-cpu/1193-1.php "PAL/GAL CPUs?"].<br />
</ref><br />
PAL chips were first introduced in 1978 by MMI (now part of Lattice Semiconductor) and soon second sourced by National Semiconductor, Texas Instruments and AMD.<br />
<br />
GAL devices are direct replacements for most PAL, EPLD, and PEEL devices.<ref><br />
Lattice Semiconductor.<br />
[https://www.latticesemi.com/-/media/LatticeSemi/Documents/ApplicationNotes/AD/CopyingPALEPLDandPEELPatternsintoGALDevices.ashx?la=en "Copying PAL, EPLD and PEEL Patterns into GAL Devices"].<br />
2002.<br />
</ref><br />
The advantage of GAL and PEEL is that they can be quickly erased and re-programmed, unlike PALs which have one-time-programmable fuses or EPLDs which can only slowly be erased with ultraviolet light through a glass window.<br />
<br />
The ispGAL devices are a further improvement: they have JTAG port that supports in-system programmability (ISP), unlike earlier devices that need to be socketed to allow pulling them out of the system, then plugging in a freshly-programmed device. (That JTAG port also supports internal and board-level testing).<ref><br />
[https://www.latticesemi.com/support/answerdatabase/2/4/245 "What is the difference between an ispGAL and a GAL device?"]<br />
</ref><br />
<br />
SPLDs ...<br />
<br />
CPLDs ... further improve density ...<br />
...<br />
<br />
FPGAs ... are even more dense -- entire CPUs can be implemented on a single FPGA IC.<br />
Some FPGAs have enough capacity to implement multiple CPUs ...<br />
but they have some drawbacks:<br />
* most FPGAs reload their configuration on power-up, unlike CPLDs and SPLDs which are instant-on.<br />
* CPLDs and SPLDs have more predictable timing delays<br />
* SPLDs often have several second sources<br />
* building something with some specific FPGA seems to force the designer to use one specific proprietary software tool on one of a narrow range of specific proprietary OSes.<ref><br />
Dieter Mueller 2004.<br />
[http://www.6502.org/users/dieter/mt15/mt15.htm "MT15"].<br />
quote: "If there would be a standard with FPGAs/CPLDs<br />
... allowing me to select<br />
between parts from different manufacturers with the<br />
same Pin_out while still working with the same<br />
(non_proprietary/open_source) software tools,<br />
this project would not exist."<br />
</ref><br />
* ... <br />
<br />
<br />
<br />
== Further reading ==<br />
* [http://en.wikipedia.org/wiki/Field-programmable_gate_array Wikipedia: field-programmable gate array]<br />
* [http://wiki.opengraphics.org/ The Open Graphics Project wiki]: The Open Graphics Project (OGP) is developing graphics cards with Free-licensed specifications and Free Software drivers. The FPGA development board OGD1, Revision B, uses a Xilinx® Spartan™-III XC3S4000 FPGA (primary FPGA) and a Lattice® LFXP10 non-volatile FPGA (PCI interface)<br />
* [http://wacco.mveas.com/ "Project VGA"]: Home of the Low Budget, Open Source, VGA Compatible video card. Uses Xilinx Spartan 3 s400 FPGA.</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Chemical_Etchants&diff=88361Chemical Etchants2022-11-10T00:31:56Z<p>DavidCary: Protected "Chemical Etchants": Excessive spamming ([Edit=Allow only autoconfirmed users] (expires 00:31, 10 November 2023 (UTC)) [Move=Allow only autoconfirmed users] (expires 00:31, 10 November 2023 (UTC)))</p>
<hr />
<div>{{stub}}<br />
<br />
Chemical etching is one step of some popular [[techniques | PCB fabrication techniques]].<br />
<br />
In this technique,<br />
* one starts with a copper-clad board.<br />
* one puts a mask over all the copper he want to keep. There are a variety of ways to do this -- see [[Toner Transfer]] and [[Photoetching]].<br />
* one removes the parts he don't want to keep, by chemically etching away the copper.<br />
* cleanup: wash off the board in the sink; carefully store or dispose of the acid.<br />
<br />
There are a lot of different chemical techniques for doing this, each with its own advantages and drawbacks.<br />
<br />
None of these chemicals is incredibly dangerous, but they can all be toxic or caustic, and should be treated with care. Eye protection and gloves are a very good idea. Before you start, make sure you know how dangerous each chemical is, and figure out what you will need to do if you spill it or get it on yourself. Washing with plenty of water is usually a good start. For some chemicals you may want to keep a neutralizing agent handy. An MSDS (Materials Safety Data Sheet) for the chemical will give you some basic information.<br />
<br />
== vinegar and salt ==<br />
<br />
* [http://www.kobakant.at/DIY/?p=2575 How to get what you want: Salt and Vinegar Etching]<br />
* [http://www.flickr.com/photos/jeanbaptisteparis/4831465916/ smt pcb with Salt and Vinegar]<br />
* [http://www.instructables.com/id/The-Saltwater-etch-process/ The Saltwater etch process]<br />
* [http://www.electro-tech-online.com/general-electronics-chat/33876-electro-etching-no-acid.html electro etching a PCB with vinegar, salt, and a 12 V power supply] (the copper etched off the PCB is plated on the anode?) -- however, other people claim that "You should not be using any acids (or basic 'acids') with your [electro] etcher at all. No FeCl no vinegar, etc ".[http://www.bladeforums.com/forums/showthread.php?t=671936]<br />
<br />
== Ferric Chloride ==<br />
This is the most common hobbyist etchant. Ferric chloride, FeCl<sub>3</sub>, is a brownish substance. It's usually sold in a bottle (dissolved in water, perhaps with a little acid or peroxide) or as a powder (which you have to dissolve in water).<br />
<br />
When in solution, ferric chloride is a ferric ion (Fe<sup>3+</sup>) and a chloride ion (Cl<sup>-</sup>). The ferric ion reacts with the metallic copper on the circuit board in a redox reaction, producing a ferrous ion (Fe<sup>2+</sup>) and cuprous or cupric (Cu<sup>1+</sup> or Cu<sup>2+</sup>) copper. The chlorine is just along for the ride. The copper ion, unlike the metallic copper, is soluble, so it leaves the circuit board and goes into solution. The reaction products form a black sludge which settles to the bottom of the etching tank. After etching enough copper, all your Fe<sup>3+</sup> is used up and your solution is full of Cu<sup>1+</sup>, and you need to get more etchant.<br />
<br />
== Ammonium Persulfate ==<br />
Expensive & hard to control and optimize the process parameters (such as specific gravity & pH value).<br />
<br />
== HydroChloric Acid / Hydrogen Peroxide ==<br />
<br />
Mixing about 1 part HCl (Which can be found at most hardware stores, also known as Muriatic Acid. Ask for concrete cleaner.) into 2 parts Hydrogen peroxide (normally used for cleaning cuts) you can make a fairly powerful etchant. Use gloves and don't breathe the fumes though. This will etch a 3"x5" board in less than 10 minutes. No need to heat it up. I usually like to drill a small hole through the board on a corner and thread a wire or nylon string through to help agitate / remove the board.<br />
<br />
When the board is done etching, the etchant will probably look like green kool-aid, from the copper content in it. This stuff is highly corrosive and will burn skin, which is why you should wear gloves. But it is easy to handle, and fairly easy to dispose of. the etchant is easily deactivated with baking soda. Pour enough baking soda into it slowly (to keep it from boiling and overflowing... remember what happens with baking soda/vinegar? ya...) until it is a solid mass, then leave it in the sun to dry. You should contact your local authorities to find out what you should do with it next. Whatever you do, DO NOT dump the stuff down the drain, it will eat through your pipes just like any of the other etchants.<br />
<br />
Alternatively, instead of disposing of the etchant, you can re-use it again and again. In fact, after etching a few boards with this solution, you will have successfully made [[Chemical Etchants#Acid Cupric Chloride|Acid Cupric Chloride]] (see below).<br />
You can also find a detailed tutorial on etching at [http://robotplatform.com/howto/pcb%20etching/pcb_etching_1.html Muriatic Acid etching tutorial]<br />
<br />
== Sodium Persulfate ==<br />
More environmentally friendly than ferric chloride. Can monitor the etching as initially clear new etchant solution turns blue from the copper ions.<br />
<br />
== Acid Cupric Chloride ==<br />
Dead simple etchant made from ordinary, store-bought chemicals (hydrochloric acid and hydrogen peroxide). Has the advantage that it can be regenerated by bubbling oxygen/air through it, or by adding more H<sub>2</sub>O<sub>2</sub>. In addition, it doesn't get used up: the etchant bath simply grows with use (kind of like sourdough starter…)<br />
The used etchant also makes a great algecide/pH reducer for your pool (and a whole lot cheaper than that stuff they sell at the pool store).<br />
<br />
What you need:<br />
* 38% Hydrochloric Acid, HCl (available at finer hardware stores or pool supply stores as Muriatic Acid)<br />
* 3% Hydrogen Peroxide, H<sub>2</sub>O<sub>2</sub> (available from any drug store)<br />
* Plastic or Glass Pans, Jars, and tongs (no metal)<br />
Directions:<br />
<br />
# Mix your HCl and H<sub>2</sub>O<sub>2</sub> 1:1 in a non-metalic container, making sure to add the acid slowly to the H<sub>2</sub>O<sub>2</sub>. DO NOT ADD THE H<sub>2</sub>O<sub>2</sub> TO THE ACID!!!<br />
# After you've masked your board, dip it in the solution and constantly agitate. You should notice a dark green cloud start to come from the board almost immedately which quickly dissapears or turns lighter as it gets further from the surface of the board.<br />
# Etching should take about 10min depending on the temperature and how well you agitated the etchant. When all of the copper is gone, dip in water to wash off any stray etchant and stop the reaction.<br />
# When done etching, save used etchant in a non-metalic container and mark clearly its contents.<br />
# If your etchant has become a dark, murky green color, add a little bit of H<sub>2</sub>O<sub>2</sub> or bubble air/O<sub>2</sub> through the solution to regenerate it back to a light, transparent green color.<br />
See links at bottom for more information on the chemistry and some pictures of the process.<br />
<br />
== Disposal procedures ==<br />
Flushing used etchant down the drain is a bad idea (and usually illegal) because copper ion is toxic. The usual recommended way to dispose of hobbyist amounts of etchant is to convert it to a solid somehow and dispose of the solid in accordance with local laws.<br />
<br />
== External Links == <br />
<br />
* [http://www.instructables.com/id/Sponge-Ferric-Chloride-Method-Etch-Circuit-Bo/ "Sponge + Ferric Chloride Method -- Etch PCBs in One Minute!"]<br />
* [http://www.k9spud.com/wiki/PCB:Etchants Ferric Chloride vs. Ammonium Persulfate] and other etching chemicals.<br />
* [http://members.optusnet.com.au/~eseychell/PCB/etching_CuCl/index.html Etching with Air Regenerated Acid Cupric Chloride] — an excellent in-depth page on acid cupric chloride etching by Adam Seychell.<br />
* [http://www.esmonde-white.com/home/diversions/etching-a-copper-pcb Etching a Copper PCB with HCl and H2O2]<br />
* [http://www.mgchemicals.com/ MG Chemicals] A possible source?<br />
* [http://reprap.org/wiki/MakePCBInstructions RepRap wiki: Make PCB instructions]<br />
<br />
== Internal Links ==<br />
<br />
<br />
*[[Toner Transfer]]<br />
*[[Techniques]]<br />
*[[Eagle Links]]<br />
<br />
<br />
[[Category:Techniques]]</div>DavidCaryhttp://www.opencircuits.com/index.php?title=Chemical_Etchants&diff=88360Chemical Etchants2022-11-10T00:14:31Z<p>DavidCary: Reverted edits by 172.241.234.147 (talk) to last revision by DavidCary</p>
<hr />
<div>{{stub}}<br />
<br />
Chemical etching is one step of some popular [[techniques | PCB fabrication techniques]].<br />
<br />
In this technique,<br />
* one starts with a copper-clad board.<br />
* one puts a mask over all the copper he want to keep. There are a variety of ways to do this -- see [[Toner Transfer]] and [[Photoetching]].<br />
* one removes the parts he don't want to keep, by chemically etching away the copper.<br />
* cleanup: wash off the board in the sink; carefully store or dispose of the acid.<br />
<br />
There are a lot of different chemical techniques for doing this, each with its own advantages and drawbacks.<br />
<br />
None of these chemicals is incredibly dangerous, but they can all be toxic or caustic, and should be treated with care. Eye protection and gloves are a very good idea. Before you start, make sure you know how dangerous each chemical is, and figure out what you will need to do if you spill it or get it on yourself. Washing with plenty of water is usually a good start. For some chemicals you may want to keep a neutralizing agent handy. An MSDS (Materials Safety Data Sheet) for the chemical will give you some basic information.<br />
<br />
== vinegar and salt ==<br />
<br />
* [http://www.kobakant.at/DIY/?p=2575 How to get what you want: Salt and Vinegar Etching]<br />
* [http://www.flickr.com/photos/jeanbaptisteparis/4831465916/ smt pcb with Salt and Vinegar]<br />
* [http://www.instructables.com/id/The-Saltwater-etch-process/ The Saltwater etch process]<br />
* [http://www.electro-tech-online.com/general-electronics-chat/33876-electro-etching-no-acid.html electro etching a PCB with vinegar, salt, and a 12 V power supply] (the copper etched off the PCB is plated on the anode?) -- however, other people claim that "You should not be using any acids (or basic 'acids') with your [electro] etcher at all. No FeCl no vinegar, etc ".[http://www.bladeforums.com/forums/showthread.php?t=671936]<br />
<br />
== Ferric Chloride ==<br />
This is the most common hobbyist etchant. Ferric chloride, FeCl<sub>3</sub>, is a brownish substance. It's usually sold in a bottle (dissolved in water, perhaps with a little acid or peroxide) or as a powder (which you have to dissolve in water).<br />
<br />
When in solution, ferric chloride is a ferric ion (Fe<sup>3+</sup>) and a chloride ion (Cl<sup>-</sup>). The ferric ion reacts with the metallic copper on the circuit board in a redox reaction, producing a ferrous ion (Fe<sup>2+</sup>) and cuprous or cupric (Cu<sup>1+</sup> or Cu<sup>2+</sup>) copper. The chlorine is just along for the ride. The copper ion, unlike the metallic copper, is soluble, so it leaves the circuit board and goes into solution. The reaction products form a black sludge which settles to the bottom of the etching tank. After etching enough copper, all your Fe<sup>3+</sup> is used up and your solution is full of Cu<sup>1+</sup>, and you need to get more etchant.<br />
<br />
== Ammonium Persulfate ==<br />
Expensive & hard to control and optimize the process parameters (such as specific gravity & pH value).<br />
<br />
== HydroChloric Acid / Hydrogen Peroxide ==<br />
<br />
Mixing about 1 part HCl (Which can be found at most hardware stores, also known as Muriatic Acid. Ask for concrete cleaner.) into 2 parts Hydrogen peroxide (normally used for cleaning cuts) you can make a fairly powerful etchant. Use gloves and don't breathe the fumes though. This will etch a 3"x5" board in less than 10 minutes. No need to heat it up. I usually like to drill a small hole through the board on a corner and thread a wire or nylon string through to help agitate / remove the board.<br />
<br />
When the board is done etching, the etchant will probably look like green kool-aid, from the copper content in it. This stuff is highly corrosive and will burn skin, which is why you should wear gloves. But it is easy to handle, and fairly easy to dispose of. the etchant is easily deactivated with baking soda. Pour enough baking soda into it slowly (to keep it from boiling and overflowing... remember what happens with baking soda/vinegar? ya...) until it is a solid mass, then leave it in the sun to dry. You should contact your local authorities to find out what you should do with it next. Whatever you do, DO NOT dump the stuff down the drain, it will eat through your pipes just like any of the other etchants.<br />
<br />
Alternatively, instead of disposing of the etchant, you can re-use it again and again. In fact, after etching a few boards with this solution, you will have successfully made [[Chemical Etchants#Acid Cupric Chloride|Acid Cupric Chloride]] (see below).<br />
You can also find a detailed tutorial on etching at [http://robotplatform.com/howto/pcb%20etching/pcb_etching_1.html Muriatic Acid etching tutorial]<br />
<br />
== Sodium Persulfate ==<br />
More environmentally friendly than ferric chloride. Can monitor the etching as initially clear new etchant solution turns blue from the copper ions.<br />
<br />
== Acid Cupric Chloride ==<br />
Dead simple etchant made from ordinary, store-bought chemicals (hydrochloric acid and hydrogen peroxide). Has the advantage that it can be regenerated by bubbling oxygen/air through it, or by adding more H<sub>2</sub>O<sub>2</sub>. In addition, it doesn't get used up: the etchant bath simply grows with use (kind of like sourdough starter…)<br />
The used etchant also makes a great algecide/pH reducer for your pool (and a whole lot cheaper than that stuff they sell at the pool store).<br />
<br />
What you need:<br />
* 38% Hydrochloric Acid, HCl (available at finer hardware stores or pool supply stores as Muriatic Acid)<br />
* 3% Hydrogen Peroxide, H<sub>2</sub>O<sub>2</sub> (available from any drug store)<br />
* Plastic or Glass Pans, Jars, and tongs (no metal)<br />
Directions:<br />
<br />
# Mix your HCl and H<sub>2</sub>O<sub>2</sub> 1:1 in a non-metalic container, making sure to add the acid slowly to the H<sub>2</sub>O<sub>2</sub>. DO NOT ADD THE H<sub>2</sub>O<sub>2</sub> TO THE ACID!!!<br />
# After you've masked your board, dip it in the solution and constantly agitate. You should notice a dark green cloud start to come from the board almost immedately which quickly dissapears or turns lighter as it gets further from the surface of the board.<br />
# Etching should take about 10min depending on the temperature and how well you agitated the etchant. When all of the copper is gone, dip in water to wash off any stray etchant and stop the reaction.<br />
# When done etching, save used etchant in a non-metalic container and mark clearly its contents.<br />
# If your etchant has become a dark, murky green color, add a little bit of H<sub>2</sub>O<sub>2</sub> or bubble air/O<sub>2</sub> through the solution to regenerate it back to a light, transparent green color.<br />
See links at bottom for more information on the chemistry and some pictures of the process.<br />
<br />
== Disposal procedures ==<br />
Flushing used etchant down the drain is a bad idea (and usually illegal) because copper ion is toxic. The usual recommended way to dispose of hobbyist amounts of etchant is to convert it to a solid somehow and dispose of the solid in accordance with local laws.<br />
<br />
== External Links == <br />
<br />
* [http://www.instructables.com/id/Sponge-Ferric-Chloride-Method-Etch-Circuit-Bo/ "Sponge + Ferric Chloride Method -- Etch PCBs in One Minute!"]<br />
* [http://www.k9spud.com/wiki/PCB:Etchants Ferric Chloride vs. Ammonium Persulfate] and other etching chemicals.<br />
* [http://members.optusnet.com.au/~eseychell/PCB/etching_CuCl/index.html Etching with Air Regenerated Acid Cupric Chloride] — an excellent in-depth page on acid cupric chloride etching by Adam Seychell.<br />
* [http://www.esmonde-white.com/home/diversions/etching-a-copper-pcb Etching a Copper PCB with HCl and H2O2]<br />
* [http://www.mgchemicals.com/ MG Chemicals] A possible source?<br />
* [http://reprap.org/wiki/MakePCBInstructions RepRap wiki: Make PCB instructions]<br />
<br />
== Internal Links ==<br />
<br />
<br />
*[[Toner Transfer]]<br />
*[[Techniques]]<br />
*[[Eagle Links]]<br />
<br />
<br />
[[Category:Techniques]]</div>DavidCary