It looks like I don’t need to make my own ARM cross compiler afterall, thanks to gnuarm.com. Now I can either try to compile a bootloader and a Linux kernel for the development board, I can go for a smaller “embedded” solution, or I can try to code everything myself (I could, but I won’t).
To install the environment and not have it interfere with my running Linux installation I plan to use chroot. Chroot will change the root of the running program (for example the shell you have opened) so that it appears that it’s working in a completely isolated environment, leaving the files of the mother OS untouched. However it is not true virtualisation like VMWare or Xen, and although it is often referred to as a chroot jail it is not meant to be a safe environment. There are ways to break out of that jail and still access the files from the higher operating system. But I’m pretty confident that the ARM compiler won’t do anything like that. 🙂 For everything to work I’ll need to make a second set of system files for the chroot environment.
So first I make a directory chroot_env in my home folder, and I use debootstrap (I use Ubuntu at home and at work, and I love it) to install a minimal Ubuntu filesystem, you need to be root for that or use sudo in Ubuntu. If you don’t have debootstrap installed, in Ubuntu you can install it with sudo apt-get install debootstap.
The command is: sudo debootstrap gutsy ~/chroot_env/ http://archive.ubuntu.com/ubuntu
Total size of all this is about 212MB.
Once the chroot environment is installed you can access it with (as root/sudo, and assuming that you installed it in your home folder): chroot ~/chroot_env
Once inside the new environment, I also need some build tools to get started:
apt-get install build-essential
I also need to install the toolchain from gnuarm.com: exit the chroot env and copy the tarball to an appropriate place in the chroot tree, enter chroot again, extract the tarball and put the path of the bin directory into your $PATH variable (placing symbolic links in the /usr/bin folder to the arm-elf-* executables works too).
I asked my boss about those evaluation boards I mentioned earlier, and he allowed me to take the ARM SMDK40100 home to play with. It’s not a gift, it’s just a loan, but I wasn’t hoping for anything more. If they need it back for any reason, they know where it is.
I also have a J-Link jtag debugger for the board, but I still need to check whether the connector is wired correctly, but I’m sure it’ll make my programming alot easier if I can get it to work.
I’m sure I’ll be allowed to use the PIC controller board too under those same conditions, but for now I’ve left it where it is.
I’ve been thinking about that POV project again, and I don’t see me using that ARM board for this to be honest. It’s way too large, and it consumes way too much power. The PIC controller is a much better candidate for that, as I can make that battery operated. I believe I saw a battery operated PIC board/programmer by Velleman if I’m not mistaken… It would an ideal start for that POV project.
First job would be to get me a cross compiler for that ARM processor. I know GCC can be made into a cross compiler for ARM, but I also know how much work it is to make your own cross compiler and how important it is to get those versions to match. Second, I should have a deeper look into those Velleman PIC programming kits.
On the account of the rs232 level converter, I haven’t received the samples yet, and I can’t find all the components I need at Conrad and Vael is closed next week. So I’ll only be able to get it going again in April.
I’m building an RS232 interface module for the Fonera router. Now, there are three ways of doing that: using a MAX232 chip, a DS275 or with transistors (source) . Lots of people recommend the first solution on forums and bulletin boards. It would be more reliable then the other two.
The MAX232CPE is a very common component, and can be found pretty easy at your electronics reseller. But that chip needs a supply of 5V. The Fonera however supplies only 3,3V. The MAX3222CPN (low voltage brother of the MAX232CPE) is capable of interfacing the TTL serial port of the router, but the chip is a lot harder to find. On the Internet everything is possible, ofcourse, DigiKey has these chips available, but shipping costs for only two chips double the price. So I ordered two samples of the MAX3222CPN+ chips from Maxim yesterday, the MAX3222CPN seems to have been replaced by this ‘+’ variant by the manufacturer. We’ll see whether they send me the samples, and if they don’t, I’ll stick with the transistors instead.
I bought a small La Fonera router for €7,5 a couple of weeks ago, just for the fun of replacing the firmware and tinker with a personalised Linux kernel and filesystem. I also installed a brand new web interface on it.
In the attached file you can find the details on how I replaced the bootloaders configuration, the Linux kernel and the filesystem:
Hacking La Fonera (Open Office document, download Open Office here)
I’m still working on building an RS232 level converter module for the internal serial interface on the router, and I’m trying to figure out the iptables firewall configuration so I can do NAT translation of the LAN side when I set the router as a wireless client.
Just trying to get a feel for it, really. Afterwards I’m thinking of installing a build environment on my PC and I’ll try to build the OpenWRT kernel and filesystem myself. I’m not sure whether there is a cross-toolchain for this I can just download or whether I need to create one myself? Creating a cross-toolchain from scratch is a bit of a challenge, I’ve done it once before, but it does take a couple of days until you get all the versions right and get the thing to compile properly.
The rotating LED idea is now 2 years old, and I haven’t got any further. A while ago I was sorting out the closet in my cubicle which I inherited when a colleague left. And I came across various boards and prototype devices from previous discontinued projects, like satellite locators with a large LCD display, 2-way satellite devices for Interactive TV, and stuff like that. All the way at the bottom of the junk pile, I found two development and evaluation boards. One for a PIC controller we still use in today’s products, and one for an ARM controller.
The ARM board is an SMDK40100 development board from Aiji Systems used in the evaluation of the controller and the initial development done for the interactive TV modules. The entire product line has been discontinued for as far as I know, and that 40MHz microcontroller is in my closet gathering dust. Now I think that’s a real shame. There are even JTAG debuggers for that ARM processor in my closet, and no one in the company is developing for ARM any more. A real pity.
The PIC board is a PICDEM 2 PLUS demo board from Microchip. It is fitted with a P18PTST and a small LCD screen.
So I’m gathering my courage to step over to my boss and ask him if I can liberate those boards and give them a new life as light show.
Continue reading “POV rotating LEDs not dead?”
I know that the POV (persistance of vision) LED display has been on hold for quite a while, due to lack of interests of the friends who promised to help in the first place. I have still been thinking about doing this project all by myself instead, but I still need to have a few tools before I’ll be ready to start. One of those most crucial tools would be a multimeter. My previous one was stolen. Ok, I know that’s not a good ecxuse because it got stolen about 6 years ago, but well… 🙂
One other tool I needed was an osciloscope. I was thinking that this tool would be quite hard to obtain for a reasonable price, but against all odds it was easier than the multimeter. Now I’m in possession of a dual channel, 100MHZ Philips scope. The device is really good, but I don’t understand all the options of the trigger circuit. One turn down: there were no test probes included with the second hand scope, so I still need to buy those.
Further I need to find a electronic engineering program that would allow me to design and simulate the schematic, without spending thousands of euros, I need test print boards to make the prototypes, I need the chips and components (plus reserve components to replace those that fizz or bang)… Lot’s of things before I can start making a mechanical design, and have a stable rotating LED display.
So you see, the project isn’t cancelled, only delayed 🙂
A few friends and I have come up with the bold idea of doing something fun with the electronics skills we picked up at school, and we decided to make a rotating led display. This would be an array of leds, mounted perpendicoulous on a spinning rod, switching on and off very fast in a predefined pattern. Because of the slowness of the eye, the pattern of leds should remain clearly visible when it moves across the plane of sight, this phenomenon is know as persistence of vision (POV). This pattern can be anything from letters, words and sentences to entire pictures, depending on the size and complexity of the electronics.
Continue reading “POV rotating leds – Part 1”