Pages

2012-10-22

Double deck Vika Amon as standing desk

For long, I was toying with the idea of building a standing computer desk at home, based on a spare Vika Amon table. The plan is as simple as just adding one more table top on the current table to form the new standing one.

And I did it.

With its existence, a standing table serves several purposes, listed below.

  • Comfort and not. What I mean by that is, firstly, I spend majority of time sitting while I'm at my office, on weekdays. In the evening, while I'm home, I usually feel very slumped if I have to sit down to do most of anything. I’m not sure this is just me or it is a common thing, though. Either way, a standing table for PC would help if some computing tasks are to be done. 
  • Secondly, during weekends, a sitting PC table is suddenly too comfortable. Too often, I find myself spending an awful lot amount of time mindlessly surfing the interweb. The standing table would make this bad habit not so comfortable, hence, I (or my wife) will spend leisure time more productively.
  • Floor area: Standing tables don’t need chairs. As the results, two chairs we used with previous computer table - are no longer needed, saving some precious floor area in our living room.
  • Desk space: My wife and I share the computer desk, and we have quite a few of devices: 1 ASUS laptop that uses a 23” Monitor for display and external mouse and keyboard, 1 HP laptop with external mouse, 1 HP Touchpad tablet, and 1 ASUS Transformer Pad TF101, 1 table lamp. Furthermore, we usually place our wallets and phones on the table. Clearly, cramping all those stuffs on a single surface of our old table makes it looks very cluttered, if not downright impossible. The new desk has double table surfaces which remedies much of the said issue.That’s enough of rationales for building one, not to mention the controversial health benefit.
Ergonomic of a standing desk is detailed in following picture. The most important point, though, is that the total height of the table is slightly lower than the elbow height of the person who would uses it the most.

1. Ergonomics for standing table. Source link

From there, based on my wife elbow height, the height of the legs between upper and lower table tops is estimated as about 22cm. It is important to take the thickness of the table top into account, in this calculation.

There are two viable candidates for these legs which are Sultan and Godmorgon legs. However, I find they are not quite economic. In addition, they look somewhat cold and industrial which is not a good fit for a living room furniture. Finally, I settled for using the legs of Frosta stool for their reasonable price and wooden look. The downside is we need to saw them off to desired length.

With all planning settled I went shopping, based on below Bill of Materials:

  • 01 VIKA AMON table - SGD 39 - I already have this.
  • 01 VIKA AMON table top - SGD 19.
  • 01 FROSTA stool - SGD 11.9.
  • 04 L-Shape hinges - that looks somewhat like this. Should be available at any hardware/DIY store for few bucks.
  • 12 Small screws
Tools required: wood saw, screwdriver, pencil, and ruler.

Modification/Assembling Steps.

2. Saw the Frosta legs.
3. Screw legs onto upper table top. Use pre-drill holes for alignment.

4. Use of L-shape hinges to secure upper top.

5. Put upper top with legs on top of lower top, mark legs places on lower one.
Screw L-shape hinges at marked places.

6. Put upper top on lower top, again.
Screw to secure upper top position.

7. Full table without any stuff.

 8. Put table to its place and put stuffs on and done.



2012-10-13

Simulation setup for Opamp characterizations


Of course running a simulation without any setting any options/variables and getting any output data is neither fun nor productive. Hence, we will introduce these aspects into our OCEAN Script. Before that, it is necessary to establish some context for a typical test setup for an single-end opamp.

Simple simulation setup for Opamp characterization.

The DUT (Device Under Test) - the opamp has self-explanatory pins of VIN, VIP, OUT, VDD, GND, and IBIAS. It also has an instant name of I1, in this circuit.

Voltage source V0 supplies power for the whole opamp via net and pin VDD. DC current source IB sets biasing current to the opamp. Value for supply voltage - VDD = 1.8V, is typical for design in 0.18um CMOS process. We choose our biassing current IB = 10uA.  

Sinusoidal voltage source V1 connects to pin VIP. This provides AC input signal with suitable DC biasing for VIP. This voltage is usually set to VDD/2 = 0.9V, in this circuit.

Capacitor C1 and inductor L1 short VIN and OUT at DC and disconnect them at higher frequency. As a result, the config forms an unity gain buffer at DC, hence it sets a bias voltage to VIN which is the same with that of VIP. For this purpose, the values of C1 and L1 are chosen to be huge, for example 10F and 1GH.

Capacitor CL is the load the opamp drives. Its value is usually in pF range, say 5pF.

With this test setup, we will be able to estimate some major specifications of the opamp as follows: Open loop gain - OLGain, gain bandwidth - GBW, phase and gain margin - PM and GM, and current consumption - ID.

From these data, a simplified figure of merit - FOM of the opamp can be calculated. FOM estimates how much gain banwidth the opamp has with certain load capacitance while it burns certain amount of current.

That's it for now.

PS: I created a simple component template for circuit schematic drawing here. Feel free to use it.

2012-10-03

OCEAN Script - Simulated

As an OCEAN script for a simulation progresses, it loosely contains of three command groups, as follows:
  1. Simulation setup commands which are used to specify
    • location of schematic/netlist of the circuit to be evaluated;
    • type of simulation;
    • type of simulator;
    • options for simulator;
    • devices' models;
    • nets(voltages) or currents to be saved...
  1. Simulation run command.
  2. Simulation data access commands which would
    • perform calculation(s) on saved results;
    • print or plot out saved/calculated data.

In this post, we’ll create a as-simple-as-possible script for our simulation. The script will only feature commands from the first two groups listed above.

For the said purpose, let's assume that you have design an operation amplifier - opamp for short; I believe any Analog IC Designer has to design an opamp in his career. Furthermore, you have an evaluation setup for the opamp in "schematic" view of cell named "Opamp_tb" located in library "OceanScriptLib".

Let's write our first Ocean Script so once runs, it would perform a AC simulation on this evaluation circuit. The AC simulation is the most commonly used simulation type for opamp circuit.

Please read through the script for the Opamp_tb.ocn below. Explanations for it are in the comments.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
; This is a comment line. The comment starts from ";" character and ends at the end of the line

; Begin of simulation setup
; Set the simulator as "spectre"
simulator( 'spectre ) 

; Location of circuit to be simulated based on library name, cell name, and view name 
design( "OceanScriptLib" "Opamp_tb" "schematic" )

; Set up model information based on full path of the model file and corner name
; As an example, below command apply for model file “~/model.scs” and “TYP” - name for typical corner
modelFile( '("~/model.scs" "TYP") )

; AC simulation, from frequency of 1mHz to 1GHz
analysis(' ac ?start "1e-3" ?stop "1e9" ) 
; End of simulation setup

; Run the simulation 
run()

Let's save the script as Opamp_tb.ocn at home directory ~/, then head to CIW window to test the script in the same way described in Hello World post.

Please read the log which is posted in CIW window as the script runs. You'll find that the script indeed executes the simulation, but nothing else shows up once it finishes. This is because our script lacks of any data saving and accessing commands. We will add that as our script extends in future posts.