Older blog entries for Chicago (starting at number 145)

SDKs and what that means


I’m having a real problem understanding the idea of an SDK. The entire concept is becoming more and more spleurgh (if you don’t mind my making up words). The concept makes sense when tit ties in with a particular IDE. And here’s the problem - why should anything tie into an IDE? The advantage of using something like Ant is that it allows you to build both inside an IDE and outside.

I built a “build bot” a while ago which took its own parameters and called csc.exe from the command line to help do building - because my knowledge was small, it seems that I had missed the point of msbuild. This takes the same project files that Visual Studio produces to do the same builds.

The only problem I have now is that I don’t know if there is a mono alternative to msbuild. If there is, that would be awesome, becuase I can define the build just as I would a java ant build, and know that it would work no matter what kind of system you where going to build for.

So is a SDK actually more then libraries? When it comes to mobile development, they seem to be libraries, maybe some tools which integrate into a particular IDE (for example Eclipse) and maybe also an emulator or test tools of some kind. Perhaps also, with an SDK is just a marketing thing - that you expect with an SDK a higher level of support. 

Why am I writing this? Well, I’m currently struggling with the Windows SDK for .Net 3.5 - I’m having massive problems with it and its compatibility with the Visual Studio C# Express. It would be nicer if instead of complex SDK installers (and from my experience, it is the installer which is the problem) they had Library versions or just “unzippable” folders to get the tools out. 

Anyways. Windows SDK and Visual Studio do not like to be installed in that order - Visual Studio first, THEN the Windows SDK (or at least, if you’re using Express editions because you’re an indie development like me)

Syndicated 2009-04-01 10:01:29 from Holding the Soldering Iron by the Cold End

EAGLE CAD and Valves


Uhh.. ok. The biggest problem I have with EAGLE Cad (and I only have the freeware version here - my job lets me use design tools at work, but most of the stuff I talk about on here is actually for home, and I’m trying to finally get some of it online as part of my “open source” roots.) is…

the lack of parts. Too often I come across a custom part that I want to incorperate in my circuit. When I draw my circuits by hand, thats not a problem, but to get these things online, I need to digitise them, and scan’s of my lab book just really arn’t suitable.

This time, I found the need for a particular Triode - the 6S7L - now, before people start asking me questions about Triodes and Valves in general, I don’t know, this is the first time I’ve ever used them and I’m getting quite excited over the prospect. But, Eagle Cad just dosn’t contain the parts for some of these devices, so more and more I’ve been building my own versions.

Because EagleCad is designed to go from a schematic straight to a board layout, I’ve found that I’ve been using the schematics as close as possible, but I really have been just throwing pins at the package file, meaning that if anyone where to convert my schamtics to boards then they will certainly a) be wrong and b) could be quite ammusing.

Anyways, this:

6sl7dual-triode

is the current working diagram. Yes I stole it. The book in question actually, “22 Radio and Receiver Projects for the Evil Genius” was a Christmas present, and I’m getting quite annoyed with the number of typing mistakes I’m finding in it. I wouldn’t say its the best book - you have to be a genius (or be good at pretending to be one) to understand some of the bits in it, but forging onwards … high voltage valve radio soon.

      

Syndicated 2009-01-02 14:22:29 from Holding the Soldering Iron by the Cold End

Dual interface cards


It seems that some readers have problems when you are using cards with both mifare and ISO14443 cards (such as the Nokia 6131 or 6212). Devices have to … Guess which interface to use and from our experance different devices they have differing prioritys.

The omnikey 5321 we use here actually requires a registry mid to get the driver to change it’s order - not something you can do on the fly but also not as bad as some others which we have not yet found solutions to.

      

Syndicated 2008-10-16 10:37:52 from Holding the Soldering Iron by the Cold End

Systems Administrators vrs Engineers


So a few years back I was doing a fair bit of sys-admining, and a fair bit of programming. I would say probably 50-50 in my time. Since then I actually went down the route of doing a lot more programming, and as little sys-admming as possible. Im a firm beliver that programmers should be forced to do *Some* systems administration so that they understand the concepts and ideas behind security and the other issues that Sys-admins have to deal with, but I also believe that programmers shouldn’t be the sysadmins of the boxe’s they deploy to.

Of course in a small organisatio, you don’t get those kinds of options - its very hard to justify the expense of a specialist sys-admin where every month is another extension on the mortgage of the CEO (or whoever your startup financial backer is).

Anyways, my problem is that on my personal server, I’m not actually very comfortable in claiming to be the sys-admin of it anymore. I havn’t got a clue whats going on with it any more. Four years of solid programming with only minimal systems-administration in the mix. So this is why, when trying to get some of my new code (in Python - you hear that - I’ve broken my “all languages beginning with P are evil” habit) to start on the server, I broke *everything*.

Thank you, goodnight.

      

Syndicated 2008-09-22 10:26:29 from Holding the Soldering Iron by the Cold End

Electronics & Active Smart Posters


So you’ve all seen the video of me making the Prototype 1.2 (back in this post) but now we’re actually gearing up to make a real productised version of it. What this means is turning a prototype system into a single board working version. This presents me with a couple of challenges - mainly over licensing and IP.

I will be the first to recognise that what I’ve done in terms of hardware is hardly rocket science - I’ve taken a module from here, and a module from there, and wired the two together. My touch of genius has come in the form of the code sitting on the microprocessor (module 2) which is driving and controlling the first module.

Module 1 - the really tricky bit, actually isn’t a problem - we’ve paid for a license to use this circuit, and we pay a small royalty for each product we produce with it on.

Module 2 - the microprocessor board, is proving a little more difficult to source - my current build is based upon Arduino, that is I have developed a shield containing Module 1 on it. I was hoping that the license for Arduino would enable me to adapt the circuit design and build the entire board as one. However, Module 2 is released under Creative Commons Attribute Share-Alike License, which basically means if I use their schematics, I have to license the entire board as that.

And looking for other, more friendly “Open Source” schematics, is prooving very tricky to find, so I resorted to a different tactic - just designing the entire microprossor module myself. Actually, it wasn’t that hard - if your design (from the docs of the microprocessor you are building for) then there is only very small descions you can take. It turns out (after comparing my design against the Arduino, and about three other Atmel based prototyping microcontroller boards), that there is only very very slight differences in terms of schematic - and this will also be reflected in layout - following standard design layout “logic” will lead you to the same conclusion.

mmmm, final version sounds so near.

Syndicated 2008-09-09 22:48:25 from Holding the Soldering Iron by the Cold End

Glue4 becomes Proxama


I don’t work for a new company, we’ve just changed our name, so now, I am a honored employee of Proxama. Its been a very painful (for other people in the company) on choosing the new name - it has to be unique, not just in the UK but internationally, and it has to say something about the company. The reasons behind the Proxama brand, being based a little on the NFC world that we’re in, it is kinda nice.

proxama

Also, because we’ve been expanding (again), we’ve had a review of our “official” positions in the company, i.e. Job Titles. Mine’s changed and now I’m the “Systems Architect” which reflects the lower number of coding hours and the higher number of writing and documenting and drawing hours that I do. I like it.

Yes, actually I’m 6 days late in making this post, as it happend on Monday

Syndicated 2008-09-06 11:23:53 from Holding the Soldering Iron by the Cold End

AngryBot - easier .NET app to IRC interface


So I’ve been working a bit on Angrybot recently. For those of you who don’t know, AngryBot is a wrapper around meebey.net’s smartirc4net IRC interface (which can be found at  http://smartirc4net.meebey.net/jaws/ ). Anyways, the idea behind this wrapper was to provide a much simpler interface for people to use an IRC bot as a reporting tool, or as a method of communicating with the people that want to use it.

My view on it is that people are writing their own applications or deamons or services or whatever you want to call them, and want to call IRC functionality from that - they don’t want to be bothered with writing all the IRC handling stuff, (which to be fair, meebey’s code does a lot of it for you), but instead just has hooks into particular commands, or just has it sitting there as a class that they can call “send message” on.

Implementing a command at the moment requires a reference in the project to the Meebey dll, but I am wrapping around that soon.

Now I have a few bugs to fix, and I have to add the parrellism to the normal commands, but its certainly a good start to see it in a public place after sitting on my desktop for 2 years (in various states, including a poker playing bot).

In the mean time, I am currently trying to break/fix some stuff for a “top secret plan”…. mwhahaha haha haha haha ho ho.

Syndicated 2008-09-04 20:56:40 from Holding the Soldering Iron by the Cold End

Arduino as Digital Filter… Hopes downed, and then Revived


I had hoped in my previous post to sample the audio through the use of an analogue input pin on the Arduino, then do some bit manipulation in the form of a Digital filter before playing back. However, my hopes have been crushed with this system:

To test the feasability of this, the code was simple - define an int to store a sample in, call analogRead() to read a byte in, convert this value into a value suitable for the number of output pins, then pass it out.

AnalogRead reads in a value between 0 and 1024, which is a 10 bit number. Because I’ve only got a 6bit DAC, I decided to just take the top 6 bits (I should really try this again with scaling as opposed to just taking MSB).

Now, since starting to write this and battling with lots of media upload tools AND wordpress.com etc, I’ve realised two things. 1) I’m not actually taking the top 6 bits, I’m using the top 2 bits because of a stupidity. and 2) I should use Scaling instead of just using the top 6 bits. I have just tried it again using 6 bits and there is a large improvement, as for scaling, that will have to wait.

My code (which is BAD and WRONG):
void loop() {
  buffer = analogRead(analogPin);
  PORTD = (byte) buffer >> 4 ; // only use MSB 6 bits
}

The following is an MP3 hosted on SplashCast Here. The first sample is the sample I’m inputting into the arduino, the second and third is the output.

Syndicated 2008-08-28 22:35:53 from Holding the Soldering Iron by the Cold End

Arduino Audio Filter


Whats the difference between Noise Makers and Audio Filters - well, I would expect a level of control. A Noise Maker implies a lack of control - the difference between “din” and “music”. I’ll start this post off with this image, which is a Waterfall image. Waterfalls are spectrum over time - In this case, the frequency is up the side, and the time is across the bottom. The intensity of the colour indicates a voltage at that particular frequency.

Waterfall of Arduino Noise Maker

Waterfall of Arduino Noise Maker

What we are seeing is how the frequencies are changing over time when the dials on the board are swizzled, and by comparing this with other audio projects, we are able to see how various features and code changes change the output.

The next stage of the project is Filters - Filters are basically devices which limit frequencies that go through them - there are essentially two types of filters, High pass (which allow high frequencies to go through) and Low Pass (which allow low frequencies through). By combining these together, you can generate Band Pass filters and Notch Filters (although you might make notch filters in a different way).

By adding filters together, you can make filters which let multiple bands (a comb shape) or ban multiple bands. If you have control of your filters, you can change them and manipulate them over time, and apparently, if you generate white noise on one side, and use two bandpass filters, you can make sounds which sound like words - by moving the two filters in and out and widen and narrow.

Anyways, when I was at Uni, I learnt how to build Digital Filters, that is I learnt the electronics behind the DSP, and its quite simple - well, its a little tricky to get them efficient, but a problem that’s been solved time and time again. The system works by multiplying a set of samples in a fashion. Unfortuantly, my choice of modules (50% electronics or low level computing, 25% maths, and about 20% computing theory) means that… I didn’t do the Signals and Systems module because my Maths skills are troubled. I loose the decimal place ok?

So I’ve had a crash course in Fourier Transforms, which are the very basics behind working out the numbers that you need in the sample multipliers… Which is what I’m about to build on this new circuit. So far, I have an analog input (which is my sampling system) and an 6 Bit R2R DAC shield. The first test will be to act as a buffer. The second will to act as an Echo Box, and the third, to Filter.

Syndicated 2008-08-27 22:42:03 from Holding the Soldering Iron by the Cold End

Arduino Noise Maker


I’m so sorry that this blog does seem to be jumping around quite a bit at the moment - one moment its RFID / NFC reading and writing, the second its serial to eithernet connections, and the third its … digital synthesizers? And unfortunatly, this post will be soon followed by a post about IRC robots, when will the random jumble of stuff come together? Soon! Sooon I say SOOOON!

Basically David Reynolds and myself have been working on a Digital Synth on the Arduino board, and been set back by being unable to get components from local shops blah blah etc etc. But finally, tonight, we have had success in building a semi-clone of the Arduino Noise Maker, and this is where I post my Vimeo Video.

Before I do, I need to first apologise to anyone reading this on Advogato - last time I posted a Vimeo video, Advogato went mental and merged my post with the person who posted immediatly before (i.e. the post immediatly below mine). The RSS feed that wordpress generates does seem to be sane and ok, so it makes me wonder if its and Advogato RSS eating/spittingout bug?

First running complete circuit - similar to that of Little - scale on Blog Spot. I should also mention that the film was filmed by Dave on a camera phone, so apologies for the sound and video quality. I think you can also hear the Wii Brain Teaser in the back ground.

This is actually the second version because we had massive problems sourcing the components needed, and we tried using a second Arduino board to clone the missing chips.

In this one however, the main noise is being outputted to the Breadboard via 6 lines into a 6 bit R2R DAC. The schmitt triggers are mounted on a nuelectronics arduino board, which controls the vibrato and the wave selector units. The two extra pots on the breadboard are the pitch and speed selection pots.

Stay tuned for more - next version promises to have some midi integration!

Info:
* R2R info: en.wikipedia.org/wiki/Resistor_Ladder
* Original Design: little-scale.blogspot.com/2008/01/arduino-noise-maker-info.html

Syndicated 2008-08-24 00:46:04 from Holding the Soldering Iron by the Cold End

136 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!