Friday, August 16, 2013

Keeway Hacker 150cc Scooter + Linksys WRT54G Router Running DD-WRT

Today I am looking for the right place to mount a WRT54G router in my 150cc Keeway scooter.  In the last post I built a JTAG cable to revive some Linksys routers.  Not only did I revive a WRT54G, I ended up making a great USB parallel port breakout for use with a breadboard.  


So today, I set off to see whether or not a Linksys router, running DD-WRT, could find a spot somewhere in my Keeway Hacker 150cc Scooter.  With a name like that I just couldn't resist.  I had spent a few days hunting for the best place.  I did not, just want to throw mount it under the seat.  I use the compartment for my spare passenger helmet and did not want to give it up.  Also, I wanted the router completely concealed.  In my search I ended up removing the whole seat.  I was thinking of mounting it around the inside of the body where the tail brake light is located or toward the gas tank.  However, those locations just did not have enough real estate.  


Finally, looking under the front "hood" compartment of the scooter.  I managed to find that by turning the router upside down there was just the right amount of space.  The fit was extremely tight but by removing one antenna and then maneuvering the router into place it would make it.



I was able to screw the antenna back on, once the router made it all the way in.  In the end I managed to find a great spot.  I liked it so much I wired up power and five minutes later I can close it all up.  Now I can play around with the little router from any computer on the network.


This project gave me some good ideas for future projects.  Making the tail brake light completely addressable and controlling it with aforementioned router, for one.  And maybe a temperature and RPM sensor for the engine as another.  I have a lot planned for this little scooter.  My next go at this will probably be to add a SD card reader to the router and populate the serial port(s).


Tuesday, August 6, 2013

Jtag Cable for Nefarious Deeds

I recently found myself with a stack of defunkt linksys routers and a need to reflash their "CFE.bin" files.  While not completely bricked the tftp method was a "no go" at bringing these bad boys back from the grave.  After the customary few hours on Google, and counting up the parts I had on hand, I settled for making a simple jtag cable rather than a full blown buffered wiggler with selectable voltage source (which I was really leaning toward).

The first objective was to get a working printer port on my bench.  I have a little atom based EEEPC out here in the workshop with no printer port on it to speak of.  Thats where a usb to printer port adapter comes in handy.  I admit I was keeping a little usb-to-centronics printer adapter (36 pin) around, looking for the right project.  For those that don't know, the Centronics Printer was one of the first peripherals for use with the parallel printer port, but now the name usually refers to the pinout style rather than the Centronics Printer Company these days.


While the style is a centronic printer (36 pin) rather than the (25 pin) printer ports we come to see on the back of PCs, this adapter still shows up as a printer port.  In Linux after loading the driver with modprobe ppdev and unloading the line printer driver with rmmod lp, this gives you a printer port to address with tjtag at /dev/parport0.


The next step was to break out the pins of the printer adapter in a logical fashion.  After removing the shielding from the printer port side, the pins were bent outward and pre-tinned.  I have some pop-in standoff-thingies in my parts box that were just asking to be used in this project.


I use them as pin headers for plugging right into a breadboard.  After the whole thing was glued and soldered into place, a trip to the bench grinder cleaned up the edges.  The printer port fits nicely into the breadboard, and is now a modular component to my bag of tricks.



My next step, was to create a cable header for attaching to the external device's JTAG pinouts.  Since I was going to use it on more than one router, I wanted to make something durable as well as modular, so I opted on making a reusable 7 wire cable with a pin header to plug in my breadboard too.


Once I had all the parts created, it was a cinch to wire up something on the bench to reflash the firmware.  I didn't have 100 ohm resistors but I did have plenty of 200 ohm ones, putting two in parallel gives me the 100 ohms I was looking for, for each line.


I've got something special in mind for at least one of these routers and a 150cc ultralite motorcycle/scooter sitting here in my garage.  To be sure I'll showcase my work over the next few posts.

Monday, August 20, 2012

Neural Nets vs Well defined lists

I had a thought cross my mind today.  It would be nigh impossible to tell the difference from a highly advanced artificially intelligent being, than from an equally advanced well thought out preprogrammed list of responses.  While the computing power necessary for human scale intelligent behavior is staggering, the computing power to follow a list of instructions that mimic that behavior, has been around for a decade or more.  What this means basically, it that logically we should be able to source a large amount of processing power once to create a "list"of many many possible responses that an android brain may need, e.g. walking/jumping, and of course talking/listening responses.  Then the "list" would be copied to awaiting robot bodies built with the minimal processing power needed to perform from the list. Even though the work and research to bring something like this about is incredible, it none the less has a definite high possibility of probability in my book.

Now where am I gonna find a semi trailer full of FPGAs, and where am I gonna hide it from my wife?

Wednesday, June 27, 2012

Ubuntu 12.04 LTS vs Compile all the things!

I recently committed myself to giving up Natty 11.04, and moving on to Precise 12.04. Even though the name is ghastly and the IU is crippled, the bones are strong.  The back bone provided an old reliable feel for an old hack like me who spends all his time "tappidy tap tap" at the console prompt.  Even when I use the UI I have multiple terms running.  Text scrolling before my eyes , while I watch from above.

I have a ritual I follow every so often, I install every compiler I can get my greedy stubby fingers on just to see what breaks. Let me tell you, I threw rockbox at 12.04, rockbox installs like 4 or 5 different cross compilers on your box from scratch. Then I dumped cegcc into my /src directory and compiled and installed that.  Then I opened synaptic searched for gcc and installed every found compiler and cross compiler there, as long as I avoid conflicts. Precise took all this in stride, now I can spend the next 5 years fixing my UI issues with it.


Friday, June 8, 2012

To program, or not To program

   What is "to program", most of us can learn any scripting language in a day for most tasks.  Some can do most anything in any language, just give us a week to get familiar the old girl.

   Heck, lock us up in a cold dark space, and we'll crank out app after app in any language you want, and call it a day, as long as the money is good. But... what is it?

   Where did it all come from?

   I can... explicitly remember, a point in my life when my time-line changed to lead where I am right now....

<flashback>

   I was 8 or 7.. let me 're' phase that in terms I would have used at that time. I was in the second grade.  My father, bless his soul, had just typed a program into the computer, and I had at the time, been invited to 'try it out' by my mother.

   I suspect now...  that it may have been a hoax, in order to cease my incessant need to disassemble and break and learn about 'everything' in the house, there was nothing sacred to the yearnings of my knowledge. The program was Guess my number, running on a good ol '78 Atari800.

   I don't remember playing the game so much as, what I did once I got bored of it.  I distinctly remember thinking, I want to do 'something' else. Then I recall reaching up and pushing in, the big 'System Reset' button right there on the top, because come on, where else are you gonna put it, right?

   Lucky for me, this did not remove the program from memory, but reset the execution to the basic interpreter.  Had I turned it off and then back on, mind you all my father's hard work would have been lost. And then the next sibling would not have gotten their turn in line, to play the computer 'game'.
</flashback>

That was the day, I became a computer programmer.

Wednesday, March 7, 2012

Robots

Robots! that is right people the word of the day is robots.

I was trying to come up with an idea for a robot body the other day, when I had an revelation. Ever one always goes for the really cool drone type, or bug type robot, then they attach a remote control and wham we have another expensive toy.

So my idea was to spend as little time as possible on the body, and really make sure my robot was going to be autonomous. I've been dabbling around with an OpenCL+fann library and also with ROS, they are available through a Google search if you really are interested. So after toiling  for a few hours and sacrificing a few toys, I give you Nubby the touchy robot.


This will serve as a test bed for sensory organelle as well as being a test bed for me and neural networks in general.

heh heh heh...robots

Sunday, January 15, 2012

Rockbox Robot

I've been day dreaming off and on lately of starting a project to design robots with mp3 players for brains. Most players that run Rockbox have at least a com/usb port and of course audio capture/audio output.

The Com or USB port would be for sending and receiving  information to and from the "body" of the robot. The disk capacity can store instructions and collected data. These two things are simple but, the real innovation would come by using the audio input/output system of the mp3 player, along with some home brew transceiver circuits and some guru level code, as a wireless communications channel. And perhaps I could strap it all on top of a Hex bug. Honey, you now know what I want for my birthday.

But for now just a dream...