text:
Try to answer the following questions here:

• What is this question used for?
• What does this question assess?
• What does the student have to do?
• How is the question randomised?
• Are there any implementation details that editors should be aware of?

### History

#### Checkpoint description

Describe what's changed since the last checkpoint.

#### Xiaodan Leng2 years, 3 months ago

Created this as a copy of Combining Logarithm Rules to Solve Equations.
Combining Logarithm Rules to Solve Equations Ready to use Hannah Aldous 20/11/2019 14:34
Using Laws for Addition and Subtraction of Logarithms Ready to use Hannah Aldous 20/11/2019 14:44
Rearranging Logarithms involving Indices Ready to use Hannah Aldous 20/11/2019 14:44
MATH6058 Addition and Subtraction of Logarithms draft Catherine Palmer 09/10/2017 11:30
Raphael's copy of Rearranging Logarithms involving Indices draft Raphael Stuhlmeier 27/11/2017 16:06
Addition and Subtraction of Logarithms draft Ida Landgärds 16/04/2018 10:43
Ida's copy of Rearranging Logarithms involving Indices Ready to use Ida Landgärds 09/05/2018 06:55
spørsmål 3 draft Ida Landgärds 02/12/2020 15:42
Jonathan's copy of Using Laws for Addition and Subtraction of Logarithms draft Jonathan Kress 07/06/2018 01:10
Jeanne's copy of Using Laws for Addition and Subtraction of Logarithms draft Jeanne Parmentier 20/07/2018 09:31
Using Laws for Addition and Subtraction of Logarithms [L6 Randomised] Needs to be tested Matthew James Sykes 25/07/2018 11:08
Rearranging Logarithms involving Indices [L6] draft Abbi Mullins 24/07/2018 14:39
logarithms addition/subtraction [L6] draft Abbi Mullins 24/07/2018 14:49
NUMBAS-Logarithms (laws) Ready to use Katy Dobson 30/07/2018 10:39
David's copy of Using Laws for Addition and Subtraction of Logarithms Ready to use David Martin 21/09/2018 11:50
David's copy of Combining Logarithm Rules to Solve Equations draft David Martin 30/07/2018 14:34
David's copy of Rearranging Logarithms involving Indices Ready to use David Martin 17/10/2019 07:25
Joël's copy of Using Laws for Addition and Subtraction of Logarithms draft Jo Cohen 02/12/2020 15:42
Blathnaid's copy of spørsmål 3 draft Blathnaid Sheridan 02/12/2020 15:42
Algebra: Using Laws for Addition and Subtraction of Logarithms draft Clare Lundon 15/10/2018 21:45
cormac's copy of Ida's copy of Rearranging Logarithms involving Indices draft cormac breen 05/11/2018 13:37
cormac's copy of Ida's copy of Rearranging Logarithms involving Indices draft cormac breen 05/11/2018 13:38
cormac's copy of Ida's copy of Rearranging Logarithms involving Indices draft cormac breen 05/11/2018 13:54
Max's copy for Addition and Subtraction of Logarithms draft Max S 16/11/2018 23:50
Justin's copy of Using Laws for Addition and Subtraction of Logarithms draft Justin McGuinness 14/05/2019 14:55
Maria's copy of Rearranging Logarithms involving Indices draft Maria Aneiros 11/06/2019 05:32
Maria's copy of Using Laws for Addition and Subtraction of Logarithms draft Maria Aneiros 11/06/2019 05:30
Maria's copy of Combining Logarithm Rules to Solve Equations draft Maria Aneiros 25/05/2019 08:02
Using Laws for Addition and Subtraction of Logarithms draft Xiaodan Leng 10/07/2019 23:28
Logarithms (laws) draft Xiaodan Leng 10/07/2019 23:57
Using Laws for Addition and Subtraction of Logarithms draft Xiaodan Leng 11/07/2019 00:00
Addition and Subtraction of Logarithms draft Xiaodan Leng 11/07/2019 00:15
Rearranging Logarithms involving Indices draft Xiaodan Leng 11/07/2019 00:16
Combining Logarithm Rules to Solve Equations draft Xiaodan Leng 11/07/2019 01:39
Katy's copy of NUMBAS-Logarithms (laws) Ready to use Katy Dobson 20/09/2019 15:11
Katy's copy of Combining Logarithm Rules to Solve Equations draft Katy Dobson 03/09/2019 08:29
Katy's copy of Using Laws for Addition and Subtraction of Logarithms draft Katy Dobson 03/09/2019 08:29
Katy's copy of Rearranging Logarithms involving Indices Ready to use Katy Dobson 20/09/2019 15:12
Logs: All rules combined draft Kevin Bohan 02/10/2019 09:56
W2b - Using Laws for Addition and Subtraction of Logarithms Ready to use Timur Zaripov 10/10/2019 12:15
W2b - logarithms addition/subtraction [L6] draft Timur Zaripov 07/10/2019 14:06
W2b - Rearranging logarithms involving Indices Ready to use Timur Zaripov 10/10/2019 12:16
Rearranging Logarithms involving Indices draft Marie Nicholson 08/10/2019 15:56
Using Laws for Addition and Subtraction of Logarithms draft Marie Nicholson 08/10/2019 12:34
Rearranging Logarithms involving Indices draft Marie Nicholson 08/10/2019 12:41
Laws for Addition and Subtraction of Logarithms draft Marie Nicholson 08/10/2019 12:45
Logarithms (laws) draft Marie Nicholson 08/10/2019 12:45
Blathnaid's copy of Rearranging Logarithms involving Indices draft Blathnaid Sheridan 17/10/2019 20:05
Musa's copy of Addition and Subtraction of Logarithms draft Musa Mammadov 18/04/2020 15:14
claire's copy of Combining Logarithm Rules to Solve Equations draft claire lines 27/04/2020 13:36
claire's copy of Rearranging Logarithms involving Indices draft claire lines 27/04/2020 13:46
Musa's copy of 3 Addition and Subtraction of Logarithms draft Musa Mammadov 08/05/2020 02:19
Ahmed's copy of Rearranging Logarithms involving Indices draft Ahmed Al-Razaz 19/05/2020 00:36
ALG Leyes de Logaritmos Adición/Sustracción draft David Vanegas 02/12/2020 15:42
Jonathan's copy of Rearranging Logarithms involving Indices draft Jonathan Rae 17/08/2020 16:53
Using Laws for Addition and Subtraction of Logarithms Ready to use Vicky Hall 07/10/2020 12:48
Rearranging Logarithms involving Indices Ready to use Vicky Hall 07/10/2020 12:46
Ashley's copy of Using Laws for Addition and Subtraction of Logarithms draft Ashley Cusack 16/09/2020 20:31
Ashley's copy of Rearranging Logarithms involving Indices draft Ashley Cusack 13/10/2020 09:10
Using Laws for Addition and Subtraction of Logarithms draft Tom Goodale 21/09/2020 17:08
Rearranging Logarithms involving Indices draft Tom Goodale 21/09/2020 17:13
Using Laws for Addition and Subtraction of Logarithms Ready to use Timur Zaripov 12/10/2020 09:22
Rearranging Logarithms involving Indices Ready to use Timur Zaripov 12/10/2020 09:22
Combining Logarithm Rules to Solve Equations Ready to use Timur Zaripov 12/10/2020 09:22
Timur's copy of W2b - Rearranging logarithms involving Indices draft Timur Zaripov 09/10/2020 15:38
Rearranging Logarithms involving Indices Ready to use Wan Mekwi 13/10/2020 13:19
Combining Logarithm Rules to Solve Equations Ready to use Wan Mekwi 13/10/2020 13:22
Algebra - Using Laws for Addition and Subtraction of Logarithms Ready to use Apodytes-ATG apodytes 25/10/2020 18:57
Algebra - Combining Logarithm Rules to Solve Equations Ready to use Apodytes-ATG apodytes 25/10/2020 18:50
Spørsmål 3 draft Ida Landgärds 02/12/2020 09:43
claire's copy of Combining Logarithm Rules to Solve Equations BE1601 draft claire lines 11/12/2020 22:10
claire's copy of Combining Logarithm Rules to Solve Equations BE1601 draft claire lines 11/12/2020 22:13
claire's copy of Combining Logarithm Rules to Solve Equations BE1601 AMENDED draft claire lines 13/12/2020 19:35
Using Laws for Addition and Subtraction of Logarithms - basic draft Alessandro Cozzarini 13/01/2021 17:18
Alessandro's copy of Rearranging Logarithms involving Indices Has some problems Alessandro Cozzarini 15/01/2021 08:46
Ahmed's copy of Ahmed's copy of Rearranging Logarithms involving Indices Ready to use Ahmed Al-Razaz 19/02/2021 19:54
Edina's copy of Rearranging Logarithms involving Indices draft Edina Kurdi 18/03/2021 14:00
Edina's copy of Using Laws for Addition and Subtraction of Logarithms draft Edina Kurdi 18/03/2021 14:01
Edina's copy of Combining Logarithm Rules to Solve Equations draft Edina Kurdi 18/03/2021 14:38
claire's copy of Rearranging Logarithms involving Indices - no formula draft claire lines 15/04/2021 22:05
Logarithms (Laws) draft Anthony Brown 01/05/2021 23:02
MSP Transition: Log laws draft Tom Lowe 13/09/2021 22:52
06 Logarithms involving Indices 1 Has some problems Jose Camarena Brenes 19/10/2021 11:37
05 Logarithms: Laws for Addition and Subtraction Ready to use Jose Camarena Brenes 16/10/2021 09:49

Give any introductory information the student needs.

No variables have been defined in this question.

#### Warning

• When applying the function,
##### Suggestions
• Change the signature of parameter from to .

This variable is an HTML node. HTML nodes can not be relied upon to work correctly when resuming a session - for example, attached event callbacks will be lost, and mathematical notation will likely also break.

If this causes problems, try to create HTML nodes where you use them in content areas, instead of storing them in variables.

Describe what this variable represents, and list any assumptions made about its value.

← Depends on:
→ Used by:

This variable doesn't seem to be used anywhere.

Name Type Generated Value

#### Error in variable testing condition

There's an error in the condition you specified in the Variable testing tab. Variable values can't be generated until it's fixed.

Error:

for seconds

Running for ...

Name Limit

### Penalties

Name Limit

No parts have been defined in this question.

Select a part to edit.

The correct answer is an equation. Use the accuracy tab to generate variable values satisfying this equation so it can be marked accurately.

#### Checking accuracy

Define the range of points over which the student's answer will be compared with the correct answer, and the method used to compare them.

#### Variable value generators

Give expressions which produce values for each of the variables in the expected answer. Leave blank to pick a random value from the range defined above, following the inferred type of the variable.

#### String restrictions

For each choice, specify the number of marks to add or subtract when the student picks it.

For each choice, write 1 if the student should tick it, or 0 if they should leave it unticked.

You must set a maximum number of marks in order to use this marking method.

You must set a maximum number of marks in order to use this marking method.

For each combination of answer and choice, specify the number of marks to add or subtract when the student picks it.

For each combination of answer and choice, write 1 if the student should tick it, or 0 if they should leave it unticked.

Both choices and answers must be defined for this part.

Help with this part type

#### Test that the marking algorithm works

Check that the marking algorithm works with different sets of variables and student answers using the interface below.

Create unit tests to save expected results and to document how the algorithm should work.

There's an error which means the marking algorithm can't run:

#### Question variables

These variables are available within the marking algorithm.

Name Value

#### Marking parameters

These values are available as extra variables in the marking algorithm.

Name Value

#### Part settings

These values are available as entries in the settings variable.

Name Value

Alternative used:

Note
Value Feedback

Click on a note's name to show or hide it. Only shown notes will be included when you create a unit test.

#### Unit tests

No unit tests have been defined. Enter an answer above, select one or more notes, and click the "Create a unit test" button.

The following tests check that the question is behaving as desired.

### This test has not been run yet This test produces the expected output This test does not produce the expected output

This test is not currently producing the expected result. Fix the marking algorithm to produce the expected results detailed below or, if this test is out of date, update the test to accept the current values.

One or more notes in this test are no longer defined. If these notes are no longer needed, you should delete this test.

Name Value

 This note produces the expected output

This test has not yet been run.

When you need to change the way this part works beyond the available options, you can write JavaScript code to be executed at the times described below.

Run this script the built-in script.

This script runs after the built-in script.

To account for errors made by the student in earlier calculations, replace question variables with answers to earlier parts.

In order to create a variable replacement, you must define at least one variable and one other part.

The variable replacements you've chosen will cause the following variables to be regenerated each time the student submits an answer to this part:

These variables have some random elements, which means they're not guaranteed to have the same value each time the student submits an answer. You should define new variables to store the random elements, so that they remain the same each time this part is marked.

This part can't be reached by the student.

Add a "next part" reference to this part from another part.

None of the parts which can lead to this part are reachable either.

### Next part options

Define the list of parts that the student can visit after this one.

• #### Variable replacements

No variable replacements have been defined for this next part option.
Variable Value

### Previous parts

This part can follow on from:

This part doesn't follow on from any others.

### Parts

#### Steps

Give a worked solution to the whole question.

Select extensions to use in this question.

Define rulesets for simplification and display of mathematical expressions.

Define functions to use in JME expressions.

• Parameters
• : of

## Built-in constants

Tick the built-in constants you wish to include in this question.

## Custom constants

You can define constants in terms of the built-in constants, even if they're disabled.
Names Value LaTeX

Add styling to the question's display and write a script to run when the question is created.

This script will run after the question's variable have been generated but before the HTML is attached.
Apply styling rules to the question's content.

This question is used in the following exam:


text:
# How to find the unique values from the JSON file?

I have JSON files of size data_large(150.1mb). The content inside the file is of type [{"score": 68},{"score": 78}]. I need to find the list of unique scores from each file.

This is what I'm doing:

import ijson  # since JSON file is large, hence making use of ijson

f = open ('data_large')
content = ijson.items(f, 'item') # json loads quickly here as compared to when json.load(f) is used.
print set(i['score'] for i in content) #this line is actually taking a long time to get processed.

Can I make the last line more efficient? It's currently taking 201 secs to execute.

• ijson is an iterative parser, so ijson.items will not load the whole file. The set creation likely isn’t the bottleneck; reading the huge file is. – poke Jan 4 '14 at 20:35
• @poke - When I remove the print statement, it executes within no time. But when applying the logic for unique value it takes time there. Can I make it any more efficient? – PythonEnthusiast Jan 5 '14 at 4:57
• You mean when you just remove the print or the whole line (including the set(…))? If you remove the whole line, then of course nothing is processed because ultimately, the file is only opened but never read from. And no, I doubt you can make it more efficient than this; you do have to read a 150 MB file after all, and that’s always slow. – poke Jan 5 '14 at 15:28

So… I have spent a bit time on this and generated myself a random JSON file matching your format. Mine is 167 MB in size, so not too far off from yours.

First of all, ijson’s performance is terrible. I’ve tried it multiple times and it’s very slow for me (much slower than your results actually). While the idea sounds great, it took very long to read and parse the file.

Using the normal json module gave me much better results. In fact, reading and parsing the file took only ~20 seconds, of which reading the file was just a very small fraction. Most of the time was actually spent on extracting the scores; generating the set from them again is very quick.

So to speed this up, we obviously want to avoid creating all those intermediary objects in between, and just extract the data we are interested in. In your case where the file has a rather simple structure, we don’t really need to parse it as a JSON object but we can just operate on the string directly and search for the scores.

As we discussed this on the SO Python chat, Jon Clements came up with this solution:

with open('file.json') as f:

• Ijson is slow by default because it uses the native Python backend. But it can use the C library "yajl" if available. The yajl backend can be imported directly: import ijson.backends.yajl2 as ijson. – isagalaev May 21 '15 at 16:35

format: plain


text:
# Counting the modes of the vector potential in a coulomb gauge

With a view to quantising the EM field, consider a classical free field in the absence of charge and currents, we can take a coulomb gauge, $\phi=0, \partial_kA_k=0$. The physical fields in terms of the potentials are then:

• $E_k=-\dot{A_k}$
• $B_k = \epsilon_{klm}\partial_lA_m$

So the dynamics of the field:

$$\partial_j\partial_jA_k=\frac{1}{c^2}\ddot{A_k}$$

are determined by the vector potential $A_k(x_k,t)$. The spatial component of the potential has periodic boundary conditions, which are satisfied by exponential functions:

$$A(x_j) \propto e^{ik_jx_j}$$

with $k_j=\frac{2\pi}{L}n_j$

We can construct a form of $A$ which takes into account both propagation directions $k$, and polarisations (for plane waves) $\sigma$, in each dimension. The (un-normalised) potential $A$ can now be expressed as a Fourier series in terms of the wave modes:

$$\vec{A}(x_j,t)=\sum\limits_{k_j}\sum\limits_\sigma \vec{u}_{k_j,\sigma}\left(a_{k_j,\sigma}(t)e^{ik_jx_j}+a^*_{k_j,\sigma}(t)e^{-ik_j}\right)$$

Here, $\vec{u}$ is a unit vector normal to $\vec{k}$, the time dependence is separated into $a(t)$, and we explicitly choose that $\vec{A}(x_j,t)$ be real by taking both $\pm ik_jx_j$ for the plane waves.

I am told that we need to impose an additional restriction on the summation over $k_j$, such that $k_3>0$ (or equally with any one of the $k_j$) to prevent double counting. I fail to see the justification for this argument. Furthermore, could we have changed anything in the way we chose to write $A(x_j)$ or $k_j$ to prevent this?

-
So just one of the $k_i$ has to be bigger than zero or all of them? I would have expected all of them... –  gatsu May 20 '13 at 8:30


text:
# How to calculate multiobjective optimization cost for ordinary problems?

What I did:
Created a population of 2D legged robots in a simulated environment. Found the best motor rotation values to make the robots move rightward, using an objective function with Differential Evolution (could use PSO or GA too), that returned the distance moved rightward. Gradient descent used for improving fitness.

What I want to do:
Add more objectives. To find the best motor rotation, with the least motion possible, with the least jittery motion, without toppling the body upside down and making the least collision impact on the floor.

What I found:

• Spent almost two weeks searching for solutions, reading research papers, going through tutorials on Pareto optimality, installing libraries and trying the example programs.

• Using pairing functions to create a cost function wasn't good enough.

• There are many multi-objective PSO, DE, GA etc., but they seem to be built for solving some other kind of problem.

Where I need help:

• Existing multi objective algorithms seem to use some pre-existing minimization and maximization functions (Fonseca, Kursawe, OneMax, DTLZ1, ZDT1, etc.) and it's confusing to understand how I can use my own maximization and minimization functions with the libraries. (minimize(motorRotation), maximize(distance), minimize(collisionImpact), constant(bodyAngle)).

• How do I know which is the best Pareto front to choose in a multi-dimensional space? There seem to be ways of choosing the top-right Pareto front or the top-left or the bottom-right or bottom-left. In multi-dimensional space, it'd be even more varied.

• Libraries like Platypus, PyGMO, Pymoo etc. just define the problem using problem = DTLZ2(), instantiate an algorithm algorithm = NSGAII(problem) and run it algorithm.run(10000), where I assume 10000 is the number of generations. But since I'm using a legged robot, I can't simply use run(10000). I need to assign motor values to the robots, wait for the simulator to make the robots in the population move and then calculate the objective function cost. How can I achieve this?

• Once the pareto optimal values are found, how is it used to create a cost value that helps me determine the fittest robot in the population?

I eventually used the keep-efficient function from this answer to calculate the Pareto front and used the k-means function to calculate the centroid of the front. This gave me the approximate knee-point of the front, which is usually the optimal solution. One of the calculations was to maximise the distance moved in x direction (dx) vs. minimising the energy consumed (e), so since the x axis needed positive maximization and the y axis needed minimization, I inverted the y axis, since min(f(y)) = - max(-f(y)). This helped get the pareto front toward the top right side of the graph and both the x and y axes were maximization objectives. The optimal point calculated was the robot that had the best fitness.


text:
$$\require{cancel}$$

18.1 Nature of Life

Have you ever thought about what life actually is? Sure, we can instinctively point at a flower and call it alive, but how do we know? On the flip side of the coin, there are many things that exhibit similar characteristics to living organisms, but we somewhat intuitively know that some things, like fire, are not alive. When we talk about life, what do we mean? On the most fundamental level, we can describe life as a process — a series of chemical reactions involving carbon-based molecules. In this process, matter and energy are taken into a system, used to assist in growth and reproduction, and are then expelled as waste products. We will note, however, that this leaves a lot of ambiguity when actually categorizing something as living or non-living based on this simple definition. When considering what is "alive", it is also important to note that we are limited to what observations we can make on Earth. Nevertheless, many biologists would agree that the following statements comprise a set of requirements for something to be considered living:

• Living things grow, evolve, and reproduce.
• Living things are highly organized chemical factories.
• Living things require energy, and they respond to their environment.

Part of the thrust of astro biology is to examine the nature of life on Earth to better inform our search for life elsewhere in the Universe. Therefore, it is important to characterize life on Earth as completely as possible. For instance, the smallest unit in which life processes occur is the cell. All known living things are composed of one or more cells, which in turn contain an intricate array of molecules. But what elements, exactly, is life made of? Interestingly enough, most of your body, over 99%, is made from just four elements: hydrogen, oxygen, carbon, and nitrogen.

In living organisms, each of these chemical ingredients has some interesting aspects. First, the large amount of hydrogen and oxygen, and in particular the ratio of these two elements in comparison to one another (two hydrogen atoms for every one oxygen atom), serves as an indicator of the high percentage of water that all life on Earth requires. Second, when we examine Earth's atmosphere, we note that nitrogen is the single most abundant element. In addition, it is an important component of all living things as it is found in many molecules, such as DNA. Finally, carbon is the element that is considered the basis for life on Earth. In fact, organic chemistry is sometimes defined as the chemical processes of carbon and its compounds, regardless of whether or not a living organism is involved. Carbon is unique in its ability to build large and complex molecules. In comparison, hydrogen can combine with oxygen to form only two molecules: water (H2O) and hydrogen peroxide (H2O2). Similarly, hydrogen can combine with nitrogen to form only two molecules: ammonia (NH3) and hydrazine (N2H2). On the other hand, the number of ways that hydrogen can combine with carbon is so large that it is unknown! The largest molecule listed in the Handbook of Chemistry and Physics has a chemical formula of C90H154. Carbon is, therefore, a versatile element for creating life forms and the perfect building block for complex structures.

All the life elements discussed above (except hydrogen) are created inside stars and are common in the universe. It is remarkable that the chemical composition of life on Earth resembles that of a star more than it does that of the Earth. Carbon and nitrogen, both necessary for life as we know it, are more common in the Sun than they are in our Earth. Iron, silicon, and magnesium are the most common elements in Earth — apart from oxygen — but play only miniscule roles in organic chemistry.

Although we have difficulty providing a concrete, all-inclusive definition of life on Earth, it is apparent (as illustrated above) that we can characterize some of the commonalities that life on Earth shares. What about life beyond Earth? Is carbon-based chemistry the only possibility for life? Chemists (and science fiction writers) have speculated about a life chemistry that is based on silicon, or some other element. Even more speculative is the idea of life based on some other organizing principle, such as electric or magnetic fields. Nobody has ever observed such life forms, so we cannot say anything substantive about them. However, the chemistry of the elements in the universe is well understood. In terms of a basis for life, it is generally agreed upon that carbon is superior to any other element in its ability to form complex chains and thereby serve as a building block for life.

What about water? It has been suggested that water is the one requirement for all life on Earth. More generally, it has been noted that life, at a minimum, must have a liquid solvent to facilitate chemical reactions. Must life rely on water, or could it utilize another liquid to accomplish biogenic tasks? First, we must recognize that water is quite possibly the most abundant liquid in the universe. Oxygen is far more abundant than silicon, the main rock-forming element. Therefore a rocky planet that uses up all its silicon by combining it with oxygen to make rocks will still have plenty of oxygen to combine with the most abundant element, hydrogen, to make water, or ice. Water remains a liquid over a wide range of temperatures and acts as a solvent, dissolving a variety of other materials to form a solution. In this role, water is vital to many cell functions; it dissolves and transports nutrients and waste products within a cell, regulates an organism's temperature, and even plays a role in shielding life from harmful UV radiation. (Water's solvent properties are a double-edged sword; it breaks down useful chemicals too!) It is thus not surprising that astrobiologists surmise that complex life forms originated in Earth's copious oceans. Even on land, a large percentage of the weight of plants (40%) and animals (70%) is comprised of water. Many solvents have been proposed as a life liquid, such as ammonia and ethyl alcohol. However, water is the most abundant and has demonstrates unique advantages for facilitating life processes.

Although our observations about life are limited to those that we can make on Earth, it is possible to speculate about life elsewhere in the universe. One problem we may encounter, though, is determining how far we can stretch the definition of life. Is a virus considered a life form? Viruses are simpler than many single-celled organisms (they lack reproductive equipment), but they can reproduce using materials from host cells that they invade. They cannot, however, fully function independently of other cells. Similarly, technology has advanced to the point where machines and computers have taken on many of the attributes of life. Some computers have been programmed to evolve and adapt. Can certain machines or computers, therefore, be called living entities? Regardless of where we draw the line on cases such as these, it is almost certain that we will have to re-evaluate our definition when we begin our exploration for life beyond Earth.


text:
Products for USB Sensing and Control
Products for USB Sensing and Control

#### sales inquiries

##### quotes, distributor information, purchase orders
sales@phidgets.com

#### technical inquiries

##### support, advice, warranty, returns, misshipment
support@phidgets.com

#### website inquiries

web@phidgets.com

##### Unit 1 - 6115 4 St SE Calgary AB  T2H 2H9 Canada
Projects Dealers Terms and Conditions Discontinued Products Phidget21 Documentation

#### PHIDGETS Inc.

Unit 1 - 6115 4 St SE
Calgary AB  T2H 2H9
+1 403 282-7335

## 12-bit Voltage Output Phidget

ID: OUT1000_0
Recommended for new designs: This product (or a similar replacement with a compatible form, fit and function) is estimated to be available for ten years or more.

Produce a voltage from 0 to 4.2 volts with this simple voltage output module.

## $15.00 Quantity Available: 758 Qty Price 5$14.25
10 $13.50 25$12.00
50 $10.50 100$9.75
250 $9.00 500$8.25
1000 $7.50 The OUT1000 outputs a DC voltage between 0 and 4.2 volts. This Phidget connects to your computer through a VINT Hub. #### Features: • Output 0 to 4.2V (with a resolution of 1mV) • The fastest, most efficient, and most economical choice for voltage output #### Technical Details: • Voltage Monitoring - The device will launch an event when the actual output voltage varies from the chosen voltage, for example, when the attached device is drawing too much current • Failsafe Protection - Set the device to turn off automatically if your program becomes unresponsive #### VINT Hubs This Phidget is a smart device that must be controlled by a VINT Hub. For more information about VINT, have a look at the VINT Primer. You can use a Phidget Cable to simply and easily connect the two devices. Here's a list of all of the different VINT Hubs currently available: Product Board Image Part Number Price Number of VINT Ports Controlled By HUB0001_0$30.00 6 USB (Mini-USB)
HUB5000_0 $60.00 6 Local Network (Ethernet or Wi-Fi) SBC3003_0$120.00 6

#### Phidget Cables

Use a Phidget cable to connect this device to the hub. You can solder multiple cables together in order to make even longer Phidget cables, but you should be aware of the effects of having long wires in your system.

Product Physical Properties
Image Part Number Price Cable Length
3002_0 $2.00 600 mm 3003_0$1.50 100 mm
3004_0 $3.00 3.5 m 3038_0$2.25 1.2 m
3039_0 $2.75 1.8 m CBL4104_0$1.75 300 mm
CBL4105_0 $2.00 900 mm CBL4106_0$2.50 1.5 m

## Part 1: Setup

### Select Device

Your Phidget must be connected to a device with a VINT port using a 3-wire Phidget cable.

## Step 1: Install Phidgets Library

Before you begin using your Phidgets, you will need to install the Phidget Library.

If you're unsure which one you should get, press ⊞ WIN + Pause/Break:

3a. Select Next

## Step 1: Install Phidgets Library

3b. Read the Licence Agreement. Select Next.

## Step 1: Install Phidgets Library

3c. Choose Installation Location. Select Next.

## Step 1: Install Phidgets Library

3d. Confirm Install

## Step 1: Install Phidgets Library

3e. Wait for Installation to complete. This should only take a few moments.

## Step 1: Install Phidgets Library

3f. Installation Complete. Close installation Window.

## Step 2: Connect Devices

● Connect USB Cable to your Windows Computer

● Connect VINT Device(s)

## Step 3: Verify Connection

1. Open the Phidgets Control Panel:

## Step 3: Verify Connection

2. If connected, your Phidgets will appear in the Phidget Control Panel.

## Done!

If you're able to see and interact with your devices in the Phidget Control Panel, you're done with the Setup part of this guide.

Scroll down to Part 2: Using Your Phidget for the next step.

For more help installing in Windows (e.g. manual install, using a VM, etc.), visit this page:

## Step 1: Install Phidgets Library

Before you begin using your Phidgets, you will need to install the Phidget Library.

## Step 1: Install Phidgets Library

3a. Select Continue

## Step 1: Install Phidgets Library

3c. Here, you have the option to select the installation location. Select Install to continue.

## Step 1: Install Phidgets Library

3e. Wait for Installation to complete. This should only take a few moments.

## Step 1: Install Phidgets Library

3f. You may see a message that the extension has been blocked. Select Open Security Preferences.

## Step 1: Install Phidgets Library

3g. Beside the message for Phidgets Inc, Click Allow.

## Step 1: Install Phidgets Library

3h. Installation Complete, Click Close.

## Step 1: Install Phidgets Library

3i. To delete the installer, click Move to Trash.

## Step 2: Connect Devices

● Connect USB Cable to your Mac

● Connect VINT Device(s)

## Step 3: Verify Connection

1. Open the Phidgets Control Panel:

## Step 3: Verify Connection

2. If connected, your Phidgets will appear in the Phidget Control Panel.

## Done!

If you're able to see and interact with your devices in the Phidget Control Panel, you're done with the Setup part of this guide.

Scroll down to Part 2: Using Your Phidget for the next step.

## Step 1: Install Phidgets Library

1. First, you need to install the libusb-1.0 development libraries. For example, in Debian based distributions:

apt-get install libusb-1.0-0-dev

You’ll also need a C compiler and builder, if you don’t already have one installed.

apt-get install gcc
apt-get install make

## Step 1: Install Phidgets Library

3. Use the following commands in the location you unpacked to install the library:

./configure
make
sudo make install

## Step 1: Install Phidgets Library

4. (Optional) You can also download and unpack the following optional packages:

phidget22networkserver - Phidget Network Server, which enables the use of Phidgets over your network

phidget22admin - Admin tool to track who is connected to your Phidgets when using the network server

libphidget22extra - Required for phidget22networkserver and phidget22admin

libphidget22java - The Java libraries for Phidget22

For installation instructions for these packages, see the README file included with each one.

## Step 2: Connect Devices

● Connect USB Cable to your Linux Computer

● Connect VINT Device(s)

## Step 3: Verify Connection

1. The easiest way to verify that your libraries are working properly is to compile and run an example program. Download and unpack this C example that will detect any Phidget:

## Step 3: Verify Connection

2. Next, open the terminal in the location where you unpacked the example. Compile and run using:

gcc HelloWorld.c -o HelloWorld -lphidget22
sudo ./HelloWorld

ou should receive a “Hello” line for each Phidget channel that is discovered:

I don’t see any Phidgets show up in the HelloWorld example

You need to run it with sudo in order to be able to access USB devices. In order to use Phidgets without sudo, you need to set your udev rules. See the Advanced Information page on the final slide of this guide for details.

## Done!

If you're able to see your devices in the Hello World example, you're done with the Setup part of this guide.

Scroll down to Part 2: Using Your Phidget for the next step.

## Step 1: Install Phidgets Library

Before you begin using your Phidgets, you will need to install the Phidget Library.

If you're unsure which one you should get, press ⊞ WIN + Pause/Break:

3a. Select Next

## Step 1: Install Phidgets Library

3b. Read the Licence Agreement. Select Next.

## Step 1: Install Phidgets Library

3c. Choose Installation Location. Select Next.

## Step 1: Install Phidgets Library

3d. Select Next to confirm install.

## Step 1: Install Phidgets Library

3e. Wait for Installation to complete. This should only take a few moments.

## Step 1: Install Phidgets Library

3f. Installation Complete. Close installation Window.

## Step 2: Connect Devices

● Connect Power Jack

● Connect VINT Device(s)

● Connect Ethernet to a Router or Switch (optional)

## Step 3: Verify Connection

Choose a setup method:

## Step 3: Connect Wireless

1. When you connect the power supply to the HUB5000, the red LED should turn on.

## Step 3: Connect Wireless

2. On your mobile device, go to the Wi-Fi settings and connect to the HUB5000:

## Step 3: Connect Wireless

4. Once your device is connected to the HUB5000’s WiFi signal:

Click on the WiFi network and find an option that says “Manage router” or “Visit homepage”.

Go to your internet browser and type 192.168.100.1 in the address bar.

## Step 3: Connect Wireless

5. Create a password for your HUB5000. You'll use it to access the Configure Page from now on.

## Step 3: Connect Wireless

6. Navigate to the network page. Change the Mode to Client.

## Step 3: Connect Wireless

7. Enter your Wifi Network details and click Save & Apply. It may take a few minutes for your Phidgets to appear in the Phidget Control Panel, which we’ll check in the next step.

## Step 4: Verify Connection

1. Open the Phidgets Control Panel:

## Step 4: Verify Connection

2. If connected, your Phidgets will appear in the Phidget Control Panel.

## Done!

If you're able to see and interact with your devices in the Phidget Control Panel, you're done with the Setup part of this guide.

Scroll down to Part 2: Using Your Phidget for the next step.

For more help installing in Windows (e.g. manual install, using a VM, etc.), visit this page:

## Step 3: Connect Wireless

1. When you connect the power supply to the HUB5000, the red LED should turn on.

## Step 3: Connect Wireless

3. Create a password for your HUB5000. You'll use this password to access the Configure Page from now on.

## Step 3: Connect Wireless

4. Navigate to the network page. Change the Mode to Client.

## Step 3: Connect Wireless

5. Enter your Wifi Network details to use your Hub wirelessly and click Save & Apply. You can then disconnect the ethernet cable.

It may take a few minutes for your Phidgets to appear in the Phidget Control Panel, which we’ll check in the next step.

## Step 4: Verify Connection

1. Open the Phidgets Control Panel:

## Step 4: Verify Connection

2. If connected, your Phidgets will appear in the Phidget Control Panel.

## Done!

If you're able to see and interact with your devices in the Phidget Control Panel, you're done with the Setup part of this guide.

Scroll down to Part 2: Using Your Phidget for the next step.

For more help installing in Windows (e.g. manual install, using a VM, etc.), visit this page:

## Step 1: Install Phidgets Library

Before you begin using your Phidgets, you will need to install the Phidget Library.

## Step 1: Install Phidgets Library

3a. Select Continue

## Step 1: Install Phidgets Library

3c. Here, you have the option to select the installation location. Select Install.

## Step 1: Install Phidgets Library

3e. Wait for Installation to complete. This should only take a few moments.

## Step 1: Install Phidgets Library

3f. You may see a message that the extension has been blocked. Select Open Security Preferences.

## Step 1: Install Phidgets Library

3g. Beside the message for Phidgets Inc, Click Allow.

## Step 1: Install Phidgets Library

3h. Installation Complete, Click Close.

## Step 1: Install Phidgets Library

3i. To delete the installer, click Move to Trash.

## Step 2: Connect Devices

● Connect Power Jack

● Connect VINT Device(s)

● Connect Ethernet to a Router or Switch (optional)

## Step 3: Verify Connection

Choose a setup method:

## Step 3: Connect Wireless

1. When you connect the power supply to the HUB5000, the red LED should turn on.

## Step 3: Connect Wireless

2. On your mobile device, go to the Wi-Fi settings and connect to the HUB5000:

## Step 3: Connect Wireless

4. Once your device is connected to the HUB5000’s WiFi signal:

Click on the WiFi network and find an option that says “Manage router” or “Visit homepage”.

Go to your internet browser and type 192.168.100.1 in the address bar.

## Step 3: Connect Wireless

5. Create a password for your HUB5000. You'll use this password to access the Configure Page from now on.

## Step 3: Connect Wireless

6. Navigate to the network page. Change the Mode to Client.

## Step 3: Connect Wireless

7. Enter your Wifi Network details and click Save & Apply. It may take a few minutes for your Phidgets to appear in the Phidget Control Panel, which we’ll check in the next step.

## Step 4: Verify Connection

1. Open the Phidget Control Panel:

## Step 4: Verify Connection

2. If connected, your Phidgets will appear in the Phidget Control Panel.

## Done!

If you're able to see and interact with your devices in the Phidget Control Panel, you're done with the Setup part of this guide.

Scroll down to Part 2: Using Your Phidget for the next step.

## Step 3: Connect Wireless

1. When you connect the power supply to the HUB5000, the red LED should turn on.

## Step 3: Connect Wireless

3. Create a password for your HUB5000. You'll use this password to access the Configure Page from now on.

## Step 3: Connect Wireless

4. Navigate to the network page. Change the Mode to Client.

## Step 3: Connect Wireless

5. Enter your Wifi Network details to use your Hub wirelessly and click Save & Apply. You can then disconnect the ethernet cable.

It may take a few minutes for your Phidgets to appear in the Phidget Control Panel, which we’ll check in the next step.

## Step 4: Verify Connection

1. Open the Phidget Control Panel:

## Step 4: Verify Connection

2. If connected, your Phidgets will appear in the Phidget Control Panel.

## Done!

If you're able to see and interact with your devices in the Phidget Control Panel, you're done with the Setup part of this guide.

Scroll down to Part 2: Using Your Phidget for the next step.

## Step 1: Install Phidgets Library

1. First, you need to install the libusb-1.0 development libraries. For example, in Debian based distributions:

apt-get install libusb-1.0-0-dev

You’ll also need a C compiler and builder, if you don’t already have one installed.

apt-get install gcc
apt-get install make

## Step 1: Install Phidgets Library

3. Use the following commands in the location you unpacked to install the library:

./configure
make
sudo make install

## Step 1: Install Phidgets Library

4. (Optional) You can also download and unpack the following optional packages:

phidget22networkserver - Phidget Network Server, which enables the use of Phidgets over your network

phidget22admin - Admin tool to track who is connected to your Phidgets when using the network server

libphidget22extra - Required for phidget22networkserver and phidget22admin

libphidget22java - The Java libraries for Phidget22

For installation instructions for these packages, see the README file included with each one.

## Step 2: Connect Devices

● Connect Power Jack

● Connect VINT Device(s)

● Connect Ethernet to a Router or Switch (optional)

## Step 3: Verify Connection

Choose a setup method:

## Step 3: Connect Wireless

1. When you connect the power supply to the HUB5000, the red LED should turn on.

## Step 3: Connect Wireless

2. On your mobile device, go to the Wi-Fi settings and connect to the HUB5000:

## Step 3: Connect Wireless

4. Once your device is connected to the HUB5000’s WiFi signal:

Click on the WiFi network and find an option that says “Manage router” or “Visit homepage”.

Go to your internet browser and type 192.168.100.1 in the address bar.

## Step 3: Connect Wireless

5. Create a password for your HUB5000. You'll use this password to access the Configure Page from now on.

## Step 3: Connect Wireless

6. Navigate to the network page. Change the Mode to Client.

## Step 3: Connect Wireless

7. Enter your Wifi Network details and click Save & Apply. It may take a few minutes for your Phidgets to appear in the Phidget Control Panel, which we’ll check in the next step.

## Step 4: Verify Connection

1. The easiest way to verify that your libraries are working properly is to compile and run an example program. Download and unpack this C example that will detect any Phidget:

## Step 3: Verify Connection

2. Next, open the terminal in the location where you unpacked the example. Compile and run using:

gcc HelloWorld.c -o HelloWorld -lphidget22
sudo ./HelloWorld

ou should receive a “Hello” line for each Phidget channel that is discovered:

I don’t see any Phidgets show up in the HelloWorld example

You need to run it with sudo in order to be able to access USB devices. In order to use Phidgets without sudo, you need to set your udev rules. See the Advanced Information page on the final slide of this guide for details.

## Done!

If you're able to see your devices in the Hello World example, you're done with the Setup part of this guide.

Scroll down to Part 2: Using Your Phidget for the next step.

## Step 3: Connect Wireless

1. When you connect the power supply to the HUB5000, the red LED should turn on.

## Step 3: Connect Wireless

3. Create a password for your HUB5000. You'll use this password to access the Configure Page from now on.

## Step 3: Connect Wireless

4. Navigate to the network page. Change the Mode to Client.

## Step 3: Connect Wireless

5. Enter your Wifi Network details to use your Hub wirelessly and click Save & Apply. You can then disconnect the ethernet cable.

It may take a few minutes for your Phidgets to appear in the Phidget Control Panel, which we’ll check in the next step.

## Step 4: Verify Connection

1. The easiest way to verify that your libraries are working properly is to compile and run an example program. Download and unpack this C example that will detect any Phidget:

## Step 3: Verify Connection

2. Next, open the terminal in the location where you unpacked the example. Compile and run using:

gcc HelloWorld.c -o HelloWorld -lphidget22
sudo ./HelloWorld

ou should receive a “Hello” line for each Phidget channel that is discovered:

I don’t see any Phidgets show up in the HelloWorld example

You need to run it with sudo in order to be able to access USB devices. In order to use Phidgets without sudo, you need to set your udev rules. See the Advanced Information page on the final slide of this guide for details.

## Done!

If you're able to see your devices in the Hello World example, you're done with the Setup part of this guide.

Scroll down to Part 2: Using Your Phidget for the next step.

## Step 1: Install Phidgets Library

Before you begin using your Phidgets, you will need to install the Phidget Library.

If you're unsure which one you should get, press ⊞ WIN + Pause/Break:

3a. Select Next.

## Step 1: Install Phidgets Library

3b. Read the Licence Agreement. Select Next.

## Step 1: Install Phidgets Library

3c. Choose Installation Location. Select Next.

3d. Select Next.

## Step 1: Install Phidgets Library

3e. Wait for Installation to complete. This should only take a few moments.

## Step 1: Install Phidgets Library

3f. Installation Complete. Close installation Window.

## Step 2: Connect Devices

● Connect Power Jack

● Connect VINT Device(s)

● Connect Ethernet to a Router or Switch in the same network as your Windows PC

## Step 3: Verify Connection

1. Open the Phidgets Control Panel:

## Step 3: Verify Connection

2. If connected, your Phidgets will appear in the Phidget Control Panel.

Now that the SBC's ethernet connection is verified, it can be connected to wifi.

If you don't have a USB wifi adapter or you're planning to stay on ethernet, you can scroll down to

## Step 4: Connect Wireless

2. Create a password for your SBC. You'll use this to access the configuration page from now on.

## Step 4: Connect Wireless

3. Navigate to Network -> Wireless. Select your Network, enter the wifi password and select Add This Network.

## Step 4: Connect Wireless

4. Scroll down to your saved networks, click on your network and select Join This Network.

## Step 4: Connect Wireless

5. It should now say connected in the status column.

You can now unplug the ethernet cable.

## Done!

If you're able to see and interact with your devices in the Phidget Control Panel, you're done with the Setup part of this guide.

Scroll down to Part 2: Using Your Phidget for the next step.

For more help installing in Windows (e.g. manual install, using a VM, etc.), visit this page:

## Step 1: Install Phidgets Library

Before you begin using your Phidgets, you will need to install the Phidget Library.

## Step 1: Install Phidgets Library

3a. Select Continue

## Step 1: Install Phidgets Library

3c. Here, you have the option to select the installation location. Select Install.

## Step 1: Install Phidgets Library

3e. Wait for Installation to complete. This should only take a few moments.

## Step 1: Install Phidgets Library

3f. You may see a message that the extension has been blocked. Select Open Security Preferences.

3g. Click Allow.

## Step 1: Install Phidgets Library

3h. Installation Complete, Click Close.

## Step 1: Install Phidgets Library

3i. To delete the installer, click Move to Trash.

## Step 2: Connect Devices

● Connect Power Jack

● Connect VINT Device(s)

● Connect Ethernet to a Router or Switch in the same network as your Mac

## Step 3: Verify Connection

1. Open the Phidget Control Panel:

## Step 3: Verify Connection

2. If connected, your Phidgets will appear in the Phidget Control Panel.

Now that the SBC's ethernet connection is verified, it can be connected to wifi.

If you don't have a USB wifi adapter or you're planning to stay on ethernet, you can scroll down to

## Step 4: Connect Wireless

2. Create a password for your SBC. You will use this to access the configuration page from now on.

## Step 4: Connect Wireless

3. Navigate to Network -> Wireless. Select your Network, enter the wifi password and select Add This Network.

## Step 4: Connect Wireless

4. Scroll down to your saved networks, click on your network and select Join This Network.

## Step 4: Connect Wireless

5. It should now say connected in the status column.

You can now unplug the ethernet cable.

## Done!

If you're able to see and interact with your devices in the Phidget Control Panel, you're done with the Setup part of this guide.

Scroll down to Part 2: Using Your Phidget for the next step.

## Step 1: Install Phidgets Library

1. First, you need to install the libusb-1.0 development libraries. For example, in Debian based distributions:

apt-get install libusb-1.0-0-dev

You’ll also need a C compiler and builder, if you don’t already have one installed.

apt-get install gcc
apt-get install make

## Step 1: Install Phidgets Library

3. Use the following commands in the location you unpacked to install the library:

./configure
make
sudo make install

## Step 1: Install Phidgets Library

4. (Optional) You can also download and unpack the following optional packages:

phidget22networkserver - Phidget Network Server, which enables the use of Phidgets over your network

phidget22admin - Admin tool to track who is connected to your Phidgets when using the network server

libphidget22extra - Required for phidget22networkserver and phidget22admin

libphidget22java - The Java libraries for Phidget22

For installation instructions for these packages, see the README file included with each one.

## Step 2: Connect Devices

● Connect Power Jack

● Connect VINT Device(s)

● Connect Ethernet to a Router or Switch in the same network as your Linux machine

## Step 3: Verify Connection

1. The easiest way to verify that your libraries are working properly is to compile and run an example program. Download and unpack this C example that will detect any Phidget:

## Step 3: Verify Connection

2. Next, open the terminal in the location where you unpacked the example. Compile and run using:

gcc HelloWorld.c -o HelloWorld -lphidget22
sudo ./HelloWorld

If everything is working, you should receive a “Hello” line for each Phidget channel that is discovered:

I don’t see any Phidgets show up in the HelloWorld example

You need to run it with sudo in order to be able to access USB devices. In order to use Phidgets without sudo, you need to set your udev rules. See the Advanced Information page on the final slide of this guide for details.

Now that the SBC's ethernet connection is verified, it can be connected to wifi.

If you don't have a USB wifi adapter or you're planning to stay on ethernet, you can scroll down to

## Step 4: Connect Wireless

If you're using a terminal-only Linux machine, use the browser on your phone instead.

(If you use a phone, you need to enter the IP address your router assigned to the SBC instead of phidgetsbc.local)

## Step 4: Connect Wireless

2. Create a password for your SBC. You will use this to access the configuration page from now on.

## Step 4: Connect Wireless

3. Navigate to Network -> Wireless. Select your Network, enter the wifi password and select Add This Network.

## Step 4: Connect Wireless

4. Scroll down to your saved networks, click on your network and select Join This Network.

## Step 4: Connect Wireless

5. It should now say connected in the status column.

You can now unplug the ethernet cable.

## Step 4: Connect Wireless

6. Run the HelloWorld example again to confirm that your Phidgets are accessible over wifi.

## Done!

If you're able to see your devices in the Hello World example, you're done with the Setup part of this guide.

Scroll down to Part 2: Using Your Phidget for the next step.

## Part 2: Using Your Phidget

The OUT1000 can provide a DC voltage between 0 and 4.2 volts with a resolution of 1mV. This Phidget is ideal for analog voltage-controlled devices.

### Explore Your Phidget Channels Using The Control Panel

1. Open your Control Panel, and you will find the Voltage Output channel:

2. Double click on the channel to open an example program. This channel belongs to the Voltage Output channel class:

Expand All
12-bit Voltage Output Phidget: Produce a DC voltage for the connected circuit or device

In your Control Panel, double click on "12-bit Voltage Output Phidget":

## Part 4: Advanced Topics and Troubleshooting

Expand All
How do I know what channel, serial number, or hub port to use in my program?

Before you open a Phidget channel in your program, you can set these properties to specify which channel to open. You can find this information through the Control Panel.

1. Open the Control Panel and double-click on the red map pin icon:

2. The Addressing Information window will open. Here you will find all the information you need to address your Phidget in your program.

See the Phidget22 API for your language to determine exact syntax for each property.

MacOS users can upgrade device firmware by double-clicking the device row in the Phidget Control Panel.

Windows users can upgrade the firmware for this device using the Phidget Control Panel as shown below.

Firmware upgrades include important bug fixes and performance improvements, but there are some situations where you may want to revert to an old version of the firmware (for instance, when an application you're using is compiled using an older version of phidget22 that doesn't recognize the new firmware).

MacOS and Linux users can downgrade using the phidget22admin tool in the terminal (see included readme for instructions).

Windows users can downgrade directly from the Phidget Control Panel if they have driver version 1.9.20220112 or newer:

Firmware Version Numbering Schema

Phidgets device firmware is represented by a 3-digit number. For firmware patch notes, see the device history section on the Specifications tab on your device's product page.

• If the digit in the 'ones' spot changes, it means there have been bug fixes or optimizations. Sometimes these changes can drastically improve the performance of the device, so you should still upgrade whenever possible. These upgrades are backwards compatible, meaning you can still use this Phidget on a computer that has Phidget22 drivers from before this firmware upgrade was released.
• If the digit in the 'tens' spot changes, it means some features were added (e.g. new API commands or events). These upgrades are also backwards compatible, in the sense that computers running old Phidget22 drivers will still be able to use the device, but they will not be able to use any of the new features this version added.
• If the digit in the 'hundreds' spot changes, it means a major change has occurred (e.g. a complete rewrite of the firmware or moving to a new architecture). These changes are not backwards compatible, so if you try to use the upgraded board on a computer with old Phidget22 drivers, it will show up as unsupported in the Control Panel and any applications build using the old libraries won't recognize it either.
Current Sourcing and Sinking

To ensure maximum voltage precision across the device's full range, the OUT1000 Phidget should be subjected to a minimal current draw, ideally less than 3mA. However, in the event you plan to power a small load with this device, it will either be sourcing or sinking current when in use. When it's connected to a circuit with a lower voltage potential than its own voltage setting, the current will be flowing out from the OUT1000 into the circuit, so it will be sourcing current. When it's connected to a circuit with a higher voltage potential than the voltage it's set to, the current will flow from the circuit into the OUT1000, meaning it will be sinking current.

The OUT1000 can source or sink up to 15mA of current depending on the selected output voltage. The chart below shows the maximum available voltage for a given expected current draw.

I’m seeing strange readings when I start my program or when switching voltage range

The OUT1000 may have an unpredictable output voltage for a very short time immediately after the device changes modes or is turned on. If this is a problem in your application, and you have no way to ignore it via software, we recommend using a solid-state relay to switch the output on once it has stabilized.

#### Product Specifications

Board Properties
Controlled By VINT
Electrical Properties
Current Consumption Min 15 μA
Current Consumption Max load + 2.1 mA
Current Sourcing varies*
Current Sinking varies*
Voltage Outputs
Number of Voltage Outputs 1
Voltage Output Max 4.2 V DC
Output Voltage Resolution (12-bit) 1 mV DC
Voltage Output Noise ± 150 μV DC
Physical Properties
Recommended Wire Size 16 - 26 AWG
Operating Temperature Min -40 °C
Operating Temperature Max 85 °C
Customs Information
American HTS Import Code 8471.80.40.00
Country of Origin CN (China)

* Current sourcing and sinking capability varies based on selected output voltage. Please visit the technical section of the User Guide for details.

#### Product History

Date Board Revision Device Version Comment
June 2017 0 102 Product Release
May 2019 0 110 Added failsafe timer functionality
March 2022 0 121 Failsafe timer now resets from any successful packet. Improved responsiveness.

#### Software Objects

Channel NameAPIChannel
Voltage Output VoltageOutput 0

#### API

 Choose a Language C C# / VB.NET Java JavaScript Max/MSP Python Swift Phidget API Manager API Networking API NetworkConnection API USBConnection API Logging API Dictionary API

Back Forward
Print this API

#### Code Samples

 Choose a Language Choose a Device Serial Number: ?

#### Example Options

				Make your selections to display sample code.

#### Code Samples

Language:

APIDetailLanguageOS
1002_0B $85.00 USB (Mini-USB) 4 OUT1000_0$15.00 VINT 1
OUT1001_0 $30.00 VINT 1 OUT1002_0$50.00 VINT 1


text:
New Titles  |  FAQ  |  Keep Informed  |  Review Cart  |  Contact Us Quick Search (Advanced Search ) Browse by Subject General Interest Logic & Foundations Number Theory Algebra & Algebraic Geometry Discrete Math & Combinatorics Analysis Differential Equations Geometry & Topology Probability & Statistics Applications Mathematical Physics Math Education

Linear Algebra in Action: Second Edition
Harry Dym, Weizmann Institute of Science, Rehovot, Israel
 SEARCH THIS BOOK:
2013; 585 pp; hardcover
Volume: 78
ISBN-10: 1-4704-0908-9
ISBN-13: 978-1-4704-0908-1
List Price: US$91 Member Price: US$72.80
Order Code: GSM/78.R

Tensors: Geometry and Applications - J M Landsberg

Applied Linear Algebra: The Decoupling Principle, Second Edition - Lorenzo Sadun

A (Terse) Introduction to Linear Algebra - Yitzhak Katznelson and Yonatan R Katznelson

It is a wonderful book: very accessible and rigorous [at] the same time, containing basic and not-so-basic facts, discussing many (sometimes unexpected) applications ... Given that and the wonderful way this book was written and organized, I think it can be used by many readers: engineering students, mathematics students, research mathematicians, and researchers in any other field where linear algebra is applied. I strongly recommend this book to anyone interested in "working" linear algebra.

--MAA Reviews

Linear algebra permeates mathematics, perhaps more so than any other single subject. It plays an essential role in pure and applied mathematics, statistics, computer science, and many aspects of physics and engineering. This book conveys in a user-friendly way the basic and advanced techniques of linear algebra from the point of view of a working analyst. The techniques are illustrated by a wide sample of applications and examples that are chosen to highlight the tools of the trade. In short, this is material that many of us wish we had been taught as graduate students.

Roughly the first third of the book covers the basic material of a first course in linear algebra. The remaining chapters are devoted to applications drawn from vector calculus, numerical analysis, control theory, complex analysis, convexity and functional analysis. In particular, fixed point theorems, extremal problems, matrix equations, zero location and eigenvalue location problems, and matrices with nonnegative entries are discussed. Appendices on useful facts from analysis and supplementary information from complex function theory are also provided for the convenience of the reader.

In this new edition, most of the chapters in the first edition have been revised, some extensively. The revisions include changes in a number of proofs, either to simplify the argument, to make the logic clearer or, on occasion, to sharpen the result. New introductory sections on linear programming, extreme points for polyhedra and a Nevanlinna-Pick interpolation problem have been added, as have some very short introductory sections on the mathematics behind Google, Drazin inverses, band inverses and applications of SVD together with a number of new exercises.

Request an examination or desk copy.