With most books, I find that the 100 pages could have been condensed into 5. That's not the case with Hacking the Xbox, I'm happy to report. It's MIT culture that produces this kind of writing style that is a joy to read.
That being said, these are the specific things I'd like to remember :
He started with an Apple II when he was a kid, but references to Apple end there. Thank God! No credit anywhere to Steve Jobs:)
His best advice to aspiring hardware hackers is to be persistent and to be thorough. Persistence and thoroughness come naturally if you love what you are doing.
Plenty of gems on soldering - kapton tape, chip removal alloy. Naprotek assembles BGA packages, etc. If you didn't know how valuable flux was before, you will after reading this one. I once struggled with some soldering and then the tech did it easily. I saw him use flux and said, "so that's your secret." His response, "Dude, it's no secret."
FPGAs are excellent choices for implementing cryptographic functions if you are interested in doing brute-force keysearches or encrypting large amounts of data quickly. Really?
FPGAs can interface with just about any signaling protocol - remember that - you can talk to just about anything.
Basic programming skills to be able to build yourself simple tools to analyze data and netlists are worth developing.
Intuition, pattern matching and experimentation are the core skills of the hacker.
Starting young and taking time and trying out a lot teaches you the value of thinking ahead and envisioning the final result. You do the hard work upfront only if you know the value of the hard work. If you're an employee, you won't value that kind of effort - which is what I saw in my co-workers - they never took the trouble to pick up valuable skills or decide to be knowledge sponges.
Before you start laying out your PCB, order all of them components - you'll find some that you took for granted aren't available. All you'll need is a simple change. Before you ship the layout for production, print it out actual size and place the components on there. Any gotchas?
You get the sense that this guy could see the bits and bytes of a printed out gif file and reconstruct the image in his mind.
FPGA timing models are conservative - worst case. If you know what you're doing and can figure out that you're being limited in frequency because of skews between related signals, then you can cleverly insert delays in select paths (delay elements) and recover and extract much higher than advertised speed (Pg 242).
Considering how much debugging I'll be doing in the months ahead, this one will serve me well : as a general rule, you should observe at least two, preferably three, symptoms that are consistent with a cause before concluding that you have found the root cause. So, how to apply this proactively? Easy - during the design, be grateful for every time the simulator said "doesn't work" - and record the symptom and the root cause. Collect these. Then, in the end, collect up the root-causes and symptoms - this kind of effort is the LEAST you can do.
Hard-to-find tips on otherwise easy-to-do tasks involving everyday technology, with some advanced insight on history and culture thrown in. Brought to you by a master dabbler. T-S T-S's mission is to boost your competitiveness with every visit. This blog is committed to the elimination of the rat from the tree of evolution and the crust of the earth.
Sunday, January 11, 2015
Saturday, January 10, 2015
Raspberry Pi CGI Python Serve JPEG Image Howto
Note that lighttpd doesn't care about the interpreter your specify in the shebang (#!/usr/bin...) You have to ensure (default is usually good enough, supports .py) cgi.assign in the /etc/lighttpd/lighttpd.conf has ".py" => "/path/to/python"..
That done, this will do it for you (you'll also have to add "mod_cgi" to your server.modules in the .conf, and put this one in the cgi-bin directory in /var/www if you're using lighttpd that is) :
#!/usr/bin/python
print "Content-Type: text/html"
print
print """\
<html>
<body>
<h2>Hello World!</h2>
"""
data_uri = open('/home/pi/Desktop/snapshot.jpg', 'rb').read().encode('base64').replace('\n','')
img_tag = '<img src="data:image/jpeg;base64,{0}">'.format(data_uri)
print(img_tag)
print """\
</body>
</html>
"""
That done, this will do it for you (you'll also have to add "mod_cgi" to your server.modules in the .conf, and put this one in the cgi-bin directory in /var/www if you're using lighttpd that is) :
#!/usr/bin/python
print "Content-Type: text/html"
print """\
<html>
<body>
<h2>Hello World!</h2>
"""
data_uri = open('/home/pi/Desktop/snapshot.jpg', 'rb').read().encode('base64').replace('\n','')
img_tag = '<img src="data:image/jpeg;base64,{0}">'.format(data_uri)
print(img_tag)
print """\
</body>
</html>
"""
Friday, January 09, 2015
Verdict : gEDA vs Kicad vs Partsim vs Circuit-Diagram vs PCBWeb
PCBWeb is the best - but it still doesn't have everything one wants - still, considering it does flip components vertically, that's a big deal :)
Thursday, January 01, 2015
From PC to iPad Through Raspberry Pi
- So, you want to read Dr. Leach's Noise Potpourri
- So, you managed to scavenge them off the internet onto your PC - all the PDFs
- So, you can open them on your PC, but, you think, wouldn't it be nice to look at them on your iPad?
- But, how do you get files onto your iPad? Apple forbids transfer from PC to iPad. As you know, Apple products that fit in your hand are great for absorbing content, but not for creating content.
- So, how can you read these PDFs on your iPad?
- Fortunately, you're a visionary who's set up a Raspberry Pi webserver.
- So, if you can just get to your Pi from your Pad, you're done.
- Easy - you have to set up lighttpd - google it. That'll make what's in your /var/www directory visible to the world - if you care about a static URL like mypi.mynet.org, you need to set up an account with a free DNS service like freedns.afraid.org. Google it.
- Use MS Word (this is the painless way, there are other ways) to start a new file.
- Use M$ Command Prompt (#r, then cmd) to go the directory with the Leach files and do a dir. Then, you right-click on the title bar of the window and do Edit > Mark and select the column of filenames. Then you do R > Edit > Copy.
- Come to your Word window and do a Ctrl-V. Then, Save-As, into the same Leach directory, as a web-page, name index (it'll be htm for now, change to .html on your Pi later).
- Then, double-click on each name and then do Insert > Hyperlink > and put in the name of each file by double-clicking on the available list the Word gives you - come on! This part is easy. Don't give me that look!
- Then, use WinSCP to put the files into a folder on your Pi called (say) leach (includes index.htm).
- On Pi, rename the index.htm to index.html.
- Then, in your /var/www directory do "sudo ln -s ~/Desktop/notes/leach ."
- And you're set.
- You should be able to take your iPad browser to either mypi.mynet.org/leach or 192.168.0.113/leach - which assumes your using port 80 - which you probably aren't :) So, put in the port number you used to set up your lighttpd :) In my case, it's http://mypi.mynet.org:1082/leach. That'll be in the /etc/lighttpd/lighttpd.conf.
- Of course, some CS genius can tell you how to do all this with 2 keystrokes, but that's not me :)
Monday, December 29, 2014
What Advice for the Man Who'd Like to Destroy Cadence?
Isn't it sad to see someone who doesn't know they're shooting themselves in the foot?
A man has been working and working and working.
The product hasn't been selling or selling or selling.
Anyone using it locally? No.
Michael Gerber asks : Are you working on your business or in your business? Ans : F off.
Can you sell a product without finding out what your customers want?
We won't do that - customers want cadence. We're not Cadence.
But, it wouldn't hurt to find out what customers want and what they're upset about and give them something that's great. Consider :
Dual monitor support? Nah - just buy one giant monitor
Bindkeys? Do we log commands to a logfile so that users can collect them up into a macro to do bindkeys? Hmmm..
Symbol editing is horrible - need to fix. Can select portions of shapes to drag, can position pin names relative to pins, etc.. No wonder Cadence needs a staff of thousands..
Can we have options in command mode - like CDNS - when you're placing an instance, give user a way to flip/rotate/etc..?
Routing - provide an autoroute feature like Cadence does for wire routing in Schematics.
When you edit properties on an instance, it gets deselected. Man, this is after so many years of development. Just goes to show - if you don't have a customer driving your schedule, you'll keep on working on your product.. (when what you SHOULD do, read the E-Myth, is work on your business - the HOW, not the WHAT)
Need a better User Experience for notifying of invalid property values - don't just prevent - use a pop up to explain. No harm being like Cadence.
Delete/Undo/Redo : R doesn't exist and DEL key isn't working most of the time.
Drop the "any colour as long as it's black" - that's not going to get you in the door. Find out what customers want. If you have to have dummies, then put them in at the end after you do your final placement prior to routing.
Nasty bug with respect to device resizing - the layout drives the schematic in a totally unreasonable way. I couldn't understand it - on the one hand, we're talking about a 28 nm process. On the other, we want W to be more that 1.6 um. What giveth?
A man has been working and working and working.
The product hasn't been selling or selling or selling.
Anyone using it locally? No.
Michael Gerber asks : Are you working on your business or in your business? Ans : F off.
Can you sell a product without finding out what your customers want?
We won't do that - customers want cadence. We're not Cadence.
But, it wouldn't hurt to find out what customers want and what they're upset about and give them something that's great. Consider :
Dual monitor support? Nah - just buy one giant monitor
Bindkeys? Do we log commands to a logfile so that users can collect them up into a macro to do bindkeys? Hmmm..
Symbol editing is horrible - need to fix. Can select portions of shapes to drag, can position pin names relative to pins, etc.. No wonder Cadence needs a staff of thousands..
Can we have options in command mode - like CDNS - when you're placing an instance, give user a way to flip/rotate/etc..?
Routing - provide an autoroute feature like Cadence does for wire routing in Schematics.
When you edit properties on an instance, it gets deselected. Man, this is after so many years of development. Just goes to show - if you don't have a customer driving your schedule, you'll keep on working on your product.. (when what you SHOULD do, read the E-Myth, is work on your business - the HOW, not the WHAT)
Need a better User Experience for notifying of invalid property values - don't just prevent - use a pop up to explain. No harm being like Cadence.
Delete/Undo/Redo : R doesn't exist and DEL key isn't working most of the time.
Drop the "any colour as long as it's black" - that's not going to get you in the door. Find out what customers want. If you have to have dummies, then put them in at the end after you do your final placement prior to routing.
Nasty bug with respect to device resizing - the layout drives the schematic in a totally unreasonable way. I couldn't understand it - on the one hand, we're talking about a 28 nm process. On the other, we want W to be more that 1.6 um. What giveth?
Thursday, December 25, 2014
Android App to Arm Raspberry Pi Through WiFi
Your Pi has a Ken Lavrsen's motion installed (and a webcam or other useful camera connected) and set up to send you an SMS when it detects motion (how to get it to ignore dogs and cats?)
Here is, therefore, the challenge for Lukasz Skalski :
Design an android app with a slider button (on/off) that will use the WiFi connection to tell the Raspberry to start motion.
Here's one solution :
Private Eye Pi (Light toggler)
.
Here is, therefore, the challenge for Lukasz Skalski :
Design an android app with a slider button (on/off) that will use the WiFi connection to tell the Raspberry to start motion.
Here's one solution :
Private Eye Pi (Light toggler)
.
Saturday, December 13, 2014
Shame on FTDI
Installs driver on Win 7 using CDM v2.12.00 WHQL Certified
Gets
The drivers were successfully installed on this computer.
Driver Name
FTDI CDM Driver Package - Bus/D2XX Driver (08/26/2014 2.12.00)
FTDI CDM Driver Package - VCP Driver (08/26/2014 2.12.00)
I've noticed - nothing slows down this already glacial PC like installing a driver. It's as if it's on the phone on an important call and doesn't have time for something trivial, like me.
After this install, I plug in my Arduino, Windows starts installing a driver again. Why? Wasn't that what we just did?
Anyhow, goes to Device Manager, and USB Serial Port has the yellow exclamation mark thing. I'll bet they didn't get that from Apple.
Driver is still installing btw.
In device Manager > Properties.. things update once the driver install completes, with message :
Program Compatibility Assistant / Windows Requires a digitally signed driver
Driver : FTDIBUS Serial Device Driver
Service : USB Serial Port Driver
Publisher : FTDI Ltd. (Shame on you Brits!)
Location : C:\\Windows\System32\drivers\ftser2k.sys
Device Manager USB Serial Port Properties have updated : General : Windows cannot verify... blah blah (Code 52)
Details :
Driver files (apart from the one listed above )
C:\\Windows\system32\DRIVERS\serenum.sys
C:\\Windows\system32\ftcserco.dll
C:\\Windows\system32\ftserui2.dll
Provider : FTDI Ltd.
File version : 2.12.00.2 built by WinDDK
Digital Signer : Microsoft Windows Hardware Compatibility (then what's your effing problem mate?)
No more yellow exclamation mark in the Device Manager, but, go into Arduino > Tools and Serial Port is greyed out. Thank you very much open source!
Turns out, shame on Symantec too - Go look at the file ftser2k.sys or ftcserco.dll, they both have "Symantec Time Stamping Services Signer - G4". What's the point in the end if it doesn't work? Help me out Apple!
Gets
The drivers were successfully installed on this computer.
Driver Name
FTDI CDM Driver Package - Bus/D2XX Driver (08/26/2014 2.12.00)
FTDI CDM Driver Package - VCP Driver (08/26/2014 2.12.00)
I've noticed - nothing slows down this already glacial PC like installing a driver. It's as if it's on the phone on an important call and doesn't have time for something trivial, like me.
After this install, I plug in my Arduino, Windows starts installing a driver again. Why? Wasn't that what we just did?
Anyhow, goes to Device Manager, and USB Serial Port has the yellow exclamation mark thing. I'll bet they didn't get that from Apple.
Driver is still installing btw.
In device Manager > Properties.. things update once the driver install completes, with message :
Program Compatibility Assistant / Windows Requires a digitally signed driver
Driver : FTDIBUS Serial Device Driver
Service : USB Serial Port Driver
Publisher : FTDI Ltd. (Shame on you Brits!)
Location : C:\\Windows\System32\drivers\ftser2k.sys
Device Manager USB Serial Port Properties have updated : General : Windows cannot verify... blah blah (Code 52)
Details :
Driver files (apart from the one listed above )
C:\\Windows\system32\DRIVERS\serenum.sys
C:\\Windows\system32\ftcserco.dll
C:\\Windows\system32\ftserui2.dll
Provider : FTDI Ltd.
File version : 2.12.00.2 built by WinDDK
Digital Signer : Microsoft Windows Hardware Compatibility (then what's your effing problem mate?)
No more yellow exclamation mark in the Device Manager, but, go into Arduino > Tools and Serial Port is greyed out. Thank you very much open source!
Turns out, shame on Symantec too - Go look at the file ftser2k.sys or ftcserco.dll, they both have "Symantec Time Stamping Services Signer - G4". What's the point in the end if it doesn't work? Help me out Apple!
Monday, December 08, 2014
Just 4 Years Out of College. How Did She Do It?
Laura Kassovic makes me feel like I've wasted my whole life.
Now, if I can take what they've got and whittle it down so I only keep what I need, maybe I can get my prototype in no time..
Incredible. Great job by MbientLab. And they only wanted $8k from Kickstarter!
Now, if I can take what they've got and whittle it down so I only keep what I need, maybe I can get my prototype in no time..
Incredible. Great job by MbientLab. And they only wanted $8k from Kickstarter!
Monday, December 01, 2014
Subscribe to:
Posts (Atom)

