Electronics Components Datasheet Software As A Service
Features, ApplicationsPacket and Page Teletext data reception using the SAA5250Philips Product Concept & Applications Lab, Southampton England Philips Semiconductors, Paris France Philips Product Concept & Applications Lab, Californiacan be used for many purposes. For instance, a nationwide one way data distribution service could provide customer support for a computer software manufacture, sending both new product announcements, software updates and bug fixes automatically. At the receiving end, a variety of terminal equipment types can be envisaged depending on the application. A common requirement, however, is for a `black box' which can be connected to an aerial input signal and deliver a parallel data output to a desktop computer.
This unit can be largely transparent to the application, being the equivalent of a data link in a conventional wired computer installation. A block diagram of such an adapter unit is shown in Figure 1. The UHF or VHF aerial signal is passed through the conventional television receiving circuitry of tuner, I.F., and demodulator stages to produce a baseband composite video signal (CVBS). This is applied to the Teletext data slicer and acquisition decoder, which provides a data output to the host computer rather than the usual text display output.
The Teletext decoder can use a microprocessor to format the data output and provide control of the system. Tuning in the local broadcast station and selection of the required service can be done through the controls on the adapter unit, or alternatively by sending commands from the host computer through a suitable interface logic. Facilities for descrambling the data and access control can be provided in the software of the adapter unit or in the host computer according to the particular requirements of a service.Two methods of transmitting serial data in World System Teletext (WST) format are available. These are the independent data line or `Packet 31' method, and the page format technique. For universal application in a subscription Teletext environment the receiving equipment must be able to accept both forms of transmission. The Multistandard acquisition circuit CIDAC (SAA5250) or CMOS Interface for Data Acquisition and Control, is available to simplify the receiver design.Recently there has been a great upsurge in interest in using Teletext to transmit serial data. This can be achieved without interfering with the normal Teletext service, and the dataAs mentioned earlier, the requirements for a Teletext decoder to receive serial data are quite different from a conventional decoder in a television set, or set-top decoder.
To begin with, an RGB text display output is not usually required as perfectly adequate character generating capacity is available on the host computer's display. The data output is the main requirement, demanding reasonably direct access to the acquisition memory from the host. Facilities for access control and descrambling the data may be needed, together with special error-checking algorithms. As a further complication, two entirely different transmission methods are used for serial data; the page format method and the independent data line or `packet 31' method. Each of these methods has its advantages and disadvantages, but it appears likely that both will be used commercially.
If only page format data reception is required, a standard Teletext decoder chip can be used with appropriate control software, see Reference 1. However, the adapter designer may require a universal decoder capable of operating on either form of transmission. For reasons of economy, duplication of circuitry should be avoided if possible. On the other hand, goodperformance (i.e. Speed) and adaptability may be prerequisites in a competitive design. The multistandard acquisition circuit CIDAC (SAA5250) provides a solution to these problems.
Originally designed for the reception of the French ANTIOPE and the World System Teletext formats, it is equally capable of acquiring data using the independent data line transmission technique. The device can be programmed to operate in various modes and two of these are suitable for the independent data line and the page format transmissions respectively. A block diagram of a multistandard Teletext decoder for serial data is shown in Figure 2. Composite video is supplied to a standard Philips data slicer or SAA5191) circuit which performs adaptive data slicing and supplies serial data and clock to the CIDAC (SAA5250). The other section of the data slicer is concerned with display timing synchronization is not used. All of the CIDAC timing is derived from the in 625 line) data clock. Acquisition of the data is performed by the CIDAC circuit (SAA5250).
The received data is buffered in a standard low cost x 8 static RAM connected to the CIDAC. The chip performs appropriate prefix processing according to the operating mode selected, and the storage of particularpackets of data is under software control. Data is retrieved from the RAM via CIDAC's parallel interface to a host interface or a microcontroller. If a microcontroller is used, the microcode is responsible for formatting the data into the form required to interface with the host computer (i.e. An RS-232 serial interface at 9600 baud). The microcontroller itself can be one of several standard types, etc. Any controls (i.e.
To select the service) can be implemented locally in the decoder using port pins of the microcontroller; alternatively if the output interface is made bi-directional, selections can be made using the host computer externally. Access controls and descrambling are dealt with using the appropriate software in the decoder's microcontroller acting on the corresponding received data. Alternatively, these functions may be performed by the host computer, with the decoder simply acting as a transparent data link and no microcontroller is used in this configuration.
The same hardware configuration can be used as a receiver for downloadable software, as a standard acquisition unit for normal World System Teletext or pages with the host computer used as the display unit.DATA CLOCK SYNC CIDAC SAA5250 HOST INTERFACE OR MICROCONTROLLER DATA OUTPUTThe CIDAC itself performs the acquisition functions and interfaces with the memory and host. A block diagram of the device is shown in Figure 3. The received serial data from the data slicer is checked for framing code (which is programmed from the host) during a line timing window derived from the VCS sync signal. This timing window can be moved within limits under software control to compensate for the different framing code delays.
After detection of the framing code, the information is converted into 8 bit parallel form. In addition, the VAL OUT output (pin 2) will reflect the position of the programmed framing window. The functions performed by the data depend on the operating mode selected, and are controlled by the sequence controller circuit.Some data bytes are Hamming protected, and these are passed through Hamming correction logic. Most of the operating modes have hardware recognition of a channel or magazine, so the appropriate input data is compared with the requested magazine number in the channel comparator. This ensures that only data from the selected magazines is loaded into memory, and that the acquisition process is not burdened with irrelevant data. The format counter is used to count the number of bytes loaded into memory on each data line; this value can be loaded by the software. In long and short Didon (ANTIOPE) modes this information is taken from the broadcast format byte via the format transcoder.
Storage of the data in memory also depends on the selection of slow or fast mode. In slow mode, all data from the selected magazine isstored in memory regardless of any further conditions. It is then up to the host software to search for the appropriate data by looking for a start-of-page flags, packet number recognition, etc. This method is suitable for modest operating speeds such as the packet 31 system, in which the host has no difficulty in keeping up with the overall data throughput.
Alternatively if fast mode is chosen, data is only stored after recognition by the CIDAC hardware of an appropriate `start-of-page' flag. This flag depends on the system; codes SOH, RS for Didon, a bit in the PS byte for NABTS, or row 0 (page header) for World System Teletext. Using fast mode considerably simplifies the host's task in page recognition, so the position of the data to be checked becomes defined in memory. Fast mode is implemented by page flag detection circuitry in the sequence controller.PAGE DETECTION PROGRAM REGISTER SEQUENCE CONTROLLER CHANNEL COMPARATOR HAMMING CORRECTOR HOST INTERFACE CS ALE DBFORMAT PROCESSOR 2 K BYTE FIFO MEMORY CONTROLLER. Some Part number from the same manufactureSame catergoryMPS4123: Amplifier Transistors.
Rating Collector Emitter Voltage Collector Base Voltage Emitter Base Voltage Collector Current Continuous Total Power Dissipation = 25°C Derate above 25°C Total Power Dissipation = 25°C Derate above 25°C Operating and Storage Junction Temperature Range Symbol VCE VCB VEB IC PD TJ, Tstg 25 30 Unit Vdc mAdc mW mW/°C W mW/°C °C Characteristic Thermal.TL99: Toroidal Transformer PCB Mounting LOW Profile. Low magnetic stray field emissions Low standby current Low profile Magnetic shielded Fully encapsulated High efficiency High ambient operating temperature (+60°C maximum) Power to 85VA Primary Dual primary (115V/230V 50/60Hz) Secondary Series or parallel Dielectric Strength 4000Vrms Insulation Class Class F (155°C) Safety Approved UL506, CUL #66-1988.PM-8044: 10/100 Base-tx QUAD PORT Isolation Transformers WITH Filters. 10/100 Base-TX QUAD PORT ISOLATION TRANSFORMERS WITH FILTERS Designed for 10/100MB/s Transmission Over UTP-5 Cable, IEEE 802.3u & ANSI X3.236-1995 Maintains 350uHY Primary OCL with an 8mA bias over the full temp range to +70OC.
Supports all leading Fast Ethernet Chip Sets that require a 1:1 Transmit & Receive Turns Ratio. Provides the Cable Interface.6231-50.00M: 1.8V Lvcmos Surface Mount Crystal Clock Oscillator.
1.8V LVCMOS Surface Mount Crystal Clock Oscillator 6221, 6231 The Connor-Winfield models 6211, 6221, and 6231 are 3.5mm, 1.8V LVCMOS, Ceramic, Surface Mount, Fixed Frequency Crystal Oscillators (XO) designed for use in all applictions requiring precision clocks. The RoHS compliant, surface mount package is designed for high-density mounting and is optimum.15R6Z: 50 AMP 150 Volts 50 nsec Rectifier.313LDPNAAFHCT: Submersible Level Transmitter. All-welded, stainless steel construction Rugged, all encapsulated electronics. Leakproof 1/2' NPT conduit thread standard From 0-3 through 0-100 psig (See ordering guide.) From ± 0.1% FSO (RSS) ± 0.5% FSO (RSS) (See s & ordering guide.) with Option LJ tapered inlet with stand off plate Ordering: Specify model, and pressure range and indicate modifications.HCT652: Octal bus Transceiver/register; 3-state. For a complete data sheet, please also download: The IC06 74HC/HCT/HCU/HCMOS Logic Family s The IC06 74HC/HCT/HCU/HCMOS Logic Package Information The IC06 74HC/HCT/HCU/HCMOS Logic Package Outlines Product File under Integrated Circuits, IC06 September 1993 Multiplexed real-time and stored data Independent register for A and B buses Independent enables.MZ214: 3 WATT Glass Zener Diodes.DPS48L05: Dc-dc Converter.MS3115: Dummy Stowage Receptacle. MS3115-16 L Basic Part No. Finish A = Hard Anodize L = Electroless Nickel W = Cadmium Olive Drab over Electroless Nickel 1.
For complete dimensions see applicable Military. Metric dimensions (mm) are indicated in parentheses. GLENAIR, INC. 1211 AIR WAY GLENDALE, 818-247-6000 FAX 818-500-9912 www.glenair.com E-Mail: sales@glenair.com.Metallic LED VP: Phoenix Products Announces New Metallic LED Vaporproof Fixture. The Metallic LED Vaporproof Series fixtures are constructed of marine-grade aluminum or thick-walled brass which are optimal for outdoor marine (saltwater) and other industrial environments. This fixture was developed for applications including marine vessels, offshore platforms, US Navy.BVB01/Z0000/10: Power Entry Modules FUSED INLET DP SW POWER MODULE. S: Manufacturer: Bulgin; Product Category: Power Entry Modules; RoHS: Details; Factory Pack Quantity: 47: 500mA Ferrite Bead And Chip Filter Differential Mode - Single; FERRITE BEAD 470 OHM.50A 0603.
S: Filter Type: Differential Mode - Single; Current Rating: 500mA; Lead Free Status: Lead Free; RoHS Status: RoHS Compliant.MS3101F20-11S: Aluminum, Olive Drab Cadmium Plated Free Hanging (In-Line) Circular Connectors, Interconnect Receptacle, Female Sockets; CONN RCPT 13 POS FREE HNG W/SCKT. S: Connector Type: Receptacle, Female Sockets; Shell Size - Insert: 20-11; Mounting Type: Free Hanging (In-Line); Fastening Type: Threaded;: Strain Relief; Packaging: Bulk; Number of Positions.74AVC16269DGGRE4: Logic - Universal Bus Function Integrated Circuit (ics) Registered Bus Exchanger Tape & Reel (TR) 12mA, 12mA 1.4 V 3.6 V; IC RGSTRD BUS EXCHANGER 56TSSOP. S: Number of Circuits: 12 24-Bit; Package / Case: 56-TFSOP (0.240', 6.10mm Width); Logic Type: Registered Bus Exchanger; Packaging: Tape & Reel (TR); Mounting Type: Surface Mount; Number.C200HW-SRM21-V1: Accessory Industrial Controls, Meter; TERM BLOCK PLC COMPOBUS/S MASTER. S: Lead Free Status: Lead Free; RoHS Status: RoHS Compliant.IXGA48N60B3: 48 A, 600 V, N-CHANNEL IGBT, TO-263AB. S: Polarity: N-Channel; Package Type: TO-263, TO-263, 2 PIN; Number of units in IC: 1.KPB4CG1: COPPER ALLOY, WIRE TERMINAL. S: Terminal Type: Wire Connector; Material: Copper; North American: 4 AWG.
I’m using a Beaglebone Black to log some science data around the house. My internet connection isn’t the most reliable in the world so I first cache the data locally on the BBB and upload it separately; this means I need to capture accurate timestamps for the data. Now reboot and run this command:ls -al /dev/rtc.You should see this output:Notice that we now have RTC0 and RTC1 devices. RTC0 is the built-in hardware clock in the BBB but it has no battery backup. RTC1 is the DS1307 that we connected to the BBB, so now we have two hardware clocks available.
We’re not done, though, because the /dev/rtc symlink is pointing to RTC0, not RTC1. Make our RTC the defaultWe can add a udev rule that will symlink to our battery-backed RTC instead. Create a new file named /etc/udev/rules.d/55-i2c-rtc.rules with this text. SUBSYSTEM'rtc', KERNEL'rtc1', SYMLINK+='rtc', OPTIONS+='linkpriority=10', TAG+='systemd'Now reboot and run this command:ls -al /dev/rtc.You should see this output:Now the /dev/rtc symlink points to our DS1307 RTC. Set system time from RTCNow we have our new RTC set up but the system time still won’t be set on boot.
The systemd-timesyncd service is responsible for time syncing in this build of Debian. As it syncs the time from a time server it writes that time to disk. If the device reboots and has no internet connection, systemd-timesyncd will see that the system time is unset and will load the last-synced time from disk and use that to set the system time (which wouldn’t be correct, but at least closer than a totally unset time). We need to set the system time from our RTC before systemd-timesyncd checks it, and we can do that by creating a new systemd service.Create a file named /etc/systemd/system/i2c-rtc.service with this text. UnitTimerOnUnitActiveSec=1hOnBootSec=10sInstallWantedBy=timers.targetNow enable the timer to start on boot with this command:sudo systemctl enable systohc.timerAt this point we’re done with the software configuration, but don’t reboot yet because we want to do some testing. TestingTo test that everything is working as expected, first set the DS1307 clock to some obviously incorrect date using this command:sudo hwclock -f /dev/rtc1 –set –date=”2017-01-01 00:00:01″ –utcNext, physically unplug any internet connection (wifi/ethernet) from the BBB and reboot. When the BBB comes back up without an internet connection, running date at the command line should show you the incorrect date you set above.
This tells us that the date was loaded from the DS1307 on boot, which is what we want.Now reconnect your internet connection, wait a minute or two, then check the system clock and both hardware clocks with this command:date && sudo /sbin/hwclock -r -f /dev/rtc0 && sudo /sbin/hwclock -r -f /dev/rtc1This will print out three date/time strings and they should all be the same (to within a few seconds since the commands to print each one are running sequentially). This tells us that the system clock was synced from the time server and the updated time was also copied to both hardware clocks, which is what we want.If you walk through these instructions and find errors or clarifications, leave a comment below. This is part 3 of a series of blog posts documenting how I designed and built a multi-node wireless temperature sensor system. Links to all of the posts in the series:.All hardware and software files for the project can be found in. Programming the sensor moduleOnce you finish soldering a sensor module, the next thing you have to do is to set some configuration options and upload the firmware. To do this, you’ll need an AVR programmer device of some kind.
We can’t use a simple USB cable like you can with an Arduino because a) we didn’t include USB components on the board and b) the processor doesn’t have any bootloader firmware installed.There are a couple of different possible approaches for programming AVR processors. If you don’t have a purpose-built programmer device but you do have an Arduino on hand, you can. There are also a variety of USB-based programmer devices you can buy; you can buy an or I really like this one that’s:Once you have a programmer you need to connect it to the ICSP header on the sensor module. You can either solder on headers and use a cable option of your choice or you can get, also from Femtocow:Setting the fusesOnce you have your programming system set up, the first thing we need to do is that control certain behaviors of the microprocessor. In particular, we want to set the processor frequency to 8Mhz, tell the processor to preserve its EEPROM memory when it’s programmed, and set the brown-out detection feature to trigger at 2.7V. If you’re using one of the USBtinyISP programmers I linked above you can use this command line to set the fuses:avrdude -c usbtiny -p m328p -U lfuse:w:0xe2:m -U hfuse:w:0xd1:m -U efuse:w:0xfd:mIf you use a different kind of programmer you’ll probably have to use a different value for the –c parameter to tell avrdude which programmer you’re using. The board coreBecause we’re going to run the ATMEGA328P at 8 MHz, we need to use an Arduino board core that supports that clock speed.
The core works well for this; follow the installation instructions for adding it to your board manager, then install the core, then select the “ATmega328p (8mhz internal)” board from the list of boards. Setting the IDFor reasons that will be clear a little later, the next thing we have to do is to give the sensor module a unique ID.
To do that, I use the. (I’m not going to copy the source code here so that it won’t get out of date.) Open the id.ino sketch in the Arduino IDE and set the nodeId variable to an integer between 1 and 9. This value will become the ID of the sensor module (stored in EEPROM so it survives reboots) after it runs this sketch. Once you’ve set an ID, upload the code to the sensor and you should see the onboard LED repeatedly blink a pattern that indicates the ID you set. If you don’t see the LED blinking at all then either the programming didn’t complete successfully or you forgot to change the nodeId variable from its default value of 0. The sensor module firmwareFinally we can upload the from GitHub.
Note that there are also two supporting files MCP9808.h and MCP9808.cpp in the same folder that you have to have in order to compile the sketch. You can upload this sketch to the sensor module, overwriting the ID sketch, because the ID you programmed is saved in EEPROM memory.Let’s look at some of the highlights of this code. I’ll include relevant snippets here but remember that the version on GitHub is always the most up-to-date. This is part 2 of a series of blog posts documenting how I designed and built a multi-node wireless temperature sensor system. Links to all of the posts in the series:.All hardware and software files for the project can be found in. The schematicIn the previous post I talked about how and why I selected some of the major components that went into the sensors.
Now let’s cover the schematic and board design in more detail. Important disclaimer: I’m not an expert at electrical engineering, I’m just a self-taught hobbyist. I’m sure I made mistakes along the way.
If you see something in my design that’s wrong, feel free to leave a comment with constructive criticism!Here’s the schematic for the sensor board (click for larger version):Let’s walk through it piece by piece.In the top left we have the power subsystem with the MCP1700 regulator that I picked out. The MCP1700 needs 1µF capacitors on the input and output for stability, and general advice from people who have used the nRF24l01+ radio is that it benefits from a 100µF capacitor nearby to help satisfy current spikes as the radio turns on and off. I was a little worried about leakage current through the electrolytic capacitor but in practice it appears to be insignificant.In the top right we have the AVR ICSP header that we’ll use to program the ATMega328P. In the lower left we have the pin headers for the nRF24L01+ radio to plug into.The ATMega328P processer is in the bottom middle, obviously, and we have a decoupling capacitor on the power inputs and a pull-up resistor for the reset line.
I debated whether or not to include the reset line pull-up, because it’s not strictly necessary (the reset line has a weak internal pull-up built in), but decided to go ahead and do it in order to avoid potential problems. I named and labeled the nets for the various data lines and didn’t run actual wires everywhere, which simplifies the diagram. I went ahead and connected the IRQ line to the radio and the ALERT line to the MCP9808 even though I have no specific plans to use them right now, but they’ll be there if I change my mind.Finally, in the lower right you will find the MCP9808 temperature sensor and its decoupling capacitor, plus an indicator LED which is very useful for diagnostics and displaying various bits of information about how the sensor module is operating. I’ve made it a strong rule of thumb to always include at least one diagnostic LED on every board I make, whether I think I need one or not.
It always ends up saving my hide at some point.The MCP9808 uses I2C for communication and I2C requires pull-up resistors in order to work correctly. However, I really didn’t want to include external pull-up resistors on this board because a) that means more parts to place and b) the smaller the pull-up resistors are, the more current flows during I2C communication and we want to drive our current needs as low as possible. I ended up just relying on the internal 20KΩ pull-ups in the ATMega328P and hoped that would be sufficient given the expected low capacitance of the data lines. (Spoiler alert: it was, just barely.
More on that later.) The boardHere’s the board layout (click for a larger version):This is a two-layer board with a ground plane on the bottom and traces on the top. I tried to minimize the number of traces on the bottom because they can break up the flow of return ground currents if poorly placed but I did have to use a few. Making a good board layout is definitely an art form, and it probably helps if you’ve played a lot of Tetris. For me, anyway, it’s largely a process of trial and error. I start by grouping things that are connected to each other close together on the board, then I nudge things around and rotate parts trying to get the minimum number of crossed wires. There are certain tricks you learn, like a resistor or capacitor gives you a free bridge to get from one side of a wire to the other, but mostly it’s a giant game of “what if?”The power connector pads are sized for a standard terminal block but I pretty much ended up soldering the battery pack wires directly to the pads in order to save time and vertical space.The ICSP header block can be populated with pins or left empty; I have a nice little that allows me to just touch the adapter to the ICSP pads on the board and quickly program the board.
(More about programming in a later post.) The 100µF capacitor is a small 10V model that isn’t very tall. The radio gets soldered directly into the 2×4 header in the middle of the board such that the body of the radio module is to the right of the header. (As I was writing this I noticed that I didn’t do anything to mark that in the silkscreen, which is a mistake I should fix.)The physical dimensions are roughly 42mm by 18mm, which is nice and small.
There’s one mounting hole and I rounded the corners of the board a bit to make it look nice.I had the boards manufactured by (project shared ) and it cost me $5.75 for three of them, which is mind-blowing. This really is a golden age for hobby electronics. Everything worked on the first try, which I was pleased with.AssemblyThis was one of my first SMT projects and I learned a lot about SMT soldering techniques. My purpose here is not to write a general SMT soldering tutorial because there are lots of excellent ones already available and I can’t improve on them, but here are some general tips that were particularly useful for me:.
Watch a. Don’t stop with just one; each video adds something unique and gives you a better overall picture of how it works. Liquid flux is an absolute must-have. If you try to skip it, you’re going to have a bad time. Trust me on this. Use a small pointy tip on your soldering iron for soldering small components like resistors and capacitors.
Apply a bit of solder to one pad, then slide the component onto the pad from the side while reflowing the solder, then do the other pad. You might touch up the first pad with a bit more solder or use some liquid flux to get a great joint.
A makes drag soldering the processor package a breeze (as long as you use lots of liquid flux!). Don’t stress too much about solder bridges when doing multi-pin packages. They’re really easy to fix with solder braid if you mess up. Remember that the LED is a polarized part so orientation matters. Different manufacturers do different things to mark the anode and/or cathode so there’s not just one reliable standard.
Carefully check the datasheet for your specific LED, or even better, if your multimeter has a transistor testing function, use that to light up the LED before you solder it and confirm for certain which direction the current flows through the part. I didn’t find solder paste and a hot air gun to be as effective as I expected. It worked pretty well for small components but for multi-pin packages I had a hard time manually applying just the right amount of paste to prevent solder bridges. A paste stencil would work better, I’m sure, but I didn’t bother with that. Hand soldering on a small board like this is just fine. Practice, practice, practice. You can buy which allow you to solder to your heart’s content without worrying about destroying anything valuable.
Highly recommended. The ones I bought on EBay were literally junk; they were just pads and parts and didn’t create a useful circuit. That was fine – it gave me freedom to experiment without fear. The ones I linked above appear to result in some kind of functioning circuit when complete which would be nice to tell you that you did it right, but then you have to worry more about messing up.Here’s what the sensor module looks like when assembled (except for the radio):And here is a shot with a bare board, an assembled board minus radio, and an assembled board with radio and attached to a battery pack:I2C timingI mentioned earlier that I left out the usual external pull-up resistors on the I2C data lines, hoping that the ATMega328P internal pull-ups would be sufficient.
After I assembled and programmed a sensor board I double-checked the bus timing with my oscilloscope and it turned out that I bet correctly, just barely. The I2C spec says that for a standard rate data bus (100 kbit/s), the maximum rise time must be 1µs or less, where rise time is defined as the time it takes to go from 0.3VDD to 0.7VDD. In our case VDD is 3V, so we’re looking for the time it takes for the rising edge to go from just under 1V to just over 2V.
It turns out that we’re squeaking in just under the limit:That’s good enough for my own personal use. If I were designing a commercial product I would want a bigger margin of safety there. Self-heatingWhen I tested the sensor module before adding low-power sleep modes to the software, I found that the processor would actually heat up the board a bit with its dissipated power and skew the temperature readings upward by about 0.5°C.
It’s not a big effect but it’s a noticeable error with the MCP9808 that I’m using. At first I thought I would need to redesign the board to include isolation slots to better shield the temperature sensor device from the rest of the board, but then I found that adding low-power sleeps between sensor readings reduced power dissipation enough that any remaining skew was insignificant, so that crisis was averted. Power consumptionI’ll save an in-depth discussion of low-power sleep modes for the post on the sensor module software, but here’s the general idea. The software puts the processor, the radio, and the temperature sensor to sleep and sets a timer for eight seconds. When the timer fires, the processor wakes up, wakes up the radio and temperature sensor, gets the current reading, and sends the data.
It then puts everything back to sleep for another eight seconds.Here is the best result I was able to achieve during the eight-second sleep time (measured with an ):The µCurrent was set to the µA range, so every µA of current across the input terminals produces 1 mV of voltage across the output terminals. As you can see, I’m using 6.3 µA of current during sleep, which is great.When the system wakes up to take a measurement and send data it uses more current, of course. To characterize that transient behavior I hooked up the µCurrent to my oscilloscope. I switched the µCurrent to the mA range, but the active current draw (and thus voltage signal) turned out to be right down in the noise for the oscilloscope. I heavily filtered the signal and was able to get an idea of the duration (about 12 ms) and current draw (a quick spike to 23 mA then steady at 14 mA for the rest of the wake period).14 mA is a lot of current, relatively speaking, but the length of time we’re drawing that kind of current is quite short. If I did my math right, it averages out to about an extra 1.5 µA over the course of an eight-second cycle, so our average current draw over time is approximately 8 µA.
The self-discharge rate of an AA battery is also roughly 8 uA so the life of our batteries is going to be 50% of what it would be if they were just sitting on a shelf, which is to say that the expected lifespan of these sensor modules is well over a year, at least. We’ll see if it actually turns out that way in practice but I’ve had three sensor modules running continuously since March and their batteries are still going strong so things are on the right track. Current measurement side notesCharacterizing current draw for a low-power device can be tricky because of the dynamic range of the current draw over time. In my wireless sensor, the difference between the sleep state and the peak active state is three orders of magnitude (3,650x). The µCurrent is a great device but its measurement ranges cover nine orders of magnitude (1 nA to more than one amp) and compromises must be made. The maximum voltage output of the µCurrent is 1.4V so you can measure up to about 1.4mA on the µA range for example (giving an output of 1.4V) then you have to switch to the mA range (giving an output of only 1.4mV). A 1.4mV signal is going to be completely lost in noise on an oscilloscope so now you’re stuck in a very awkward position if you want to measure fast transients.
I don’t know of a great solution for this problem; maybe a secondary amplifier to boost the signal into a range that the oscilloscope is happy with?Also, doing extremely low-current measurements is really tricky because external noise can easily swamp the signal you’re trying to measure even if it’s supposedly at a good level for your test instrument. At the nA range, every test lead is an antenna pulling in all kinds of EMI and you. It’s super-easy to get nothing but nonsense from your instrument if you do it wrong.I think that’s all I wanted to cover for the sensor module hardware. Next time we’ll talk about the software that makes it do useful stuff. Author Posted on Categories Tags,. Over the past few months I’ve been working on an electronics project that has taught me a lot. Because I’ve benefited so much from the internet community in the process of my own learning, I’ll document the project here in hopes that it will help other people who want to learn.This is part 1 of a series of blog posts documenting how I designed and built a multi-node wireless temperature sensor system.
Links to all of the posts in the series:.All hardware and software files for the project can be found in. The projectBecause I’m a science geek, I’ve always thought it would be interesting to have a set of low-cost wireless temperature sensors that would allow me to monitor temperatures in a variety of locations around my property in real time, graph that data in real time, and hook up the output of certain sensors to physical display devices. Of course you can purchase a wide variety of commercial wireless temperature sensors but they mostly have the drawback of being:.
Expensive. Proprietary (not easy to log the collected data to the internet). Not scalable to multiple sensor modules.You can sometimes fix the last two problems by making the first problem worse (i.e. I studied Software Engineering in college. Most of the major classes were about various software topics, of course, but I was also required to take a couple of hardware/electronics classes where we soldered together transistors and logic gates and such things.
At the time I didn’t particularly enjoy it – software was logical and always worked the same way while hardware was messy and was constantly not working due to bad solder joints or “letting the magic smoke out” or what have you. Very frustrating.Fast forward 20 years and I’ve been doing the software thing for a long time. I’m still passionate about programming and love what I do but I was looking for something new to spend hobby time on. Preferably something relatively cheap, that I could combine with my interest in amateur science, and that would bring me back to a state of “beginner mind” where I could have fun learning again. I decided to turn my attention back to the world of electronics to see if it would “take” any better the second time around.It turns out that the world of hobby electronics is currently in a golden age and it’s amazing! Between the ocean of free information available on the internet, the fantastic companies that cater to hobbyists, and the wide availability of low-cost, high-quality tools and equipment, there’s never been a better time to get into the hobby.
So you want to hack some hardware?I’ve been working with this new hobby for about a year now and while I’m certainly no expert, I thought I’d share the results of some of my research to maybe save others some time and to “give back” to the internet community that’s helped me so much. This post will be a high-level overview of some of the interesting directions in which one can explore, and resources I’ve found to be the most useful. It’s adapted from a talk I did for the South Sound Developers User Group earlier this year.As a software developer, it’s pretty easy to ease into the electronics field, starting with high-level things that are comfortably familiar and working your way down to raw electronics with transistors and opamps and stuff.
There are a huge array of options available and I can’t possibly cover them all, so I’ll just describe the journey I took and the results I got. Microprocessor boardsProbably the easiest place to start is with one of the many types of small microprocessor boards available today. Two of the most popular right now are the and the. These are full self-contained computers on a single small board, usually running some kind of Linux-based OS on an ARM processor. The fact that they’re small and low-power is nice, I guess, but the really interesting thing about them is that they usually include a number of general purpose I/O pins that you can hook up to external electronic circuits in order to control them or to acquire data from them. These GPIO pins aren’t tied to any kind of complex protocol like USB or even serial; instead you can directly set each output pin on or off, or check the current state of each input pin.
This allows you to do something trivial like blink an LED on and off, or things that are far more complex.One of my first electronics purchases was a BeagleBone Black and I’m very happy with it. It has enough processing power to run Linux, lets me program in my language of choice (Python, Javascript, C, etc.), and is easy to hook up to my home network and thus to the internet.
My X-E2 serial number starts with 34M.If you have this lens, what are the 2 beginning digit of manufacture?PS - the letter after the first 2 digits does not appear to signify designated country for shipment. Can someone translate the numbering system for me?My XP-1 is 21A00130 - bought 4/12.My 18-55mm lens is 31A12795 - bought a year later on 4/13.The first digit is the year of manufacture. Birddogman wrote:Interesting. Fuji x lens serial number. With all my Fuji equipment, I've seen A, M, N, P.Mine is 24A, bought in December 2012.
It has a wide array of GPIO pins, both digital and analog, and also has USB and HDMI ports to connect a monitor and keyboard if desired (though I usually just SSH into it).I bought the BeagleBone Black along with an inexpensive beginner’s electronics parts kit (see below) and had a lot of fun wiring up LEDs, switches, and other components on a breadboard and connecting them to the BeagleBone. I refreshed my memory about the basics of simple electronic circuits but soon found myself wanting to go a bit more low-level. After all, the BeagleBone Black wasn’t too much different than the laptop I work on every day and I wanted something a little more different than my day job. Microcontroller boardsHaving the power of a full Linux OS is nice but I wanted to get a little closer to the hardware. I picked up an, which is a microcontroller board. Like the BeagleBone Black, the Arduino has several digital and analog GPIO pins which which to interface with external electronic circuits.
However, unlike microprocessor boards, the hardware resources available on a microcontroller board are much more limited. The Arduino Uno has only 32 KB of storage and 2 KB of RAM, so you aren’t going to be running Linux on this thing.
In fact, you don’t have any kind of OS available at all.Instead, you write self-contained programs which are uploaded to the board over USB and get directly executed by the microcontroller. There’s no OS to get in the way; your program is the only code running and you have full control over and responsibility for everything that happens. This is simultaneously limiting (no networking, video, or keyboard/mouse supported out of the box) and also liberating because your code executes predictably in real time without being preempted by other threads or processes. This allows you to do things that require precise timing control such as operating servo motors for robotics projects.It’s still pretty easy to program, though, because there’s an IDE and libraries available to help you with the dirty work.
Using the Arduino IDE on your computer, you write code in Arduino-flavored C, cross-compile it for the microcontroller on the board, and upload the resulting binary via a USB cable.The Arduino is an extremely popular hobbyist board and there are a ridiculous number of tutorials, project descriptions, and forums to give you advice and inspiration. Bare microcontrollersThe Atmel AVR ATmega328 microcontroller that runs the Arduino is not a particularly modern chip but it’s well understood and a huge community has grown up around it.
It’s quite inexpensive and easy to experiment with. It turns out that it’s not particularly difficult to buy the chip all by itself, whack it and a couple of other cheap components onto a breadboard, and make your own homebrew Arduino.Furthermore, the AVR line of microcontrollers includes chips that are both larger and smaller than the ATmega328 used in the Arduino but they’re all software-compatible, so you can choose precisely the minimum amount of silicon you need to build your project. Using a bare chip in your project is a little more inconvenient than using an Arduino board but if you’re soldering stuff together anyway and you need it to be small, including an AVR chip directly in your circuit is the way to go. Besides which, soldering bare chips makes you feel like you’re actually doing electronics! Analog circuitsSo far, everything we’ve discussed is primarily centered around writing code for a processor of some kind with some ancillary circuitry thrown in. That’s a great way for a software developer to start but since my goal was to do something completely new, I needed to break out of the programming paradigm completely.It turns out that there are all kinds of things you can do with just analog components and a breadboard; no digital code required. That was a revelation to me.
I mean, duh, of course I knew that, but after 20 years as a software developer I had some pretty deep-seated biases toward digital logic. The first time I wired up a to blink an LED and was able to change the rate of the blinking by merely swapping one resistor value for another, I realized that this was the “totally new” thing I’d been looking for. I still do a lot of stuff with microcontrollers in my projects but it’s become a game of sorts to see how little code I can get away with, with zero being the ideal. I’ve learned a lot about low-level electronics over the past year and I’ve barely scratched the surface. I’m having a ton of fun, though! Tools and resourcesThere are several tools I’ve purchased and valuable resources I’ve found that have helped me in my learning.
Below are some of the highlights. This is by no means an exhaustive list and there may well be even better choices out there, but these are the things that I found valuable to me. Hobbyist stores and distributorsThere are a lot of online stores out there that offer all kinds of electronics components. Some of them are good, a lot of them are sketchy. And are two companies that I can highly recommend.
They both carry high-quality components suitable for hobbyists, both carry lots of custom-designed components and boards to make building projects easy, and both publish a wide range of tutorials and project guides to help you use what you buy. Their prices aren’t the cheapest you can find, but I strongly recommend sending your business to these companies because they stand behind their products and are actively building up the hobbyist community. Just beware – browsing either one of those websites can be hazardous to your wallet. So much awesome stuff!If you’re shopping for unusual components, or components with very specific characteristics, or a large quantity of components, then you might want to try a large distributor house. And are both well-regarded, reliable distributors that stock literally hundreds of thousands of different electronics parts. If you need it, they probably have it. Your biggest problem will be deciding exactly what you want to order.
You want a capacitor? Mouser has 346,459 different kinds. You’ll need to get proficient with their catalog search tools and know how to read datasheets because there’s no handholding here.Also be aware that these distributors focus on large-volume orders. They’re willing to sell you singles of most things but it’s not going to be particularly cheap. You need to buy in reasonable quantities to get discounts. Electronic parts and kitsTo get started, I purchased a couple of breadboards, the, and the from Sparkfun.
These are nice little kits that gives you a few of each of the most commonly-used components for beginning electronics projects. This is a great way to get jumpstarted with building simple electronics circuits to connect to your BeagleBone Black or Arduino.
Free Electronic Datasheets
There’s lots of other options out there, of course, but I was happy with these.When it was time to build a larger parts inventory, I was pleased with kits put together by that I ordered from Amazon. I have the, and and they’ll keep me going for a good long time. MultimeterA good multimeter is the first tool you should invest in as you pursue a hobby in electronics. A good choice is the. It’s reliable, has a good set of features, and is reasonably priced.
Soldering StationI learned a long time ago that if you’re going to invest in equipment for a hobby, you should buy quality stuff that actually works well. There are lots of low-end soldering irons out there but most of them will simply cause you to be frustrated and maybe give up on the whole thing altogether. After some research I purchased an that I’ve been happy with. There are several other good choices in this price range, too, but this one seemed to be recommended a lot. Power supplyOne of the first “from scratch” projects you can build is a breadboard power supply to feed 3.3V or 5V power to your circuits.
It’s fun and satisfying to build your own tools. However, when your needs expand to higher voltages or high current, and you need features like current-limiting to avoid blowing stuff up, then it’s time to get a real power supply. I purchased a. It’s solid and reasonably priced. It’s not programmable or anything (that stuff is found in higher price levels) but it gets the job done. OscilloscopeAn oscilloscope is an incredibly useful tool for understanding and diagnosing non-trivial circuits. Where a multimeter will tell you the voltage at a particular contact point right now, an oscilloscope allows you to see how it varies over time.
This is the sort of tool where it’s hard to imagine how it would be useful until the first time you actually use one, then wonder how you ever got along without one. I chose the and like it a lot.
There are fancier ones available for more money but this one seems to do everything I need for now. BlogsThere are a ton of great resources for the electronics hobbyist on the internet and I won’t attempt to list them all.
One of them particularly stands out in terms of being both instructive and entertaining, though:. Dave has hundreds of video episodes covering everything from electronics fundamentals and theory to teardowns of various pieces of equipment to live repair jobs. I learned a tremendous amount just from watching how he uses his tools.
I recommend starting with. Circuit simulationSometimes you don’t want to take the time to actually build a circuit on a breadboard to see if it will work. Or maybe you don’t have the correct parts at hand, or you’re afraid you might screw it up and blow up a component, or whatever.
In such cases it’s very useful to be able to simulate your circuit ideas in software first before you commit to the real thing. There are software packages you can download for this purpose, but I’ve been pleased with. It’s not free but the user interface is very intuitive and it’s helped me better understand how transistors and opamps work because I can quickly set up various scenarios and see instantaneous voltage and current values, or chart them over time. Go forth and learn!So that’s a lot of high-level information about how to get started with an electronics hobby. You’ll notice that I didn’t discuss the “how-to” on anything, but a few web searches should turn up lots of resources for any particular topic that catches your interest.
The most important thing is to actually do something. Start small, understand and master what you’ve purchased, then move on to the next step.
Personally, I’ve found it to be very rewarding and I hope you will too. Author Posted on Categories Tags, Recent Posts.Archives. (1).
(2). (3).
(1). (1). (1). (1).
(1). (2). (1).
(1). (2). (4).
(3). (1).
(1). (3).
(5). (4). (4). (2). (2). (4).
(2). (8).
(1). (3). (5). (1). (5).