word press is a PITA
January 1, 2010
It sure is. The machine I normally use does not have enough CPU horse-par to use the word press WYSIWYG editor. So i have to use a faster machine.
Lets back up. I have an antique computer with antique OS. A quaint Dell Inspiron 8100 with win2K that has had its kernel patched more than my grandma’s quilts. It’s nothing to brag about, only 1.2ghz, 512ram, and 160gb drive. But it has a 1600×1200 screen which is pretty damn bad-ass when it comes to writing code. Oh yeah, and thanks to the patch work – virtually no DRM. The machine is junk by consumer standards which makes it all the better. Below is a picture of my nifty laptop which lacks the cpu to run word press’s editor.

You see that? I remove that damn touch pad. Nothing like an input device that requires more strokes than you would give yourself. I thought it would be neat to use a real PCB in place of the plastic. While at it i decided to make my own touch buttons for the mouse since the OEM buttons are not placed properly for my thumb.
So needless to say, i use that machine all the time – even though i have a Thinkpad that is 4x better in every aspect other than video. The think pad’s video blows hard core, think 1024×768.
XMOS XC: A pointless language?
October 23, 2009
No pun here, this seems to be fact. XC does NOT support pointers, struct bitfields, floats, long long math, or goto. Technically this makes it a pointless language. Ok i’m done playing around(don’t take this the wrong XMOS guys) I’ll quote from “Programming XC on XMOS Devices” page 14/139 section 1.6:
“XC provides many of the same capabilities as C, the main omission being support for pointers. Consequently, many programming errors that are undefined in C are knownto be invalid in XC and can be caught either by the compiler or raised as run-time exceptions. All of XC’s data types and operators have the same meaning as in C, and user-defined types including structures, unions, enumerations and typedefs are also supported. The extensions for pass-by-reference parameters and multiple-return functions provide support for operations usually performed using pointers in C. XC’s scope and linkage rules are the same as with C, and both languages use the same
preprocessor. XC does not support floating point, long long arithmetic, structure bit-fields or volatile data types, and no goto statement is provided. These restrictions may be relaxed in future releases to improve compatibility between languages.”
Ok, so they only axed the head of pointers, we still have the ability to pass by reference and apparently it is illegal to pass more than one value of the same object so XC is a semi-rigid language. XC REQUIRES that case statements terminate with either BREAK or RETURN. Another thing that caught my attention was multiple function returns. 13/139 section 1.4.3: “A function may be declared as returning more than one value” This renders the following code block legal in XC.
{int , int} swap (int a, int b)
{
return {b, a};
}
void main ( void ){
int a = 1;
int b = 2;
{a, b} = swap (b, a);
}
More thatnone return value, neat.
Intronix LogicPort: RIP
October 23, 2009
The EEPROM utility was reactivated and programmed the device. I then opened the logic port application and it detected the logic port. It never made it beyond ”configuring hardware” status and eventually threw and error with a debug report. So, the logic port’s FPGA must be damaged. It’s a BGA chip so i’m not going to attempt to reflow. I don’t have a pick and place system anyway.
At the very least i can attest that Intronix values their customers a great deal. They have provided an unsurpassed level of support. At the very least i have a neat case and a USB FIFO. Maybe i’ll turn the Logicport into a Frankenstein signal injector or something.
This sucks, it is almost like loosing a pet.
Intronix Logic Port: Attempting repair
October 23, 2009
I fried my USB based DLA around three months ago. The funny part is that I suspected it was going to fry before I powered things up – but did so anyway. Every now and then I do something stupid: I go against all better judgment just for the hell of it. So, it’s been about twelve years since i fried a tool(BTW, the smoke was let out of the previous tool under the same suspicions). Maybe i can make it another twelve.
So what happened? I was working on a GE ECM Module which i had adapted with an eight pin dip emulation socket. The chip i was interested in was a 94C64 serial EEPROM. This chip contains the program, or settings for a particular motor application. Instead of using a board I had previously built to read / monitor the EEPROM I thought it would be neat to use the DLA since it already has SPI filters built in the software.
Lets back up a moment and define exactly how this would have been neat.
“Neat-lazy”: I did not feel like walking across the room to use the proper equipment.
“Neat-ignorant”: I knew very well that common grounds would expose a high voltage potential.
“Neat-taught”: With a shrug of the shoulders, a bang, and a tripped breaker i blew up my logic port, the ECM Motor module, and suspected the same of the notebook computer.
With a damn it that was stupid! Why did i just do that? Yes, it was neat.
So i called up Intronix and spoke to Harrison. It just laughed and said i just friend my logic port. He asked if i was sure, and i laughed again and said. yeah, it’s fried. I ended up replacing a the USB FIFO and an EEPROM. The first repair attempt did not look to promising. While testing the USB FIFO i was getting some errors and i could not read the EEPROM at all. I put the logic port to the side to work on when i had more free time.
A little over a month ago i attempted to repair the logic port again. This time, things went well. The USB FIFO worked as i expected, and the EEPROM functioned. I then contacted Harrison again and told him i was read to load the EEPROM. We had some problems with gmail and my free time was running short so i put the logic port to the side again. A few days past and i found some more time, so i made arrangements to use a friend’s email. Later that week i got the files i needed and decided to wait untill i have plenty of time to work on the logic port.
Yesterday that time came, when i tried to use the EEPROM utility provided by Intronix i found that it was time limited! So i contacted Harrison for new activation, At this point i’m really starting to feel like a PITA; in the same token my logic port may be ok so i can’t give up now- not when i’m this close to finding out if all the trouble was worth while.
Right now i’m waiting for Harrison to active a new key so that i can load the EEPROM. I must say, I am very impressed with the service from this company. Whether my logic port works or not i will be buying another in the near future. After all, the logic port has been at my side for nearly five years with no major problems.
XMOS KX-1: moving on to XC
October 21, 2009
Now that i have a much better understanding of the hardware, interfacing, and programming methodology i am moving on to study XC. I’ve worked with dozens of cpu’s, cpld’s, asics, micro controllers. the xmos chip’s I/O implementation is strange to say the least. I need to get my head wrapped out this aspect before i can let loose and develop some code. I’ve tossed together some code that blinks the leds, and then rolled a bit banger to dump some data out the led *wow*. By the way xmos has a pdf about programming in XC.
XMOS XTAG-2 Digging deeper
October 19, 2009
Since i can’t quite use the XTAG-1 as a virtual com port at the moment, i decided to take a closer look at tha actual hardware. Xmos provided a light weight XTAG-1 document that provides just enough information to dig deeper.

The XTAG-1 uses a XMOS XS1-L1 LQ64 chip(XS1-L1 core).

The SMSC USB3318 is a High speed USB transceiver, ULPI+ interfaced. So far things look to be fairly straight forward.
…Back to the documents
XMOS XK-1 bummer
October 19, 2009
So, i was excited about the possibilities of a Virtual Com port with the XTAG-2, but apparently errata strikes again. Over at the Xlinker forum, Matt has cleared the confusion. So currently a proprietary terminal is supported. I need to learn more about XMOS architecture before i figure out the route i plan to take.
bummer.
XMOS XK-1 Finally working
October 19, 2009
I tried my notebook and the XK-1 worked the first time without issue. About the other PC, it has an 8 port PCI-USB card which has never gave me trouble before. But it will not work with the XK-1. I may tinker around later to see if it has any updates.
So, at this point i can attest that XMOS Development Environment (9.9.0) does in fact work on Windows 2000 SP4, java version “1.6.0_16″ , Intel 82801DB/DBM USB Enhanced Host Controller
Now that i have a functional development board my first plan is to write some classic goat code (“C”) and bit bang a serial port. (yes i know that xmos has supplied example xc code in xc1-uart.xc)

So if i understand this correctly i should be able to roll some serial code which can then interact with any decent serial application. I don’t see a virtual com port in the device manager so there may be some tinkering to get this setup. Back to the documents….
XMOS XK-1 First impressions: no go
October 17, 2009

Out of the box the Xmos XK1 has some code to flash 4 leds. The names are likewise: Led0,Led1,Led2,Led3.
There are two buttons on the XK1. BUT1 ,BUT2.
This caught my eye right away. Are there two different naming conventions or is there a missing button “BUT0″.
I looked for another button but i sure don’t see it. At this point i assume there are two naming conventions … yay!
After installing the XMOS Development Environment 9.9.0 i had to grab the JRE . This doesnt make any sense to me since the tool is based around Eclipse. Xmos should have supplied the latest JRE. Maybe there is a licensing issue or something. Next, 9.9.0 claims to require XP SP2, if that is true this is as far as i am going since i run 2K sp4. I do not own XP nor do i intend to upgrade from 2K. To digress, i have many friends still using 98 first edition.
So i tried to install anyway. The installer worked without complaint so it must not be checking OS version. In this case why list the requirement of XP SP2?
So i followed the XK-1 Tutorial. I was able to create the project, examine the code, cleanly build the project.
I can not run the code. When i try to run the code pressing the green metaphor button (run led test) i see a status bar indicate that the code is being loaded.
After this i looked at the board and the default code was still running. So no go.
There are NO status leds what so ever on the Xtag-2 board. Thanks guys…
I then removed the usb connection from the computer and tried to run the tutorial again – This time hoping to see a communication error between host and target. Not so, the same status window opened up and indicated that the code was being loaded.
I assume it is operating in an emulation mode so i need to hunt this down.
Xmos XK1 has arrived
October 17, 2009

The Xmos XK1 kit has finally arrived. This kit was supplied for the Xmos design challenge. I had chosen µScada due to the broad range of applications. This allows a great deal of flexibility in my actual project’s example application. I have not narrowed this down, at the moment it will be one of the following: HVAC, Automotive, or Scientific/Laboratory.

When i opened the box i noticed that the programmer had been opened after the static label had been applied. //Great// what should i expect from this? Did someone goof up and try to correct a mistake?

So here are the boards. I always enjoy seeing a 1.0 sticker on a development board don’t you?