You are not authenticated, login.
text: sort by
tags: modified
type: chronology
{89} is owned by tlh24 ana.
[0] Rousche PJ, Normann RA, Chronic recording capability of the Utah Intracortical Electrode Array in cat sensory cortex.J Neurosci Methods 82:1, 1-15 (1998 Jul 1)

hide / / print
ref: -0 tags: ocaml application functional programming date: 10-11-2022 21:36 gmt revision:2 [1] [0] [head]


From this I learned that in ocaml you can return not just functions (e.g. currying) but appliations of yet-to-be named functions.

let sum f = f 0 ;;
let arg a b c = c ( b + a ) ;;
let z a = a ;;


sum (arg 1) ;; 

is well-typed as (int -> `a) -> `a = <fun> e.g. an application of a function that converts int to `a. Think of it as the application of Xa to argument ( 0 + 1 ), where Xa is the argument (per type signature). Zero is supplied by the definition of 'sum'.

 sum (arg 1) (arg 2);; 

can be parsed as

(sum (arg 1)) (arg 2) ;; 

'(arg 2)' outputs an application of an int & a yet-to be determined function to 'a,

E.g. it's typed as int -> (int -> `a) -> `a = <fun>. So, you can call it Xa passed to above.

Or, Xa = Xb( ( 0 + 1 ) + 2)

where, again, Xb is a yet-to-be defined function that is supplied as an argument.

Therefore, you can collapse the whole chain with the identity function z. But, of course, it could be anything else -- square root perhaps for MSE?

All very clever.

hide / / print
ref: -0 tags: VARNUM GEVI genetically encoded voltage indicators FRET Ace date: 03-18-2020 17:12 gmt revision:5 [4] [3] [2] [1] [0] [head]

PMID-30420685 Fast in-vivo voltage imaging using a red fluorescent indicator

  • Kannan M, Vasan G, Huang C, Haziza S, Li JZ, Inan H, Schnitzer MJ, Pieribone VA.
  • Other genetically encoded voltage indicators (GEVI):
    • PMID-22958819 ArcLight (Peribone also last author) ; sign of ΔF/F\Delta F / F negative, but large, 35%! Slow tho? improvement in speed
    • ASAP3 ΔF/F\Delta F / F large, τ=3ms.\tau = 3 ms.
    • PMID-26586188 Ace-mNeon FRET based, Acetabularia opsin, fast kinetics + brightness of mNeonGreen.
    • Archon1 -- fast and sensitive, found (like VARNUM) using a robotic directed evolution or direct search strategy.
  • VARNAM is based on Acetabularia (Ace) + mRuby3, also FRET based, found via high-throughput voltage screen.
  • Archaerhodopsin require 1-12 W/mm^2 of illumination, vs. 50 mw/mm^2 for GFP based probes. Lots of light!
  • Systematic optimization of voltage sensor function: both the linker region (288 mutants), which affects FRET efficiency, as well as the opsin fluorophore region (768 mutants), which affects the wavelength of absorption / emission.
  • Some intracellular clumping (which will negatively affect sensitivity), but mostly localized to the membrane.
  • Sensitivity is still imperfect -- 4% in-vivo cortical neurons, though it’s fast enough to resolve 100 Hz spiking.
  • Can resolve post-synaptic EPSCs, but < 1 % ΔF/F\Delta F/F .
  • Tested all-optical ephys using VARNAM + blueshifted channelrhodopsin, CheRiff, both sparsely, and in PV targeted transgenetic model. Both work, but this is a technique paper; no real results.
  • Tested TEMPO fiber-optic recording in freely behaving mice (ish) -- induced ketamine waves, 0.5-4Hz.
  • And odor-induced activity in flies, using split-Gal4 expression tools. So many experiments.

hide / / print
ref: -2015 tags: CWEETS amplified Fourier imaging raman amplification date: 02-19-2019 06:46 gmt revision:1 [0] [head]

Amplified dispersive Fourier-Transform Imaging for Ultrafast Displacement sensing and Barcode Reading

hide / / print
ref: -0 tags: cutting plane manifold learning classification date: 10-31-2018 23:49 gmt revision:0 [head]

Learning data manifolds with a Cutting Plane method

  • Looks approximately like SVM: perform binary classification on a high-dimensional manifold (or sets of manifolds in this case).
  • The general idea behind Mcp_simple is to start with a finite number of training examples, find the maximum margin solution for that training set, augment the draining set by finiding a poing on the manifolds that violates the constraints, iterating the process until a tolerance criteria is met.
  • The more complicated cutting plane SVM uses slack variables to allow solution where classification is not linearly separable.
    • Propose using one slack variable per manifold, plus a manifold center, which strictly obeys the margin (classification) constraint.
  • Much effort put to proving the convergence properties of these algorithms; admittedly I couldn't be bothered to read...

hide / / print
ref: -0 tags: NET probes SU-8 microfabrication sewing machine carbon fiber electrode insertion mice histology 2p date: 12-29-2017 04:38 gmt revision:1 [0] [head]

PMID-28246640 Ultraflexible nanoelectronic probes form reliable, glial scar–free neural integration

  • SU-8 asymptotic H2O absorption is 3.3% in PBS -- quite a bit higher than I expected, and higher than PI.
  • Faced yield problems with contact litho at 2-3um trace/space.
  • Good recordings out to 4 months!
  • 3 minutes / probe insertion.
  • Fab:
    • Ni release layer, Su-8 2000.5. "excellent tensile strength" --
      • Tensile strength 60 MPa
      • Youngs modulus 2.0 GPa
      • Elongation at break 6.5%
      • Water absorption, per spec sheet, 0.65% (but not PBS)
    • 500nm dielectric; < 1% crosstalk; see figure S12.
    • Pt or Au rec sites, 10um x 20um or 30 x 30um.
    • FFC connector, with Si substrate remaining.
  • Used transgenic mice, YFP expressed in neurons.
  • CA glue used before metabond, followed by Kwik-sil silicone.
  • Neuron yield not so great -- they need to plate the electrodes down to acceptable impedance. (figure S5)
    • Measured impedance ~ 1M at 1khz.
  • Unclear if 50um x 1um is really that much worse than 10um x 1.5um.
  • Histology looks realyl great, (figure S10).
  • Manuscript did not mention (though the did at the poster) problems with electrode pull-out; they deal with it in the same way, application of ACSF.

hide / / print
ref: Schmidt-1993.11 tags: Normann utah array histology silicon electrode array cats date: 02-23-2017 22:03 gmt revision:4 [3] [2] [1] [0] [head]

PMID-8263001[0] Biocompatibility of silicon-based electrode arrays implanted in feline cortical tissue.

  • Tried two different times:
    • one day before euthanasia
    • 6 month implant.
  • Tried three different implants:
    • Uncoated silicon,
    • polymide coating
    • polymide coating with SiO2 adhesion layer / primer.
  • The last was the worst in terms of histopathological response.
  • Chronic implants showed relatively restrained immune response,
    • Gliosis was found around all tracks, 20-40um.
  • Encapsulation was less than 9um.
  • Edema and hemorrhage was minor but present on a subset of all implants.
  • Acute (24h) hemorrhage was more severe -- ~ 60%; edema ~ 20%.
  • Chronic histology revealed considerable macrophages w/ hemosiderin (a complex including ferritin)
  • See also [1]


[0] Schmidt S, Horch K, Normann R, Biocompatibility of silicon-based electrode arrays implanted in feline cortical tissue.J Biomed Mater Res 27:11, 1393-9 (1993 Nov)
[1] Jones KE, Campbell PK, Normann RA, A glass/silicon composite intracortical electrode array.Ann Biomed Eng 20:4, 423-37 (1992)

hide / / print
ref: -0 tags: carbon nanotube densification conductivity strength date: 02-23-2017 02:52 gmt revision:2 [1] [0] [head]

Super-strong and highly conductive carbon nanotube ribbons from post-treatment methods

  • Conductivity of 1.2e6 S/m, about that of stainless steel.
    • 500 x 500nm wire, length 1cm will have a resistance of 40k.
  • Aerogel method: methane + ferrocene + thiophene + hydrogen.
    • Resulting in ~ 18% Fe, multi-walled carbon nanotubes, diameter 15nm, 15-20 walls.
  • Densified with a stainless-steel spatula on regular paper.
    • Resulting in ribbons 22um wide, 650nm thick.
  • Very high tensile strength, up to 5.2 GPa; moduls ~ 266 GPa.

High-strength carbon nanotube fibre-like ribbon with high ductility and high electrical conductivity

  • Slightly higher conductivity, 1.82 - 2.24e6 S/m.
  • Rolled until it was 500nm thick!
  • Spun from an aerogel (!!) using ethanol + ferrocent + thiophene.

hide / / print
ref: -2002 tags: electric catfish date: 03-24-2015 20:32 gmt revision:0 [head]

PMID-11889591 Spontaneous nerve activity and sensitivity in catfish ampullary electroreceptor organs after tetanus toxin application

  • M. Struik,F. Bretschneider,R. Peters 2002
  • Applied TTX to catfish electrosensitive skin & measured spontaneous and evoked afferent responses.
  • The results show that TeTx reduces sensitivity to less then 20% of its original value, whereas the spontaneous activity is unaffected by the treatment. This indicates that the afferent nerve is capable of generating impulses independent of receptor cell neurotransmitter release.
    • Might mean that the amplifying ion channel is Na-permeable?

hide / / print
ref: -0 tags: polyimide polyamide basic reduction salt surface modification date: 02-27-2015 19:45 gmt revision:0 [head]

Kinetics of Alkaline Hydrolysis of a Polyimide Surface

  • The alkaline hydrolysis of a polyimide (PMDA-ODA) surface was studied as a function of time, temperature and hydroxide ion concentration.
  • Quantification of the number of carboxylic acid groups formed on the modified polyimide surface was accomplished by analysis of data from contact angle titration experiments.
  • Using a large excess of base, pseudo-first-order kinetics were found, yielding kobs ≈ 0.1−0.9 min-1 for conversion of polyimide to poly(amic acid) depending on [OH-].
  • From the dependence of kobs on [OH-], a rate equation is proposed.
  • Conversion of the polyimide surface to one of poly(amic acid) was found to reach a limiting value with a formation constant, K, in the range 2−10 L·mol-1.

hide / / print
ref: -0 tags: Peter Ledochowitsch ECoG parylene fabrication MEMS date: 09-25-2014 16:54 gmt revision:0 [head]

IEEE-5734604 (pdf) Fabrication and testing of a large area, high density, parylene MEMS µECoG array

  • Details 5-layer platinum parylene process for high density ECoG arrays.

hide / / print
ref: -0 tags: RF microstimulation cats threshold date: 09-04-2014 18:43 gmt revision:1 [0] [head]

PMID-13539663 Subcortical threshold voltages as a function of sine wave frequencies Brown and Brackett

  • 22 GA insulated stainless steel electrodes, both bipolar and monopolar.
    • This happens to be near spike recording passband, unfortunately.
  • Square wave stimulation (8) Mihailovic and Delgado 1956 "Electrical stimulation of monkey brain with various frequencies and pulse durations".
  • Hines (6)(1940) , stimulating the monkey cortex with [a] sine wave, reported jerky uncompleted movements from 1260 Hz to 1440 Hz.
    • Monopolar surface stimulation, though.

hide / / print
ref: -0 tags: intracortical utah array fabrication MEMS Normann date: 08-14-2014 01:35 gmt revision:5 [4] [3] [2] [1] [0] [head]

PMID-1937509 A silicon-based, three-dimensional neural interface: manufacturing processes for an intracortical electrode array.

  • Campbell PK1, Jones KE, Huber RJ, Horch KW, Normann RA. (1991)
  • One of (but not the) first papers describing their methods / idea (I think).
  • First conf paper: {1294} (1988)
  • later adopted glass frit insulator --

hide / / print
ref: car-0 tags: saab modifications convertible 900 SE date: 04-29-2013 18:09 gmt revision:12 [11] [10] [9] [8] [7] [6] [head]

So, a year and a half ago I bought a green 1995 900 SE convertible for $600. At that time, it didn't move or go in reverse. Since then, I've been fixing up random things here an there (or just straight modifying / breaking the car by other standards) and recently realized that I had better start keeping track of everything that's been done, in case my memory lapses or i need to know where some random part came from. I doubt this will be useful to anyone else - next time, pictures!

Things that I've done to the green convertible, in approximate chronological order:

  1. replaced the clutch cable. previous owner says that the clutch was relatively new; verified when i swapped the transmission.
  2. replaced the turbo transmission with one from a 900 S n/a; new transmission has slightly shorter final drive ratio, which is fun. Both transmissions have approximately the same number of miles on them (again, the original tranny had no reverse).
    1. The subframe brace bolts were seized on this car - it took several weeks off and on + heat + rust solvent to remove both large 18mm bolts. I recommend replacing them with new ones if possible (these look fine, they are very heavy bolts).
    2. In the process of doing this, I stripped one captive nut used for the transmission mount, and had to drill it out & replace it with a 3/8" grade 8 bolt & double nut affair from home cheapo. Be careful when threading these bolts in, or you'll have to do the same!
  3. replaced the rubber boots on the control-arm ball joints, and in turn repacked the ball joints with grease. This takes a lot of patience.
  4. installed a new gas filler hose from the plastic filler line to the gas tank. Previous one was held on with zip-ties. (yes, zip-ties: after i filled the damn thing up, i noticed that it was leaking excessively, and had to drive it around until the gas was burned through & unlikely to drip all over the ground once the car was parked.)
  5. removed turbo silencer prior intercooler.
  6. installed a new passenger side headlamp assembly.
  7. replaced the thermostat.
  8. replaced and gapped all 4 spark plugs.
  9. reflashed the ECU to stage 2.5 or so - 1.4 bar peak boost @ 3k rpm, 1.2 bar above 4k rpm, no boost limit in 2nd gear. This was done via Trionic5 suite, available from http://ecuproject.com/
  10. replaced both front struts & shocks with parts from a junkyard 1997 900 SE; previous ones had a loose / faulty wheel bearing. Very worthy upgrade.
  11. replaced all brake pads + front brake rotors to fit the struts/shocks/bearing hubs from the 97 900 SE. (the hubs are incompatible with 1995 disc rotors - different internal flange diameter.)
  12. replaced both front brake calipers. The previous 1995-version calipers did not mate well with '97 struts and '97 discs. Initially bought used calipers off of ebay, but the damn bleeder valve was sheared off at the nut, so I took the pads off them and installed remaned ones. Brake feel is much, much better now.
  13. added internal bracing / roll cage, though without the top hoop. removed most of the upholstery & seats in the back to fit this.
  14. oil and filter changed at 161k.
  15. adjusted some of the window seals - but they still need to be replaced eventually.
  16. removed condenser and AC compressor.
  17. replaced / changed the serpentine belt to a 71" / 1805mm 6-tooth duralast belt - aka AC delete belt ref. Water pump is only 25% engaged with the belt now, but seems to work just fine (and the internet verifies this.)
  18. repainted some rust spots on the trunk lid.
  19. installed plenty of grease on the upholstery -- oops :P
  20. Got two used tires from America's discount tires; rear tires still shady. Will get around to replacing them; have already gotten around to destroying the front ones with second-gear burnouts to 60 :)
  21. Resurfaced flywheel, replaced clutch disc with one from a Jeep Wagoneer (though not the pressure plate -- it looked fine, no signs of cracking).
  22. Replaced drivers side main crankcase seal.
  23. Replaced drivers side transaxle output bushing + drivers and passengers transaxle output seals
  24. Removed oil pan, cleaned pickup, and re-did oil pan seal.
  25. Welded a new stud on the turbo, applied with anti-seize this time! always use anti-seize on exhaust parts, they get hot!
  26. Removed head, had it ground to fix a minor valve leak and milled flat (increasing the compression ratio a bit). Cleaned the block top surface, intake manifold, fuel injectors, piston heads, and cylinders as best I could. Removed & replaced the broken stud underneath the power steering pump. In the course of having the head out, replaced the relevant seals:
    1. Valve stem seals
    2. Head gasket
    3. Intake gasket
    4. Exhaust gasket
  27. Replaced upper and lower radiator hoses.
  28. As of May 1 2012, I no longer own the car -- I'm off to California, and can't take it with me. May the new owner enjoy it as much as I have!

Things that need to be done to the 'vert:

  1. There is still a click in the rear drivers-side brake, should inspect it; likely brake pads.
  2. New rear tires (!!).
  3. hood gas springs are shot. Meh.

Now, wonders of wonders, I have another of these cars - though a sedan, not a convertible. It cost much more (about 8x as much), and is hence in much better shape. That said, I've had to do the following:

  1. Replaced the rear drivers side brake caliper. In the rain; should have waited for a sunny day, as this took longer than expected. (Everything does.)
  2. New front disc rotors & pads Dec 2008. As of July 2010, they should be replaced soon.
  3. Replaced the clutch + throwout bearing. The latter was making terrible noises back when I drove to Atlanta fall 2008; I nearly didn't make it back.
  4. Removed a "Saab saver" steering rack brace installed by a previous owner. To install this brace, you need to drill through the wheel well, which allows (possibly salty) water to touch the bare metal. As a result of this + stress upon metal that was not engineered to bear it, the wheel well cracked almost to the point where the shock mount was about to go through the hood! I'm glad I caught this while the car was parked, and not while i was going 70!
  5. welded the wheel well back together with 2x1/4" steel strap. I tried to weld to the major braces of the unibody, and later covered everything with plenty of paint and spray-on rubber soundproofing compound. Still, I worry about the opposite side of the metal, where the heat from the welding undoubtably removed rust-preventing paint. Seems reliable so far.
  6. replaced drivers side inner CV joint boot & of course repacked the CV joint grease. You need to take the CV joint completely apart to fit the thing - it won't stretch!
  7. Built a tool for removing the differential output bushing from the transmission. As the output of the differential is only a bushing, and it's put under a lot of stress during hard acceleration (especially peel outs - one wheel spinning much faster than the other = lots of strain on diff), the bushing wears out quickly. It is a pressure fit sleeve, so I reasoned that it could be removed by pressure - not quite. It must be cut out, very tediously, using a single-ended hacksaw. To keep metal debris out of the diff housing, insert a rag into where the CV axle was, and flush the tranny throughly after installing a new bushing.
    1. This is all rather difficult, so don't peel out!
    2. The passengers side half-axle is supported by a bearing by the alternator, so it does not have the same levels of stress & does not wear as quickly.
  8. Four new tires. $560 - beh.
  9. Replaced front brake discs Nov 2010
  10. New front strut inserts + reground front brakes May 2012 -- in Albuquerque.
  11. Flushed transmission oil in the desert outside of Lake Powell; the heat of Phoenix did it in & shifting was starting to be very sticky. Also adjusted the clutch cable, which later snapped while driving in SF. (Fortunately, was able to first gear it to a parking garage, where I fixed it on the spot).
  12. Fan control relay went out in the desert of Utah; ended up shorting it closed with a bit of wire. Said wire must be removed after turning off the car, otherwise the fan will run indefinitely!
  13. Sold car February 2013. May the next owner enjoy her well!

And now the blue 1998 saab 900, sold to Adam:

  1. Replaced front oxygen sensor
  2. Replaced rear transmission mount (had to take off the subframe for this, yuck)
  3. Fixed front passengers side window regulator (ish).
  4. Adjusted clutch master cylinder. The linkage between the pedal and the master cylinder was plastic and badly worn, which was causing the clutch to never fully disengage, in turn gradually leading to third gear synchro wearing out. Adjusted the stop on the pedal to compensate for this; it should ultimately be replaced, though works fine now.
  5. Replaced front drivers side headlight.

Next, the saab 9000 aero:

  1. Swapped wastegate / APC control valve with one from my 900 to remedy overboost issues.
  2. Replaced alternator brushes. Thing was a bear to remove -- had to jack up the engine a bit to get it out!
  3. Re-soldered alternater to battery charging and starting wire
  4. Re-soldered engine-to-chassis grounding wire; transmission to battery wire seemed fine.
  5. Replaced tubing from blow-off valve, PCV, and fuel pressure regulator to intake manifold with aftermarket silicone tubing.
  6. Installed new radio.
  7. Replaced headlight relay.
  8. Replaced turn signal relay.
  9. Replaced thermostat.
  10. Replaced rear lower panhard rod bushing; was falling out and rubbing against the rear axle.
    1. All of the other rear-end suspension bushings looked fine!
  11. Gapped all 4 spark plugs.
  12. New tires @ 120k miles; will need to rotate them.
  13. Cut wire from glass break sensor to security / immobilizer module, as passing buses were setting off the car alarm.
  14. Bought new IAC valve off ebay, put it in (difficult compared to a NG900!), but it idled too high (perhaps I needed to reset the ECU?). Therefore I took the new one out, cleaned and lubricated the old one, and re-installed it. The car still idles high for ~10 seconds when put in neutral, but it comes down, and I suppose I'll live with that for now.
  15. Blocked off the evap & PCV & instrument boost gauge intake manifold barbs in the process of debugging the high idle (figured that there were vacuum leaks).
  16. Replaced central lock relay with a used one from ePartsLand.
  17. Installed new drivers-side wheel bearing. Note you need to take the axle out to get access to the hex-head bolts which hold the hub in. Thankfully, it's not hard once this is done.
  18. New front/rear brakes/rotors.
    1. Front brakes were easy; rear brakes have a hidden retraction allen key.
      1. Follow the directions here. To fit a new rotor and pads, the whole brake caliper needs to be taken apart!
  19. Removed A/C and installed a short belt 2325 mm length.
    1. Note: tensioner pully is threaded backwards to prevent pulley rotation from loosening it.
    2. Note: to disengage the tensioner, you don't need a special tool - just put a breaker bar on a 19mm socket & use that as a lever.
  20. Rear shocks were replaced with Bilstein HD types from thesaabsite.com
  21. Installed new heater core, and all but one of the hoses leading to it.
  22. New fuel filter 121k
  23. Headgasket job April 21-25:
    1. New headgasket + new headbolts. One of them did not torque up to the right 'feel' following the saab-specificed procedure (33ft-lbs, 44ft-lbs, 90deg torque-to-yield. I'm going to replace that one with a M12 12.9 grade bolt from Mcmaster; have ordered 110, 120, and 130mm length & will see which fits best. Original stretch bolts are grade 10.9.
    2. New radiator
    3. New idler pulley
    4. New head gasket + head bolts; only cleaned the block and head, did not have them ground. Seems OK so far!
    5. Flushed oil, though it still took a few hours at temperature to boil off the remaining antifreeze that had leaked into the engine oil.
    6. Kept the timing chain + guides, though it's stretched near the limit; will have to replace next time I have the thing disassembled.
    7. New exhaust manifold. Pain to install, as I didn't remove the turbo when removing the head. Still quite possible.
    8. New urethane engine torque mount. Just cut out the old rubber inserts with a hacksaw -- not too hard. Be careful which way you put in the new blue inserts -- they are asymmetrical.
    9. One new hood gas strut = enough.
    10. New plugs. Old ones were filthy.
  24. Todo
    1. Windshield & Por-15 the frame around it; I bet the previous installer scratched the paint.
    2. Camber bolts to help the tires last longer.

hide / / print
ref: XindongLiu-2006.03 tags: neural recording electrodes stability cat parlene McCreery MEA date: 01-28-2013 02:50 gmt revision:7 [6] [5] [4] [3] [2] [1] [head]

IEEE-1605268 (pdf) Evaluation of the Stability of Intracortical Microelectrode Arrays

  • 35-50um IR electrodes, electrolytically sharpened at a 10 deg angle, with a 5um blunted tip.
  • Electrodes coated in parylene, and exposed at the tip with an eximer laser. Surface area of tip ~500um^2.
  • Sorted based on features (duration, pk-pk, ratio of + to -, ratio of + time to - time), followed by a demixing matrix (PCA?)
  • Did experiments in 25 cats with some task (for another paper?); got recordings for up to 800 days. Seems consistent with our results.
  • Neurons were stable (by their metrics) for up to 60 days.
  • sparse arrays showed stable recordings sooner than dense arrays, perhaps because they are larger and more qucikly become attached to the dura.
  • Electrodes were always unstable for the first 2-3 months. Stability index is as high as 30-40 days.
  • Average electrode yield was ~ 25%.
  • no histology.


Xindong Liu and McCreery, D.B. and Bullara, L.A. and Agnew, W.F. Evaluation of the stability of intracortical microelectrode arrays Neural Systems and Rehabilitation Engineering, IEEE Transactions on 14 1 91 -100 (2006)

hide / / print
ref: -0 tags: debian linux github persistent ssh authentication date: 07-27-2012 01:40 gmt revision:1 [0] [head]

If you don't want to repeatedly enter in your username/password for github when commiting, you'll want to enable an RSA authetication key.

-- http://www.debian.org/devel/passwordlessssh run

(with no options).

-- then https://help.github.com/articles/working-with-ssh-key-passphrases

 ssh-keygen -p 
with your github passphrase (I'm not totally sure this is essential).

For me, pull and push aftwerard worked without needing to supply my password. Easy!

hide / / print
ref: Rousche-1998.07 tags: BMI Utah cat Normann recording electrode MEA histology date: 06-29-2012 01:12 gmt revision:9 [8] [7] [6] [5] [4] [3] [head]

PMID-10223510 Chronic recording capability of the Utah Intracortical Electrode Array in cat sensory cortex.

  • Focus on (surprisingly) chronic recording from the utah array: they want to demonstrate that it works.
  • Platinum coating.
  • insulated with 2-3um polymide.
  • 10 cats, 12 arrays: 2 in S1, 8 in auditory ctx, 2 V1.
  • 11 electrodes connected in each array.
  • After a 6-month implant period, 60% of implanted arrays could still record 'some type of activity'.
  • They were completely targeting neuroprostheses.
    • But acknowledge that 'the presence of fibrous encapsulation and chronic astrogliosis suggests that more research is necessary before the UIEA can be uses as a cornerstone of a neuroprosthetic device for human use.
      • And yet they went through with the human trials?
  • Electrode impedance gave no hint as to the ability of a given electrode to record neural units: many electrodes with average impedance could not record neural activity.
  • Impedances generally decreased , which is not unusual (Schmidt and Bak, 1976).
    • Likely that the polymide had become permeated with water vapor to and equilibrium point. (rather than pinhole leaks or water permeation).
  • Quiet amplifiers: 2uv pk-pk.
  • No significant trend in background activity was noted over the implant durations.
  • In nearly every cat, the dura above the electrode array adhered to the bone flap, and the electrode array adhered to the dura. Therefore, when the bone flap was removed, the UIEA was concurrently explanted from the cortex.
    • Similar to Hoogerwerf and Wise 1994 {1025}
    • The explanted UIEAs typically had become encapsulated, the encapsulation was the cause of the cortical depression.
    • Only 1 did not become encapsulated in dura.
    • This encapsulation explains the gradually varying recording properties -- the electrodes were moving out of the brain.
    • "The capsule which formed around the substrate of the UIEA was usually continuous with the dura, which was enmeshed directly to the overlying skull. The encapsulated array therefore had no freedom of movement with respect to the skull, and this may have caused local trauma which reduced the possibility of recording neural activity. This relative micromovement between the fixed array and the ‘floating’ cortical tissue may also be responsible for sustaining continued growth of the encapsulation as described above."
    • Have tried putting teflon on the top of the Utah array -- did this work?
  • Two UIEAs were not found near the cortical surface -- these two arrays were totally removed from the leptomeningeal space. although originally implanted into the cortex beneath the dura, at the time of sacrafice these arrays were found above the repaired dura, and the implanted cortex showed no evicence of cortical implant.
  • Some electrodes healthy; other showed chronic inflammation.
  • General and intense inflamation in the upper layers of cortex even on their best-performing array; no guarantee that this ctx was working properly, as it is heavily compressed with fibroblasts.
  • Regarding vascluature, see {1024}.
  • Say that the largest impediment is the formation of a capsule around the implant. (Do not mention issue of infection; I guess cats have strong immune systems as well?)
  • Rather good biological discussion and conclusion. worth a re-read. "We currently recommend that the UIEA be used for acute and short-term applications."
    • Not too many follow-ups re teflon or fixing the encapsulation problem: See {1026}
      • Indeed, {1027} doesn't even cite this! Too disastrous?


hide / / print
ref: -0 tags: Seymour thesis electrode lithography fabrication date: 02-05-2012 17:35 gmt revision:4 [3] [2] [1] [0] [head]

Advanced polymer-based microfabricated neural probes using biologically driven designs.

  • References {1109}
  • Thermal noise from 280 um^2 or 170 um^2 gold recording sites much higher than PEDOT coated sites.
  • Used an interdigitated contact-free probe for measuring insulation impedance change. Very smart!
    • Water molecules will diffuse 15 um / minute in parylene (Yasuda, Yu et. al 2010).
    • In the frequency range critical for neural recording and stimulation, 500-5k, impedance moculus decline was small.
    • 1 hr soak at 60C.
  • Chapter 3 details 60-day soak of Parylene-C + reactive parylene insulation performance testing.
    • Regular parylene seems to work perfectly fine, no better than the PPX heat-treated devices.
    • Heat treatment does improve quality -- 200C in a vacuum oven for 2 days. (Li, Rodger et al 2005)
      • However -- this increases the brittleness.

hide / / print
ref: Towe-2007.05 tags: RF recording passive backscatter variactors date: 01-06-2012 02:56 gmt revision:3 [2] [1] [0] [head]

IEEE-4227238 (pdf) Passive Backscatter Biotelemetry for Neural Interfacing

  • ahaha. Someone else had the same idea, about at the same time. And they got it to work!

IEEE-5993487 (pdf) A Fully Passive Wireless Microsystem for Recording of Neuropotentials Using RF Backscattering Methods

  • Still not that sensitive -- about an order of magnitude too coarse.
  • Also, no multiplexing.
  • But: there is room, I think this technology has potential.
  • range only 1.5cm.
  • suggest performance can be improved by increasing the nonlinearity of the variactors.
  • Other papers by the author feature ultrasound-powered microstimulation. He's clearly into alternative approaches.


Towe, B.C. Neural Engineering, 2007. CNE '07. 3rd International IEEE/EMBS Conference on 144 -147 (2007)

hide / / print
ref: Kennedy-1989.09 tags: Kennedy neurotrophic electrode recording fabrication 1989 electrophysiology date: 01-03-2012 03:21 gmt revision:2 [1] [0] [head]

PMID-2796391[0] The cone electrode: a long-term electrode that records from neurites grown onto its recording surface.

  • A piece of the sciatic nerve is placed in the glass cone before implantation in the cortex of a rat.
  • A neurite can be an axon or dendrite.


[0] Kennedy PR, The cone electrode: a long-term electrode that records from neurites grown onto its recording surface.J Neurosci Methods 29:3, 181-93 (1989 Sep)

hide / / print
ref: -0 tags: LDA myopen linear discriminant analysis classification date: 01-03-2012 02:36 gmt revision:2 [1] [0] [head]

How does LDA (Linear discriminant analysis) work?

It works by projecting data points onto a series of planes, one per class of output, and then deciding based which projection plane is the largest.

Below, to the left is a top-view of this projection with 9 different classes of 2D data each in a different color. Right is a size 3D view of the projection - note the surfaces seem to form a parabola.

Here is the matlab code that computes the LDA (from myopen's ceven

% TrainData and TrainClass are inputs, column major here.
% (observations on columns)
N = size(TrainData,1);
Ptrain = size(TrainData,2);
Ptest = size(TestData,2);

% add a bit of interpolating noise to the data.
sc = std(TrainData(:)); 
TrainData =  TrainData + sc./1000.*randn(size(TrainData));

K = max(TrainClass); % number of classes.

%%-- Compute the means and the pooled covariance matrix --%%
C = zeros(N,N);
for l = 1:K;
	idx = find(TrainClass==l);
		% measure the mean per class
	Mi(:,l) = mean(TrainData(:,idx)')';
		% sum all covariance matrices per class
	C = C + cov((TrainData(:,idx)-Mi(:,l)*ones(1,length(idx)))');

C = C./K; % turn sum into average covariance matrix
Pphi = 1/K;
Cinv = inv(C);

%%-- Compute the LDA weights --%%
for i = 1:K
	Wg(:,i) = Cinv*Mi(:,i);
		% this is the slope of the plane
	Cg(:,i) = -1/2*Mi(:,i)'*Cinv*Mi(:,i) + log(Pphi)';
		% and this, the origin-intersect.

%%-- Compute the decision functions --%%
Atr = TrainData'*Wg + ones(Ptrain,1)*Cg;
	% see - just a simple linear function! 
Ate = TestData'*Wg + ones(Ptest,1)*Cg;

errtr = 0;
AAtr = compet(Atr');
	% this compet function returns a sparse matrix with a 1
	% in the position of the largest element per row. 
	% convert to indices with vec2ind, below. 
TrainPredict = vec2ind(AAtr);
errtr = errtr + sum(sum(abs(AAtr-ind2vec(TrainClass))))/2;
netr = errtr/Ptrain;
PeTrain = 1-netr;

hide / / print
ref: Shinkman-1974.06 tags: Shinkman Bruce Pfingst operant conditioning visual cortex cat ICMS 1974 stimulation date: 12-29-2011 05:13 gmt revision:4 [3] [2] [1] [0] [head]

PMID-4598035[0] Operant conditioning of single-unit response patterns in visual cortex.

  • In cat V1 -- suprising, this is usually considered to be sensory.
  • implanted bilater tripolar stimulating electrodes aimed at the lateral hypothalamus. These were tested for self-stimulation, and preferred locations/currents were selected for optimal ICS reinforcement.
    • 200 bar presses in 8 minute test.
  • Anesthetized, immobilized, head-restrained, contact-lens focused cats.
  • Back projected stimuli onto a screen 50 cm from eye ; dot, bar, or small spot was effective in triggering patterned response, as with many of these studies.
  • For conditioning: set a threshold at the third quartile (1/4 of trials exceeded threshold); comparator circuit counted the number of spikes during stimulus presentation, and if threshold was exceeded, reinforcing ICS was delivered.
    • Reinforcing ICS started 300ms after visual stimulus and lasted 500ms.
  • Conditioning was deemed successful if the mean trial firing rate for the last 50 conditioned trials had a mean firing rate > 30% larger than the first 50 control trials.
    • While recording some cells, ICS reinforcement was delivered at random as control.
  • Conditioning produced changes within stimulus presentation but not outside.
  • They consider the use of an immobilized subject is a pro -- better control, rules out alternative explanations based on motor feedback.


[0] Shinkman PG, Bruce CJ, Pfingst BE, Operant conditioning of single-unit response patterns in visual cortex.Science 184:4142, 1194-6 (1974 Jun 14)

hide / / print
ref: Douglas-1991.01 tags: functional microcircuit cat visual cortex microstimulation date: 12-29-2011 05:12 gmt revision:3 [2] [1] [0] [head]

PMID-1666655[0] A functional microcircuit for cat visual cortex

  • Using in vivo stim and record, They describe what may be a 'cannonical' circuit for the cortex.
  • Not dominated by excitation / inhibition, but rather cell dynamics.
  • Thalamus weaker than poysynaptic inupt from the cortex for excitation.
  • Focuses on Hubel and Wiesel style stuffs. Cats, SUA.
  • Stimulated the geniculate body & observed the response using intracellular electrodes from 102 neurons.
  • Their traces show lots of long-duration inhibition.
  • Probably not relevant to my purposes.


[0] Douglas RJ, Martin KA, A functional microcircuit for cat visual cortex.J Physiol 440no Issue 735-69 (1991)

hide / / print
ref: -0 tags: video games education learning flow work date: 12-13-2010 04:31 gmt revision:2 [1] [0] [head]

Learning by Playing: Video Games in the Classroom

  • My initial reaction was very skeptical and critical:
    • Video games are pleasurable and addictive because they are not like real life; the problems (more accurately, puzzles) posed always have some solution, again unlike the real world.
    • A purpose of education is to convey both information about the world and strategies for understanding it / succeeding in it (or, perhaps more relevantly, strategies what not to do -- see iatrogenic science). The less the learning environment reflects the real world, the less the students learn.
      • Up to a point, of course - part of the role of education is to render hierarchical something that was arrived at very randomly and haphazardly so as to be easier to remember and use. The learning environment has to reflect the William-James-ish pragmatic balance between too simple and too complex.
  • Video games, I initially thought and still feel, reflect less of the real world and its attendant frustrations, hence are inferior for learning about said thing.
    • Upon further thought: perhaps the increase in engagement & flow more than compensates for decreased realism? By the end of the article, I was thinking this. Maybe we should just re-engineer our working environment so that all tasks can be re-framed as addictive, pleasureable games. We've been changing the environment forever, and have already gone a bit down this path, so why not? If such is to occur (as I anticipate it will), these kids will be well prepared.
    • The whole purpose of being here is to .. well, enjoy it .. if the kids like doing these things, and they are later equally able to lead productive lives, there is no problem.
  • Playing video games is not the same as learning how to force yourself to study something that you don't understand, something that heretofore you saw no interest in. Games must be designed carefully to afford such choices, so that the players do not blindly follow the task-trail laid out by the designers. Elementary school students of course should explore microcosms with the due understanding that eventually the same processes will/can be applied to the real non-designed exploration that is life...
  • The question at hand (video games in education) is hence isomorphic (or at least related) to a much deeper question: is viewing life a game, a thing to be optimized and solved, a good philosophy? (even the question shows how deeply ingrained the ideas of valuation are!). I say no.

hide / / print
ref: -0 tags: artificial intelligence machine learning education john toobey leda cosmides date: 12-13-2010 03:43 gmt revision:3 [2] [1] [0] [head]

Notes & responses to evolutionary psychologists John Toobey and Leda Cosmides' - authors of The Adapted Mind - essay in This Will change Everything

  • quote: Currently the most keenly awaited technological development is an all-purpose artificial intelligence-perhaps even an intelligence that would revise itself and grow at an ever-accelerating rate until it enacts millennial transformations. [...] Yet somehow this goal, like the horizon, keeps retreating as fast as it is approached.
  • AI's wrong turn was assuming that the best methods for reasoning and thinking are those that can be applied successfully to any problem domain.
    • But of course it must be possible - we are here, and we did evolve!
    • My opinion: the limit is codifying abstract, assumed, and ambiguous information into program function - e.g. embodying the world.
  • Their idea: intelligences use a number of domain-specific, specialized "hacks", that work for limited tasks; general intelligence appears as a result of the combination of all of these.
    • "Our mental programs can be fiendishly well engineered to solve some problems because they are not limited to using only those strategies that can be applied to all problems."
    • Given the content of the wikipedia page (above), it seems that they have latched onto this particular idea for at least 18 years. Strange how these sorts of things work.
  • Having accurate models of human intelligence would achieve two things:
    • It would enable humans to communicate more effectively with machines via shared knowledge and reasoning.
    • (me:) The AI would be enhanced by the tricks and hacks that evolution took millions of years, billions of individuals, and 10e?? (non-discrete) interactions between individuals and the environment. This constitutes an enormous store of information, to overlook it necessitates (probably, there may be seriuos shortcuts to biological evolution) re-simulating all of the steps that it took to get here. We exist as a cashed output of the evolutionary algorithm; recomputing this particular function is energetically impossible.
  • "The long term ambition [of evolutionary psychology] is to develop a model of human nature as precise as if we had the engineering specifications for the control systems of a robot.
  • "Humanity will continue to be blind slaves to the programs evolution has built into our brains until we drag them into the light. Ordinarily, we inhabit only the versions of reality that they spontaneously construct for us -- the surfaces of things. Because we are unaware that we are in a theater, with our roles and our lines largely written for us by our mental programs, we are credulously swept up in these plays (such as the genocidal drama of us versus them). Endless chain reactions among these programs leave us the victims of history -- embedded in war and oppression, enveloped in mass delusions and cultural epidemics, mired in endless negative-sum conflict \\ If we understood these programs and the coordinated hallucinations they orchestrate in our minds, our species could awaken from the roles these programs assign to us. Yet this cannot happen if knowledge -- like quantum mechanics -- remains forever locked up in the minds of a few specialists, walled off by the years of study required to master it. " Exactly. Well said.
    • The solution, then: much much better education; education that utilizes the best knowledge about transferring knowledge.
    • The authors propose video games; this is already being tested, see {859}

hide / / print
ref: life-0 tags: education wikinomics internet age college university pedagogy date: 06-11-2009 12:52 gmt revision:0 [head]

Will universities stay relevant? and the rest of the wikinomics blog

  • Idea: for universities to remain relevant, they will have to change their teaching styles to match the impatient and interactive internet-raised generation.
  • Notable quotes:
    • [College students today] want to learn, but they want to learn only from what they have to learn, and they want to learn it in a style that is best for them.
    • In the old model, teachers taught and students were expected to absorb vast quantities of content. Education was about absorbing content and being able to recall it on exams. You graduated and you were set for life - just “keeping” up in your chosen field. Today when you graduate you’re set for say, 15 minutes. (heheh)
  • What matters now is a student's capacity for learning. Hence colleges should teach meta-learning: learning how to learn.
  • My opinion: Universities will not die, they are too useful given the collaborative nature of human learning: they bring many different people together for the purpose of learning (and perhaps doing research). This is essential, not just for professional learning, but for life-learning (learning from other's experience so you don't have to experience it). Sure, people can learn by consulting google or wikipedia, but it's not nearly as good as face-to-face lectures (where you can ask questions!) or office hours, because the teacher there has some idea what is going on in the student's mind as he/she learns, and can anticipate questions and give relevant guidance based on experience. Google and Wikipedia, for now, cannot do this as well as a good, thoughtful teacher or friend.

hide / / print
ref: life-0 tags: princeton postmodern education kirn atlantic essay poetry undergrad date: 05-20-2009 05:32 gmt revision:1 [0] [head]

http://www.theatlantic.com/doc/200501/kirn -- goood.

  • quote: "Would it be possible someday—through drugs, maybe, or esoteric Buddhism, or some profound, postapocalyptic languor—to stop coming up with ideas of what we are and then laboring to live up to them?" -- from "The Autumn of the Multitasker". (The title makes me think of "Delta Autumn" by Faulkner, which I love...)

hide / / print
ref: Oskoei-2008.08 tags: EMG pattern analysis classification neural network date: 04-07-2009 21:10 gmt revision:2 [1] [0] [head]

  • EMG pattern analysis and classification by Neural Network
    • 1989!
    • short, simple paper. showed that 20 patterns can accurately be decoded with a backprop-trained neural network.
  • PMID-18632358 Support vector machine-based classification scheme for myoelectric control applied to upper limb.
    • myoelectric discrimination with SVM running on features in both the time and frequency domain.
    • a survace MES (myoelectric sensor) is formed via the superposition of individual action potentials generated by irregular discharges of active motor units in a muscle fiber. It's amplitude, variance, energy, and frequency vary depending on contration level.
    • Time domain features:
      • Mean absolute value (MAV)
      • root mean square (RMS)
      • waveform length (WL)
      • variance
      • zero crossings (ZC)
      • slope sign changes (SSC)
      • William amplitude.
    • Frequency domain features:
      • power spectrum
      • autoregressive coefficients order 2 and 6
      • mean signal frequency
      • median signal frequency
      • good performance with just RMS + AR2 for 50 or 100ms segments. Used a SVM with a RBF kernel.
      • looks like you can just get away with time-domain metrics!!

hide / / print
ref: -0 tags: perl one-liner search files cat grep date: 02-16-2009 21:58 gmt revision:2 [1] [0] [head]

In the process of installing compiz - which I decided I didn't like - I removed Xfce4's window manager, xfwm4, and was stuck with metacity. Metacity probably allows focus-follows-mouse, but this cannot be configured with Xfce's control panel, hence I had to figure out how to change it back. For this, I wrote a command to look for all files, opening each, and seeing if there are any lines that match "metacity". It's a brute force approach, but one that does not require much thinking or googling.

find . -print | grep -v mnt | \
perl -e 'while($k = <STDIN>){open(FH,"< $k");while($j=<FH>){if($j=~/metacity/){print "found $k";}}close FH;}' 
This led me to discover ~/.cache/sessions/xfce4-session-loco:0 (the name of the computer is loco). I changed all references of 'metacity' to 'xfwm4', and got the proper window manager back.

hide / / print
ref: -0 tags: perl xml duplicate entries james date: 11-03-2008 21:48 gmt revision:2 [1] [0] [head]

A friend has many Excel files that he converts to labels for affixing to packages to be shipped. To print the proper number of labels (rather than one label with Qty=20), he needs to duplicate rows in the source excel file based on the Qty column. If you export the excel file to XML, this script should do the trick (you'll have to import the resultant XML):

$narg = $#ARGV + 1; 
if( $narg ne 2 ){
	print "please specify the file to read followed by the file to write on the command line\n"; 
	$source = $ARGV[0]; 
	$dest = $ARGV[1]; 
	local( $/) ;
	$/ = ""; 
	open(FH, "< $source"); 
	open(FHO, "> $dest"); 
	$j = <FH>; #slurp the entire file into one string. 
	# look for the header - 
	if( $j =~ s/(.*?)<Sheet1>/<Sheet1>/s){
		print FHO $1 ; 
	while ($j =~ /(<Sheet1>.*?<\/Sheet1>)/gs ){
		$newl = $1; 
		if( $newl =~ /<Qty>(\d+)<\/Qty>/ ){
			$qty = $1; 
			$newl =~ s/<Qty>\d+<\/Qty>/<Qty>1<\/Qty>/ ; 
			for( $g=0; $g<$qty; $g++){
				print FHO $newl ; 
	print FHO "</dataroot>" ; # assume that the footer is always this 
	close FH; 
	close FHO; 
not very complicated, but worth posting, I guess. More examples on the internet = better ;-) Note that I hard-coded to split on <Sheet1> -- check your XML files!!

hide / / print
ref: notes-0 tags: telecommunications FCC wireless regulation government date: 02-26-2008 04:18 gmt revision:2 [1] [0] [head]


  • quote: Further loosening of the regulatory grip would stimulate investment and innovation in high-tech market segments, providing a long-term, sustainable boost for the American economy.
  • exactly! 2.4 Ghz, the 'junk' band, is TOO CROWDED. more open spectrum => more products and services => greater tax revenue (which would be >> revenue gained from stupid, greedy FCC auctions).
    • This revenue is passed onto the consumers. Think about it .. companies pay $20B for wireless, which they must pass on to the consumers, say 100M => an implicit $200 governmental 'tax' on something that should be free and clear. The government should just tax corporations & consumers directly, and not force companies to shoulder huge debts and risks. These debts put a very high bar for entering the competitive field .. which limits competition & technological advance.
  • however ... The author does not want to impose net neutrality. WHAT???? That means that corporations can effectively regulate information consumption. We are not just consumers, Mr. Randolph May.
    • eh.. I guess they already do this, e.g. Fox News. All the more reason to change the system.
    • Provided there is some choice in the marketplace, consumers will be able to reject any offensive limitation imposed by one 'provider', so perhaps it will work.

hide / / print
ref: bookmark-0 tags: internet communication tax broadband election? date: 11-21-2007 22:18 gmt revision:6 [5] [4] [3] [2] [1] [0] [head]


Consumers also pay high taxes for telecommunication services, averaging about 13 percent on some telecom services, similar to the tax rate on tobacco and alcohol, Mehlman said. One tax on telecom service has remained in place since the 1898 Spanish-American War, when few U.S. residents had telephones, he noted.

"We think it's a mistake to treat telecom like a luxury and tax it like a sin," he said.

from: The internet could run out of capacity in two years


  • I bet this will turn into a great excuse for your next president not to invest on health, but rather on internet. --ana
  • Humm.. I think it is meant to be more of a wake-up call to the backhaul and ISP companies, which own most of the networking capacity (not the government). I imagine there will be some problems, people complain, it gets fixed.. hopefully soon. What is really amazing is the total amount of data the internet is expected to produce - 161 exabytes!! -- tlh
  • They won't upgrade their capacity. After all, the telcos spent a lot of money doing just that in the dot-bomb days. No, instead they will spend their money on technologies and laws that allow them to charge more for certain types of packets or for delivering some packets faster than others. You think it's a coincidence that Google is buying up dark fiber? --jeo

hide / / print
ref: bookmark-0 tags: bluetooth tutorial specification date: 10-22-2007 16:56 gmt revision:1 [0] [head]


  • has concise details for how the apparently complex bluetooth protocol functions.
Taking a walk inside blutooth EDR
  • bluetooth 1 - 1.2 (1mbps) uses gaussian frequency-shift keying (GFSK), with a frequency deviation of +-160khz
  • bluetooth 2.0 EDR (2mbps) uses pi/4 differential quaternary phase-shift keying (DQPSK). The receiver does not have to know the phase of the transmitter for this. Two bit are transmitted per symbol with this scheme; hence the symbol rate stays the same as bluetooth 1.
  • bluetooth 2 (3mbps) uses 8-differential phase-shift keying to transmit 3 bits / symbol, with the same effective symbol rate. The receiver must know the phase of the transmitter.
  • each of these modulation formats is specified in the packet header, and communication rate is negotiated upon establishing a connection.

hide / / print
ref: notes-0 tags: Blackfin perl loopcounters registers ABI application-binary interface gcc assembly date: 10-19-2007 17:24 gmt revision:2 [1] [0] [head]

The problem: I have an interrupt status routine (ISR) which can interrupt the main, radio-servicing routine at any time. To keep the ISR from corrupting the register values of the main routine while it works, these registers must be pushed, and later popped, to the stack. Now, doing this takes time, so I'd prefer to pop / push as few registers as possible. Namely, I don't want to push/pop the hardware loop registers - LC0 (loop counter 0), LB0 (loop bottom 0, where the hardware loop starts) & LT0 (loop top 0, where the hardware loop ends).

Gcc seems to only touch bank 1, never bank 0, so I don't have to save the 3 regs above. However, to make sure, I've written a perl file to examine the assembled code:

my $file = "decompile.asm"; 
open(FH, $file); 
@j = <FH>; 
my $i=0; 
my @badregs = ("LC0", "LB0", "LT0"); 
foreach $reg (@badregs){
	foreach $k (@j){
		if($k =~ /$reg/){
			print "touch register $reg : $k";
#tell make if we found problems or not.
	exit 1;
	exit 0;

'make' looks at the return value perl outputs, as instructed via the makefile (relevant portion below):

	rm -f *.ldr
	$(LDR) -T BF532 -c headstage.ldr $<
	bfin-elf-objdump -d headstage.dxe > decompile.asm
	perl register_check.pl

if it finds assembly which accesses the 'bad' registers, make fails.

hide / / print
ref: bookmark-0 tags: quotes Helen Keller teaching education date: 10-09-2007 17:34 gmt revision:1 [0] [head]


  • Only some 12% of a national sample of almost 400,000 teachers received less then average ratings from students. John Centra (heh!)

hide / / print
ref: bookmark-0 tags: blackfin ELF freestanding applications boot date: 08-01-2007 14:40 gmt revision:0 [head]


very good, very instructive.

hide / / print
ref: bookmark-0 tags: phase converter gilbert cell analog multiplication RF bipolar transistors phase detector modulator date: 07-23-2007 20:48 gmt revision:0 [head]


hide / / print
ref: Blankertz-2003.06 tags: BMI BCI EEG error classification motor commands Blankertz date: 0-0-2007 0:0 revision:0 [head]

PMID-12899253 Boosting bit rates and error detection for the classification of fast-paced motor commands based on single-trial EEG analysis

  • want to minimize subject training and maximize the major learning load on the computer.
  • task: predict the laterality of imminent left-right hand finger movements in a natural keyboard typing condition. they got ~15bits/minute (in one subject, ~50bits per minute!)
    • used non-oscilatory signals.
  • did a to detect 85% percent of error trials, and limited false-positives to ~2%

hide / / print
ref: bookmark-0 tags: machine_learning classification entropy information date: 0-0-2006 0:0 revision:0 [head]

http://iridia.ulb.ac.be/~lazy/ -- Lazy Learning.

hide / / print
ref: bookmark-0 tags: muscle artifial catalyst nanotubes shape-memory alloy date: 0-0-2006 0:0 revision:0 [head]