<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
      <title>Esden&#39;s Blog - computerworld</title>
      <link>https://esden.net</link>
      <description>This is Piotr Esden-Tempski&#39;s personal blog</description>
      <generator>Zola</generator>
      <language>en</language>
      <atom:link href="https://esden.net/categories/computerworld/rss.xml" rel="self" type="application/rss+xml"/>
      <lastBuildDate>Sat, 08 Jan 2022 00:00:00 +0000</lastBuildDate>
      <item>
          <title>New Black Magic Debug Maintainer</title>
          <pubDate>Sat, 08 Jan 2022 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2022-01-08-new-black-magic-debug-maintainer/</link>
          <guid>https://esden.net/blog/2022-01-08-new-black-magic-debug-maintainer/</guid>
          <description xml:base="https://esden.net/blog/2022-01-08-new-black-magic-debug-maintainer/">&lt;p&gt;Hi everyone!&lt;/p&gt;
&lt;p&gt;As some of you might know &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://black-magic.org&quot;&gt;Black Magic Debug&lt;/a&gt; was created and maintained for many years by &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://github.com/gsmcmullin&quot;&gt;Gareth McMullin&lt;/a&gt;. He has created a wonderful tool that we all use and love. You might have also noticed that Gareth did not have much time to dedicate to the project for the last few years. He asked me a while ago if I would be able to take over the project and become an official maintainer of &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://black-magic.org&quot;&gt;Black Magic Debug&lt;/a&gt;. I did not have the necessary resources to dedicate to the project until very recently. But it is finally time, from now on I am officially taking on the position as the Black Magic Debug maintainer. :)&lt;/p&gt;
&lt;p&gt;I want to thank Gareth for putting the faith in me and creating this amazing project. I also have to say big thanks to &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://github.com/UweBonnes&quot;&gt;Uwe Bonnes&lt;/a&gt; who stepped in while Gareth and I were unavailable to keep the patches and Black Magic releases going.&lt;/p&gt;
&lt;p&gt;I have a lot of plans for the Black Magic project, software/firmware and hardware wise. You might have noticed I already spent some time catching up on and cleaning the GitHub issues. It is by no means finished and probably never will be, but I hope we can keep open issues and pull requests on a better level going forward.&lt;/p&gt;
&lt;p&gt;To resolve the issue that the native Black Magic Hardware is currently not available due to chip shortages, I am working on the new revision of the native hardware. This should make them available again and allow us for more alternative chip choices. We are adding some cool new features to the new hardware while we are at it. (more information soon) I am also working on a tool that will help users manage the Black Magic Probe firmware, opening doors to more flexibility and versatility of the project overall. (also, more information about that soon)&lt;/p&gt;
&lt;figure&gt;
&lt;p&gt;https://youtu.be/v1BNmTlc6FU&lt;/p&gt;
&lt;figcaption&gt;
&lt;p&gt;A small teaser of the new native Black Magic Probe hardware V2.3a&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://esden.net/wp-content/uploads/2022/01/IMG_4108small.jpeg&quot;&gt;&lt;img src=&quot;https://esden.net/blog/2022-01-08-new-black-magic-debug-maintainer/images/IMG_4108small-1024x768.jpeg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;figcaption&gt;
&lt;p&gt;3D Printed cases for BMP V2.3a&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;You can also expect that we will finally get a proper CI system including HITL (Hardware In The Loop) testing. Something we are in dire need to keep the stability expectations as high as possible. I was collecting a lot of hardware over the years and I want to put it together to some good use. We will also improve the contribution process and document the APIs better, this should hopefully make addition of new targets easier.&lt;/p&gt;
&lt;p&gt;There is one more thing that I would like to mention. In the process of changing maintainership the GitHub organization that the project is under will be changing it&#39;s name. As it is not developed by Blacksphere (Gareth&#39;s consulting company) we will be renaming the org to the project&#39;s name itself. It will serve as an umbrella for additional repositories related to the Black Magic Debug project. Don&#39;t worry GitHub should redirect the old organization names to the new one. I hope it will not cause too much disruption. We will also finally be officially retiring the SourceForge project page to avoid confusion. This means the old unused mailing lists will be disabled.&lt;/p&gt;
&lt;p&gt;If you have questions or concerns and want to get in touch with the project you have multiple options: open an &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://github.com/blacksphere/blackmagic/issues&quot;&gt;issue on github&lt;/a&gt;, join the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://1bitsquared.com/pages/chat&quot;&gt;1BitSquared Discord server&lt;/a&gt; and talk to us in the #blackmagic channel. If it is something you would rather discuss one on one, you can also write an email to: contact at black-magic org where you will be able to reach the core developer team.&lt;/p&gt;
&lt;p&gt;I am excited to work with you all to bring the Black Magic Debug project to the next level.&lt;/p&gt;
&lt;p&gt;Stay safe, cheers,&lt;br /&gt;
Piotr Esden-Tempski&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Black Magic Discovery</title>
          <pubDate>Mon, 29 Dec 2014 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2014-12-29-black-magic-discovery/</link>
          <guid>https://esden.net/blog/2014-12-29-black-magic-discovery/</guid>
          <description xml:base="https://esden.net/blog/2014-12-29-black-magic-discovery/">&lt;p&gt;Hey everyone!&lt;/p&gt;
&lt;p&gt;Today I had to fix another STM32F4 Discovery board. By fixing I mean replacing the STLink firmware with Black Magic Probe firmware. I do that on a semi regular basis but as I have not done it in a long time I did not remember the process anymore. Obviously this calls for a blog post with some step by step instructions on how to do it, so that I have a reference in the future. Also you might find it useful yourself.&lt;/p&gt;
&lt;p&gt;First of all let&#39;s explain what we are trying to do. The objective is to replace the STLink SWD (&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; title=&quot;Serial Wire Debug Wiki page&quot; href=&quot;https://en.wikipedia.org/wiki/Joint_Test_Action_Group#Serial_Wire_Debug&quot;&gt;Serial Wire Debug&lt;/a&gt;) firmware with Black Magic Probe firmware.  The board is setup by default to use a smaller chip to run the STLink firmware to talk to the main stm32.  We need to change the smaller chips firmware.  The initial adjustments to the board are needed to be able to access the programming pins of the smaller chip and replace it&#39;s contents to Black Magic Probe firmware so that we can use GDB (&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; title=&quot;GNU DeBugger website&quot; href=&quot;https://www.gnu.org/software/gdb/&quot;&gt;GNU DeBugger&lt;/a&gt;) to program and debug the board instead of the very unstable and unreliable proprietary STLink protocol. The adjustments needed to access the small chips programming pins need to be reversed once the firmware is changed to Black Magic Probe firmware, resulting with an stm32 f4 discovery board with Black Magic Probe firmware ready to use.&lt;/p&gt;
&lt;p&gt;For the &quot;Fixing&quot; process I use a genuine Black magic probe, I have one of those very early ones with a 0.1&quot; header that is very useful in this particular case. You can also use a Black Magic Probe Mini with a PCB adapter, make an adapter cable or you can use another Discovery board that has already been &quot;fixed&quot;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;First step is to change the two solder jumpers on the bottom of the discovery board.&lt;/p&gt;
&lt;p&gt;[caption id=&quot;attachment_503&quot; align=&quot;alignnone&quot; width=&quot;510&quot;]&lt;a href=&quot;/wp-content/uploads/2014/12/STM32F4-discovery-bottom.jpeg&quot;&gt;&lt;img src=&quot;https://esden.net/blog/2014-12-29-black-magic-discovery/images/STM32F4-discovery-bottom.jpeg&quot; alt=&quot;Jumper modification for SWD programming.&quot; /&gt;&lt;/a&gt; Jumper modification for SWD programming.[/caption]&lt;/p&gt;
&lt;p&gt;Remove the 0Ohm resistor/jumpers marked with red circles, and close the jumpers marked with blue circles.&lt;/p&gt;
&lt;p&gt;Note: The easiest way to do that is to use a soldering tip, add a bunch more solder over the resistor and swipe them of. After that is done use solder wick to make sure there is no short on the &quot;red&quot; jumper. You can discard the 0Ohm resistors. It is much easier to just add a small blob of solder to close the &quot;blue&quot; jumpers, it is easy to remove them later in the process by just using some solder wick.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Remove the SWD and slave MCU jumpers as indicated by the red circles in the photo.&lt;/p&gt;
&lt;p&gt;[caption id=&quot;attachment_507&quot; align=&quot;alignnone&quot; width=&quot;576&quot;]&lt;a href=&quot;/wp-content/uploads/2014/12/IMG_1109.jpg&quot;&gt;&lt;img src=&quot;https://esden.net/blog/2014-12-29-black-magic-discovery/images/IMG_1109.jpg&quot; alt=&quot;STM32F4 Discovery board Jumpers for updating the programmer chip firmware&quot; /&gt;&lt;/a&gt; STM32F4 Discovery board Jumpers for updating the programmer chip firmware[/caption]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Attach jumper wires to the Black Magic Probe header.&lt;/p&gt;
&lt;p&gt;[caption id=&quot;attachment_509&quot; align=&quot;alignnone&quot; width=&quot;576&quot;]&lt;a href=&quot;/wp-content/uploads/2014/12/IMG_1110.jpg&quot;&gt;&lt;img src=&quot;https://esden.net/blog/2014-12-29-black-magic-discovery/images/IMG_1110.jpg&quot; alt=&quot;Black Magic Probe Serial Wire Debug connections for Discovery board &amp;quot;fixing&amp;quot;&quot; /&gt;&lt;/a&gt; Black Magic Probe Serial Wire Debug connections for Discovery board &quot;fixing&quot;[/caption]&lt;/p&gt;
&lt;p&gt;Standard JTAG/SWD 20Pin 0.1&quot; header&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Black wire - Pin 14 (GND)&lt;/li&gt;
&lt;li&gt;Orange wire - Pin 9 (TCLK/SWCLK)&lt;/li&gt;
&lt;li&gt;Yellow wire - Pin 8 (TMS/SWDIO)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In case you are trying to figure out which pins these are on a standard ARM Cortex 10Pin 0.05&quot; header. Here you go:&lt;/p&gt;
&lt;p&gt;Standard JTAG/SWD Cortex 10Pin 0.1&quot; header&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Black wire - Pin 3, 5 or 9 (GND)&lt;/li&gt;
&lt;li&gt;Orange wire - Pin 4 (TCLK/SWCLK)&lt;/li&gt;
&lt;li&gt;Yellow wire - Pin 2 (TMS/SWDIO)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Step 4&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Attach the Black Magic Probe to the discovery board.&lt;/p&gt;
&lt;p&gt;[caption id=&quot;attachment_510&quot; align=&quot;alignnone&quot; width=&quot;576&quot;]&lt;a href=&quot;/wp-content/uploads/2014/12/IMG_1113.jpg&quot;&gt;&lt;img src=&quot;https://esden.net/blog/2014-12-29-black-magic-discovery/images/IMG_1113.jpg&quot; alt=&quot;STM32F4 Discovery board Serial Wire Debug connection for &amp;quot;fixing&amp;quot; the on board programmer firmware&quot; /&gt;&lt;/a&gt; STM32F4 Discovery board Serial Wire Debug connection for &quot;fixing&quot; the on board programmer firmware[/caption]&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Black wire (GND) - Pin 3 of the SWD (CN2) header&lt;/li&gt;
&lt;li&gt;Orange wire (SWCLK) - Pin 2 of the ST-LINK/DISCOVERY (CN3) header&lt;/li&gt;
&lt;li&gt;Yellow wire (SWDIO) - Pin 4 of the ST-LINK/DISCOVERY (CN3) header&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Step 5&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Now you can connect the discovery board and the Black Magic probe to your computer via USB. The order should not matter, but usually I tend to connect the usb wires to the laptop before connecting the SWD wires between the two devices, just to make sure we don&#39;t have some strange current loop that powers one or the other via IO pins, which might be problematic.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 6&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Now we turn our attention to the software. You can obviously do these steps before you wire everything up but this is the order I followed.&lt;/p&gt;
&lt;p&gt;The process requires a few dependencies that you should install using either apt on Linux or homebrew or macports on OS X:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;pyserial&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In my case I use OS X and homebrew so I needed to run the following two commands:&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;brew install python pip install pyserial&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Step 7&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Download and make the an arm gcc compiler &quot;findable&quot;. I recommend using &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://launchpad.net/gcc-arm-embedded&quot;&gt;GCC ARM Embedded&lt;/a&gt; as it is maintained by the ARM developers themselves and they seem to generally know what they are doing. :)&lt;/p&gt;
&lt;p&gt;So download it from here: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://launchpad.net/gcc-arm-embedded&quot;&gt;https://launchpad.net/gcc-arm-embedded&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then unpack it into your home directory:&lt;/p&gt;
&lt;p&gt;[code language=&quot;text&quot; gutter=&quot;false&quot;] cd ~ tar xfvj ~/Downloads/gcc-arm-none-eabi-replace this with the version-mac.tar.bz2 [/code]&lt;/p&gt;
&lt;p&gt;Then you should add the binary directory of the newly unpacked compiler package to your system. Obviously to do this you add the directory to your PATH environment variable. If you don&#39;t know what that is you should learn a bit more about your &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.linfo.org/path_env_var.html&quot;&gt;Unix/Linux basics&lt;/a&gt;. :)&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;export PATH=~/gcc-arm-none-eabi-someversion/bin:$PATH&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To make this addition persistent you can also add that to your &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://shreevatsa.wordpress.com/2008/03/30/zshbash-startup-files-loading-order-bashrc-zshrc-etc/&quot;&gt;.profile, .bash_profile or .zprofile&lt;/a&gt; depending on the shell and setup you use.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 8&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Download blackmagic firmware source code. You can get it at &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://github.com/blacksphere/blackmagic&quot;&gt;https://github.com/blacksphere/blackmagic&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The easiest way is to clone the github repository, look for the small window at the center right of the github page for the git repository url. If you have a github account choose the ssh url but if you refuse to do so then you can go with the https one too. :)&lt;/p&gt;
&lt;p&gt;If you did not learn about &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://git-scm.com/&quot;&gt;GIT&lt;/a&gt; and &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt; yet this is the perfect time to take a break from all of this here and come back after you have &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://help.github.com/categories/bootcamp/&quot;&gt;caught up on your homework&lt;/a&gt;. :D&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;git clone git@github.com:blacksphere/blackmagic.git&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Step 9&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Now let&#39;s build the firmware. This consists of three steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Fetch the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.libopencm3.org/wiki/Main_Page&quot;&gt;libopencm3&lt;/a&gt; &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://git-scm.com/book/en/v2/Git-Tools-Submodules&quot;&gt;submodule&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Build from the toplevel so libopencm3 is built&lt;/li&gt;
&lt;li&gt;Build the blackmagic firmware for the stlink&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;giallo z-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;cd blackspheregit submodule initgit submodule updatemakecd srcmake cleanmake PROBE_HOST=stlink&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Step 10&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We can finally connect to the hardware we wired up before and erase the pesky stlink firmware. When the discovery boards ship, the firmware is read and write protected on the STLink chip. So to be able to overwrite the firmware we will have to unlock the chip. Thanks to Gareth there is a small python script that can do that for us. You just have to call the following command inside the src directory of the blackmagic repository and it should be able to remove the write protection:&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;../scripts/hexprog.py -s -d /dev/cu.usbmodemSOMESERIAL1 -r blackmagic.bin&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In the case you are on Linux you can leave out the -d device parameter. For reference the -s parameter tells hexprog to use Serial Wire Debug instead of JTAG and -r tells it to unlock and erase the target chip.&lt;/p&gt;
&lt;p&gt;If you skip any of those two parameters it will not work for you.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 11&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Flash the bootloader. We are getting very close. To upload the blackmagic bootloader you use arm-none-eabi-gdb.&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;arm-none-eabi-gdb blackmagic_dfutarget extended_remote /dev/usbmodemSOMESERIAL1monitor swdp_scanattach 1loadexit&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This sequence of commands attaches to the virtual gdb server that is provided by the Black Magic Probe on it&#39;s virtual serial port 1. (The second serial port is the USB to serial interface located on the back of the BMPM) We then tell the monitor (this is the BMP) to scan using Serial Wire Debug as our protocol. Next we attach to the virtual process number 1. (As we are on the embedded systems there usually should only ever be 1 process unless you run an RTOS) We load the firmware from the elf file that we passed on to gdb earlier and exit GDB.&lt;/p&gt;
&lt;p&gt;Simple right? :D (Believe me that is definitely simpler than setting up and making OpenOCD work with Eclipse)&lt;/p&gt;
&lt;p&gt;Tip: To make things easier for the future you can add the following to your .gdbinit file:&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set target-async onset confirm offset history saveset mem inaccessible-by-default offtar ext /dev/cu.usbmodemSOMESERIAL1mon versionmon swdp_scan#mon jtag_scan att 1&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note: On Linux the cu.usbmodem device name will be /dev/ttyACM0 instead.&lt;/p&gt;
&lt;p&gt;After setting up the .gdbinit file the upload process becomes quite a bit shorter:&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;arm-none-eabi-gdb blackmagicloadexit&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Step 12&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Upload the black magic firmware itself. Here you have two options. Either you can use the same process as before using GDB or you can use the now uploaded DFU bootloader to upload the Black Magic Probe firmware payload. Using GDB you would run the following:&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;arm-none-eabi-gdb blackmagictarget extended_remote /dev/cu.usbmodemSOMESERIAL1monitor swdp_scanattach 1loadexit&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Alternatively you can upload the firmware using a DFU script. Before you do that though you should disconnect the genuine Black Magic Probe from your computer as you want to make sure the script flashes the Discovery board and not your BMP. To do that you will need to install python libusb as an additional dependency. But having done that you can then run the following to upload the firmware:&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;./scripts/stm32_mem.py blackmagic.bin&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Step 13&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Put everything back together. Now you just have to do four things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Disconnect your Black Magic Probe and Discovery board from your computer as well as each other.&lt;/li&gt;
&lt;li&gt;Remove the solder blobs you have added on the back of the board.&lt;/li&gt;
&lt;li&gt;Add solder blobs to where you removed the resistors at the very beginning.&lt;/li&gt;
&lt;li&gt;Put the jumpers back to where they were on the front of the Discovery board.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You are pretty much done now. If everything went well you should have your &quot;fixed&quot; discovery board. Follow to the one additional step below to test that.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 14&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Plug in your Discovery board into your computer. The dual color led next to the USB connector should be solid Green. If it is blinking Green it means the bootloader is running and the board is expecting to be flashed with the firmware. This can happen if you still have the power jumper disconnected that provides power to the &quot;slave&quot; STM32F4 chip. This is actually very useful if you want to upgrade the Black Magic Probe firmware on your discovery board. :D&lt;/p&gt;
&lt;p&gt;Additionally if everything went well if you are on Mac OS X a /dev/cu.usbmodemSOMESERIAL1 and /dev/cu.usbmodemSOMESERIAL3 should appear. If you are on linux you should be able to find ttyACM0 and ttyACM1 in the /dev directory.&lt;/p&gt;
&lt;p&gt;I hope this write up is useful for you and the future me. :) I am planning to write another blog post on how to build and upload an example firmware onto the slave processor. So hold on to your hats! :)&lt;/p&gt;
&lt;p&gt;Cheers,&lt;br /&gt;
Esden&lt;/p&gt;
&lt;p&gt;P.S. Big thanks to Jack Ziesing for proofreading and introductory paragraph and sparking the work on this article. It is a great help! :)&lt;/p&gt;
</description>
      </item>
      <item>
          <title>libopencm3 Discovery</title>
          <pubDate>Mon, 29 Dec 2014 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2014-12-29-libopencm3-discovery/</link>
          <guid>https://esden.net/blog/2014-12-29-libopencm3-discovery/</guid>
          <description xml:base="https://esden.net/blog/2014-12-29-libopencm3-discovery/">&lt;p&gt;Hi everyone,&lt;/p&gt;
&lt;p&gt;As promised in the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://esden.net/2014/12/11/black-magic-discovery/&quot;&gt;previous post&lt;/a&gt;. Here is a short write up how to download, compile and upload your first example program using libopencm3 and a STM32F4 discovery board.&lt;/p&gt;
&lt;p&gt;Very similar process will apply to any other evaluation boards that employ an STM32 microcontroller and Black Magic Probe JTAG/SWD programmer. Like for example Lisa/M, Lisa/MX, Lisa/S, Apogee and so on.&lt;/p&gt;
&lt;h2 id=&quot;step-1&quot;&gt;&lt;strong&gt;Step 1&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;If you did not already do that, download and install GCC ARM Embedded. You might have already done it if you were &quot;fixing&quot; your Discovery board.&lt;/p&gt;
&lt;p&gt;You can download the compiler from here: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://launchpad.net/gcc-arm-embedded&quot;&gt;https://launchpad.net/gcc-arm-embedded&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Unpack it into your home directory:&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;cd ~&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;tar xfvj ~/Downloads/gcc-arm-none-eabi-replace this with the version-mac.tar.bz2&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You should add the binary directory of the newly unpacked compiler package to your system. Obviously to do this you add the directory to your PATH environment variable. If you don&#39;t know what that is you should learn a bit more about your &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.linfo.org/path_env_var.html&quot;&gt;Unix/Linux basics&lt;/a&gt;. :)&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;export PATH=~/gcc-arm-none-eabi-someversion/bin:$PATH&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To make this addition persistent you can also add that to your &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://shreevatsa.wordpress.com/2008/03/30/zshbash-startup-files-loading-order-bashrc-zshrc-etc/&quot;&gt;.profile, .bash_profile or .zprofile&lt;/a&gt; depending on the shell and setup you use.&lt;/p&gt;
&lt;h2 id=&quot;step-2&quot;&gt;&lt;strong&gt;Step 2&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Download libopencm3-examples. You can find this repository at &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://github.com/libopencm3/libopencm3-examples&quot;&gt;https://github.com/libopencm3/libopencm3-examples&lt;/a&gt;&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;git clone git@github.com:libopencm3/libopencm3-examples.git&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&quot;step-3&quot;&gt;&lt;strong&gt;Step 3&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Build the libopencm3 examples. The repository contains libopencm3 as a submodule so you will have to initialize and update the submodule before you can compile the library itself as well as all the different examples.&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;cd libopencm3-examples&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;git submodule init&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;git submodule update&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;make&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will take a bit as there is a lot of examples included in that repository. In the past the examples were part of the main library itself but there became so many of them that we had to split it off. Otherwise the build and clone process just took too long.&lt;/p&gt;
&lt;h2 id=&quot;step-4&quot;&gt;&lt;strong&gt;Step 4&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Prepare your environment. To make your life easier you should set up your .gdbinit configuration file. This will make the firmware upload and debug process so much easier. Just add the following lines to the .gdbinit file:&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set target-async on&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set confirm off&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set history save&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set mem inaccessible-by-default off&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;tar ext /dev/cu.usbmodemSOMESERIAL1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;mon version&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;mon swdp_scan&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;#mon jtag_scan&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;att 1&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note: On linux the cu.usbmodemSOMESERIAL1 becomes ttyACM0.&lt;/p&gt;
&lt;p&gt;For reference here is the breakdown of what the commands inside of the .gdbinit file mean:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;set target-async on&lt;/em&gt;: Enable &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www-zeuthen.desy.de/dv/documentation/unixguide/infohtml/gdb/Background-Execution.html&quot;&gt;background execution commands&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;set confirm off&lt;/em&gt;: This disables the really annoying &quot;are you sure&quot; questions. :)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;set history save&lt;/em&gt;: This forces GDB to save the command history.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;set mem inaccessible-by-default off&lt;/em&gt;: This is one of the most important commands here. Very often when you are trying to debug your code on a microcontroller you have to read the content of memory mapped registers. If you don&#39;t set this option the debugger will prevent you from doing so as it has no idea that this memory is actually accessible. On a PC having the option on makes total sense but on a microcontroller it is mostly a burden.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;tar ext /dev/cu.usbmodemSOMESERIAL1&lt;/em&gt;: tell gdb to connect to Black Magic Probe&lt;/li&gt;
&lt;li&gt;&lt;em&gt;mon version&lt;/em&gt;: Print version of the Black Magic Probe.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;mon swdp_scan&lt;/em&gt;: Scan for devices using SWD protocol.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;att 1&lt;/em&gt;: Attach to the first process. On a microcontroller you will have only one process...&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;step-4-1&quot;&gt;&lt;strong&gt;Step 4&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Upload fancyblink example. The simplest example for the STM32F4 Discovery board is the fancyblink example. It is also very easy to upload. As long as your Discovery board is &quot;fixed&quot; and uses the BMP firmware.&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;cd examples/stm32/f4/stm32f4-discovery/fancyblink&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;arm-none-eabi-gdb fancyblink.elf&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;load&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;run&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now the LEDs on the Discovery board should be blinking. You can interrupt the execution of the program by pressing &lt;Ctrl&gt;-C. You can continue the execution by running cont.&lt;/p&gt;
&lt;p&gt;Here is a short reference of GDB commands that you might find useful when playing around with code:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; load -&amp;gt; load the binary from the provided elf file. (Note: it detects if the elf file changed on the hard disk and loads a new one if available. So you don&#39;t have to quit GDB every time when you recompile your code)&lt;/li&gt;
&lt;li&gt;run -&amp;gt; start the execution of your firmware&lt;/li&gt;
&lt;li&gt;backtrace -&amp;gt; print the call stack trace of the current line of code being executed&lt;/li&gt;
&lt;li&gt;make -&amp;gt; runs make command in the directory you started gdb. Very useful if you want to update the binary you are running really quick.&lt;/li&gt;
&lt;li&gt;break filename:lineno -&amp;gt; you can add a breakpoint inside your code. GDB will stop the execution of the program as soon as the line is hit by the firmware.&lt;/li&gt;
&lt;li&gt;step -&amp;gt; execute one single line of code and return back to the command line&lt;/li&gt;
&lt;li&gt;next -&amp;gt; same as step but it does not enter into the functions called and skips them. Useful if you want to step over functions you know take forever and you are not interested in what they are actually doing. :)&lt;/li&gt;
&lt;li&gt;print variablename -&amp;gt; print the content of a variable&lt;/li&gt;
&lt;li&gt;print/x variablename -&amp;gt; print the content of a variable as HEX&lt;/li&gt;
&lt;li&gt;list -&amp;gt; prints the context of the line being executed at the very moment&lt;/li&gt;
&lt;li&gt;kill -&amp;gt; if used in a GDB script it will reset the MCU and exit GDB. Very useful as last command of a GDB script.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I hope this will be helpful for you.&lt;/p&gt;
&lt;p&gt;Cheers, Esden&lt;/p&gt;
&lt;p&gt;P.S. Big thanks to Jack Ziesing for proofreading and introductory paragraph and sparking the work on this article. It is a great help! :)&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Black Magic</title>
          <pubDate>Fri, 13 Jul 2012 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2012-07-13-black-magic/</link>
          <guid>https://esden.net/blog/2012-07-13-black-magic/</guid>
          <description xml:base="https://esden.net/blog/2012-07-13-black-magic/">&lt;p&gt;&lt;a href=&quot;/wp-content/uploads/2012/07/BMPM-4675.jpg&quot;&gt;&lt;img src=&quot;https://esden.net/blog/2012-07-13-black-magic/images/BMPM-4675-300x199.jpg&quot; alt=&quot;&quot; title=&quot;BMPM-4675&quot; /&gt;&lt;/a&gt;A few months ago I met a great guy Gareth MacMullin in the libopencm3 channel. He was working on a new Open-Source and Open-Hardware JTAG solution called &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.blacksphere.co.nz/main/blackmagic&quot;&gt;Black Magic Probe&lt;/a&gt;(BMP). I got one of those and instantly fell in love with it.&lt;/p&gt;
&lt;p&gt;OpenOCD is great in a sense because it supports lots of targets and probes but that is its disadvantage too. It is very often difficult to set up and tends not to work properly in many cases. The approach of BMP is quite different. Instead of the probe being quite dumb and using OpenOCD to do the JTAG magic the BMP uses a microcontroller (STM32F1) and implements a GDB server inside the controller. This solution cuts out the middleman and talks JTAG as well as the new Serial Wire Debug (SWD) protocol itself. Requiring only a working GDB on the computer.&lt;/p&gt;
&lt;p&gt;The BMP supports several Cortex-M3 targets and more devices are being added fairly quickly. The first time I tried it with an STM32 it just worked. No command line parameters just:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;arm-none-eabi-gdb some_elf_file target extended-remote /dev/ACM0 mon swdp_scan att 1 load run&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;It shocked me how fast the loading process was. Because it is not one of the FTDI chips and does not have to bitbang all of the JTAG protocol over USB it can run much much faster. I know there are commercial devices like JLink that have logic inside them but they cost arm and a leg if you don&#39;t want to just get the educational version of it.&lt;/p&gt;
&lt;p&gt;One more thing comes to mind when you realize that the BMP supports SWD. You only need three pins to be able to use it GND, SWDIO and SWCLK. That decreases the required real estate on the PCB significantly. I am not sure what the status of OpenOCD support for SWD is now but it is work in progress as far as I understand. On BMP it just works.&lt;/p&gt;
&lt;p&gt;Since I started using the BMP there were several interesting developments that Gareth added. The BMP is not only offering one serial port for the GDB extended remote interface but also a second one providing a TTL level UART interface. The BMP also supports tracing by now using the TRACESWO pin. This provides a reasonably high speed tracing. Gareth also wrote a plotter for this feature that plots the contents of traced variables in your code.&lt;/p&gt;
&lt;p&gt;Early versions of BMP were 2.5cm X 5cm the current version called Black Magic Probe Mini (BMPM) is smaller, the same size as the FLOSS-JTAG I made a while ago, it is mere 1.5cm X 3cm, packing in all the power of the BMP what makes it great for doing embedded stuff on the go, for example in the subway.&lt;/p&gt;
&lt;p&gt;So to wrap things up, it is a high grade, Open-Source and Open-Hardware device. For $60 this thing is a steal!&lt;/p&gt;
&lt;p&gt;Shameless plug: On &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://1bitsquared.com&quot;&gt;1 BIT SQUARED&lt;/a&gt; store you can order the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://1bitsquared.com/products/black-magic-probe&quot;&gt;Black Magic Probe&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There are also some other distributors listed on the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.blacksphere.co.nz/main/blackmagic&quot;&gt;BMP page&lt;/a&gt; too. So check it out! I bet you will love it. :)&lt;/p&gt;
</description>
      </item>
      <item>
          <title>How to build arm gnu gcc toolchain for Mac OS X [Updated 8x]</title>
          <pubDate>Thu, 26 Feb 2009 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2009-02-26-how-to-build-arm-gnu-gcc-toolchain-for-mac-os-x/</link>
          <guid>https://esden.net/blog/2009-02-26-how-to-build-arm-gnu-gcc-toolchain-for-mac-os-x/</guid>
          <description xml:base="https://esden.net/blog/2009-02-26-how-to-build-arm-gnu-gcc-toolchain-for-mac-os-x/">&lt;p&gt;Hi!&lt;/p&gt;
&lt;p&gt;[Edit: This HOWTO is mostly outdated now because of the script summon-arm-toolchain I have created together with &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://www.hermann-uwe.de&quot;&gt;Uwe&lt;/a&gt;. You can find it &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://github.com/esden/summon-arm-toolchain/tree/master&quot;&gt;here&lt;/a&gt; at &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;. A short description on the usage of the script can be found in the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://open-bldc.org/wiki/Building_ARM_Toolchain&quot;&gt;Open-BLDC&lt;/a&gt; wiki.]&lt;/p&gt;
&lt;p&gt;As I decided to use the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.st.com/mcu/inchtml.php?fdir=pages&amp;amp;fnam=stm32&quot;&gt;STM32&lt;/a&gt; for &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://open-bldc.esden.net&quot;&gt;open-bldc&lt;/a&gt; and ordered an &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.olimex.com&quot;&gt;Olimex&lt;/a&gt; &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.olimex.com/dev/stm32-h103.html&quot;&gt;H103&lt;/a&gt; evaluation board. I had to build the toolchain for it. This controller is an ARM Cortex-M3 and needs a GCC version beyond 4.3 because there the support was added.&lt;/p&gt;
&lt;p&gt;There is a pretty good &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://eluaproject.dreamhosters.com/en/Building_GCC_for_Cortex&quot;&gt;HowTo&lt;/a&gt; on &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://eluaproject.dreamhosters.com/&quot;&gt;eLua&lt;/a&gt;. But as I decided to use the newest versions of the tools some things changed and I decided to write my own HowTo. And here it goes!&lt;/p&gt;
&lt;p&gt;I am using &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.macports.org/&quot;&gt;macports&lt;/a&gt; on my mac, so the howto is based on that. You need to install additionally &lt;strong&gt;gmp&lt;/strong&gt; and &lt;strong&gt;mpfr&lt;/strong&gt;. It is needed so that gcc can be compiled. I also use for most of the stuff I use &lt;strong&gt;stow&lt;/strong&gt;. The toolchain cannot be installed using stow because of the softlinks it creates. You cane install it using macports too.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sources:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Now you will need the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;binutils: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://ftp.gnu.org/gnu/binutils/binutils-2.19.1.tar.bz2&quot;&gt;http://ftp.gnu.org/gnu/binutils/binutils-2.19.1.tar.bz2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;gcc: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://gcc.cybermirror.org/releases/gcc-4.3.3/gcc-4.3.3.tar.bz2&quot;&gt;http://gcc.cybermirror.org/releases/gcc-4.3.3/gcc-4.3.3.tar.bz2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;newlib: &lt;a href=&quot;ftp://sources.redhat.com/pub/newlib/newlib-1.17.0.tar.gz&quot;&gt;ftp://sources.redhat.com/pub/newlib/newlib-1.17.0.tar.gz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;libusb: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://sourceforge.net/project/showfiles.php?group_id=1674&amp;amp;package_id=1632&amp;amp;release_id=398442&quot;&gt;http://sourceforge.net/project/showfiles.php?group_id=1674&amp;amp;package_id=1632&amp;amp;release_id=398442&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;libftdi: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.intra2net.com/en/developer/libftdi/download/libftdi-0.15.tar.gz&quot;&gt;http://www.intra2net.com/en/developer/libftdi/download/libftdi-0.15.tar.gz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;openocd: I am using svn version of openocd. The revision I tested was 1382. So to get it you need to run &lt;code&gt;&amp;gt; svn co -R 1382 svn://svn.berlios.de/openocd/trunk openocd-svn&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;insight: The versions that I tested for now all had infinite loop bug. Will update that later when I found the right solution.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Compiling binutils:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I store everything that I build by myself in /opt/mine directory. I added it to my path and other relevant environment variables just as I did with /opt/local (the macports install directory). The toolchain needs its own directory. I call it /opt/mine/arm-none-eabi to distinguish it from other arm toolchains that I have on my machine.&lt;/p&gt;
&lt;p&gt;I need to add another note here. I chose to use the arm-none-eabi target. This way the toolchain builds Version 4 EABI binaries instead of GNU EABI. I am not 100% sure what the difference is. (Please enlighten me here) But if I understand it correctly the Version 4 EABI is the ARM standarized EABI and not the GNU version of the EABI. But as stated before I am not really sure about that.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;gt; tar xfvj binutils-2.19.1.tar.bz2 &amp;gt; cd binutils-2.19.1 &amp;gt; mkdir build &amp;gt; cd build &amp;gt; ../configure --target=arm-none-eabi --prefix=/opt/mine/arm-none-eabi --enable-interwork --enable-multilib --with-gnu-as --with-gnu-ld --disable-nls &amp;gt; make &amp;gt; sudo make install &amp;gt; cd ../..&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now you should also add the toolchain bin directory to your PATH so that the further steps can find the binutils binaries.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;gt; export PATH=/opt/mine/arm-none-eabi/bin:$PATH&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Building GCC bootstrap:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;GCC needs the newlib to build all of it&#39;s libraries but newlib needs gcc to build. This chicken and egg problem can be solved by building GCC without libraries first, then building newlib and finally building GCC it it&#39;s full form.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;gt; tar xfvj gcc-4.3.3.tar.bz2 &amp;gt; cd gcc-4.3.3 &amp;gt; mkdir build &amp;gt; cd build &amp;gt; ../configure --with-libiconv-prefix=/opt/local --target=arm-none-eabi --prefix=/opt/mine/arm-none-eabi --enable-interwork --enable-multilib --enable-languages=&quot;c&quot; --with-newlib --without-headers --disable-shared --with-gnu-as --with-gnu-ld --with-gmp=/opt/local --with-mpfr=/opt/local &amp;gt; make all-gcc &amp;gt; sudo make install-gcc &amp;gt; cd ../..&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I have to comment here on some options used. Somehow the configure of gcc is not able to find gmp and mpfr by itself. Because they are installed in nonstandard directories when you look at a linux system. That is why you have to help it by providing --with-gmp and --with-mpfr. In the case of libiconv you have to add --with-libiconv. Not adding this option does not break the configure but introduces problems in the build process.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Building newlib:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Now that we have binutils and a basic gcc install we can build newlib. This one is pretty streightforward.&lt;/p&gt;
&lt;p&gt;[EDIT This section should be obsolete! The patch does not even apply to the newlib-1.17.0 sorry] Still you will probably need a patch that deals with makeinfo being not found by configure. I found it in &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://osdir.com/ml/comp.gcc.cross-compiling.arm/2008-06/msg00017.html&quot;&gt;a post on comp.gcc.cross-compiling.arm&lt;/a&gt;. But I offer the patch &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.esden.net/content/embedded/newlib-1.14.0-missing-makeinfo.patch&quot;&gt;here&lt;/a&gt; for download and your conveniance.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;gt; tar xfvz newlib-1.17.0.tar.gz &amp;gt; cd newlib-1.17.0 &amp;gt; patch -p1 -i ../newlib-1.14.0-missing-makeinfo.patch # the patch will yield a warning because it is for an older version of newlib but should apply &amp;gt; mkdir build &amp;gt; cd build &amp;gt; ../configure --target=arm-none-eabi --prefix=/opt/mine/arm-none-eabi --enable-interwork --enable-multilib --with-gnu-as --with-gnu-ld --disable-nls &amp;gt; make &amp;gt; sudo make install &amp;gt; cd ../..&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Building GCC:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This should be simple now. We build the full GCC version.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;gt; cd gcc-4.3.3/build &amp;gt; rm -rf * # clean up everything it makes stuff safer ^^ &amp;gt; ../configure --with-libiconv-prefix=/opt/local --target=arm-none-eabi --prefix=/opt/mine/arm-none-eabi --enable-interwork --enable-multilib --enable-languages=&quot;c&quot; --with-newlib --disable-shared --with-gnu-as --with-gnu-ld --with-gmp=/opt/local --with-mpfr=/opt/local &amp;gt; make &amp;gt; sudo make install &amp;gt; cd ../..&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Building libusb:&lt;/strong&gt; This library and the following libftdi is needed for jtagkey-tiny support in openocd.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;gt; tar xfvz libusb-0.1.12.tar.gz &amp;gt; cd libusb-0.1.12 &amp;gt; mkdir build &amp;gt; cd build &amp;gt; ../configure --prefix=/opt/mine/DIR/libusb-0.1.12 &amp;gt; make &amp;gt; sudo make install &amp;gt; sudo -s &amp;gt; cd /opt/mine/DIR &amp;gt; stow libusb-0.1.12 &amp;gt; exit &amp;gt; cd ../..&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Building libftdi:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;gt; tar xfvz libftdi-0.15.tar.gz &amp;gt; cd libftdi-0.15 &amp;gt; mkdir build &amp;gt; cd build &amp;gt; ../configure --prefix=/opt/mine/DIR/libftdi-0.15 &amp;gt; make &amp;gt; sudo make install &amp;gt; sudo -s &amp;gt; cd /opt/mine/DIR &amp;gt; stow libftdi-0.15 &amp;gt; exit &amp;gt; cd ../..&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Building openocd:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I am using the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.amontec.com/jtagkey-tiny.shtml&quot;&gt;jtagkey-tiny&lt;/a&gt; from &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.amontec.com/&quot;&gt;Amontec&lt;/a&gt;, and &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.embedded-projects.net/index.php?page_id=165&quot;&gt;usbprog&lt;/a&gt;. If you are using something else the options to configure will need enabling the other device.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;gt; cd openocd-svn &amp;gt; mkdir build &amp;gt; cd build &amp;gt; ../configure --prefix=/opt/mine/DIR/openocd-svn --enable-ft2232_libftdi --enable-usbprog &amp;gt; make &amp;gt; sudo make install &amp;gt; sudo -s &amp;gt; cd /opt/mine/DIR &amp;gt; stow openocd-svn &amp;gt; exit &amp;gt; cd ../..&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Building insight/gdb:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Well I still have some problems here. I will update the post as soon as I find a solution here.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Compiling and flashing an example program:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Openocd supplied config file for jtagkey-tiny has an error in my case. On my machine the jtagkey-tiny appears as &quot;Amontec JTAGkey&quot; and not &quot;Amontec JTAGkey A&quot;. You have to edit &lt;code&gt;/opt/mine/lib/openocd/interface/jtagkey-tiny.cfg&lt;/code&gt; and change the line &lt;code&gt;ft2232_device_desc &quot;Amontec JTAGkey A&quot;&lt;/code&gt; to &lt;code&gt;ft2232_device_desc &quot;Amontec JTAGkey&quot;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Now you can download &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.esden.net/content/embedded/stm32-blink.tar.bz2&quot;&gt;stm32-blink.tar.bz2&lt;/a&gt; that I cleaned up a bit. It is based on the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.olimex.com/dev/stm32-h103.html&quot;&gt;example blink project&lt;/a&gt; from Olimex.&lt;/p&gt;
&lt;p&gt;The example project from Olimex uses parts of the Firmware Library from &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.st.com&quot;&gt;ST&lt;/a&gt;. The documentation and the library itself can be found and downloaded &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.st.com/mcu/modules.php?name=mcu&amp;amp;file=familiesdocs&amp;amp;fam=110&amp;amp;doc=76&quot;&gt;here&lt;/a&gt;. You have to be careful though, the library has a very wierd license that is probably problematic when used in open source projects. I assume that the strange license may pose also problems when used in closed source projects too. But I am not a lawyer so do not kill me if I am wrong. :)&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;gt; tar xfvj stm32-blink.tar.bz2 &amp;gt; cd stm32-blink &amp;gt; make&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Next step is to start openocd. You should start opencd in the stm32-blink directory so that later openocd can find the binary you will be uploading.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;gt; openocd -f /opt/mine/lib/openocd/interface/jtagkey-tiny.cfg -f /opt/mine/lib/openocd/target/stm32.cfg&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now open a new terminal and run the following commands to flash the stm32-blink binary.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;gt; telnet localhost 4444 &amp;gt; halt &amp;gt; flash write_image erase stm_h103_blink_rom.bin 0x08000000 &amp;gt; resume 0x08000000&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now the diode on the stm32-h103 board should start to blink happily! :)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notes and links:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Here I gathered some additional links that may be usefull:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.st.com/mcu/modules.php?name=mcu&amp;amp;file=familiesdocs&amp;amp;fam=110&amp;amp;doc=60&quot;&gt;STM32 Reference Manual&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.st.com/mcu/modules.php?name=mcu&amp;amp;file=familiesdocs&amp;amp;fam=110&amp;amp;doc=76&quot;&gt;STM32 Firmware Library and it&#39;s Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.olimex.com/dev/stm32-h103.html&quot;&gt;Olimex STM32-H103 Board Site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Disclamers:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I hope this tutorial is useful. If I made any mistakes feel free to write a comment to this post. I will try to update it if something changes and/or needs to be corrected.&lt;/p&gt;
&lt;p&gt;Cheers Esden&lt;/p&gt;
&lt;p&gt;Updates:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fixed link to stm32-blink.tar.bz2&lt;/li&gt;
&lt;li&gt;Changed links to source packages to real links.&lt;/li&gt;
&lt;li&gt;Added newlib patch for missing makeinfo&lt;/li&gt;
&lt;li&gt;Added some additional links. For example to the ST Firmware Library and it&#39;s documentation.&lt;/li&gt;
&lt;li&gt;Added link to the Reference manual of STM32.&lt;/li&gt;
&lt;li&gt;Removed the newlib patch section.&lt;/li&gt;
&lt;/ul&gt;
</description>
      </item>
      <item>
          <title>Ok ... back again</title>
          <pubDate>Sat, 13 Dec 2008 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2008-12-13-ok-back-again/</link>
          <guid>https://esden.net/blog/2008-12-13-ok-back-again/</guid>
          <description xml:base="https://esden.net/blog/2008-12-13-ok-back-again/">&lt;p&gt;It is really time that I write something here. It is nearly one year since I last posted something here. But I was doing some things in the mean time. ^^&lt;/p&gt;
&lt;p&gt;First of all I finished my Diploma at the University of applied sciences in Rosenheim. Now I am working at the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www9.cs.tum.edu&quot;&gt;computer science chair of Prof. Radig&lt;/a&gt;. The name of the chair is &quot;Image Understanding and Knowledge-Based Systems&quot; it somehow sounds cool. ^^&lt;/p&gt;
&lt;p&gt;But basicly I get payed for programming Common Lisp. My work now involves getting the high level systems running on the real Robot. Till now all the high level planning stuff was only running in simulation.&lt;/p&gt;
&lt;p&gt;In my short free time I started the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://elco.esden.net&quot;&gt;ELCO Project&lt;/a&gt; which should become a framework for developing Lisp based software for Embedded systems. But I have to write a more elaborate article on that topic.&lt;/p&gt;
&lt;p&gt;And the last thing for today. I just released my first shot on the schematics of a really Open source &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Brushless_DC_electric_motor&quot;&gt;Brushless Drive&lt;/a&gt; Controller. You can find the eagle schematic (yes I know eagle is not open but the open source alternatives just suck!) in a git repository on &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.github.com/esden/open-bldc&quot;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I also can only encourage you to subscribe me on &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://identi.ca/esden&quot;&gt;identi.ca&lt;/a&gt;. I am posting bit more frequently there. ^^&lt;/p&gt;
&lt;p&gt;Cheers everyone!&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Apple and their Support</title>
          <pubDate>Tue, 13 Feb 2007 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2007-02-13-apple-and-their-support/</link>
          <guid>https://esden.net/blog/2007-02-13-apple-and-their-support/</guid>
          <description xml:base="https://esden.net/blog/2007-02-13-apple-and-their-support/">&lt;p&gt;After a long time finally a new entry here.&lt;/p&gt;
&lt;p&gt;Some time ago I owned a Powerbook 15&quot;. This one had a problem with its second ram slot. It was not detected by the system. I called Apple Care but they were not willing to fix that. I really was upset about that because it was a known problem. Still the serial number of my Powerbook was not in the range Apple considered affected by that problem. &amp;gt;_&amp;lt; Now I have a MacBook Pro 17&quot; and some days ago my battery grew to its double size. Yes just like the one in this article &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://gizmodo.com/gadgets/laptops/macbook-pro-batteries-are-inflating-222468.php&quot;&gt;here&lt;/a&gt;. I realized that only because my touch pad button was not clicking anymore and when I put my hand near the touch pad it triggered the button. Searching the web showed the article at Gizmodo above. I looked at the back of my laptop and was shocked.&lt;/p&gt;
&lt;p&gt;Yesterday I called &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.equinux.de&quot;&gt;Equinux&lt;/a&gt; and asked what can be done. They checked my Serial number and said that I should bring my laptop over. So directly after work I went there and without much asking they took my battery and said that they will replace it. (That is something that I was not expecting after my experiances with my Powerbook.)&lt;/p&gt;
&lt;p&gt;As I was already there I pointed out a little cosmetic problem I had. The band underneath the keyboard weared off and lost its matt look just some weeks after I got my Macbook. (I will post a picture of it later.) They also said with no hesitation that they will replace the whole top if I want to. The problem I have is that I need my laptop all the time for my work so I can not leave it even for a day for fixing. So they said that they will make a appointment with me so I can come over and the technician will replace it in one hour. That is what I call service.&lt;/p&gt;
&lt;p&gt;Now they showed me that Apple can also have a very good support as long as you have a guarantee coverage on your hardware. I can only say that I am very happy that I bought Apple Care along with the MacBook. That will save me lots of money and annoyance in the future.&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Lisp Machines</title>
          <pubDate>Tue, 29 Aug 2006 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2006-08-29-lisp-machines/</link>
          <guid>https://esden.net/blog/2006-08-29-lisp-machines/</guid>
          <description xml:base="https://esden.net/blog/2006-08-29-lisp-machines/">&lt;p&gt;Some days ago I watched some &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.cliki.net/Lisp%20Machine%20Videos&quot;&gt;Lisp Machine Videos&lt;/a&gt;. These films show what it was like to use a lisp machine and code on it.&lt;/p&gt;
&lt;p&gt;I really have to admit that I was not surprised to see what wonderful ideas the guys had back then. Current OS&#39;s still have a long way to go to incorporate (copy) the functionality you had 20 years ago in LispM Operating systems like &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Genera&quot;&gt;Genera&lt;/a&gt;. Apple as always is on the front line of incorporating this old stuff. For example &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.apple.com/macosx/leopard/timemachine.html&quot;&gt;Time Machine&lt;/a&gt;. The new feature that will be there in Leopard (the next version of Mac OS X). The idea of easily going back in time and looking at your files was there 20 year ago.&lt;/p&gt;
&lt;p&gt;Still as I now know Time Machine is still far away from the idea the LispM developers had. There you had a filesystem that had versioning built in. You can tell you do not save files just like that. You save patches to your files. That is somehow comparable to having SVN as your filesystem. Just a bit more sophisticated.&lt;/p&gt;
&lt;p&gt;Sure that is not the only thing. There are tons of others. Like objects that are mouse sensitive depending on what you are doing. Accessing the displayed object structures that are behind that what you see. And many more...&lt;/p&gt;
&lt;p&gt;I do not want to let myself get carried away too much. The condensed idea I wanted to share with you is the following. Genera is amazing. And if you think that any currently known OS is cool then you know nothing. And if you think that Java and Eclipse are cool then you live in the stone age in the matter of knowledge.&lt;/p&gt;
&lt;p&gt;Sit down, learn lisp. It may hurt at first, but the freedom is worth it. Others had to pay their lives for freedom and you only have to learn.&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Lisp Interpreter in Java Script</title>
          <pubDate>Mon, 17 Jul 2006 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2006-07-17-lisp-interpreter-in-java-stcript/</link>
          <guid>https://esden.net/blog/2006-07-17-lisp-interpreter-in-java-stcript/</guid>
          <description xml:base="https://esden.net/blog/2006-07-17-lisp-interpreter-in-java-stcript/">&lt;p&gt;Today I found something pretty nice a &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.joeganley.com/code/jslisp.html&quot;&gt;Lisp interpreter in Java Script&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I came to it through &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.logowiki.net/&quot;&gt;logowiki&lt;/a&gt;. I found it pretty amazing that you can run the example programs you have in your wiki. So I asked google about it.&lt;/p&gt;
&lt;p&gt;The interpreter lacks some functionality like defun, defmacro and so on but I think it would be a nice base for creating logowiki like interpreter. I have not read the source yet but I think it may be a nice way to show someone how to create a simple lisp interpreter.&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Compiling Binaries with sbcl</title>
          <pubDate>Mon, 10 Jul 2006 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2006-07-10-compiling-binaries-with-sbcl/</link>
          <guid>https://esden.net/blog/2006-07-10-compiling-binaries-with-sbcl/</guid>
          <description xml:base="https://esden.net/blog/2006-07-10-compiling-binaries-with-sbcl/">&lt;p&gt;There is one thing that you really want to have when you are creating programs. You want to create binaries. You can give them to others so that they can run them, without the hassle of compiling your programs by themselves, or you do not want them to see your sourcecode for some strange reason.&lt;/p&gt;
&lt;p&gt;When you look at ruby, perl, python or even the all praised Java (do you hear the holy horns play? &amp;gt;_&amp;lt; ) you will see that you always need to install the appropriate one with tons of libraries so that you can run the scripts. I know I know ... I already see you running in my direction with your blades pulled out. There are compilers and packagers out there that can create binaries and you can even create a static binary that runs without the need of additional libraries.&lt;/p&gt;
&lt;p&gt;But think for yourself are these solutions good? Is it working well?&lt;/p&gt;
&lt;p&gt;I remember trying gcj. I had a test program of some hundred of very simple and standard java code. It was screaming very loudly &quot;I am not ready to do that, I am too young!&quot; perhaps it is better these days but I can not imagine that it works as it should. I also tried a perl to c converter but it was even more a mess.&lt;/p&gt;
&lt;p&gt;As you know I am playing around with lisp, common lisp to be exact. As most people I was thinking that it will be the same way it is with the languages mentioned above. But I could not be wrong more. There are compilers and today most of the implementations do not even have an interpreter. Most of them compile the code to at least bytecode. (I know ruby does that too, and Java too ... damn do not pick out every word I say separately) But sbcl for example (my implementation of choice for now) compiles everything. In CMUCL from which SBCL was inherited still has an interpreter additional to the compiler.&lt;/p&gt;
&lt;p&gt;I wanted to try out how it works with compiling a binary. I first thought that it will work just like with gcc or other command line batch compilers but I once more could not be wrong more. What you do is start SBCL load all libraries you need with &quot;require&quot; or &quot;load&quot; also load your program code and initialize everything you need. Then you run:&lt;/p&gt;
&lt;p&gt;(sb-ext:save-lisp-and-die &quot;my_binary&quot; :executable t :toplevel &#39;main-program-function)&lt;/p&gt;
&lt;p&gt;After that you have &quot;my_binary&quot; on your disk and you can start it on every compatible machine. What it does is saving the state of the lisp with everything that is present at the time you run the command. When you leave out the :executable you get a core file that you can use to run with sbcl -core commandline parameter. The :executable command only adds to the core file the ability to be executed by the operating system. In fact sbcl binary is just this kind of core dump that was created at compiletime of sbcl. The :toplevel keyword says the save function which function should be called the next time the core gets loaded. In most cases it probably will be the main function of your program. But when you think about it a bit more you can imagine how much power it is to be able to say what function is the main function. ;) (I know it from the lowlevel embedded programming side of the world ;) )&lt;/p&gt;
&lt;p&gt;But now comes up the Question. It is a coredump so what does it contain? Well there it comes. It contains everything. Really everything including all libraries and the lisp compiler. So when I compile the robots game I introduced in the previous post here I get a binary of 23MB (yes megabytes). That is pretty much. Sure it does not count if you have a really big system that is 100 times bigger but still that sucks somehow. I informed myself and now I know that there is something called &quot;headless&quot; in the works that will enable sbcl to create coredump with an integrated dynamic linker. This will make the binary significantly smaller and when you run your program it will dynamically link the libraries it needs. Just as it should be. Next thing is from the slime world. There is a profiler in the works that will be able to even more optimize the code so that you will be able to create really small binaries.&lt;/p&gt;
&lt;p&gt;All that is of course only SBCL other, commercial lisp implementations, like &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.lispworks.net&quot;&gt;LispWorks or&lt;/a&gt; &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.franz.com&quot;&gt;Allegro&lt;/a&gt;, already have very efficient mechanisms to create such binaries. But as long as you do not need that stuff immediately you can stay on the open source side of the world. ;)&lt;/p&gt;
&lt;p&gt;I hope that was interesting, and also hope to get some comments. That would encourage me to write more...&lt;/p&gt;
</description>
      </item>
      <item>
          <title>VIM7 Fun</title>
          <pubDate>Tue, 09 May 2006 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2006-05-09-vim7-fun/</link>
          <guid>https://esden.net/blog/2006-05-09-vim7-fun/</guid>
          <description xml:base="https://esden.net/blog/2006-05-09-vim7-fun/">&lt;p&gt;At work I have to use a pretty nasty Windows based development environment for a microcontroller.&lt;/p&gt;
&lt;p&gt;You can configure it so that it starts a text editor of your liking to edit the source files. This editor gets called when you click on a file or on an error message in the compiler output. The DE also accepts a setting for parameters to the editor. There are two meta character codes. One is for the file (%F) and the second for the line the editor should jump to (%L). The problem is that it uses the same settings for the error invocation as for the normal file opening.&lt;/p&gt;
&lt;p&gt;I wanted to use VIM7 and the new nice feature of tabs. As vim also supports remote invocation I decided that I want the DE to open the files in one central vim instance.&lt;/p&gt;
&lt;p&gt;It took me some time to find out the correct command line setting so I want to share it with you.&lt;/p&gt;
&lt;p&gt;gvim --servername &amp;lt;some_distinct_name&amp;gt; --remote-tab-silent +0%L %F&lt;/p&gt;
&lt;p&gt;Now some explanations.&lt;/p&gt;
&lt;p&gt;--servername is needed so that it always finds the correct vim window.&lt;/p&gt;
&lt;p&gt;-- remote-tab-silent is a directive that vim should start editing the file provided by %F in a remote window in a new tab if the file is not yet being edited. The &quot;silent&quot; addition makes vim not yield an error if there is no vim instance running yet, and start a new instance by itself.&lt;/p&gt;
&lt;p&gt;The +0%L is there so that when %L is there vim jumps to that line but when %L is empty it does not jump to the end of file but to the beginning. That is why the 0 is there.&lt;/p&gt;
&lt;p&gt;Ok I hope it is useful for someone. Have fun with VIM ;)&lt;/p&gt;
&lt;p&gt;Update: Corrected the unvisible some_distinct_name ;)&lt;/p&gt;
</description>
      </item>
      <item>
          <title>VIM7 Released</title>
          <pubDate>Mon, 08 May 2006 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2006-05-08-vim7-released/</link>
          <guid>https://esden.net/blog/2006-05-08-vim7-released/</guid>
          <description xml:base="https://esden.net/blog/2006-05-08-vim7-released/">&lt;p&gt;Finally! After years of development a new major release of my and many others favorite text editor is there. It contains many new very nice and useful features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Spell checking support for about 50 languages&lt;/li&gt;
&lt;li&gt;Intelligent completion for C, HTML, Ruby, Python, PHP, etc.&lt;/li&gt;
&lt;li&gt;Tab pages, each containing multiple windows&lt;/li&gt;
&lt;li&gt;Undo branches: never accidentally lose text again&lt;/li&gt;
&lt;li&gt;Vim script supports Lists and Dictionaries (similar to Python)&lt;/li&gt;
&lt;li&gt;Vim script profiling&lt;/li&gt;
&lt;li&gt;Improved Unicode support&lt;/li&gt;
&lt;li&gt;Highlighting of cursor line, cursor column and matching braces&lt;/li&gt;
&lt;li&gt;Translated manual pages support.&lt;/li&gt;
&lt;li&gt;Internal grep; works on all platforms, searches compressed files&lt;/li&gt;
&lt;li&gt;Browsing remote directories, zip and tar archives&lt;/li&gt;
&lt;li&gt;Printing multi-byte text&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Grab it &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.vim.org/download.php&quot;&gt;here&lt;/a&gt;!&lt;/p&gt;
</description>
      </item>
      <item>
          <title>V for Vendetta</title>
          <pubDate>Fri, 17 Mar 2006 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2006-03-17-v-for-vendetta/</link>
          <guid>https://esden.net/blog/2006-03-17-v-for-vendetta/</guid>
          <description xml:base="https://esden.net/blog/2006-03-17-v-for-vendetta/">&lt;p&gt;Hello everyone. It has been a very long time since I posted last time. My life was very hasty in the last time. But now I have something that I must share with all the people that want to take the time to read it.&lt;/p&gt;
&lt;p&gt;I just saw the new filmy by the makers of Matrix. It was called &quot;V for Vendetta&quot;. I do not want to write a critique of the film. I only want to say that it is a must see and take the message of the film as a starting point for some reflections.&lt;/p&gt;
&lt;p&gt;The main message for me was that if we do not take care we could end up in a state where &quot;People are afraid of their governments.&quot; We see many changes taking place that most of us do not see. Data retention, tracking, RFID... and so on.&lt;/p&gt;
&lt;p&gt;The problem is that taking a side in the discussion if it is OK or not is also a problem already. If I say in my blog that I am on either side the internet will never forget that. And I may get in trouble in the future. So I will not take any side. At least not here. The reader should take a side by him/her self.&lt;/p&gt;
&lt;p&gt;The biggest problem I see is that most of the People around us do not know about this changes. Most of them are not interested if the changes are made or not. Most of them say that it does not affect them. I think (and here I take a side) that it is a problem. I know that most people are not interested in politics. I can not say that I am a person that is politically active or really interested. I am in no party and I read news only as much as it is necessary to know if there are very heavy things happening. But one thing I know is that the changes our government is making are affecting us all and we all should open our eyes and think on which side we are. Not taking a side is the same as agreeing with the side that won. I took a side and will look for ways to express them in a way that will not get me in trouble in the future. I will be happy to hear any tips to how do that.&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Rushing makes it ugly?</title>
          <pubDate>Sun, 15 Jan 2006 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2006-01-15-rushing-makes-it-ugly/</link>
          <guid>https://esden.net/blog/2006-01-15-rushing-makes-it-ugly/</guid>
          <description xml:base="https://esden.net/blog/2006-01-15-rushing-makes-it-ugly/">&lt;p&gt;Slowly some more images of the new intel Mac&#39;s are spreading over the internet. Like for example &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.kodawarisan.com/&quot;&gt;kodawarisan.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There is a nice comparison of the old iMac G5 and the new Intel iMac.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://esden.net/blog/2006-01-15-rushing-makes-it-ugly/images/uglyinside2.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You really see that it was made in a rush. The inside is not so pretty like in the predecessor. I hope that when Apple finally finishes the switch to Intel they will take the time to get not only the outside, of the machines, beautiful, as always, but also the inside.&lt;/p&gt;
&lt;p&gt;I really hope that Apple will not lower their quality because of the switch to Intel. I know that not many people care about the insides. But if a product is not only beautiful, easy to use and ergonomic on the outside but also on the inside it really shows the quality. So once more I pray that Apple gets back on with the expectations we have.&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Macintel wishes</title>
          <pubDate>Wed, 11 Jan 2006 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2006-01-11-macintel-wishes/</link>
          <guid>https://esden.net/blog/2006-01-11-macintel-wishes/</guid>
          <description xml:base="https://esden.net/blog/2006-01-11-macintel-wishes/">&lt;p&gt;Yesterday Steve announced new macs at Mac World Expo. And they have Intel inside. The brand new Core Duo! They are a dream!&lt;/p&gt;
&lt;p&gt;I can&#39;t wait to get my hands on the Powerbook successor called Macbook Pro. It is a dream! Anyone willing to give me money?&lt;/p&gt;
&lt;p&gt;Take a look at the beauty:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://esden.net/blog/2006-01-11-macintel-wishes/images/macbookpro.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You can see more &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.apple.com/macbookpro&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;They also released a new &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.apple.com/imac/&quot;&gt;iMac&lt;/a&gt; with Core Duo inside. Also amazing but I need a portable upgrade.&lt;/p&gt;
&lt;p&gt;I want to win in Lotto! ;)&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Pixelpost</title>
          <pubDate>Mon, 03 Oct 2005 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2005-10-03-pixelpost/</link>
          <guid>https://esden.net/blog/2005-10-03-pixelpost/</guid>
          <description xml:base="https://esden.net/blog/2005-10-03-pixelpost/">&lt;p&gt;As you already know I have installed a photoblog on my site. I use &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.pixelpost.org/&quot;&gt;Pixelpost&lt;/a&gt; for that. It is a pretty nice and simple system having nearly everything you need.&lt;/p&gt;
&lt;p&gt;The problem is that this software is very crappy written. I installed it and tried to upload an image. Everything went ok only that the thumbnail has not been created for the image. I spent one hour debugging only to find out that it is failing because I have no jpeg support in gd2 php plugin. I do really not understand why people are not doing right error handling. At least the install script could have checked that! The calls to these functions are muted (not yelding anything on an error). I really could kill someone for that.&lt;/p&gt;
&lt;p&gt;Spending another two hours on bugfixing the code I finally acheved that I do not get 20 error entries in my apache logs on a link click. I will try to collect all my fixes and post them to the pixelpost developers in the next days. But for that I have to spend another evening getting the code really clean because my fixes are pretty hacky for now. I really wanted that thing running.&lt;/p&gt;
&lt;p&gt;I also added another WordPress plugin to integrate the latest and one random thumbnail image on my blog site. You find the plugin &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://weblog.raminia.com/wp-hacks/&quot;&gt;here&lt;/a&gt;. It worked without any hacks or tweaks. That is how I like a software to be. ;)&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Lock bumping</title>
          <pubDate>Thu, 25 Aug 2005 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2005-08-25-lock-bumping/</link>
          <guid>https://esden.net/blog/2005-08-25-lock-bumping/</guid>
          <description xml:base="https://esden.net/blog/2005-08-25-lock-bumping/">&lt;p&gt;Yesterday on &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.hackaday.com/&quot;&gt;HackADay&lt;/a&gt; there was a post linking to lock bumping. A very interesting technique for opening most of the current door locks.&lt;/p&gt;
&lt;p&gt;It is a security vulnerability that is so severe because it is so terribly simple that it looks nearly like magic. A guy inserts a self made key into a lock, hits it with the head of a screwdriver and the lock pops open. Having only 10 most common bump keys you can open about 90% of the current door locks.&lt;/p&gt;
&lt;p&gt;You can see a full video about lock bumping on the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.toool.nl/index-eng.php&quot;&gt;Toool&lt;/a&gt; home page &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://connectmedia.waag.org/toool/whatthebump.wmv&quot;&gt;here&lt;/a&gt; recorded on WTH this year. There is also a &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.kaba.nl/&quot;&gt;list&lt;/a&gt; of locks that are not vulnerable to the bumping attack.&lt;/p&gt;
&lt;p&gt;I really encourage you to check if your door lock is vulnerable and get a new one if you can. The only real problem is that there are not many good lock under 100Eur level. But everyone knows how much security is important for him.&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Security discussions</title>
          <pubDate>Thu, 25 Aug 2005 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2005-08-25-security-discussions/</link>
          <guid>https://esden.net/blog/2005-08-25-security-discussions/</guid>
          <description xml:base="https://esden.net/blog/2005-08-25-security-discussions/">&lt;p&gt;I just had a discussion with my father and with my granny about security issues ignated by the previous post.&lt;/p&gt;
&lt;p&gt;My father and my granny say that one should not spread the information about a vulnerability and the way it may be exploited. One only should say that there is one and that one should change something and what to change.&lt;/p&gt;
&lt;p&gt;I think in the contrary that when I do not tell how to exploit a big security hole no one will give it trust. Everyone will say that it is only a hoax and not truth because fixing the potential security hole is very expensive (to fix the security hole from the previous post you need to spend 100Eur or more).&lt;/p&gt;
&lt;p&gt;I ask you for comments and statements about that. Also links to pages dealing with this problematic.&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Catching up</title>
          <pubDate>Wed, 24 Aug 2005 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2005-08-24-catching-up/</link>
          <guid>https://esden.net/blog/2005-08-24-catching-up/</guid>
          <description xml:base="https://esden.net/blog/2005-08-24-catching-up/">&lt;p&gt;Since the morning today I am working on getting all the images I have online. I want to do it before I start reposting my blog entries that are on my laptop. It is really not so easy as it seems. The images I get from my camera are all way too big for web so I have to downsize them. Sadly iPhoto does not have (or I am blind) an easy batch option for resizing images. I got a program called &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.stuntsoftware.com/software/Downsize/index.html&quot;&gt;Downsize&lt;/a&gt; for that. I really ask myself why all that useful little stuff has to cost money. 20$ here 20$ there ... every little tool costs money. I am a poor student I do not have the money to pay every little tool I get and that nags suck badly and test time outs even more. I would prefer if the programs were free and there were donation buttons on their pages. I am really sure that the time I start working and have some pennies left I will donate money to every vendor of a useful program I use that is free and has a donation button. You may hit me on that later ;)&lt;/p&gt;
&lt;p&gt;Ok I finish uploading the images and then I start to add all the blog posts that accumulated here on my disk ;)&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Visit to Gdansk</title>
          <pubDate>Thu, 18 Aug 2005 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2005-08-18-visit-to-gdansk/</link>
          <guid>https://esden.net/blog/2005-08-18-visit-to-gdansk/</guid>
          <description xml:base="https://esden.net/blog/2005-08-18-visit-to-gdansk/">&lt;p&gt;Today my parents, my grandmother, my brother and I have visited Gdansk. It is a very beautiful city lying at the northern coast of Poland. I have visited some churches and marked called after a saint: &quot;Dominican Market&quot; my brother and I have bought two coats with Poland written on it&#39;s backs. Very nice stuff. (very warm ;) )&lt;/p&gt;
&lt;p&gt;I am currently working on deBlog all the time. Work is progressing very slowly because every several minutes someone wants me to do something or, what is more common, I fall asleep. That are that damn climatic changes. I really ask myself if I ever get that thing finished if I continue to progress with my work like that.&lt;/p&gt;
&lt;p&gt;I am making a lot of pictures here. I will upload them some time when I have better internet connection then here. I am currently connected to the I-Net line of my uncle and aunt. For some strange reason the provider allows full bandwidth only to single mac addresses that are registered. My mac address is not registered yet so I have only 5kb down and something around this upload. I hope now you can understand why I will not upload my pictures ;)&lt;/p&gt;
&lt;p&gt;I hope to have better network in Warsaw. I will leave in that direction on Tuesday and my Grandmother has DSL Hardline now so I may have a better connection there ;)&lt;/p&gt;
&lt;p&gt;I think that is all for today.... cu ;)&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Leaving for Poland</title>
          <pubDate>Sat, 13 Aug 2005 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2005-08-13-leaving-for-poland/</link>
          <guid>https://esden.net/blog/2005-08-13-leaving-for-poland/</guid>
          <description xml:base="https://esden.net/blog/2005-08-13-leaving-for-poland/">&lt;p&gt;Today about 15:30 I left Ingolstadt for a trip to Poland. My current final destination is Gdynia at the coast of Poland. I have about 5 hours driving behind me and my head aches a bit. I hope that is over after I cached some hours of sleep.&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.crash-override.net&quot;&gt;Blindcoder&lt;/a&gt; I do not have to drive the whole way to Gdynia in one peace but can make a stop in Berlin from where I am writing this entry now. I really missed a GPS navigation program or device. I did not have a detailed map of Berlin and leaving Ingolstadt I did not have the address of Blindy.&lt;/p&gt;
&lt;p&gt;I searched the net a bit to find some Mac OS X software that can show me maps at least but did not find anything for now. It would be really great if it would be able to use GPS data too. Blindy has a usb GPS mouse that he offered me but that will not help until I find some software that can work with that.&lt;/p&gt;
&lt;p&gt;I will really have to think about buying a TomTom or so if I do not find anything. Please let me know if you find or know some OS X GPS &quot;navigation&quot; software.&lt;/p&gt;
&lt;p&gt;Now I go sleeping my head is bursting ;)&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Pallas is back on!</title>
          <pubDate>Thu, 11 Aug 2005 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2005-08-11-pallas-is-back-on/</link>
          <guid>https://esden.net/blog/2005-08-11-pallas-is-back-on/</guid>
          <description xml:base="https://esden.net/blog/2005-08-11-pallas-is-back-on/">&lt;p&gt;That was a hard day yesterday. I woke up in the morning to find out that the server my blog is on is down.&lt;/p&gt;
&lt;p&gt;I talked to a friend of mine that also has his servers hosted at Hetzner and got the information that the provider wrote an e-mail some days ago that they will add UPS to the server room and that the admins have to stop their machines due to a power down caused by the change.&lt;/p&gt;
&lt;p&gt;I am not the admin of the server but a friend of me that left to Turkmekistan (I hope that it is written that way) last weekend. So I did not have that information.&lt;/p&gt;
&lt;p&gt;After calling my friend and getting username and password of the Hetzner robot I called the technician of our provider. He checked our machine and realized that the hardware was broken and he will change it. It took some minutes and he called back saying that the hardware is changed but that rock is not finding the network card.&lt;/p&gt;
&lt;p&gt;I booted to the rescue system and took a lot of time to check what was wrong and recompile the kernel with tulip drivers that were missing.&lt;/p&gt;
&lt;p&gt;After a reboot (my adrenaline was at 150% during the reboot (we do not have an automatic reset only a manual that takes a lot of time to be triggered) (we need a hardware reset to start the rescue system)) everything was back to normal.&lt;/p&gt;
&lt;p&gt;That was the story of pallas aka www.esden.net ... the pure adrenaline ;)&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Sitecom USB to Serial on Mac OS X</title>
          <pubDate>Thu, 11 Aug 2005 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2005-08-11-sitecom-usb-to-serial-on-mac-os-x/</link>
          <guid>https://esden.net/blog/2005-08-11-sitecom-usb-to-serial-on-mac-os-x/</guid>
          <description xml:base="https://esden.net/blog/2005-08-11-sitecom-usb-to-serial-on-mac-os-x/">&lt;p&gt;The day before yesterday I have bought a Sitecom USB to Serial cable (UC-104). The common problem with such cables is that there are no drivers from the producer for Mac OS X. The good thing is that most of these cables use a Prolific chip. Prolific is offering a driver for cables based on their chip on their site.&lt;/p&gt;
&lt;p&gt;When I connected the Sitecom cable &quot;About this Mac&quot; reported that it is a Prolific but the driver did not load. I figured out that it is the Vendor Id and Product Id that were not matching.&lt;/p&gt;
&lt;p&gt;I had to edit /System/Library/Extentions/ProlificUsbSerial.kext/Info.plist and change the vendor and product Id&#39;s apropriately. (You can do that with every cable that has a prolific chip in it)&lt;/p&gt;
&lt;p&gt;And after that I had to run kextload /System/Library/Extentions/ProlificUsbSerial.kext . And imagine what was the biggest problem I had. Yes exactly that I forgot to run kextload &amp;gt;_&amp;lt;&lt;/p&gt;
&lt;p&gt;But now it works and through my post it is hopefully helpfull for someone that googles for this cable and mac ;)&lt;/p&gt;
&lt;p&gt;(if it was usefull for you write a comment! I will be very happy about it ;) )&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Lightspace</title>
          <pubDate>Wed, 20 Jul 2005 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2005-07-20-lightspace/</link>
          <guid>https://esden.net/blog/2005-07-20-lightspace/</guid>
          <description xml:base="https://esden.net/blog/2005-07-20-lightspace/">&lt;p&gt;Looking through pages writing about the OLED Keyboard I have found something very nice.&lt;/p&gt;
&lt;p&gt;I have seen something made by some students at MIT before but this one is a commercial pendant to it. An interactive blinking floor and wall. It was made by &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.lightspacecorp.com&quot;&gt;Lightspacecorp&lt;/a&gt; and you can see some videos &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.lightspacecorp.com/showcase/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I really have to admit that it is a nice thing something in the style of the lighting dancefloors known from the 80&#39;s disco. I really would like to see that in some club nearby so I could dance my ass off on it ;)&lt;/p&gt;
</description>
      </item>
      <item>
          <title>OLED Keyboard updated!</title>
          <pubDate>Mon, 18 Jul 2005 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2005-07-18-oled-keyboard-updated/</link>
          <guid>https://esden.net/blog/2005-07-18-oled-keyboard-updated/</guid>
          <description xml:base="https://esden.net/blog/2005-07-18-oled-keyboard-updated/">&lt;p&gt;Good news everyone!&lt;/p&gt;
&lt;p&gt;From the new FAQ on the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.artlebedev.com/portfolio/optimus/&quot;&gt;Optimus keyboard&lt;/a&gt; homepage:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It&#39;s in initial stage of production&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;We hope it will be released in 2006&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;It will cost less than a good mobile phone&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;It will be real&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;It will be OS-independent (at least it can work in some default state with any OS)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;It will support any language or layout&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Each key could be programmed to produce any sequence&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;It will be an open-source keyboard, SDK will be available&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Some day it will be split (&#39;ergonomic&#39;)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;It will most likely use OLED technology (e-paper is sooo slow)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;It will feature a key-saver&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Keys will use animation when needed&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I snipped out some uninteresting stuff (see their page if you still want to read them).&lt;/p&gt;
&lt;p&gt;The most important thing is that it will get real! Weehoo! I have to save money to buy it in 2006 ;) The open source thing is also veeery nice ;) The other things too. ;)&lt;/p&gt;
&lt;p&gt;I am already looking forward to that shiny lightning keyboard!!!&lt;/p&gt;
</description>
      </item>
      <item>
          <title>An Oled Keyboard</title>
          <pubDate>Thu, 14 Jul 2005 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2005-07-14-an-oled-keyboard/</link>
          <guid>https://esden.net/blog/2005-07-14-an-oled-keyboard/</guid>
          <description xml:base="https://esden.net/blog/2005-07-14-an-oled-keyboard/">&lt;p&gt;Fascinating! Through &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.slashdot.org&quot;&gt;Slashdot&lt;/a&gt; in this &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://hardware.slashdot.org/article.pl?sid=05/07/14/1335215&amp;amp;from=rss&quot;&gt;article&lt;/a&gt; I have found the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.artlebedev.com/portfolio/optimus/&quot;&gt;keyboard of my dreams&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;In every key there is an oled display that shows the current function this key has. I was thinking about something like that some time ago. I should have patented it :/&lt;/p&gt;
&lt;p&gt;I only hope that some day someone will produce such a keyboard!&lt;/p&gt;
</description>
      </item>
      <item>
          <title>You really need Unittesting!</title>
          <pubDate>Sun, 10 Jul 2005 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2005-07-10-you-really-need-unittesting/</link>
          <guid>https://esden.net/blog/2005-07-10-you-really-need-unittesting/</guid>
          <description xml:base="https://esden.net/blog/2005-07-10-you-really-need-unittesting/">&lt;p&gt;Some days before I wrote about how important Unittesting is and thanks to &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://www.hermann-uwe.de&quot;&gt;Uwe&#39;s Blog&lt;/a&gt; i got another &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://butunclebob.com/ArticleS.UncleBob.JustTenMinutesWithoutAtest&quot;&gt;proof&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;That reminds me of writing the diff code for Diagnostics. The tests were fundamental in gaining a bit of trust in the quality of the code I have written. They triggered one bug after another... that was already in the code that I based mine on (the original code had no Unittesting or anything in the style). I only can shake my head about people not realizing how important that is.&lt;/p&gt;
&lt;p&gt;Apropos that some days ago I told someone about Unittesting his response was really ridiculous: &quot;writing that tests is real bloat I really do not have time to run the tests after changing one line code&quot;. Read the article then you will understand why you will _take_ the time to run the tests! ;)&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Objective C</title>
          <pubDate>Thu, 07 Jul 2005 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2005-07-07-objective-c/</link>
          <guid>https://esden.net/blog/2005-07-07-objective-c/</guid>
          <description xml:base="https://esden.net/blog/2005-07-07-objective-c/">&lt;p&gt;Da ich endlich mal was in XCode fuer Cocoa coden will habe ich heute angefangen bisschen auf der &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; title=&quot;Developer Seite von Apple&quot; href=&quot;http://developer.apple.com&quot;&gt;Developer Seite&lt;/a&gt; von Apple zu lesen. Da gibt es eine ganz nette &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; title=&quot;Einfuehrung in Objective C&quot; href=&quot;http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/index.html#//apple_ref/doc/uid/TP30001163&quot;&gt;Einfuehrung&lt;/a&gt; ins Objective C.&lt;/p&gt;
&lt;p&gt;Diese Sprache ist C mit Zusatz von Smalltalk so das es objektorientiert wird. Ich finde es ganz nett.&lt;/p&gt;
&lt;p&gt;Ich bin gespannt wie es sich dann anfuehlt wenn man es dann letztenendes programmiert. Ich habe schon das entsprechende Projekt dafuer naemlich ein Blog Schreibprogramm ala ecto. ;)&lt;/p&gt;
</description>
      </item>
      <item>
          <title>IPod Wood Mod</title>
          <pubDate>Wed, 06 Jul 2005 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2005-07-06-ipod-wood-mod/</link>
          <guid>https://esden.net/blog/2005-07-06-ipod-wood-mod/</guid>
          <description xml:base="https://esden.net/blog/2005-07-06-ipod-wood-mod/">&lt;p&gt;Ich bin gestern durch &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://slashdot.org/&quot;&gt;Slashdot&lt;/a&gt; auf einen super geilen iPod mod gestossen. Der &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.bit-tech.net/modding/2005/07/05/wood_ipod_zapwizard/1.html&quot;&gt;Wood mod&lt;/a&gt;. Das tollste daran ist das es mit der Hand gemacht wurde. Eine tolle Arbeit muss ich sagen.&lt;/p&gt;
&lt;p&gt;Es gibt aber trotzdem paar Sachen anzustreichen. Ich finde dadurch das es so dick lackiert ist sieht es zumindest auf den &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.flickr.com/photos/zapwizard/23324213/in/set-476089/&quot;&gt;Photos&lt;/a&gt; wie aus Plastik aus. Obwohl wenn ich mir vorstelle wie es in Wirklichkeit aussehen kann denke ich das es schon in Ordnung ist.&lt;/p&gt;
&lt;p&gt;Zweitens ist die Verdeckung vom Clickwheel so ausgebaeult. ich finde da haette man die Teile so anpassen sollen das es eine glatte Ebene ergibt so wie es bei dem Orginal iPod der fall ist. Denn so verleiht es einen klobigen Look und bricht mit der Sauberkeit des Orginaldesigns. Finde es aber ok das das Clickwheel aus einem anderen Holz ist als das Frontpannel. Das sieht ganz gut aus.&lt;/p&gt;
&lt;p&gt;Alles im ganzen eine ueberwaeltigende Arbeit wie man es an den unzaehligen &quot;Wow&quot; und &quot;Wooot&quot; Kommentaren erkennen kann.&lt;/p&gt;
&lt;p&gt;Da kommen schon gleich weitere Ideen wie man THC vielleicht Designen koennte ;)&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Rebooting the Universe</title>
          <pubDate>Tue, 05 Jul 2005 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2005-07-05-rebooting-the-universe/</link>
          <guid>https://esden.net/blog/2005-07-05-rebooting-the-universe/</guid>
          <description xml:base="https://esden.net/blog/2005-07-05-rebooting-the-universe/">&lt;p&gt;Da ich momentan mein komplettes Webseiten Verzeichnis umraeume und neu strukturier bin ich auf was etwas was ich mal geschriben habe geschrieben habe.&lt;/p&gt;
&lt;p&gt;Ein Vorschlag wie es aussehen koennte wenn man das Universum rebooten wuerde. Ihr koennt es euch &lt;a href=&quot;/content/misc/reboot.txt&quot; title=&quot;Rebooting the Universe&quot;&gt;hier&lt;/a&gt; durchlesen.&lt;/p&gt;
&lt;p&gt;Wenn jemand von euch Verbesserungsvorschlaege hat darf sie logischerweise mitteilen. ;)&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Coden ohne Diagnostics</title>
          <pubDate>Mon, 04 Jul 2005 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2005-07-04-coden-ohne-diagnostics/</link>
          <guid>https://esden.net/blog/2005-07-04-coden-ohne-diagnostics/</guid>
          <description xml:base="https://esden.net/blog/2005-07-04-coden-ohne-diagnostics/">&lt;p&gt;Soo ... ich bin jetzt total am ende. Es ist verdammt spaet ich sollte Schlafen da in drei Stunden ist wieder Uni.&lt;/p&gt;
&lt;p&gt;Ich habe mir dieses ecto geholt wie ihr vorhin lesen konntet. Nun ein ganz nettes ding wenn es funktionieren wuerde. Ich habe einen bug wie schon geschrieben behoben der es nicht erlaubte ueberhaupt was zu machen. Das ding schafft es aber immer noch nicht kategorien von den Posts richtig zu setzen.&lt;/p&gt;
&lt;p&gt;Da kommen wir direkt zu dem was ich hier ansprechen wollte. Ich habe viele Stunden damit verbracht Serendipity so hinzukriegen das es mit ecto sprechen kann. Es ist einmal ecto das nicht richtig das XMLRPC Protokoll implementiert und Serendipity das es auch nicht richtig tut. Aber das ist nicht das schlimmste. Ich wuerde alles ziemlich schnell zum laufen bringen wenn man Serendipity vernuemftig debuggen koennte. Es faehlt vernuemftiges logging. Ich kann keine richtigen debug Ausgaben produzieren. Alles muss man per hand irgendwo in eine Datei machen.&lt;/p&gt;
&lt;p&gt;Es gibt noch ein Problem. Das ding ist nicht richtig getestet. Warum machen die leute keine TESTCASES? Verdammtnochmal! Warum testen die ihre software nicht! Wie zum kuckuck kann man software entwickeln ohne richtiges logging und testing? Kann mir das jemand erklaeren?&lt;/p&gt;
&lt;p&gt;Jetzt habe ich lust wirklich mein eigenes Blog System zu schreiben mit einem vernuemftigen Mac OS X, Windows und Linux Client. Das kann doch nicht eingehen das jeder macht was er will. Testet die software mit einem Blog system und meint das alles in bester ordnung ist. Genauso umgekehrt. Leute schreiben Blog Systeme und testen die mit einem Client und meinen das alles in ordnung ist. Dann halten sich alle nicht richtig an die Standards die wunderbar in RFC&#39;s geschrieben sind. Wobei die RFC auch wieder nicht alles richtig definieren. Wie zum beispiel sollen die kategorien verworfen werden wenn man zu editPost Funktionsaufruf keine kategorien mitgibt?&lt;/p&gt;
&lt;p&gt;TESTET euren scheiss!!! Schreibt TESTCASES!!! Macht multilevel LOGGING!!! Ihr macht euch selbst und anderen ein gefallen damit.&lt;/p&gt;
&lt;p&gt;Durch diese geschichte wurde ich wieder davon ueberzeugt das OpenSource Software von Kiddies die keine ahnung haben geschrieben wird. Von Anfaengern die meinen das wenn man drauf los coded alles gut wird! GNAAARF!&lt;/p&gt;
&lt;p&gt;Ich habe mommentan echt lust eine Kettensaege zu nehmen und auf irgendeine PHP Con zu gehen!&lt;/p&gt;
&lt;p&gt;Soo es reicht von dem Rumgeschreihe.&lt;/p&gt;
&lt;p&gt;Schoenen guten Tag wuensche ich euch allen!&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Probleme mit ecto und serendipity</title>
          <pubDate>Mon, 04 Jul 2005 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2005-07-04-probleme-mit-ecto-und-serendipity/</link>
          <guid>https://esden.net/blog/2005-07-04-probleme-mit-ecto-und-serendipity/</guid>
          <description xml:base="https://esden.net/blog/2005-07-04-probleme-mit-ecto-und-serendipity/">&lt;p&gt;Nun ... durch das ganze Rumgespiele mit ecto und XML-RPC von Serendipity habe ich diesen schrei Post vorhin Geloescht.&lt;/p&gt;
&lt;p&gt;Edit: Nun wie man sieht habe ich den post wiedergefunden ... naja ;-)&lt;/p&gt;
&lt;p&gt;Ich schreibe jetzt deshalb alles neu bissel ueberarbeitet und nicht mehr so frustriert. ;-)&lt;/p&gt;
&lt;p&gt;Ich habe ziemlich lange nach einem guten Programm gesucht mit dem ich offline Blog Eintraege bearbeiten kann um sie dann hochzuladen. Ich habe MacJurnal ausprobiert das einfach zu viel bietet an Sachen die ich nicht brauche. Ausserdem war es von der Bedienung nicht richtig angenehm weil es uhrspruenglich dazu gedacht war private Tagebuecher zu schreiben und nicht als Blog Editor.&lt;/p&gt;
&lt;p&gt;Ich habe auch iBlog ausprobiert. Es ist zwar frei aber dafuer kann es nur zu blogger hochladen und es gibt keine moeglichkeit einen anderen Server auszuwaehlen.&lt;/p&gt;
&lt;p&gt;Als letztes bin ich dann bei ecto steckengeblieben. Es hat ein super Benutzerinterface, kann mehrere Server verwalten und mehrere Blogs. Es unterstuetzt auch mehrere Blog Protokolle zum hochladen und bearbeiten der Posts. Leider Implementiert es die Protokolle meiner meinung nach nicht richtig. Nachdem ich Serendipity gepatcht hatte war ich in der lage ueberhaupt hochzuladen und auch Posts zu synchronisieren.&lt;/p&gt;
&lt;p&gt;Leider war ich bis jetzt nicht in der lage es hinzukriegen das wenn ich einen neuen Post mache das er keinen Draft zusaetzlich noch dazu erstellt und das er die Kategorie nicht setzt. Es liegt hier wohl nicht an ecto sondern an serendipity. Ich muss jetzt immer nachdem ich einen post hochgeladen habe nochmal den Post bearbeiten die Kategorie nochmal setzen und dann updaten. Wie gesagt ich bin mir hier in dem fall nicht sicher wer falsch arbeitet weil in dem RFC ueber metaWeblog Protokoll ist nicht genau spezifiziert was passieren sollte wenn man editPost sendet ohne Kategorien fuer den Post mitzuschicken. ecto geht davon aus das die Kategorien nicht angeruehrt werden und Serendipity meint die Loeschen zu muessen. :-(&lt;/p&gt;
&lt;p&gt;Nun ich wuerde gerne jetzt mein eigenes Blog System und einen Blog Client schreiben. Aber wenn ich bedenke wieviel Zeit es mich kosten wuerde es richtig zu machen vergeht mir auch wieder die Lust.&lt;/p&gt;
&lt;p&gt;Noch eine weitere frage draengt sich dann noch auf. Wenn ich mir den code von Serendipity anschaue. Warum gibt es da kein Logging? Und warum keine Testcases? Man sollte doch seine Software testen und debuggen koennen!? Es ist echt schwer mit dem ding umzugehen und drinnen Faehler zu suchen wenn sowas nicht drinnen existiert&lt;/p&gt;
&lt;p&gt;Und ich wiederhole noch eine aussage aus meinem vorrigen und leider geloeschten Post:&lt;/p&gt;
&lt;p&gt;Leute TESTET euren scheiss! Schreibt TESTCASES! Benutzt multilevel LOGGING! Ihr macht euch und den anderen einen riesen gefallen!&lt;/p&gt;
&lt;p&gt;Wenn ihr meint das es zu viel zeit kosstet dann lasst es ganz oder schliesst euch einem anderen Projekt an und fuehrt es bei denen ein! Und wenn die anderen meinen das es nur stress ist oder aehnliches FORKT deren Projekte! Die qualitaet wird letztenendes ueber Featurism eh gewinnen!!!&lt;/p&gt;
&lt;p&gt;Nun ... ich werde mir jetzt ein Blog System aussuchen und versuchen es zumindest bisschen auf vordermann zu bringen. Oder ich rede noch mit paar Freunden von mir und wir fangen wirklich ein eigenes Blog System zu bauen ;-)&lt;/p&gt;
</description>
      </item>
      <item>
          <title>Homebrew Game Console</title>
          <pubDate>Sat, 02 Jul 2005 00:00:00 +0000</pubDate>
          <author>Esden</author>
          <link>https://esden.net/blog/2005-07-02-homebrew-game-console/</link>
          <guid>https://esden.net/blog/2005-07-02-homebrew-game-console/</guid>
          <description xml:base="https://esden.net/blog/2005-07-02-homebrew-game-console/">&lt;p&gt;Soo gehen wir ueber zum naechsten Thema. Ich habe mir gestern vor dem schlafen gehen paar Gedanken gemacht. Da ist mir eingefallen das ich mal schauen koennte ob es jetzt doch endlich ein THC aehnliches Projekt gibt. (Zur erklaerung THC bedeutet &quot;The Handheld Circuit&quot; und ist ein Projekt von mir eine Open source Spiele Console zu bauen) Nun stellt euch vor ich wurde fuendig.&lt;/p&gt;
&lt;p&gt;In dem Forum von Game Park 32 Extreme. Da gab es einen Thread wo jemand vorgeschlagen hat die Game Park 32 in Eigenregie nachzubauen mit einem schnelleren Prozessor. Da haben die leute sehr positiv drauf angesprochen und jetzt gibt es eine Webseite dazu &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://ninja.gp32x.de&quot;&gt;http://ninja.gp32x.de/&lt;/a&gt;. Nun ich habe mir deren erste Layouts angeschaut und war nicht sehr begeistert muss ich sagen. Die Leitungen gehen total durcheinander und haben verschiedene Laengen. Das ist ein Problem, vorallem wenn die Leitungen eine Verbindung zwischen dem Prozessor und dem Ram sind der mit 133MHz angesteuert wird. Aber vielleicht haben die Glueck und es wird funktionieren. Ich wuensche es denen. Es gab noch paar weitere Faehler im Layout wie zum Beispiel waren die Vias zu nah an Loetpunkten (man hat dann Probleme mit der Hitzeverteilung und es ist schwer das zeug maschinell zu loeten) und die Leitungen sind teilweise so alsob jemand die per hand gezeichniett hette. Da freut sich kein Platinen Hersteller darueber ;-)&lt;/p&gt;
&lt;p&gt;Naechstes problem ist das die sich fuer Chips mit FBGA(Ball Grid Array) Gehaeusen entschieden haben. Das problem dabei ist das man nicht die Chips per Hand loeten kann (OK mit viel Glueck und viel zeit kann man mit einer Heizpistole es vielleicht schaffen aber das ist mit wenig spass verbunden und man kann leicht den Chip dabei vernichten) das ist ein wirkliches Problem wenn mann die Hardware noch entwickelt. Ein weiteres noch Groesseres Problem ist das man nicht an die anschluesse des Chips drannkommt wenn man noch am debuggen ist. (Ein Oszi ist bei Hardware Debugging ein muss! Glaubt mir!) Ok genug geschimpft.&lt;/p&gt;
&lt;p&gt;Ich wuensche den Jungs trotzdem viel erfolg. Die haben ein halbes Jahr zeit. Wenn die bis dahin was cooles auf die beine gestellt haben dann schliesse ich mich denen vielleicht an ansonnsten bin ich da vorraussichtlich wieder bei meiner Firma wo ich mein letztes Praktikum gemacht habe und THC wird fertig auf die beine gestellt. (Zumindest ein Prototyp aber ich glaube das ist in einem halben Jahr machbar ;-)&lt;/p&gt;
&lt;p&gt;Soo ... ich glaube das reicht fuers erste. Ich werde vielleicht noch was nachtragen. Aber jetzt gehe ich weiter die Unterlagen fuer Englisch Pruefung lesen ;-)&lt;/p&gt;
</description>
      </item>
    </channel>
</rss>
