<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Esden&#39;s Blog - projects</title>
    <subtitle>This is Piotr Esden-Tempski&#39;s personal blog</subtitle>
    <link rel="self" type="application/atom+xml" href="https://esden.net/categories/projects/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://esden.net"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2022-01-08T00:00:00+00:00</updated>
    <id>https://esden.net/categories/projects/atom.xml</id>
    <entry xml:lang="en">
        <title>New Black Magic Debug Maintainer</title>
        <published>2022-01-08T00:00:00+00:00</published>
        <updated>2022-01-08T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2022-01-08-new-black-magic-debug-maintainer/"/>
        <id>https://esden.net/blog/2022-01-08-new-black-magic-debug-maintainer/</id>
        
        <content type="html" 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;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>My Streaming Setup and Electronics Tools Collection</title>
        <published>2020-05-11T00:00:00+00:00</published>
        <updated>2020-05-11T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2020-05-11-my-streaming-setup-and-electronics-tools-collection/"/>
        <id>https://esden.net/blog/2020-05-11-my-streaming-setup-and-electronics-tools-collection/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2020-05-11-my-streaming-setup-and-electronics-tools-collection/">&lt;p&gt;Hello everyone!&lt;/p&gt;
&lt;p&gt;As many of you ask about the tools I am using for &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://www.twitch.tv/esden&quot;&gt;twitch streams&lt;/a&gt; as well as what electronics related tools I am using. I decided it was time to put together a blog post for that. I will likely keep updating this specific post when my streaming setup evolves or I need to add more content. This blog post is derived and updated version of the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://gist.github.com/esden/abacadebf00e7c735a8c948b31d9c61f&quot;&gt;Gist that I posted a while ago&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This post is currently reflecting the gear I am using in May 2020. If you think anything is missing from this list or it is not up to date any more. Feel free to ping me and I will do my best to update the list! :)&lt;/p&gt;
&lt;h2 id=&quot;computer&quot;&gt;Computer&lt;/h2&gt;
&lt;p&gt;Currently I use a scratch built PC for streaming, here is the list of the major components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AMD RYZEN 7 3700X 8-Core&lt;/li&gt;
&lt;li&gt;Gigabyte X570 Motherboard&lt;/li&gt;
&lt;li&gt;64GB of RAM&lt;/li&gt;
&lt;li&gt;Gigabyte Radeon RX 5600 XT GPU&lt;/li&gt;
&lt;li&gt;EVGA SuperNova 650 G3 modular power supply&lt;/li&gt;
&lt;li&gt;Noctua NH-U14S 140mm SSO2-Bearing CPU cooler&lt;/li&gt;
&lt;li&gt;Fractal Design Meshify C Black Compact Mid Tower case&lt;/li&gt;
&lt;li&gt;Two 1080p Dell monitors I had since years&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For the complete build and the exact parts used you can find the NewEgg build here: https://newegg.io/a1664311&lt;/p&gt;
&lt;h2 id=&quot;cameras&quot;&gt;Cameras&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Face Cam: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://amzn.to/2xQtlb8&quot;&gt;Logitech C920&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Desk Cam: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://amzn.to/2yCZCTE&quot;&gt;Lumix G7&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Mounted on: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://amzn.to/2ANQCLW&quot;&gt;Manfrotto 244RC Variable Friction Magic Arm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clamp for the arm: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://amzn.to/2AUyW1l&quot;&gt;Manfrotto 035RL Super Clamp&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Microscope Cam: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://amzn.to/3fELhX9&quot;&gt;AiHOME HDMI C-Mount Camera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;lighting&quot;&gt;Lighting&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://www.amazon.com/gp/product/B016NDM99M&quot;&gt;Two LED Barn Door Light Panels&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://www.aliexpress.com/item/1005001790102341.html&quot;&gt;RGB Ring Lights&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;capture-devices&quot;&gt;Capture Devices&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;For Desktop Cam: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://amzn.to/2zncM77&quot;&gt;Elgato Cam Link 4K&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;For Microscope Cam: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://amzn.to/2AbVdas&quot;&gt;Magewell USB Capture HDMI Gen2 USB 3.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;For Audio: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://amzn.to/3fCbaHk&quot;&gt;SYBA USB Stereo Sound Adapter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;audio&quot;&gt;Audio&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Lapel Microphone: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://amzn.to/2LjduVC&quot;&gt;Sennheiser EW 100 G3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;software&quot;&gt;Software&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Main Streaming software: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://obsproject.com&quot;&gt;OBS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Linux Browser view used for overlays and plugins&lt;/li&gt;
&lt;li&gt;Free Plugins/overlays from &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://streamlabs.com&quot;&gt;Streamlabs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;AlertBox: Displays alerts of new followers, subscribers, bit donations and more&lt;/li&gt;
&lt;li&gt;ChatBox: Displays the twitch chat messages as video overlay&lt;/li&gt;
&lt;li&gt;Cloudbot: Provides commands like `!uptime` and automatically sends out an invite to the Discord server.&lt;/li&gt;
&lt;li&gt;Key and Mouse visualizer: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://github.com/z80-ro/TrayKeys&quot;&gt;TrayKeys&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Text Editor: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://www.sublimetext.com&quot;&gt;Sublime Text&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ToDo List Sublime Text Plugin: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://github.com/aziz/PlainTasks&quot;&gt;PlainTasks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;PCB Design Software: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://kicad.org&quot;&gt;KiCad&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Plugin: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://github.com/openscopeproject/InteractiveHtmlBom&quot;&gt;InteractiveHtmlBom&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;FPGA Tools:
&lt;ul&gt;
&lt;li&gt;Binary Distribution and build script: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://github.com/open-tool-forge&quot;&gt;Open Tool Forge&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Synthesis: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.clifford.at/yosys&quot;&gt;Yosys&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Place and Route: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://github.com/YosysHQ/nextpnr&quot;&gt;nextpnr&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Database and Programmer (iCE40): &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.clifford.at/icestorm&quot;&gt;icestorm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Database (ECP5): &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://github.com/SymbiFlow/prjtrellis&quot;&gt;prjtrellis&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Simulator: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://steveicarus.github.io/iverilog/&quot;&gt;iverilog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Simulator: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://www.veripool.org/wiki/verilator&quot;&gt;Verilator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Signal Trace Viewer: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://gtkwave.sourceforge.net&quot;&gt;GTKWave&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Logic Analyzer framework/software: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://sigrok.org&quot;&gt;Sigrok/Pulseview&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;other-gear&quot;&gt;Other Gear&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Microscope: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://amzn.to/2AkHkah&quot;&gt;AmScope 7X-45X Simul-Focal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Microscope Camera Lens: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://amzn.to/2yK92wx&quot;&gt;OMAX 0.5X C Mount Reduction Lens&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;I also got a focus adjustment barrell, but I can&#39;t find the source for it... TODO&lt;/li&gt;
&lt;li&gt;Light Ring: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://amzn.to/2yN7Zfb&quot;&gt;AmScope LED Light Ring&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Soldering Iron: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://amzn.to/2yzFW2Z&quot;&gt;JBC T210-A&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Soldering Tips: C245-029, C245-064&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Hot Air Rework Station: AOYUE 852A&lt;/li&gt;
&lt;li&gt;Reflow Oven: T-962A &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://esden.net/2017/11/27/upgrading-a-t962a-reflow-oven/&quot;&gt;with all mods&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;HotPlate: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://amzn.to/2yO4Ewm&quot;&gt;Akozon 200x200mm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;PreHeater: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://amzn.to/2YTnD3o&quot;&gt;Coffee Cup Warmer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;PCB Tab Route Tab Clipper: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://amzn.to/2STyjeA&quot;&gt;Hakko CHP DP-20-N Depaneling Tool&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Multimeter: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://amzn.to/2WKlXGN&quot;&gt;Fluke 115&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Multimeter Probes: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://amzn.to/2WLHYVx&quot;&gt;Probemaster 8000&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Oscilloscope: Tektronix TDS2014B&lt;/li&gt;
&lt;li&gt;Logic analyzers:
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://1bitsquared.com/products/bitmagic-basic&quot;&gt;1BitSquared BitMagic-basic&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;A Sigrok Compatible &quot;old&quot; Saleae Logic 16 clone. (until BitMagic-pro is done)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Vise: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://www.adafruit.com/product/3197&quot;&gt;Stickvise&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://www.adafruit.com/product/3198&quot;&gt;PTFE Jaws&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Tweezers:
&lt;ul&gt;
&lt;li&gt;Angled: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://amzn.to/36rfPYk&quot;&gt;Erem E7SA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Straight: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://amzn.to/3d0d6aK&quot;&gt;Erem E3SA&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://www.roadrunnerelectronics.com/Wiring-Pencils&quot;&gt;RoadRunner Wiring Pencil&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;1bitsquared-and-other-stuff&quot;&gt;1BitSquared and other stuff&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;iCEBreaker FPGA related products
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://1bitsquared.com/collections/fpga&quot;&gt;USA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://1bitsquared.de/collections/fpga&quot;&gt;Germany&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://www.crowdsupply.com/1bitsquared/icebreaker-fpga&quot;&gt;CrowdSupply&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://www.mouser.com/Search/Refine?Keyword=icebreaker&quot;&gt;Mouser&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Black Magic Probe
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://1bitsquared.com/products/black-magic-probe&quot;&gt;USA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://1bitsquared.de/products/black-magic-probe&quot;&gt;Germany&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://www.adafruit.com/product/3839&quot;&gt;Adafruit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;BitMagic-basic Logic Analyzer
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://1bitsquared.com/products/bitmagic-basic&quot;&gt;USA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://1bitsquared.de/products/bitmagic-basic&quot;&gt;Germany&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you like what you see and would like to support the streams and development of new open source devices, but you already have all the 1BitSquared hardware you need, you can support me through &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://www.patreon.com/1bitsquared&quot;&gt;Patreon&lt;/a&gt; and/or &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://www.twitch.tv/products/esden&quot;&gt;Twitch subscriptions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can reach me through &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://twitter.com/esden&quot;&gt;twitter&lt;/a&gt; and on our &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;. I hope this list is useful.&lt;/p&gt;
&lt;p&gt;Cheers,&lt;br /&gt;
Piotr&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Black Magic Discovery</title>
        <published>2014-12-29T00:00:00+00:00</published>
        <updated>2014-12-29T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2014-12-29-black-magic-discovery/"/>
        <id>https://esden.net/blog/2014-12-29-black-magic-discovery/</id>
        
        <content type="html" 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;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>libopencm3 Discovery</title>
        <published>2014-12-29T00:00:00+00:00</published>
        <updated>2014-12-29T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2014-12-29-libopencm3-discovery/"/>
        <id>https://esden.net/blog/2014-12-29-libopencm3-discovery/</id>
        
        <content type="html" 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;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Lisa/S, SuperbitRF, 1 BIT SQUARED</title>
        <published>2014-04-30T00:00:00+00:00</published>
        <updated>2014-04-30T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2014-04-30-lisas-superbitrf-1bitsquared/"/>
        <id>https://esden.net/blog/2014-04-30-lisas-superbitrf-1bitsquared/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2014-04-30-lisas-superbitrf-1bitsquared/">&lt;p&gt;Hi everyone,&lt;/p&gt;
&lt;p&gt;Again it was a while since I posted something here. I just wanted to write a quick update on what I&#39;ve been up to lately.&lt;/p&gt;
&lt;p&gt;I am working very hard on &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://1bitsquared.com/products/lisa-s&quot;&gt;Lisa/S&lt;/a&gt; and &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://wiki.paparazziuav.org/wiki/SuperbitRF&quot;&gt;SuperbitRF&lt;/a&gt;. The goal of the project is to develop the smallest and lightest possible UAV controller system without compromising functionality.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/products/lisa-s&quot; title=&quot;Lisa/S UAV autopilot controller&quot;&gt;&lt;img src=&quot;https://esden.net/blog/2014-04-30-lisas-superbitrf-1bitsquared/images/lisa_s_top-300x225.png&quot; alt=&quot;lisa_s_top&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://wiki.paparazziuav.org/wiki/Lisa/S&quot;&gt;Lisa/S&lt;/a&gt; board is only 20mm x 20mm and weighs about 3g with a lot of integrated sensors.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;3 Axis Gyroscope&lt;/li&gt;
&lt;li&gt;3 Axis Accelerometer&lt;/li&gt;
&lt;li&gt;3 Axis Magnetometer (Compass)&lt;/li&gt;
&lt;li&gt;Barometer (Altimeter)&lt;/li&gt;
&lt;li&gt;GPS Receiver&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Just like &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://wiki.paparazziuav.org/wiki/Lisa/M_v20&quot;&gt;Lisa/M&lt;/a&gt; it&#39;s bigger sister. &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://1bitsquared.com/products/lisa-s&quot;&gt;Lisa/S&lt;/a&gt; is powered by the STM32F103 ARM 32bit microcontroller. Providing quite a lot of processing power for your UAV needs. On top of it all the board has 4 MOSFET solid state switches. They make it possible to use the board directly on the tiny brushed motor quadcopters, nano helicopters and fixed wing airplanes. I am quite excited how much I managed to put onto that tiny footprint. Usually much bigger boards don&#39;t even include a GPS receiver on the board.&lt;/p&gt;
&lt;p&gt;Another feature of &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://wiki.paparazziuav.org/wiki/Lisa/S&quot;&gt;Lisa/S&lt;/a&gt; that I think is worth mentioning is that it has a &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://1bitsquared.com/products/superbit-cyrf-module&quot;&gt;CYRF&lt;/a&gt; footprint.&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://1bitsquared.com/products/superbit-cyrf-module&quot;&gt;CYRF&lt;/a&gt; is a module that I developed as part of the system. It contains the CYRF6936 2.5GHz transceiver chip. It is connected to the MCU on &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://1bitsquared.com/products/lisa-s&quot;&gt;Lisa/S&lt;/a&gt; through SPI. The particular transceiver is the one at the heart of all the Spektrum transmitter and receiver systems and many others like Walkera Devo. It is very exciting because we have direct access to that chip from the autopilot and can implement compatibility to a lot of 2.4GHz RC gear available out there.&lt;/p&gt;
&lt;p&gt;Our current software implements support for some Spektrum RC transmitters and as a bonus we can simultaneously connect to a laptop using the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://1bitsquared.com/products/superbit-usbrf-dongle&quot;&gt;USBRF dongle&lt;/a&gt;. This removes the need for having two radios on your vehicle thus saving weight.&lt;/p&gt;
&lt;p&gt;All of these items are currently available for pre-order in the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://1bitsquared.com&quot;&gt;1 BIT SQUARED shop&lt;/a&gt;. We are working on finalizing the production process of the first batch of Lisa/S, CYRF and USBRF. We are projecting they will be available in the shop by the end of May. We have put a lot of effort into making these boards, if you are interested you can read more about it in the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://1bitsquared.com/blogs/news/13428849-lisa-s-progress&quot;&gt;1 BIT SQUARED blog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Last but not least &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://1bitsquared.com&quot;&gt;1 BIT SQUARED&lt;/a&gt; is my own company that I founded early last year. I want to develop and produce hardware and software that I am excited about and would like to share with others that are interested in the field of airborne robotics. If you like open hardware and software and want to support me directly the shop is the most direct and easiest way to do so.&lt;/p&gt;
&lt;p&gt;Cheers, Esden&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Quadshot - an aerobatic blend of RC quadrocopters and airplanes</title>
        <published>2011-09-15T00:00:00+00:00</published>
        <updated>2011-09-15T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2011-09-15-quadshot/"/>
        <id>https://esden.net/blog/2011-09-15-quadshot/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2011-09-15-quadshot/">&lt;p&gt;&lt;a href=&quot;/wp-content/uploads/2011/08/quadshot_picture_w8.jpg&quot;&gt;&lt;img src=&quot;https://esden.net/blog/2011-09-15-quadshot/images/quadshot_picture_w8-300x199.jpg&quot; alt=&quot;&quot; title=&quot;quadshot_picture_w8&quot; /&gt;&lt;/a&gt; Hi everyone,&lt;/p&gt;
&lt;p&gt;As you probably notice I am very busy lately. Together with some friends we were working on &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://thequadshot.com&quot;&gt;the Quadshot&lt;/a&gt; an aerobatic blend between a quadrocopter and an airplane.&lt;/p&gt;
&lt;p&gt;It takes off and lands vertically like a quadrocopter as well as it can fly forward like an airplane using its wing to add additional lift extending flight time.&lt;/p&gt;
&lt;p&gt;We submitted the project to &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.kickstarter.com/projects/jkg/quadshot-an-aerobatic-blend-of-rc-helis-and-planes&quot;&gt;Kickstarter&lt;/a&gt; and we are very happy to see that we got such a great response. The Kickstarter funding runs for another three days and if you pledge you can get a Quadshot at a discounted price as a reward.&lt;/p&gt;
&lt;p&gt;At it&#39;s heart Quadshot is using the avionics and software framework of &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://paparazzi.enac.fr&quot;&gt;Paparazzi&lt;/a&gt;. We developed the additional necessary controls for Quadshot and released them. So Quadshot has Open-Hardware electronics and Open-Source firmware making it a great platform for research and hacking.&lt;/p&gt;
&lt;p&gt;Having an autopilot makes it also very easy to fly for a beginner RC pilot.&lt;/p&gt;
&lt;p&gt;I hope to find some more time in the future to get into more details about Quadshot. But till then check out the following links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://thequadshot.com&quot;&gt;our project website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://thequadshot.com/video.html&quot;&gt;videos&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://forum.thequadshot.com&quot;&gt;forum&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://paparazzi.enac.fr&quot;&gt;Paparazzi UAV wiki&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.kickstarter.com/projects/jkg/quadshot-an-aerobatic-blend-of-rc-helis-and-planes&quot;&gt;our Kickstarter project page&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cheers Esden&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Open-BLDC and the CLogic story</title>
        <published>2011-05-15T00:00:00+00:00</published>
        <updated>2011-05-15T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2011-05-15-open-bldc-and-the-clogic-story/"/>
        <id>https://esden.net/blog/2011-05-15-open-bldc-and-the-clogic-story/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2011-05-15-open-bldc-and-the-clogic-story/">&lt;p&gt;[embed]https://www.flickr.com/photos/esden/5188383797/in/album-72157625281995565/[/embed]&lt;/p&gt;
&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;It was again a while since my last post, but as always I was quite busy. :)&lt;/p&gt;
&lt;p&gt;The last news about Open-BLDC was about its &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.esden.net/blog/2010/09/19/open-bldc-v0-3-hardware-based-closed-loop-control/&quot;&gt;V0.3&lt;/a&gt; iteration. A lot has changed and happened since then. I was realizing that I am getting more and more inquires where people were asking about obldc being able to control very different sizes of motors, ranging from 12V and 10A up to 48V and 200A.&lt;/p&gt;
&lt;p&gt;This requirement does not really ask for different logic and controls but it definitely asks for many different power stages. Open-BLDC was designed to be modular from the beginning but still to accomodate that kind of a power range it would be necessary to design and create quite a big lineup of hardware.&lt;/p&gt;
&lt;p&gt;Around that time I had the opportunity to take a look inside a dead motor controller from &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.castlecreations.com/&quot;&gt;Castle Creations&lt;/a&gt; just to realize that these guys seem to know what they are doing and that they went with a modular design too. To make a long story short I decided that it will be better to buy one of their of the shelf motor controllers and retrofit them with my logic. That is how CLogic was born.&lt;/p&gt;
&lt;p&gt;As it seems other manufacturers are selling ESCs that have the same interface between the logic and the power stage too. &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.teamtekin.com/&quot;&gt;Tekin&lt;/a&gt; for example. But my guess is that they are just OEM of castle themselves. But who knows. :)&lt;/p&gt;
&lt;p&gt;Turingy also came out with an ESC that seems to have the same interface, the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=16364&quot;&gt;Turingy dlux&lt;/a&gt;. I ordered a few of them to take a look for myself and see if CLogic will fit in there. That would be a great source of cheep power stages. :)&lt;/p&gt;
&lt;p&gt;CLogic has most of the functionality the Open-BLDC v0.3 had. Because of the size constrains I had to get rid of the dedicated i2c and PPM connectors, but I added isolation on the CAN interface that should provide additional safety when used on a 50V and bigger systems. The i2c and PPM interfaces are still available either over the new AUX connector or through the UART interface connector.&lt;/p&gt;
&lt;p&gt;The new AUX connector gives the possibility of easily connecting encoders or hal sensors for sensored operation. So the interfaces stay very flexible with added flexibility due to the big variety of power stages you can use, while being very very compact.&lt;/p&gt;
&lt;p&gt;Sure some people complained &quot;The power stages are not Open-Source!!!&quot;, yes that is true. Also these systems start at a higher power and weight class than some of you would want to operate them. That is why there is CPico Power. It is a very small, low power and a hopefully cheep power stage that we are putting together for those who want it all fully open! So no worries. :)&lt;/p&gt;
&lt;p&gt;I think that wraps up the news about the new direction Open-BLDC is going. I hope you like it. I am looking forward to your comments.&lt;/p&gt;
&lt;p&gt;Cheers Esden&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>FLOSS-JTAG V1.0 Released and Available</title>
        <published>2011-02-22T00:00:00+00:00</published>
        <updated>2011-02-22T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2011-02-22-floss-jtag-v1-0-released-and-available/"/>
        <id>https://esden.net/blog/2011-02-22-floss-jtag-v1-0-released-and-available/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2011-02-22-floss-jtag-v1-0-released-and-available/">&lt;p&gt;&lt;a href=&quot;/wp-content/uploads/2011/02/DSC_3452.jpg&quot;&gt;&lt;img src=&quot;https://esden.net/blog/2011-02-22-floss-jtag-v1-0-released-and-available/images/DSC_3452-300x199.jpg&quot; alt=&quot;&quot; title=&quot;DSC_3452&quot; /&gt;&lt;/a&gt;Hey everyone,&lt;/p&gt;
&lt;p&gt;As you might know some time ago I have developed a small JTAG adapter based on the FT2232H chip. I gave it the name FLOSS-JTAG as the idea was that it should be absolutely OpenSource and OpenHardware.&lt;/p&gt;
&lt;p&gt;You can find the project at &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://github.com/esden/floss-jtag&quot;&gt;GitHub&lt;/a&gt; and some more info at it&#39;s &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://randomprojects.org/wiki/Floss-JTAG&quot;&gt;random projects wiki page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;FLOSS-JTAG not only has the high speed 24MHz FT2232H chip (there are some designs based on my idea that are using a low speed version of the same chip). It provides the new standard 0.05&quot; pitch 10 pin Cortex JTAG header as well as a TTL level serial interface on it&#39;s second interface.&lt;/p&gt;
&lt;p&gt;I am glad to announce that I have reached the V1.0 with it. All necessary files to make your own are in the GitHub repository. But if you don&#39;t want to go through the pains of ordering PCB, sourcing parts, assembling QFN SMD packages you can also purchase it in the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://www.jobyrobotics.com/product.php?id_product=16&quot;&gt;Joby Robotics&lt;/a&gt; online shop.&lt;/p&gt;
&lt;p&gt;At Joby Robotics you get a cable assembly to connect the FLOSS-JTAG to a target. This allows you to debug and connect to targets that are difficult to reach otherwise. You also will get a cortex connector to old standard 20pin 0.1&quot; pitch connector adapter.&lt;/p&gt;
&lt;p&gt;The adapter is small and will make it also easier to debug targets that are difficult to reach.&lt;/p&gt;
&lt;p&gt;You can get precrimped Molex Picoblade wires in 10 different colors at Joby Robotics too. This way you can easily build a UART cable that connects FLOSS-JTAG to a device.&lt;/p&gt;
&lt;p&gt;I am very happy that FLOSS-JTAG is finally easily accessible to anyone who needs it.&lt;/p&gt;
&lt;p&gt;FLOSS-JTAG works perfectly together with Openocd and &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://github.com/esden/summon-arm-toolchain&quot;&gt;Summon-ARM-Toolchain&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Cheers Esden&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Open-BLDC Documentation</title>
        <published>2010-08-19T00:00:00+00:00</published>
        <updated>2010-08-19T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2010-08-19-open-bldc-documentation/"/>
        <id>https://esden.net/blog/2010-08-19-open-bldc-documentation/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2010-08-19-open-bldc-documentation/">&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://esden.net/wp-content/uploads/2010/08/open-bldc-doxygen-screenshot.png&quot;&gt;&lt;img src=&quot;https://esden.net/blog/2010-08-19-open-bldc-documentation/images/open-bldc-doxygen-screenshot-300x287.png&quot; alt=&quot;&quot; title=&quot;open-bldc-doxygen-screenshot&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Today was a big documentation day for &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://open-bldc.org&quot;&gt;Open-BLDC&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://github.com/fuchsto&quot;&gt;Tobi&lt;/a&gt; is learning about Open-BLDC to be able to help me with development I really felt the lack of documentation. So together with him we wrote down how the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://open-bldc.org/wiki/Ignition_Strategies&quot;&gt;ignition system&lt;/a&gt; currently works. Also I added a &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://open-bldc.org/wiki/Developer_getting_started&quot;&gt;getting started&lt;/a&gt; page describing how to build the firmware.&lt;/p&gt;
&lt;p&gt;Last but not least (that took me most of yesterday) I finally managed to add doxygen generation to the firmware code. It is even being automatically generated out of the git repository and making it available on http://doc.open-bldc.org.&lt;/p&gt;
&lt;p&gt;There is still a lot that can be told about the system, but I think we are on the right path. The documentation should grow now significantly when I am not the only person working on the code. :)&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Open-BLDC v0.3</title>
        <published>2010-08-05T00:00:00+00:00</published>
        <updated>2010-08-05T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2010-08-05-open-bldc-v0-3/"/>
        <id>https://esden.net/blog/2010-08-05-open-bldc-v0-3/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2010-08-05-open-bldc-v0-3/">&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://esden.net/wp-content/uploads/2010/08/Open-BLDC-V0_3-2-full-front.jpg&quot;&gt;&lt;img src=&quot;https://esden.net/blog/2010-08-05-open-bldc-v0-3/images/Open-BLDC-V0_3-2-full-front-300x199.jpg&quot; alt=&quot;Open-BLDC V0.3 Full Front&quot; title=&quot;Open-BLDC V0.3 Full Front&quot; /&gt;&lt;/a&gt; Hey everyone!&lt;/p&gt;
&lt;p&gt;Just a short update so that you don&#39;t think that I have disappeared completely. :)&lt;/p&gt;
&lt;p&gt;Lately I am really busy so that is why my updates here are very rare. I have moved to California few months ago to work full time on Open-BLDC and Paparazzi. Although Open-BLDC got quite a bunch of attention there is still a lot to do, and this project is still not in a state where it is possible to put the controller on a vehicle and fly with it. :(&lt;/p&gt;
&lt;p&gt;There is some good and bad news. I got the sampling based commutation detection running pretty good. There is an issue with it. Because you can sample the BEMF only once a PWM cycle the resolution prevents turning the motor very fast without adding some kind of an estimator or at least a PLL. So currently only 4000RPM with a 7pole pare motor are possible. :(&lt;/p&gt;
&lt;p&gt;That is why I started working on Open-BLDC v0.3 hardware. It is assembled now and you can look at some pictures &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.flickr.com/photos/esden/4862218816/&quot;&gt;here&lt;/a&gt;. It has a comparator integrated into the power driver board to make commutation detection really easy and have something usable _NOW_. I also found out that using many small mosfet&#39;s is much more efficient then using single big ones. The gate capacitance is lower, the heat dissipation is easier, the on resistance is tiny. The only question is if they will distribute the power evenly between the switches. That is still something that has to be tested. But the power stage board looks really pretty with all those tiny fets on it. There are many more other smaller and bigger improvements that would be too much for such a small post.&lt;/p&gt;
&lt;p&gt;I am currently bringing up one subsystem after another. I had to change some of the connections to the STM32 which means that I have to change the low level drivers and it is always a pain to do.&lt;/p&gt;
&lt;p&gt;Anyways, there is progress and Open-BLDC is not dead! I am working on it. And I am sorry for not keeping you guys more up to date. As always I will try to be better about that. ;)&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Floss-JTAG V0.1 Assembly and V0.2 boards.</title>
        <published>2010-01-01T00:00:00+00:00</published>
        <updated>2010-01-01T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2010-01-01-floss-jtag-v0-1-assembly-and-v0-2-boards/"/>
        <id>https://esden.net/blog/2010-01-01-floss-jtag-v0-1-assembly-and-v0-2-boards/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2010-01-01-floss-jtag-v0-1-assembly-and-v0-2-boards/">&lt;p&gt;Because I wanted to have a small JTAG adapter with additional UART port and a different (smaller) connector then what is available out there, I have decided to make a JTAG adapter. I chose the FT2232 USB adapter chip. This guy is pretty nice because it has a special engine inside that is supporting many different protocols. One of them is JTAG. I have released what I made as always on &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://github.com/esden/floss-jtag&quot;&gt;GitHub&lt;/a&gt; under the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://creativecommons.org/licenses/by-sa/3.0/&quot;&gt;CC-BY-SA 3.0&lt;/a&gt; license. There is no software needed on the adapter side so no software included. All you need is &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://openocd.berlios.de&quot;&gt;OpenOCD&lt;/a&gt;. It now even has a config file dedicated for Floss-JTAG. Calling for example:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#&amp;gt; openocd -f interface/flossjtag.cfg -f board/open-bldc.cfg&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;will connect to &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://open-bldc.org&quot;&gt;Open-BLDC&lt;/a&gt; using the Floss-JTAG adapter.&lt;/p&gt;
&lt;p&gt;Building Floss-JTAG I learned a nice lesson. Always check your footprints 10x before you send the gerber files to the manufacturer!!! I had to customize the footprint for the FT2232 chip and made a mistake. The pads were not long enough so the pins had only 0.1mm overlap area. It was a real pain to solder that. I assembled 3 of Floss-JTAG using this design. Sadly only two are working.&lt;/p&gt;
&lt;p&gt;Because of that mistake I immediately corrected the board layout and sent it out. I got the boards today. I hope that there is no other mistake hidden somewhere. :) Attached are the images of V0.1 assembly and of the V0.2 boards.&lt;/p&gt;
&lt;p&gt;[gallery]&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Open-BLDC V0.1 Fully Assembled</title>
        <published>2009-08-08T00:00:00+00:00</published>
        <updated>2009-08-08T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2009-08-08-open-bldc-v01-fully-assembled/"/>
        <id>https://esden.net/blog/2009-08-08-open-bldc-v01-fully-assembled/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2009-08-08-open-bldc-v01-fully-assembled/">&lt;p&gt;I finished soldering &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://open-bldc.org/wiki/V0.1&quot;&gt;Open-BLDC V0.1&lt;/a&gt; boards and took some pictures while doing so.&lt;/p&gt;
&lt;p&gt;After connecting it to the power everything seems to work properly and nothing is burning. That is really good news.&lt;/p&gt;
&lt;p&gt;One little thing that is bothering me. The board draws 60mA, what is a value that I expected. The 5V linear regulator gets really warm. I am not sure if that will be a problem or not. But I did not find any other problems or screwups yet, even the big MOSFETs can be soldered using a simple soldering iron. It takes some time though, because the board and the MOSFETs are monstrous heatsinks.&lt;/p&gt;
&lt;p&gt;More news coming up as soon as I start playing around with the software. [gallery]&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Open-BLDC V0.1 is alive!</title>
        <published>2009-08-07T00:00:00+00:00</published>
        <updated>2009-08-07T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2009-08-07-open-bldc-v01-is-alive/"/>
        <id>https://esden.net/blog/2009-08-07-open-bldc-v01-is-alive/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2009-08-07-open-bldc-v01-is-alive/">&lt;p&gt;I assembled the basic STM32 circuitry of &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://open-bldc.org&quot;&gt;Open-BLDC&lt;/a&gt; and it works. I also made a video showing the logic board and blinking around. I know it is a bit pointless but I love blinking LED&#39;s! ;) I wrote the software using &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://libopenstm32.sourceforge.net/&quot;&gt;libopenstm32&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Have fun:&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.youtube.com/watch?v=8eFgZ88FB7c&quot;&gt;Video on Youtube&lt;/a&gt; and &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://vimeo.com/6000936&quot;&gt;here&lt;/a&gt; the same video on Vimeo.&lt;/p&gt;
&lt;p&gt;While assembling &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://www.hermann-uwe.de&quot;&gt;Uwe&lt;/a&gt; and I made some photographs that I don&#39;t want to hold off either.&lt;/p&gt;
&lt;p&gt;[gallery]&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Open-BLDC V0.1 boards are here</title>
        <published>2009-08-05T00:00:00+00:00</published>
        <updated>2009-08-05T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2009-08-05-open-bldc-v01-boards-are-here/"/>
        <id>https://esden.net/blog/2009-08-05-open-bldc-v01-boards-are-here/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2009-08-05-open-bldc-v01-boards-are-here/">&lt;p&gt;Good news everyone! The Open-BLDC boards are on my table. If you ask me they look gorgeous. :) But decide for yourself ...&lt;/p&gt;
&lt;p&gt;Cheers Esden [gallery]&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Open-Source and Open-Hardware Multicopter platform</title>
        <published>2009-07-24T00:00:00+00:00</published>
        <updated>2009-07-24T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2009-07-24-open-source-and-open-hardware-multicopter-platform/"/>
        <id>https://esden.net/blog/2009-07-24-open-source-and-open-hardware-multicopter-platform/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2009-07-24-open-source-and-open-hardware-multicopter-platform/">&lt;p&gt;Over the last two weeks many things happened. I found out that there is a really open-source and open-hardware quadrocopter project in the wild. It is called booz and is part of the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://paparazzi.enac.fr/wiki/Main_Page&quot;&gt;paparazzi&lt;/a&gt; project. Code and schematics just as board layouts are under the GPLv2 or later license. That is really awesome news.&lt;/p&gt;
&lt;p&gt;This project is intended for research and universities so the boards are using BGA parts that are difficult to solder for a mere mortal, and there is some lack in documentation. That is why some other people and me started a project called &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://openmulticopter.org&quot;&gt;openmulticopter&lt;/a&gt;. The basic idea is to create and maintain a completely open-source quadrocopter/multicopter platform for everyone. As a multicopter does not consist only of the control electronics but also contains parts like remote control receiver, brushless motor controllers, a frame, and so on, we tried to combine many open-source parts that are already out there. Just take a look into the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://openmulticopter.org&quot;&gt;wiki&lt;/a&gt; for more details.&lt;/p&gt;
&lt;p&gt;Some highlights of open-source components that we have chosen so far are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://svn.savannah.gnu.org/viewvc/paparazzi3/trunk/sw/airborne/booz/?root=paparazzi&quot;&gt;booz&lt;/a&gt; (the core of the platform)&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://libopenstm32.sourceforge.net&quot;&gt;libopenstm32&lt;/a&gt; (firmware library for STM32 microcontrollers)&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://rcos-wiki.codingmonkey.de/index.php/RCOPEN24&quot;&gt;RCOPEN24&lt;/a&gt; (a 2.4GHz remote control system)&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://open-bldc.org/&quot;&gt;open-bldc&lt;/a&gt; (brushless motor controllers)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We also formulated a &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://openmulticopter.org/wiki/Mission_statement&quot;&gt;mission statement&lt;/a&gt; that can be found in the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://openmulticopter.org/&quot;&gt;openmulticopter wiki&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There is still a lot of work in front of us, but I am really happy with the progress we are making. If you are interested in contributing just drop into the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://webchat.freenode.net/?channels=#openmulticopter&quot;&gt;#openmulticopter&lt;/a&gt; IRC channel on Freenode, or write an email to the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://openmulticopter.org/cgi-bin/mailman/listinfo/openmulticopter&quot;&gt;mailing list&lt;/a&gt;.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>PWM Schemes/Fieldvector Control</title>
        <published>2009-07-24T00:00:00+00:00</published>
        <updated>2009-07-24T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2009-07-24-pwm-schemesfieldvector-control/"/>
        <id>https://esden.net/blog/2009-07-24-pwm-schemesfieldvector-control/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2009-07-24-pwm-schemesfieldvector-control/">&lt;p&gt;Some time ago I announced the Open-BLDC project in the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://forum.mikrokopter.de&quot;&gt;Mikrokopter Forum&lt;/a&gt;, the post, that you can find &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://forum.mikrokopter.de/topic-9362.html&quot;&gt;here&lt;/a&gt; inspired a very interesting Discussion. One of the topics were PWM Schemes and why one should think about them. The most important reason is efficiency. Most controllers to use &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://multicopter.org/wiki/File:H_pwm_l_on.png&quot;&gt;H_PWM_L_ON&lt;/a&gt; or &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://multicopter.org/wiki/File:H_on_l_pwm.png&quot;&gt;H_ON_L_PWM&lt;/a&gt; schemes. An alternative is &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://multicopter.org/wiki/File:pwm_on_pwm.png&quot;&gt;PWM_ON_PWM&lt;/a&gt; scheme which prevents currents through freewheeling diodes connected in parallel to the MOSFET&#39;s. The freewheeling diodes have higher losses then a MOSFET. I am really asking myself why it is not used. One reason I can think of is that this scheme has 12 steps instead of 6 and therefore is more difficult to implement and BEMF measurement for commutation detection may be more complicated.&lt;/p&gt;
&lt;p&gt;Another approach to the efficiency question may be using fieldvector control. This involves a sinusoidal pwm scheme and current measurement on the phases. Using that way of control should decrease torque ripples which are typical the other schemes mentioned above. It also involves a lot more work on the firmware side.&lt;/p&gt;
&lt;p&gt;I started building a rig for testing the efficiency of the different schemes. It involves a harddisk platter connected to the motor and two harddisk magnets. At the end I will have a eddy current break and can measure how much current is needed to achieve a specific rotation speed. I hope that this way I will be able to make a more or less scientific comparison of control approaches.&lt;/p&gt;
&lt;p&gt;If you have a motor controller I would be really happy if you could take an oscilloscope and record the voltages on the phases. I am really interested what control schemes others use.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Open-BLDC mockup</title>
        <published>2009-07-01T00:00:00+00:00</published>
        <updated>2009-07-01T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2009-07-01-open-bldc-mockup/"/>
        <id>https://esden.net/blog/2009-07-01-open-bldc-mockup/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2009-07-01-open-bldc-mockup/">&lt;p&gt;Hi!&lt;/p&gt;
&lt;p&gt;As you already know I have layouted the Open-BLDC boards. I was not sure if everything fits mechanically. So I took some cardboard and created a mechanical mockup. It really looks good! It is darn stable (even though it is only cardboard and not FR4) and the screws fit snugly. I think we are getting really near to a state where I can order some boards.&lt;/p&gt;
&lt;p&gt;You can take a look at some images attached to this post.&lt;/p&gt;
&lt;p&gt;Have fun! :)&lt;/p&gt;
&lt;p&gt;[gallery link=&quot;file&quot;]&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Open-BLDC SMD prototype and final prototypes</title>
        <published>2009-06-29T00:00:00+00:00</published>
        <updated>2009-06-29T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2009-06-29-open-bldc-smd-prototype-and-final-prototypes/"/>
        <id>https://esden.net/blog/2009-06-29-open-bldc-smd-prototype-and-final-prototypes/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2009-06-29-open-bldc-smd-prototype-and-final-prototypes/">&lt;p&gt;[caption id=&quot;attachment_252&quot; align=&quot;alignright&quot; width=&quot;150&quot; caption=&quot;Open-BLDC SMD Prototype&quot;]&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://esden.net/wp-content/uploads/2009/06/open-bldc-smd-prototype.jpg&quot;&gt;&lt;img src=&quot;https://esden.net/blog/2009-06-29-open-bldc-smd-prototype-and-final-prototypes/images/open-bldc-smd-prototype-150x150.jpg&quot; alt=&quot;Open-BLDC SMD Prototype&quot; title=&quot;open-bldc-smd-prototype&quot; /&gt;&lt;/a&gt;[/caption]&lt;/p&gt;
&lt;p&gt;It has been again a long time since the last post. (I have the feeling to repeat myself here)&lt;/p&gt;
&lt;p&gt;There have been some news on the Open-BLDC front. I have been on &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.motodrone.de&quot;&gt;Motodrone&lt;/a&gt; two weeks ago. Because I took the plane to get there I realized that it will be too difficult to take the breadboard prototype with me. So on a short notice I soldered together a smaller version using smd parts. As an extra feature this prototype includes Allegro hall based current sensors. These will enable us to investigate &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Vector_control_(motor)&quot;&gt;vector control&lt;/a&gt; (aka. field-oriented control).&lt;/p&gt;
&lt;p&gt;At first it worked perfectly. Sadly after some tests I burned two of the three bridge drivers. I only had one spare to replace, so I could not work on the software for long. Today I got replacement bridge drivers. Now I should have enough spare ones to compensate for more burning. ;) So no news on the vector control front yet.&lt;/p&gt;
&lt;p&gt;[caption id=&quot;attachment_255&quot; align=&quot;alignright&quot; width=&quot;150&quot; caption=&quot;Open-BLDC Logic Board V0.1&quot;]&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://esden.net/wp-content/uploads/2009/06/open-bldc-logic-v01.png&quot;&gt;&lt;img src=&quot;https://esden.net/blog/2009-06-29-open-bldc-smd-prototype-and-final-prototypes/images/open-bldc-logic-v01-150x146.png&quot; alt=&quot;Open-BLDC Logic Board V0.1&quot; title=&quot;open-bldc-logic-v01&quot; /&gt;&lt;/a&gt;[/caption]&lt;/p&gt;
&lt;p&gt;[caption id=&quot;attachment_257&quot; align=&quot;alignright&quot; width=&quot;150&quot; caption=&quot;Open-BLDC Powerstage V0.1&quot;]&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://esden.net/wp-content/uploads/2009/06/open-bldc-power-v01.png&quot;&gt;&lt;img src=&quot;https://esden.net/blog/2009-06-29-open-bldc-smd-prototype-and-final-prototypes/images/open-bldc-power-v01-150x150.png&quot; alt=&quot;Open-BLDC Powerstage V0.1&quot; title=&quot;open-bldc-power-v01&quot; /&gt;&lt;/a&gt;[/caption]&lt;/p&gt;
&lt;p&gt;But I was not lazy while waiting for the replacement parts. I finalized the circuit and routed the logic board and powerstage. The powerstage was more or less straight forward but I am not very happy about the size and dimensions. I just am not sure if it is fittable on a standard Quadrocopter. Still it should be good enough as first etched prototype.&lt;/p&gt;
&lt;p&gt;A much bigger challenge was the logic board. I somehow came up with this crazy idea to constrain the size of it to 45mm X 20mm. Still after many many hours of struggling with that puzzle I managed to squeeze all parts and wires into 45.5mm X 21mm! Yes you are right I am pretty proud of myself. I am still a routing beginner so the result seems to be good for me. :)&lt;/p&gt;
&lt;p&gt;Now I have to wait so some other people review the work I did to try decreasing the amout of possible bugs in this boards. (If you like you can clone the repository &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://github.com/esden/open-bldc&quot;&gt;here&lt;/a&gt; and check the stuff out, and give feedback on the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://open-bldc.org/cgi-bin/mailman/listinfo/open-bldc&quot;&gt;mailinglist&lt;/a&gt;. (please subscribe before posting! :/ )) When I feel confident enough I will order some boards for testing and we can finally concentrate more on the software. :)&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Open-BLDC PWM Schemes</title>
        <published>2009-05-10T00:00:00+00:00</published>
        <updated>2009-05-10T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2009-05-10-open-bldc-pwm-schemes/"/>
        <id>https://esden.net/blog/2009-05-10-open-bldc-pwm-schemes/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2009-05-10-open-bldc-pwm-schemes/">&lt;p&gt;Only a short note. I made a video showing all the different &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://multicopter.org/wiki/PWM_Schemes&quot;&gt;PWM Schemes&lt;/a&gt; &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://open-bldc.org&quot;&gt;Open-BLDC&lt;/a&gt; supports. Have fun watching:&lt;/p&gt;
&lt;p&gt;Cheers Esden&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Open-BLDC Sensorless Commutation Detection</title>
        <published>2009-05-07T00:00:00+00:00</published>
        <updated>2009-05-07T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2009-05-07-open-bldc-sensorless-commutation-detection/"/>
        <id>https://esden.net/blog/2009-05-07-open-bldc-sensorless-commutation-detection/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2009-05-07-open-bldc-sensorless-commutation-detection/">&lt;p&gt;Hi!&lt;/p&gt;
&lt;p&gt;As promised I made some videos. First one is showing the maiden run of a motor connected to the breadboard prototype of Open-BLDC.&lt;/p&gt;
&lt;p&gt;(There is also a Vimeo version: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://vimeo.com/4533048&quot;&gt;Maiden Run of Open-BLDC&lt;/a&gt; from &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://vimeo.com/user1330398&quot;&gt;Piotr Esden-Tempski&lt;/a&gt; on &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://vimeo.com&quot;&gt;Vimeo&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Yes the motor sounds like a truck. The reason is that I am making forced commutation (not detecting the right time to commutate but do it in fixed time) and the PWM duty cycle is higher then it should be. This way the motor is just jumping between the magnets and has a lot of vibrations.&lt;/p&gt;
&lt;p&gt;The second video is a demo of sensorless commutation detection.&lt;/p&gt;
&lt;p&gt;(There is also a Vimeo version: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://vimeo.com/4533513&quot;&gt;Open-BLDC Sensorless Commutation Detection Test&lt;/a&gt; from &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://vimeo.com/user1330398&quot;&gt;Piotr Esden-Tempski&lt;/a&gt; on &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://vimeo.com&quot;&gt;Vimeo&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;We are using a novel way without a virtual crosspoint. (you can read it up in &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://scholar.lib.vt.edu/theses/available/etd-09152003-171904/unrestricted/T.pdf&quot;&gt;this paper&lt;/a&gt;) We do it even a little bit differently then described in the paper, there are no comparators and latches. What we do is condition the signal to be in the range of 0V to 3.3V and sample it with the ADC at the right times. This is probably the simplest way to do something like this in the STM32. One can now play around with the data that the ADC delivers. I think there is a lot of stuff that can be done using such an approach.&lt;/p&gt;
&lt;p&gt;In the video you may also wonder why it is so loud. Well the PC fan that I just forced onto the rotor is not really the best payload, also it is not balanced well and the bearings in the motor are not the best anymore because of the unbalanced load. ^^ I am also using the simplest and worst PWM scheme that I know of. The so called H PWM L ON scheme.&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://multicopter.org/wiki/PWM_Schemes&quot;&gt;&lt;img src=&quot;https://esden.net/blog/2009-05-07-open-bldc-sensorless-commutation-detection/images/H_pwm_l_on.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&quot;H PWM L ON&quot; PWM scheme. Click on the Image to see other PWM schemes.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can also see in the video that the motor is pretty robust to external disturbances when running in the commutation detection closed loop. Still I am sure that it can be improved. (If you are interested the sourcecode running this can be seen &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://github.com/esden/open-bldc/commit/4ac0bf84802d08cf76c4055c82aa05ea4c983c33&quot;&gt;here&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;If I am not mistaken then only current measurement is missing in the circuitry. When that is done then I can design the first etched prototype of Open-BLDC. WOOO! :)&lt;/p&gt;
&lt;p&gt;Cheers Esden&lt;/p&gt;
&lt;p&gt;P.S. If you have any comments/ideas feel free to write them in the comment section. ^^&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Open-BLDC status report</title>
        <published>2009-05-02T00:00:00+00:00</published>
        <updated>2009-05-02T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2009-05-02-open-bldc-status-report/"/>
        <id>https://esden.net/blog/2009-05-02-open-bldc-status-report/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2009-05-02-open-bldc-status-report/">&lt;p&gt;Hi!&lt;/p&gt;
&lt;p&gt;It has been a pretty long time since my last post. But do not worry there is happening a lot &quot;behind the scenes&quot;. Well not so much behind them because I commit everything I do to the github repository (http://github.com/esden/open-bldc). If you want to follow the progress you can also subscribe to the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://open-bldc.org/cgi-bin/mailman/listinfo/open-bldc-commits&quot;&gt;commit mailinglist&lt;/a&gt; and/or the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://open-bldc.org/cgi-bin/mailman/listinfo/open-bldc&quot;&gt;discussion mailinglist&lt;/a&gt;. Feel free to write on the mailinglist if you have any questions or just catch me on #uavp channel on the freenode network. (I think that are enough channels of communication :) )&lt;/p&gt;
&lt;p&gt;Ok back to the topic. Last week I was able to turn a bldc motor the first time using the bread board prototype of the power stage, the STM32 Olimex H103 evaluation board and firmware that you can find in the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://github.com/esden/open-bldc&quot;&gt;repository&lt;/a&gt;. The basic PWM scheme that is used by most controllers is implemented and works pretty well. I am also trying out other PWM schemes that may improve efficiency. You may ask why I am doing it now and not after I made a real hardware prototype of the system. The answer is pretty simple. I have to see if and how it is possible, to make sensorless commutation detection, when using different PWM schemes. I had to realize that the schemes have a big influence on the signals that can be captured.&lt;/p&gt;
&lt;p&gt;As soon as I have more results I will make a video showing the current state and how the controller behaves when using different approaches. So stay tuned!&lt;/p&gt;
&lt;p&gt;Cheers, and I hope hearing from you too in the comments! :)&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Breadboard Adapters</title>
        <published>2009-03-20T00:00:00+00:00</published>
        <updated>2009-03-20T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2009-03-20-breadboard-adapters/"/>
        <id>https://esden.net/blog/2009-03-20-breadboard-adapters/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2009-03-20-breadboard-adapters/">&lt;p&gt;I am currently working on building a breadboard prototype of &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://open-bldc.org&quot;&gt;Open-BLDC&lt;/a&gt;. I will write about that in more detail in a separate post. I had a problem there. The Olimex STM32 board has two dual in line connectors that just don&#39;t fit on a breadboard. There are some adapters that you can buy for money, for example from &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://six.media.mit.edu:8080/6/development/breadboard-adaptor&quot;&gt;Number Six&lt;/a&gt;. But that would cost me too much time and money.&lt;/p&gt;
&lt;p&gt;So I decided to build my own adapters with parts that I had ling around and a prototype board that I got from &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://www.hermann-uwe.de&quot;&gt;Uwe&lt;/a&gt;. (Thanks Uwe I will buy one and give you a replacement as soon as possible!) It was a lot of fun building the adapters. They are really easy to make!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt; Just cut out piece of prototype board with the length you need and four holes wide.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt; Solder a dual in line connector to the copper side of the board. Just don&#39;t push the connector completely into the holes so that you can reach the copper with your soldering iron.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt; Solder two single line pin connectors on the other side of the board, right and left of the dual connector.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 4&lt;/strong&gt; This is a bit tricky. You can use some wire to connect the pins of the DIL (Dual In Line) with the single line connectors. But I found out it is much easier just to put a bit more solder between the pins and let them connect. You may have to try one or two times. Having some desoldering wick around is a good thing if you happen to solder together wrong pins. ^^&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 5&lt;/strong&gt; Profit! ;)&lt;/p&gt;
&lt;p&gt;I appended some images you may consider more or less useful. I should make one more adapter to document the build process. :/ I am sure there will be such an opportunity soon.&lt;/p&gt;
&lt;p&gt;Cheers Esden&lt;/p&gt;
&lt;p&gt;[gallery]&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Selecting parts for Open-BLDC power stage prototype</title>
        <published>2009-03-15T00:00:00+00:00</published>
        <updated>2009-03-15T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2009-03-15-selecting-parts-for-open-bldc-power-stage-prototype/"/>
        <id>https://esden.net/blog/2009-03-15-selecting-parts-for-open-bldc-power-stage-prototype/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2009-03-15-selecting-parts-for-open-bldc-power-stage-prototype/">&lt;p&gt;The other day I ordered parts to build the first prototype of &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://open-bldc.org&quot;&gt;Open-BLDC&lt;/a&gt; on a &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Breadboard&quot;&gt;breadboard&lt;/a&gt;. It is a bit different animal then the board designs I already have because it needs legged parts.&lt;/p&gt;
&lt;p&gt;The main problem is to find the right &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/MOSFET&quot;&gt;MOSFET&lt;/a&gt;s and driver chips for this application. As I have no electrical engineering background I did not really understand the values that were listed in the data sheets. I asked an electrical engineering friend and he helped me with locating the most important values. Thanks &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www9.cs.tum.edu/people/ruizf/&quot;&gt;Federico&lt;/a&gt;!&lt;/p&gt;
&lt;h3 id=&quot;mosfet-values&quot;&gt;MOSFET Values&lt;/h3&gt;
&lt;p&gt;I realized that the most important values for &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/MOSFET&quot;&gt;MOSFET&lt;/a&gt;s are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Drain to source voltage&lt;/li&gt;
&lt;li&gt;Gate to source voltage&lt;/li&gt;
&lt;li&gt;Continuous drain current&lt;/li&gt;
&lt;li&gt;Input/Output capacitance (turn on/off time)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/MOSFET&quot;&gt;MOSFET&lt;/a&gt; I selected is not perfect but should do for this first prototype. It is the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.irf.com/product-info/datasheets/data/irf1010n.pdf&quot;&gt;IRF1010N&lt;/a&gt; from &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.irf.com/indexsw.html&quot;&gt;International Rectifier&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Drain to source voltage&lt;/strong&gt; In my case as I am using the standard three cell &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Lithium_polymer&quot;&gt;LiPo batteries&lt;/a&gt; used in models. I need something above 12V. The smallest ones are 20V but the one I could get from &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.reichelt.de/&quot;&gt;Reichelt&lt;/a&gt; was 55V. That is still OK.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Gate to source voltage&lt;/strong&gt; For example the high side &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/MOSFET&quot;&gt;MOSFET&lt;/a&gt; has 12V attached to source. When the gate is driven low, the voltage difference between gate and source are 12V. In many cases that is a problem. Because when you charge your battery full the voltage difference gets even bigger or even worse when you try to use a battery with 4 cells instead of 3. Most &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/MOSFET&quot;&gt;MOSFET&lt;/a&gt; that I found have only 12V specified as gate to source voltage. It still probably works with more because of tolerances but still it is probably not good. The &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/MOSFET&quot;&gt;MOSFET&lt;/a&gt; I am now using for the prototype has ±20V in the specification. That should work.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Continuous drain current&lt;/strong&gt; This one will get more important in the future. It is telling how much current the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/MOSFET&quot;&gt;MOSFET&lt;/a&gt; can put through. For the prototype that is more or less a functional test of the circuit it does not matter so much. But in the future when I want the controller to support up to 20A continuous current this one will get very important. The IRF1010N is specified for 85A at 25ºC and 60A at 100ºC. So this values are meant for applications where you have a heat sink attached to the MOSFET&#39;s. I will try to avoid using heat sink. I could calculate the exact number but the rule of thumb is that one should take 1/10th of the value. This means that with this &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/MOSFET&quot;&gt;MOSFET&lt;/a&gt; I will be able to run at about 6A to 8A. As the lab power supply, I have access to and will use for the prototype, can only deliver 2A that should be more then enough. There are several other values that are connected to this one. Like &lt;em&gt;drain to source on resistence&lt;/em&gt;, &lt;em&gt;thermal resistence&lt;/em&gt;, &lt;em&gt;power dissipation&lt;/em&gt; aso. One can use them to calculate the exact amount of current the part can put through. But I think it is too early to make all the calculations yet.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Input/Output capacitance (turn on/off time)&lt;/strong&gt; This is a set of values that tell how fast the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/MOSFET&quot;&gt;MOSFET&lt;/a&gt; can be switched on and off. It will also get more important in the future when selecting the right &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/MOSFET&quot;&gt;MOSFET&lt;/a&gt; for the final design. For now the 76ns rise and 40ns fall times should be enough. They will probably get even lower because I am using a dedicated half bridge driver chip.&lt;/p&gt;
&lt;h3 id=&quot;half-bridge-driver&quot;&gt;Half Bridge Driver&lt;/h3&gt;
&lt;p&gt;I did a lot less research here. Thankfully there are not as many half bridge drivers out there as there are &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/MOSFET&quot;&gt;MOSFET&lt;/a&gt;s. The one I selected is the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.irf.com/product-info/datasheets/data/ir2110.pdf&quot;&gt;IR2110&lt;/a&gt;. It would be a bit big for the final design because of the additional leads. But it should be OK for this prototype. The problem I had here is that I have 3.3V digital input from the microcontroller and I want to drive the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/MOSFET&quot;&gt;MOSFET&lt;/a&gt;s with 12V. As it seems the other drivers that I considered don&#39;t recommend that. That is why I had to choose this one. I hope that I will find something that is smaller and still supports the 3.3V input.&lt;/p&gt;
&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;Selecting parts is a very tiresome endeavor. The shops only have a subset of the parts that are available out there. I wanted to order all parts from one shop that is somewhere in Germany. I could probably get better parts ordering from &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.digikey.de/&quot;&gt;Digikey&lt;/a&gt; but it would cost more. For the next stage of &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://open-bldc.org&quot;&gt;Open-BLDC&lt;/a&gt; development I will have to select better parts. But first I how a feasible circuit should look like. That is why I am going for the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Breadboard&quot;&gt;breadboard&lt;/a&gt; test first.&lt;/p&gt;
&lt;p&gt;If you find any mistakes or I misunderstood something here feel free to tell me.&lt;/p&gt;
&lt;p&gt;Cheers Esden&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>How to build arm gnu gcc toolchain for Mac OS X [Updated 8x]</title>
        <published>2009-02-26T00:00:00+00:00</published>
        <updated>2009-02-26T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2009-02-26-how-to-build-arm-gnu-gcc-toolchain-for-mac-os-x/"/>
        <id>https://esden.net/blog/2009-02-26-how-to-build-arm-gnu-gcc-toolchain-for-mac-os-x/</id>
        
        <content type="html" 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;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Open-BLDC MK</title>
        <published>2009-02-16T00:00:00+00:00</published>
        <updated>2009-02-16T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2009-02-16-open-bldc-mk/"/>
        <id>https://esden.net/blog/2009-02-16-open-bldc-mk/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2009-02-16-open-bldc-mk/">&lt;p&gt;In the last few weeks I was working on an alternative firmware for the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.mikrokopter.de&quot;&gt;Mikrokopter&lt;/a&gt; &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.mikrokopter.de/ucwiki/en/BrushlessCtrl&quot;&gt;Brushless Motor Controllers&lt;/a&gt;. The main goal is (as always) to create a firmware that is under the terms of a known and proven Open Source License. In this case it is GPLv3. (I am thinking about relicensing it under some BSD like license, but I am not sure yet.)&lt;/p&gt;
&lt;p&gt;The code is available at GitHub &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://github.com/esden/open-bldc-mk&quot;&gt;here&lt;/a&gt;. There is still a lot work to do, but the motor is starting and turning as it should. Well nearly. I have some slight problems with the startup code, that needs some further tuning. Also when you break the motor it does not always detect that no more commutations take place and freezes the motor in one place. I think that I still have some problems with the commutation detection and the debounce.&lt;/p&gt;
&lt;p&gt;The next goal is to make it possible to change the commutation timing corresponding to the commutation detection. That means that it is possible to do the commutation slightly before or after the commutation detection. For that it is necessary to capture the time between detected commutations and according to that trigger the commutation cycles. I hope that the 8bit timer that I have available is enough. The only 16bit timer of the Atmega8 is occupied by PWM generation and I am not sure if I can use it for the timings too. :/ (needs more reading ^^)&lt;/p&gt;
&lt;p&gt;I have to make a video of the running drive soon so I can show it to you ^^&lt;/p&gt;
&lt;p&gt;For now it is all. Take a look at the &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; site for more info and links to some interesting resources I found about brushless sensor less drive controller techniques. ^^&lt;/p&gt;
&lt;p&gt;Cheers Esden&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Updated: Open-BLDC and open source Quadrocopters</title>
        <published>2008-12-18T00:00:00+00:00</published>
        <updated>2008-12-18T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2008-12-18-open-bldc-and-open-source-quadrocopters/"/>
        <id>https://esden.net/blog/2008-12-18-open-bldc-and-open-source-quadrocopters/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2008-12-18-open-bldc-and-open-source-quadrocopters/">&lt;p&gt;Hi ho everyone!&lt;/p&gt;
&lt;p&gt;Today I will write a bit about a &quot;little&quot; project I started recently. It is called &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://github.com/esden/open-bldc&quot;&gt;Open-BLDC&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As I was writing my Diploma thesis I got involved with the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://de.wikipedia.org/wiki/Quadrocopter&quot;&gt;Quadrocopter&lt;/a&gt; Community. There are some different projects and companies producing, selling and developing these small alternatives to helicopters. I really love these things.&lt;/p&gt;
&lt;p&gt;There is only one really open source Quadrocopter, namely &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://uavp.ch/moin&quot;&gt;UAVP&lt;/a&gt;. The source is GPL but as far as I know you can not get any hardware anymore. The board schematics is somewhere in the repository. But still it is no more under active development and the code is pretty outdated compared to other projects like &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.mikrokopter.de/ucwiki/&quot;&gt;Mikrokopter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Talking of Mikrokopter, it is an amazing project with a really amazingly big community. The problem I see there is the License. It is some strange proprietary license. I don&#39;t want to get into the legal stuff here but it just feels wrong. Read it yourself for example &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://svn.mikrokopter.de/mikrowebsvn/filedetails.php?repname=FlightCtrl&amp;amp;path=%2FLICENSE.TXT&quot;&gt;here&lt;/a&gt; (sorry that it is only in german, it is not my fault ^^). The other thing that disturbs me is that you only get the ready product. You can not follow the development because the development branches of the code are not available to the public, so getting involved is very difficult. (yes I know there are branches of the code of other people in the repository that are doing their changes ... but still) (I will for sure get bashed for calling Mikrokopter not properly open source ... try to convince me ^^)&lt;/p&gt;
&lt;p&gt;There is another project that grew out of UAVP, called &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://ng.uavp.ch/moin&quot;&gt;NG-UAVP&lt;/a&gt;. The guys are working hard since 1.5 Years on their hardware and software. And as I asked them, they will probably release their source under GPL and the hardware under CC-NC. That would be awesome!!! But they want to have something really working and stable before the first release. Hopefully they will release it soon and stick to that licenses. (yes it is not completely sure :( )&lt;/p&gt;
&lt;p&gt;Anyways. I really would like to have a completely open source project from the license to the way to develop everything. One thing that is a basic part in the current Quadrocopters are &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 DC Motor&lt;/a&gt; controllers. There is no open source one anywhere. So hoping that UAVP-NG gets released under GPL I decided I should start with the controllers. If NG-UAVP fails to release under a proper license and organize the development so that everyone can contribute I will move from here to the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Inertial_measurement_unit&quot;&gt;IMU&lt;/a&gt; and controller.&lt;/p&gt;
&lt;p&gt;Enough said. I started up the free version of &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.cadsoftusa.com/&quot;&gt;Eagle&lt;/a&gt; (another missing thing in the open source is a really usable pcb cad software) and created a first shot at the schematics. After that I uploaded it to &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt; (and another place where open source is lacking, a good web interface to &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://git.or.cz/&quot;&gt;GIT&lt;/a&gt;, I really would prefer to have the interface installed on my own server). Not long time after that MarcusBec from the #uavp channel on &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://freenode.net/&quot;&gt;Freenode&lt;/a&gt; took a look at it and told me that many things were just bullshit, and what I should do to make the design better. I am very thankful for that! So I already have one very major contributor to the project! That is how Opensource works. ^^&lt;/p&gt;
&lt;p&gt;Now it seems that the schematics make somewhat sense. The controller pretty high end, using drivers for the P-MOSFETS and three rows of them. The microcontroller is an Atmega168 which makes a lot of space for code. Three interfaces are available for now, PPM (standard interface used in modelling), Serial and &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/I2c&quot;&gt;I2C&lt;/a&gt;. In the future I plan to add &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Controller_Area_Network&quot;&gt;Can-bus&lt;/a&gt; too, for more robot centric applications. Currently I am working at making a PCB design, and hope I get it somewhat useful.&lt;/p&gt;
&lt;p&gt;I am still looking for feedback and ideas. Check out the repository at &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://github.com/esden/open-bldc&quot;&gt;http://github.com/esden/open-bldc&lt;/a&gt; and take a look at it. Perhaps you find something wrong and/or worth cleaning up. If you just have questions, don&#39;t hesitate to contact me too! It is Open Source after all!!! :)&lt;/p&gt;
&lt;p&gt;Cheers Esden&lt;/p&gt;
&lt;p&gt;Update: I got informed that my information about UAVP was wrong. The boards of the original project are still available from &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://lipoly.de/&quot;&gt;http://lipoly.de/&lt;/a&gt; and &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.quadroufo.com/&quot;&gt;http://www.quadroufo.com/&lt;/a&gt;. The source is also still under active development also by its main developer Wolfgang. So it may be a viable basis to work on for a really open source quadrocopter after all. But thankfully is open-bldc still no wasted time, because there is still none, at least to my knowledge, open source bldc useful for quadrocopters out there. Sorry for the mistake here I will research my information better next time!&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Ok ... back again</title>
        <published>2008-12-13T00:00:00+00:00</published>
        <updated>2008-12-13T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2008-12-13-ok-back-again/"/>
        <id>https://esden.net/blog/2008-12-13-ok-back-again/</id>
        
        <content type="html" 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;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>BL-Ctrl and Serial Converter assembled</title>
        <published>2007-07-10T00:00:00+00:00</published>
        <updated>2007-07-10T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2007-07-10-bl-ctrl-and-serial-converter-assembled/"/>
        <id>https://esden.net/blog/2007-07-10-bl-ctrl-and-serial-converter-assembled/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2007-07-10-bl-ctrl-and-serial-converter-assembled/">&lt;p&gt;Finally after some problems I was able to assemble three BL-Ctrl and the serial converter.&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.esden.net/gallery/v/quadrocopter/bl-ctrl_serial_converter_built.jpg.html&quot;&gt;&lt;img src=&quot;https://esden.net/blog/2007-07-10-bl-ctrl-and-serial-converter-assembled/images/bl-ctrl_serial_converter_built.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Why I have not built four BL-Ctrl is because I broke one Atmega microcontroller while assembling the PCBs.&lt;/p&gt;
&lt;p&gt;Next step will be to test the BL-Ctrl modules. To do that I still need some things. First I need some possibility to connect my 12V power supply to the modules and second I need multipin connectors on the BL-Ctrl modules where I can connect the serial converter.&lt;/p&gt;
&lt;p&gt;I will look for the parts I need at Reichelt and order them. During the assembly of the modules I realized that I miss some tools so I will order them too.&lt;/p&gt;
&lt;p&gt;At least I did one step towards my own Mikrokopter. ;)&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Programming the BL-Ctrl&#39;ers</title>
        <published>2007-07-10T00:00:00+00:00</published>
        <updated>2007-07-10T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2007-07-10-programming-the-bl-ctrlers/"/>
        <id>https://esden.net/blog/2007-07-10-programming-the-bl-ctrlers/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2007-07-10-programming-the-bl-ctrlers/">&lt;p&gt;Some days ago I was able to program my BL-Cntrlers using &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.lancos.com/prog.html&quot;&gt;PonyProg&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I had some problems doing this because I do not posess a machine with a builtin Serial interface and Windows. The problem is that the programmer uses a bitbang protocol on the serial port with very stirct timing constrains so I can not use a Serial to USB converter. First time I tried to program the controllers I tried to use the laptop of a friend but it seems that because it has frequency scaling the timings were not right, so I had to use a windows machine at my university.&lt;/p&gt;
&lt;p&gt;It seems that everything works so far. The programmer said that the download was successful and the LEDs light up.&lt;/p&gt;
&lt;p&gt;Later I also tried to program the controlers using &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.bsdhome.com/avrdude/&quot;&gt;avrdude&lt;/a&gt; under Linux. I built up a linux machine from some spare parts that were lying around my room. Sadly it is not working. avrdude says that the device is not responding. I have to try some other linux machine with builtin serial device to see if the problem is because of the very old hardware.&lt;/p&gt;
&lt;p&gt;Next step will be to get some brushless motors and build up the fourth controller. I was thinking about getting four Robbe &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://mikrocontroller.cco-ev.de/ucwiki/ROXXY2824-34&quot;&gt;ROXXY2824-34&lt;/a&gt;. I heard that they often have problems so I will have to buy more then four to make sure that I get 4 working ones.&lt;/p&gt;
&lt;p&gt;Still I will have to wait some time until I start working at my diploma thesis company. Before that I have no money to purchase them.&lt;/p&gt;
&lt;p&gt;But still I am very happy that programming was a success what means that I did not screw anything up during the assembly (at least for now). Another small step towards my own mikrokopter. ;)&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>The Mikrokopter PCBs not here yet</title>
        <published>2007-06-17T00:00:00+00:00</published>
        <updated>2007-06-17T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2007-06-17-the-mikrokopter-pcbs-not-here-yet/"/>
        <id>https://esden.net/blog/2007-06-17-the-mikrokopter-pcbs-not-here-yet/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2007-06-17-the-mikrokopter-pcbs-not-here-yet/">&lt;p&gt;Sadly I had to realize that the guys selling the PCBs are currently on vacation. I should have read their homepage more carefully.&lt;/p&gt;
&lt;p&gt;But the positive thing is that they will be back on monday the 19th so they will perhaps ship them tomorrow. Can&#39;t wait to get them and start building.&lt;/p&gt;
&lt;p&gt;I will need some kind of tweezers for soldiering the parts. Hopefully I will be able to organize them before the PCBs reach me.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>BL-Ctrl and Serial converter parts</title>
        <published>2007-06-14T00:00:00+00:00</published>
        <updated>2007-06-14T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2007-06-14-bl-ctrl-and-serial-converter-parts/"/>
        <id>https://esden.net/blog/2007-06-14-bl-ctrl-and-serial-converter-parts/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2007-06-14-bl-ctrl-and-serial-converter-parts/">&lt;p&gt;Today a DHL guy stood in front of my door and left a package full of parts for the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://mikrocontroller.cco-ev.de/de_mk/KopterBL.php&quot;&gt;BL-Controllers&lt;/a&gt; and &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://mikrocontroller.cco-ev.de/de_mk/SerCon.php&quot;&gt;serial converter.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.esden.net/gallery/v/quadrocopter/bl-ctrl_serial_parts.jpg.html&quot;&gt;&lt;img src=&quot;https://esden.net/blog/2007-06-14-bl-ctrl-and-serial-converter-parts/images/bl-ctrl_serial_parts.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I still wait for the PCBs but according to PayPal the payment is through, so I should get them in the next days too. Hopefully I can start to assemble everything on this weekend.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Mikrokopter</title>
        <published>2007-06-12T00:00:00+00:00</published>
        <updated>2007-06-12T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2007-06-12-mikrokopter/"/>
        <id>https://esden.net/blog/2007-06-12-mikrokopter/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2007-06-12-mikrokopter/">&lt;p&gt;Long time no post...&lt;/p&gt;
&lt;p&gt;Some weeks ago a friend of mine showed me these incredible machines at &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.mikrokopter.de&quot;&gt;mikrokopter&lt;/a&gt;. I was so amazed about these small flying machines that I got myself the first parts for building such a small flying machine myself.&lt;/p&gt;
&lt;p&gt;Because I have nearly no money I split the purchases in small pieces. First of all I got myself four &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://cco-ev.de/mikrocontroller/index.php?main_page=product_info&amp;amp;products_id=191&quot;&gt;brushless motor controller pcbs&lt;/a&gt; and an &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://cco-ev.de/mikrocontroller/index.php?main_page=product_info&amp;amp;cPath=69&amp;amp;products_id=195&quot;&gt;Atmel programmer pcb&lt;/a&gt; from the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://cco-ev.de/mikrocontroller/&quot;&gt;mikrokopter shop&lt;/a&gt; and the nessesary parts.&lt;/p&gt;
&lt;p&gt;The next steps will be getting following parts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;One brushless engine to test the controlers&lt;/li&gt;
&lt;li&gt;Flight-Control pcb with all parts (that will be a pretty big chunk)&lt;/li&gt;
&lt;li&gt;A reciever and a remote to test the flight-ctrl&lt;/li&gt;
&lt;li&gt;A frame&lt;/li&gt;
&lt;li&gt;The remaining engines&lt;/li&gt;
&lt;li&gt;And finally the rotors&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then I should have a complete and flying mikrokopter. I will probably stretch the purchaices over many months while I progress with assembling, testing and earning nessesary money.&lt;/p&gt;
&lt;p&gt;Wish me luck with that project. ;)&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>ROCK Linux 3 Released</title>
        <published>2006-07-27T00:00:00+00:00</published>
        <updated>2006-07-27T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2006-07-27-rock-linux-3-released/"/>
        <id>https://esden.net/blog/2006-07-27-rock-linux-3-released/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2006-07-27-rock-linux-3-released/">&lt;p&gt;Finally after many months of hard work &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.rocklinux.org&quot;&gt;ROCK Linux&lt;/a&gt; got a version bump to 3 and has many new and updated things to offer.&lt;/p&gt;
&lt;p&gt;You can read the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.rocklinux.org/wiki/ROCK3#Changelog&quot;&gt;Changelog&lt;/a&gt; or simply download a &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://f4k3.net/%7Efake/rock/ROCK3-crystal-r7770.iso&quot;&gt;Crystal build ISO&lt;/a&gt; or the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://f4k3.net/%7Efake/rock/ROCK3-source-r7770.tar.bz2&quot;&gt;sources&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Now you have to try it and start contributing. No?&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Objective C</title>
        <published>2005-07-07T00:00:00+00:00</published>
        <updated>2005-07-07T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2005-07-07-objective-c/"/>
        <id>https://esden.net/blog/2005-07-07-objective-c/</id>
        
        <content type="html" 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;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Gallery</title>
        <published>2005-07-05T00:00:00+00:00</published>
        <updated>2005-07-05T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2005-07-05-gallery/"/>
        <id>https://esden.net/blog/2005-07-05-gallery/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2005-07-05-gallery/">&lt;p&gt;Ich habe alles was in meinem alten www Verzeichnis war endlich mal aufgeraeumt. Sehr vieles habe ich in den Muell geworfen und einieges wiedergefunden. Wie zum Beispiel ein log vom rebooten des Universums (siehe voriger Blog Eintrag) oder wie &lt;a href=&quot;/content/misc/rotkaepchen.txt&quot; title=&quot;Informatiker Rotkaepchen&quot;&gt;Rotkaepchen&lt;/a&gt; von Informatikern gesehen wird. Dazu noch ein &lt;a href=&quot;/content/misc/schwanz.sh&quot; title=&quot;Schwanzlaenge&quot;&gt;Skript&lt;/a&gt; mit dem man anhand von den Parametern seines Rechners die dazugehoerende &quot;Schwanzlaenge&quot; berechnen kann und ein &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http://www.gkrellm.net&quot;&gt;gkrellm&lt;/a&gt; &lt;a href=&quot;/content/misc/gkrellm_transparent.tar.bz2&quot; title=&quot;GKrellM Transparent Theme&quot;&gt;Theme&lt;/a&gt; das ich mal gemacht hatte. Was man alles so findet wenn man mal aufraeumt ;)&lt;/p&gt;
&lt;p&gt;Da ich auch noch unheimlich viele Bilder da hatte habe ich mich kurzerhand entschlossen eine &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; title=&quot;Images of the twisted world of Esden.&quot; href=&quot;http://www.esden.net/gallery&quot;&gt;Gallery&lt;/a&gt; dafuer zu machen. Die braucht noch bischen massieren bis die huebsch wird und sich mit meinem Blog zusammenfuegt aber zumindest sind schon alle Bilder drinnen. Es war schoen mal wieder die ganz alten sich anzuschauen.&lt;/p&gt;
&lt;p&gt;Das war fast so wie einen ganz alten Schrank auszuraeumen und wieder in Ordnung zu bringen. Da kommen so richtig Erinnerungen wieder hoch.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Diff Algorithmus und C++ lernerei</title>
        <published>2005-07-02T00:00:00+00:00</published>
        <updated>2005-07-02T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2005-07-02-diff-algorithmus-und-c-lernerei/"/>
        <id>https://esden.net/blog/2005-07-02-diff-algorithmus-und-c-lernerei/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2005-07-02-diff-algorithmus-und-c-lernerei/">&lt;p&gt;Ok jetzt weiter zum angenehmeren. Die letzte Zeit habe ich viel programmiert fuer ein Nachfolgeprojekt von Syneight naemlich Diagnostics. Fuer dieses ding habe ich eine klasse geschrieben die diff implementiert. Es war sehr interessant vorallem weil ich mich dann durch mehrere Paper durchwuehlen musste bis ich den richtigen Algorithmus gefunden habe. Letztenendes bin ich bei LCS(Largest Common Subsequence) basierenden Algorithmus geblieben da er ziemlich gut dokumentiert war und mit Codebeispielen versehen. Er hat zwar eine Komplexitaet von O(n) aber es geht schon. Es gibt noch andere Algorithmen wie zum beispiel einen der auf Shortest Path basiert und eine Komplexitaet von O(log(n)) hat. Vielleicht werde ich irgendwann den austauschen.&lt;/p&gt;
&lt;p&gt;Nun was ich eigentlich sagen wollte. Ich habe diese Klasse implementiert und an den Projektleiter geschickt. Ich habe kurze zeit danach eine E-Mail zurueckgekriegt mit einer ewigen liste was ich falsch gemacht habe. Ich war positiv ueberrascht denn ich bin davon ausgegangen das ich eine kurze E-Mail bekomme wo drinnen steht &quot;Dass ist scheisse, mache es nochmal. Und ersetze &lt;bla&gt; mit &lt;blub&gt; und lese dir Folgendes Buch durch &lt;blubber&gt;&quot; oder aehnliches. Nein ich habe eine ausfuehrliche Erklaerung bekommen was und wieso ich falsch gemacht hatte. Ihr glaubt kaum wie sehr ich mich darueber gefreut habe. Vielleicht werde ich in spaeteren Blogs auf die Sachen die ich Falsch gemacht habe eingehen damit ihr auch davon was habt. Nun nachdem ich die entsprechenden Korrekturen eingebaut habe habe ich wieder ne lange mail gekriegt was man besser machen kann. Es ging so bis jetzt mehrmals hin und her. Mommentan bin ich am umbauen auf Iteratoren (hier muss ich anmerken das ich im uhrspruenglichen Code keine Iteratoren benutzt habe weil ich mit denen nicht per du war und wollte mir nicht eine weitere Faehlerquelle hinzufuegen.) Ich hoffe das bald der Code so weit ist das man den so stehen lassen kann ;-) (ja ich weiss Traeumen ist schoen)&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>THC Design</title>
        <published>2005-07-02T00:00:00+00:00</published>
        <updated>2005-07-02T00:00:00+00:00</updated>
        
        <author>
          <name>Esden</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esden.net/blog/2005-07-02-thc-design/"/>
        <id>https://esden.net/blog/2005-07-02-thc-design/</id>
        
        <content type="html" xml:base="https://esden.net/blog/2005-07-02-thc-design/">&lt;p&gt;Ich habe heute noch eine Zeichnung gemacht von dem wie ich mir vorstelle das THC mal aussehen koennte mit einem Gehaeuse. Nun ich weiss Gehaeuse ist eigentlich das letzte worueber man sich bei so etwas Gedanken machen sollte. Trotzdem habe ich bisschen Getraeumt und gleichzeitig ueberlegt wo die ganzen Anschluesse gehen sollten.&lt;/p&gt;
&lt;p&gt;Gleich nachdem ich das fertig hatte wusste ich das ich einen Scanner brauche. Ich muss mal schauen wie ich billig an einen USB Scanner komme. Bis dahin muss ich mich wohl mit meiner Digitalkamera und und Handykamera zufriedenstellen. ;-)&lt;/p&gt;
&lt;p&gt;Ich schaue mal gleich ob ich ein Photo von dem Bild hinkriege. Ok sehr gut ... auf dem letzten Saeufzer der Batterie in meinem Photoapparat habe ich ein Bild hingekriegt. (Ich muss mal neue Batterien besorgen.) Ich stelle es hier mal rein in der Orginalaufloesung weil sonnst kann man nichts davon erkennen.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/content/THC/THC_Design.jpg&quot;&gt;&lt;img src=&quot;/content/THC/THC_Design.thumb.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ich habe mir gedacht ich lehne mich an das Design von I-Pod an (ich finde es sieht super aus ich liebe naemlich designs die unkompliziert sind von der Linie was Ergonomie angeht ... nun das ist nicht mein ding :-P ) Wenn jemand von euch einen besseren Vorschlag hat darf mir natuerlich was schicken. Die E-Mail Adresse ist einfach esden at dieser Domainname ;-)&lt;/p&gt;
&lt;p&gt;Unten will ich ein Erweiterungsport machen auf dem USB und paar weitere Leitungen rausgefuehrt sind die vom Prozessor noch frei sind. Deshalb werde ich wahrscheinlich den USB Port noch wegtun.&lt;/p&gt;
&lt;p&gt;Soo ich glaube das reicht erstmal. Ich schreibe vielleicht morgen noch weiter ;-)&lt;/p&gt;
</content>
        
    </entry>
</feed>
