<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Erik Kallen</title>
    <description>This is my personal site with random projects that make up my day aside from my job. I have intersts in metal working, electronics, programming, backyard foundries 3D printing and other ways of tinkering.
</description>
    <link>https://erikkallen.nl/</link>
    <atom:link href="https://erikkallen.nl/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Thu, 09 Apr 2026 19:25:21 +0000</pubDate>
    <lastBuildDate>Thu, 09 Apr 2026 19:25:21 +0000</lastBuildDate>
    <generator>Jekyll v3.10.0</generator>
    
      <item>
        <title>Hornbach Gateway Part 2 — Root Shell via U-Boot</title>
        <description>&lt;p&gt;Quick update on the Hornbach SMART HOME gateway hack — things moved forward faster than expected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Finding the serial pads&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the &lt;a href=&quot;/home%20automation/hardware%20hacking/2026/04/05/hornbach-h3-gateway-hack.html&quot;&gt;previous post&lt;/a&gt; I mentioned I was waiting for a 3.3V UART adapter. In the end I did not need to order one — turns out my existing adapter can do 3.3V by moving a 0 ohm resistor to a different pad on the adapter. A two minute fix. Once I had that sorted I probed the board… and got nothing. Went back over the PCB very carefully and eventually found the culprit: the serial pads were &lt;strong&gt;hidden under the silkscreen on the edge of the PCB&lt;/strong&gt;. Not the usual corner debug header — they had printed the silkscreen layer directly over the pads, presumably to make them less obvious. Once I scraped that off and soldered to the pads properly, a clean U-Boot console showed up immediately at 115200 baud.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/hornbach-uart-pads.jpg&quot; alt=&quot;UART pads hidden under silkscreen on the PCB edge&quot; class=&quot;rounded&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stopping U-Boot&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The U-Boot autoboot timeout was set to 0 seconds, so there is no visible countdown — it just boots straight through. The trick is to &lt;strong&gt;spam a key&lt;/strong&gt; the moment you power the board on. Keep hammering it before U-Boot even gets a chance to hand off to the kernel and you will catch it:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-text&quot; data-lang=&quot;text&quot;&gt;=&amp;gt; &lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Hornbach has not disabled the interactive prompt itself, just set the delay to zero. Key spamming works fine :D.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Getting a root shell&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With a U-Boot prompt the plan is simple: load the kernel and device tree from eMMC into RAM, then set &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bootargs&lt;/code&gt; manually with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;init=/bin/sh&lt;/code&gt; appended. That tells the kernel to run &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/bin/sh&lt;/code&gt; as PID 1 instead of the normal init system, dropping you into a root shell before any of the Hornbach software starts.&lt;/p&gt;

&lt;p&gt;The eMMC is on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mmc 1&lt;/code&gt; (not 0 — that would be an SD card slot). The commands:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;# Select the eMMC&lt;/span&gt;
mmc dev 1

&lt;span class=&quot;c&quot;&gt;# Load kernel and device tree into RAM&lt;/span&gt;
load mmc 1:1 0x42000000 uImage
load mmc 1:1 0x43000000 dtb

&lt;span class=&quot;c&quot;&gt;# Set bootargs with init override&lt;/span&gt;
setenv bootargs &lt;span class=&quot;nv&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;ttyS0,115200 &lt;span class=&quot;nv&quot;&gt;root&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/dev/mmcblk1p2 rootwait &lt;span class=&quot;nv&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/bin/sh

&lt;span class=&quot;c&quot;&gt;# Boot&lt;/span&gt;
bootm 0x42000000 - 0x43000000&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;A few seconds later:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-text&quot; data-lang=&quot;text&quot;&gt;[    2.847321] Run /bin/sh as init process
/ #&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Root shell on the Hornbach gateway. Not bad for an afternoon’s work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is next&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now that I have a shell I can explore the filesystem and map out the partition layout before touching anything. And since U-Boot has USB host support, there is no need for FEL trickery to back up the eMMC — I can do it directly from the U-Boot prompt by plugging in a flash drive and copying the eMMC block device straight to it:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;# Initialize USB and wait for the drive to enumerate&lt;/span&gt;
usb start

&lt;span class=&quot;c&quot;&gt;# Write the entire eMMC (mmc 1) to the USB drive (usb 0), 512-byte blocks&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# Adjust count to match your eMMC size (e.g. 7634944 blocks = 3.9 GB)&lt;/span&gt;
mmc dev 1
usb dev 0
mmc &lt;span class=&quot;nb&quot;&gt;read &lt;/span&gt;0x42000000 0x0 0x800    &lt;span class=&quot;c&quot;&gt;# read first 1 MB into RAM as a sanity check&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# Or use cp to write directly block-by-block to the USB storage&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# (exact syntax depends on U-Boot build; this is the typical approach)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Alternatively, from the root shell (once the system is booted with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;init=/bin/sh&lt;/code&gt;) it is even simpler — just mount the USB drive and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dd&lt;/code&gt; the eMMC to it:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;# From the root shell after booting with init=/bin/sh&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;mkdir&lt;/span&gt; /mnt
mount /dev/sda1 /mnt
&lt;span class=&quot;nb&quot;&gt;dd &lt;/span&gt;&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/dev/mmcblk1 &lt;span class=&quot;nv&quot;&gt;of&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/mnt/hornbach-emmc.img &lt;span class=&quot;nv&quot;&gt;bs&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;1M&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;That gives a full backup before anything destructive happens. Once that is safely on disk I can start experimenting with flashing Home Assistant OS — more to follow!&lt;/p&gt;
</description>
        <pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate>
        <link>https://erikkallen.nl/home%20automation/hardware%20hacking/2026/04/09/hornbach-h3-gateway-root-shell.html</link>
        <guid isPermaLink="true">https://erikkallen.nl/home%20automation/hardware%20hacking/2026/04/09/hornbach-h3-gateway-root-shell.html</guid>
        
        <category>linux</category>
        
        <category>uart</category>
        
        <category>allwinner</category>
        
        <category>uboot</category>
        
        <category>home assistant</category>
        
        
        <category>home automation</category>
        
        <category>hardware hacking</category>
        
      </item>
    
      <item>
        <title>Hacking the SMART HOME by Hornbach Gateway</title>
        <description>&lt;p&gt;So I got my hands on a &lt;strong&gt;SMART HOME by Hornbach&lt;/strong&gt; gateway (model WSR 1706 V1.0) — the little smart home hub Hornbach sells in their stores to control Z-Wave and Zigbee devices. Now I have nothing against Hornbach, but their cloud-dependent locked-down firmware is not really my thing, so naturally the first thought was: can I put Home Assistant on this? Turns out yes, probably, though it is still a work in progress :D.&lt;/p&gt;

&lt;p&gt;The first thing I did was crack it open, and immediately spotted an Allwinner H3 SoC — the same quad-core ARM Cortex-A7 chip found in the Orange Pi and NanoPi NEO boards. At that point I knew this was going to be fun.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UART: what is all this garbage?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Any self respecting hardware hacker starts with UART, so I soldered up to the debug pads and was immediately greeted by a stream of what looked like complete nonsense:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;#^UVlt%&amp;amp;+,-0123@BCDE[`bcfmpqy}-&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;My first thought was baud rate mismatch, but switching baud rates did not help. After some digging I found the real cause: the Allwinner H3 BROM and SPL output at &lt;strong&gt;1.5 Mbaud&lt;/strong&gt; during the very early boot stage, before handing off to U-Boot which switches down to 115200. Most cheap USB-UART adapters simply cannot do 1.5M, so that early stage always looks like garbage. The fix is to just wait a few seconds — the clean 115200 output shows up once U-Boot takes over. If you want to actually decode that early output you need an FT232H or CP2102N (not the plain CP2102), but honestly waiting is fine.&lt;/p&gt;

&lt;p&gt;One important gotcha: the H3 UART is 3.3V logic. A 5V adapter on the TX line can cause corruption or worse. For just listening it is usually tolerated, but for two-way communication you really want a proper 3.3V adapter — something I learned I need to order before I can go much further :D.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trying the network&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While waiting for the UART output to stabilise I also poked at the network side. The device shows up running OpenWrt, which was a nice surprise — but Hornbach has locked it down pretty hard. No LuCI, SSH is not on port 22, and nmap finds absolutely zero open ports. The device only talks outbound to Hornbach’s cloud. So that is a dead end and UART is where the action is going to be.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is actually inside&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The board uses eMMC soldered directly — no SD card slot populated, which rules out the easy approach of just booting from an SD card. The Z-Wave and Zigbee radios are there, plus a USB-A host port and Ethernet, which is pretty much the standard H3 reference design feature set. Hornbach is a DIY chain, not a hardware company, so this is almost certainly built by an ODM around a NanoPi NEO or Orange Pi-style reference board.&lt;/p&gt;

&lt;p&gt;The most interesting discovery came from looking at the PCB carefully: there is an &lt;strong&gt;unpopulated button footprint&lt;/strong&gt; — the pads are right there but no button is soldered. This is almost certainly the FEL button. Allwinner puts a FEL recovery mode into the H3 BROM that cannot be disabled by vendors, and ODMs routinely just leave the button unpopulated on production hardware to stop end users from using it. Joke is on them :D.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FEL mode to the rescue&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;FEL is a low-level USB boot protocol burned into the Allwinner silicon. When active, the device shows up over USB as vendor &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1f3a&lt;/code&gt;, product &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;efe8&lt;/code&gt;. You trigger it by holding the FEL button (or in our case, shorting those two pads) while powering on. One important detail: use a USB-A to USB-A cable with the &lt;strong&gt;5V pin taped off&lt;/strong&gt; on at least one end — the device has its own power supply and you do not want to backfeed 5V through the USB port.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;# Check the device appeared in FEL mode&lt;/span&gt;
lsusb | &lt;span class=&quot;nb&quot;&gt;grep &lt;/span&gt;1f3a

&lt;span class=&quot;c&quot;&gt;# Confirm with sunxi-tools&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;sunxi-fel version&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;On Arch Linux, sunxi-tools is in the AUR:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;yay &lt;span class=&quot;nt&quot;&gt;-S&lt;/span&gt; sunxi-tools

&lt;span class=&quot;c&quot;&gt;# Udev rule so you don&apos;t need sudo every time&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&apos;SUBSYSTEM==&quot;usb&quot;, ATTR{idVendor}==&quot;1f3a&quot;, ATTR{idProduct}==&quot;efe8&quot;, MODE=&quot;0666&quot;&apos;&lt;/span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  | &lt;span class=&quot;nb&quot;&gt;sudo tee&lt;/span&gt; /etc/udev/rules.d/99-sunxi.rules
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;udevadm control &lt;span class=&quot;nt&quot;&gt;--reload-rules&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;&lt;strong&gt;Flashing Home Assistant OS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once in FEL mode the plan is straightforward. First load a compatible U-Boot (NanoPi NEO or Orange Pi builds are good starting points) into RAM via FEL:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;sunxi-fel uboot u-boot-sunxi-with-spl.bin&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Then from within U-Boot or a minimal initramfs, write the Home Assistant OS image straight to the eMMC:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;nb&quot;&gt;dd &lt;/span&gt;&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;haos.img &lt;span class=&quot;nv&quot;&gt;of&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/dev/mmcblk0 &lt;span class=&quot;nv&quot;&gt;bs&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;1M&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Power cycle and it should boot straight into HAOS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where things stand&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I have got the theory solid and the UART output decoded, but I have not yet physically shorted the FEL pads and confirmed it works — partly because my reliable 3.3V UART adapter is still in the post. Once it arrives I can do a proper two-way UART session, confirm U-Boot details, pick the right U-Boot build, and actually pull the trigger on the eMMC flash. Will post an update when that happens!&lt;/p&gt;
</description>
        <pubDate>Sun, 05 Apr 2026 00:00:00 +0000</pubDate>
        <link>https://erikkallen.nl/home%20automation/hardware%20hacking/2026/04/05/hornbach-h3-gateway-hack.html</link>
        <guid isPermaLink="true">https://erikkallen.nl/home%20automation/hardware%20hacking/2026/04/05/hornbach-h3-gateway-hack.html</guid>
        
        <category>linux</category>
        
        <category>uart</category>
        
        <category>allwinner</category>
        
        <category>home assistant</category>
        
        
        <category>home automation</category>
        
        <category>hardware hacking</category>
        
      </item>
    
      <item>
        <title>Lots of news</title>
        <description>&lt;p&gt;Where do I start, it has been a while so naturally I finally have a lot to say :D. So first of; my Mendel90 finally got his well deserved paint job, and some needed wiring cleanup. Also while I was doing that I slapped in some new electronics (well new for me as it’s the old but well tested RAMPS 1.4 Arduino combination).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/mendel90_paintjob.jpg&quot; alt=&quot;Mendel90 Paintjob&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Since we are still on the subject of electronics and one of my colleagues pointed me to &lt;a href=&quot;http://www.pcbway.com&quot;&gt;Pcbway&lt;/a&gt; (a cheap fab house) which sells you 10 prints for 5 bucks I decided to attempt to make my own PCB. So I fired up &lt;a href=&quot;http://kicad-pcb.org&quot;&gt;KiCad&lt;/a&gt; and started designing a PCB that fits snugly into the tiny space reserved for a connector board on my Mendel90 hotend carriage. 10 days later I was a proud owner of my very own PCB and by some miracle I even fits the housing, unfortunately I read the ramps schematics wrong and I had to bodge wire the entire thing, but hey what would you expect from a software dude making a pcb :P. Anyhow the rev1 is up on my &lt;a href=&quot;https://github.com/erikkallen/mendel90_connector_pcb&quot;&gt;Github&lt;/a&gt; for anyone who happens to have the same Mendel90 as me :D or ambitions to have the same one (which ever is more likely).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/mendel90_hotend_pcb.png&quot; alt=&quot;Mendel90 Hotend PCB&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Continuing with colleagues… I started my own company together with two of my former colleagues, it’s called EVAbits and we do….surprise surprise engineering :D so if you need some of that done head over to our &lt;a href=&quot;http://evabits.com&quot;&gt;website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://evabits.com/images/evabits.png&quot; alt=&quot;EVAbits&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Lastly I received a LCD display from my other job from an old discontinued product which I hooked up to a Raspberry Pi and IT WORKED! I had to use almost all GPIO pins though so I have to figure something out for connecting other peripherals. Ooh yea the reason I did this was for my car multimedia setup which I am building (very slowly but you know… some day it will be done). The LCD also had a touchscreen controller which I had to replace by an Arduino because I could not get it to work on my Raspberry Pi, anyway more details on the LCD in a different post.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/pi-dsi-lcd.jpg&quot; alt=&quot;Pi LCD Hookup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;So thats it for now, thanks for reading…if you made it this far that is :D&lt;/p&gt;
</description>
        <pubDate>Mon, 10 Jul 2017 22:42:00 +0000</pubDate>
        <link>https://erikkallen.nl/3d%20printing/company/2017/07/10/lots-of-news.html</link>
        <guid isPermaLink="true">https://erikkallen.nl/3d%20printing/company/2017/07/10/lots-of-news.html</guid>
        
        <category>3d printer</category>
        
        <category>evabits</category>
        
        
        <category>3d printing</category>
        
        <category>company</category>
        
      </item>
    
      <item>
        <title>Mendel90 first print!</title>
        <description>&lt;p&gt;There is always that scary thought when first switching on a printer of which you have just spend a couple of hours doing the wiring and it’s getting late. You wonder if you made a mistake… yet you are in to deep so you try anyway. Flick the switch and watch for any magic smoke or popcorn sounds……..&lt;/p&gt;

&lt;p&gt;W00t! no smoke no wierd sounds, so fire up pronterface and see if it heats up. In this case it did, so I pulled out my spool of PLA, and sliced a simple cube with pretty much default settings and low and behold filament gets extruded and the result even looks like a cube!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/first-print-cube.jpg&quot; alt=&quot;initial wiring&quot; class=&quot;project-image-medium rounded&quot; /&gt;&lt;/p&gt;

&lt;p&gt;After a couple of prints and some fine tuning the result is actually quite pleasing, PETG sticks to the plain glass very well and looks super smooth.
The machine is very consistent and requires no adjustment between prints.&lt;/p&gt;
</description>
        <pubDate>Sun, 18 Dec 2016 18:50:00 +0000</pubDate>
        <link>https://erikkallen.nl/3d%20printing/2016/12/18/building-a-mendel90-first-print.html</link>
        <guid isPermaLink="true">https://erikkallen.nl/3d%20printing/2016/12/18/building-a-mendel90-first-print.html</guid>
        
        <category>3d printer</category>
        
        
        <category>3d printing</category>
        
      </item>
    
      <item>
        <title>More is better! Mendel90</title>
        <description>&lt;p&gt;Every self respecting 3D printing guy has to have built his own 3d printer. By buying a kit from china I felt like that was cheating.
So after looking at some printer designs I decided to go with the Medel90 by Nophead. Since it is fully customizable and can be built with simple tools and someMDF board.&lt;/p&gt;

&lt;p&gt;So I went to the hardware store to get a piece of MDF 12mm thick and a bunch of screws, some smooth rod, threaded rod, nuts and bolts. Once at home I fired up my 3d printer to print the needed parts starting with the frame blocks. To cut and drill the plates I printed the design on multiple A4 using Adobe Acrobat reader in poster mode.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/drill_holes.jpg&quot; alt=&quot;Drill hole design&quot; class=&quot;project-image-medium rounded&quot; /&gt;
&lt;img src=&quot;/images/setting_up_the_frame.jpg&quot; alt=&quot;Frame setup&quot; class=&quot;project-image-medium rounded&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next I started on the axis, again I needed printed parts and I cut the rods to length and started mounting the Y-axis.
Slowly I started to realize I needed motors to make this thing do anything at all and luckily our primary source of cheap stuff did not let me down.
I bought 5 &lt;a href=&quot;https://nl.aliexpress.com/item/5PCS-59Ncm-84oz-in-Nema-17-Stepper-Motor-2A-4-wire-1m-Cable-for-DIY-3D/32589488227.html?spm=2114.13010608.0.0.AlLwHr&amp;amp;detailNewVersion=&amp;amp;categoryId=100007155&quot;&gt;nema 17 stepper motors&lt;/a&gt; from a German warehouse with a torque of 6 kgcm for only €56,- and the best thing was they arrived that same week!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/axis_build.jpg&quot; alt=&quot;axis_build&quot; class=&quot;project-image-medium rounded&quot; /&gt;
&lt;img src=&quot;/images/y-carriage.jpg&quot; alt=&quot;Y carriage&quot; class=&quot;project-image-medium rounded&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now for attaching the threaded rods to the z-axis motors I needed couplers, which I did not have at hand and since ordering them from china takes 3 weeks I decided to make my own. It was a good way to test my new mini lathe :D&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/coupler_lathe.jpg&quot; alt=&quot;coupler_lathe&quot; class=&quot;project-image-medium rounded&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Thanks to my father in law I now have a simple tapping set as well, which I used to tap the holes with.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/stepper_motors.jpg&quot; alt=&quot;stepper_motors&quot; class=&quot;project-image-medium rounded&quot; /&gt;
&lt;img src=&quot;/images/mounted_carriage.jpg&quot; alt=&quot;mounted carriage&quot; class=&quot;project-image-medium rounded&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The next problem I faced was that I did not have any enstops that fitted the design, I did however have some optical endstops laying around so I used 1 of those.
Be careful when connecting them though my melzy board for some reason supplies 12V to the endstop V+ pins and I fried one endstop by hooking it up to that. So after a bit of pcb trace cutting and a bodge wire 5V was where it is supposed to be and….. I decided to only use 1 optical endstop :D because I found some tactile witches on an old mouse which where a bit smaller but by printing &lt;a href=&quot;http://www.thingiverse.com/thing:1879103&quot;&gt;an adapter&lt;/a&gt; they fit on the original design like a glove.
&lt;img src=&quot;/images/endstop_adapter.jpg&quot; alt=&quot;endstop_adapter&quot; class=&quot;project-image-medium rounded&quot; /&gt;&lt;/p&gt;

&lt;p&gt;After adding some wires I could finally test if the thing moves at all and what do you know it works and even homes!
So thats is my progress up to now, I still have some work to do with the hotend and cleaning up the wiring but I hope to post a first print soon!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/initial_wiring.jpg&quot; alt=&quot;initial wiring&quot; class=&quot;project-image-medium rounded&quot; /&gt;
&lt;img src=&quot;/images/net_entry.jpg&quot; alt=&quot;net entry&quot; class=&quot;project-image-medium rounded&quot; /&gt;&lt;/p&gt;
</description>
        <pubDate>Fri, 18 Nov 2016 18:50:00 +0000</pubDate>
        <link>https://erikkallen.nl/3d%20printing/2016/11/18/building-a-mendel90.html</link>
        <guid isPermaLink="true">https://erikkallen.nl/3d%20printing/2016/11/18/building-a-mendel90.html</guid>
        
        <category>3d printer</category>
        
        
        <category>3d printing</category>
        
      </item>
    
      <item>
        <title>Need some 3D printing done?</title>
        <description>&lt;p&gt;Yess, my very own 3D Printing hub is alive!
Check it out at 3D Hubs &lt;a href=&quot;https://www.3dhubs.com/groningen/hubs/erik&quot;&gt;Erik’s Hub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was finally happy with the quality of my 3D printer, su much so that I decided it is good enough to sell parts printed with it. So I went over to &lt;a href=&quot;http://www.3dhubs.com&quot;&gt;3D Hubs&lt;/a&gt; and created my own Hub.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.3dhubs.com/groningen/hubs/erik&quot; class=&quot;rounded&quot;&gt;&lt;img src=&quot;/uploads/Screen%20Shot%202016-10-21%20at%2021.12.12.png&quot; alt=&quot;My Hub&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This hub allows me to sell my 3D Print skills as a service to others. The setup process is fairly straight forward and easy to do, you simply add your printer, types of filament you own, the price you wish to receive for your services and you’re set. Well not just yet, because in order for 3D Hubs to build a trustworthy community they need to verify a few things first. So of course e-mail, but then address (yes they send you a post card :)) and of course the print quality.&lt;/p&gt;

&lt;p&gt;The last one is not that hard, basically you have to print a &lt;a href=&quot;http://www.thingiverse.com/thing:872746&quot;&gt;Marvin keychain&lt;/a&gt; at the highest resolution of your printer and take some pictures of that print.&lt;/p&gt;

&lt;p&gt;Once that is done someone will review your print and you are good to go!&lt;/p&gt;

&lt;p&gt;So to anyone interested&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.3dhubs.com/groningen/hubs/erik&quot; data-3dhubs-widget=&quot;button&quot; data-hub-id=&quot;166826&quot; data-type=&quot;orderWidget&quot; data-color=&quot;light&quot; data-size=&quot;normal&quot; data-text=&quot;Order a 3D Print&quot;&gt;Order a 3D Print&lt;/a&gt; &lt;script&gt;!function(a,b,c,d){var e,g=(a.getElementsByTagName(b)[0],/^http:/.test(a.location)?&quot;http&quot;:&quot;https&quot;);a.getElementById(d)||(e=a.createElement(b),e.id=d,e.src=g+&quot;://d3d4ig4df637nj.cloudfront.net/w/2.0.js&quot;,e.async=!0,a.body.appendChild(e))}(document,&quot;script&quot;,1,&quot;h3d-widgets-js&quot;);&lt;/script&gt;&lt;/p&gt;
</description>
        <pubDate>Fri, 21 Oct 2016 18:50:00 +0000</pubDate>
        <link>https://erikkallen.nl/3d%20printing/3d%20hubs/2016/10/21/need-some-3d-printing-done.html</link>
        <guid isPermaLink="true">https://erikkallen.nl/3d%20printing/3d%20hubs/2016/10/21/need-some-3d-printing-done.html</guid>
        
        <category>3d printer</category>
        
        
        <category>3d printing</category>
        
        <category>3d hubs</category>
        
      </item>
    
      <item>
        <title>iMac why u no work?</title>
        <description>&lt;p&gt;My iMac…. I am still a bit sad thinking about it, but never give up thats what I say.
After a bit of googling I found a service manual of my iMac, which stated that the LED’s on the logic board should give you an idea of whats going on. Since none of my LED’s lit up the guide stated that there might be something wrong with the power supply (that would make sense right?), so I give my Chinese friend Ali a quick look and 60 Euro’s and 1 week later I have a replacement power supply.&lt;/p&gt;

&lt;p&gt;First thing to do hook the thing up en plug everything in and… still no freeking LED that lights up. Bummer, it wasn’t the power supply.&lt;/p&gt;

&lt;p&gt;Moving on I came across &lt;a href=&quot;https://www.youtube.com/user/rossmanngroup&quot;&gt;Lois Rossmann&lt;/a&gt; on youtube when searching on how to repair my iMac and this dude rocks. He has this video where he &lt;a href=&quot;https://www.youtube.com/watch?v=D_Eiar3MPck&quot;&gt;replaces the SMC chip an a macbook logic board&lt;/a&gt;. Since my failure obviously had something to do with power failing and Lois clearly states that it is bullshit to replace the SMC and almost never works I decided to give it a shot :D&lt;/p&gt;

&lt;p&gt;I hit Ali up once more and 20 Euro and 3 weeks later I receive a piece of cut logic board with a SMC and a solder stencil.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/smc_and_stencil.jpg&quot; alt=&quot;SMC and Stencil&quot; class=&quot;project-image-medium rounded&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next is off with the old, reball the BGA (took me 4 tries but hey I had never done it before) and on with the new (or second hand in this case).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/reballed.jpg&quot; alt=&quot;Reballed SMC&quot; class=&quot;project-image-medium rounded&quot; /&gt;&lt;/p&gt;

&lt;p&gt;isn’t she pretty!&lt;/p&gt;

&lt;p&gt;So after resoldering (the BGA moved into place) and screwing the whole iMac together again (except the screen) I finally had a working LED!
So I press the on button aaaaaaand………nothing DAMN IT!&lt;/p&gt;

&lt;p&gt;Back to the drawing board I guess, My next plan of action will be buying the schematics and checking voltages I guess.&lt;/p&gt;

&lt;p&gt;TO BE CONTINUED…&lt;/p&gt;

&lt;p&gt;Oh by the way check out my new &lt;a href=&quot;/projects/3d_printer/3d_printer_upgrades.html&quot;&gt;printer upgrades&lt;/a&gt; while you are on this site.&lt;/p&gt;
</description>
        <pubDate>Fri, 19 Aug 2016 22:11:10 +0000</pubDate>
        <link>https://erikkallen.nl/imac/late/2012/smc/bga/reballing/2016/08/19/iMac-y-u-no-work.html</link>
        <guid isPermaLink="true">https://erikkallen.nl/imac/late/2012/smc/bga/reballing/2016/08/19/iMac-y-u-no-work.html</guid>
        
        
        <category>iMac</category>
        
        <category>late</category>
        
        <category>2012</category>
        
        <category>SMC</category>
        
        <category>BGA</category>
        
        <category>reballing</category>
        
      </item>
    
      <item>
        <title>3D Printer madness</title>
        <description>&lt;p&gt;So I decided to buy a 3D printer kit from &lt;a href=&quot;http://aliexpress.com&quot;&gt;Aliexpress&lt;/a&gt; which is a great site for cheap stuff btw.&lt;/p&gt;

&lt;p&gt;My budget was about 200 Euro so I had to choose wisely, making a long story short I selected an Acrylic version of the Prusa i3 with automatic leveling 2 free spools of filament (0.25KG) and a free SD Card the brand name is TronXY.&lt;/p&gt;

&lt;p&gt;The product was shipped timely and just short of 2 weeks later it finally came.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/3d_printer_box.jpg&quot; alt=&quot;3d printer box&quot; class=&quot;project-image-medium&quot; /&gt;&lt;/p&gt;

&lt;p&gt;So I started assembling (The building instruction could be found on the SD card) the thing and about 3 hours later I flipped the on switch.&lt;/p&gt;

&lt;p&gt;So after playing with the motors for a bit I decided to test the heated bed…….BAM sparks everywhere and my iMac was off……Damn.&lt;/p&gt;

&lt;p&gt;I still don’t know exactly what happened but something obviously was wrong, after a few days of damage assessment I found that my Melzi board (Printer main board), the LCD of the 3D printer and sadly my iMac had died, the Aliexpress seller was kind enough to send me a replacement Melzi board and I ordered a replacement LCD for about 3 eu myself.&lt;/p&gt;

&lt;p&gt;So if you ask me was it worth it? Well, I am an engineer and in my line of duty shit happens and if shit happens we learn from it, so yes I think it was worth it, my printer is happily printing my mac is still broken, but I have gained a lot of knowledge about my iMac, the Melzi board and 3D printing in general.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/current_printer_setup.jpg&quot; alt=&quot;3d printer setup&quot; class=&quot;project-image-medium&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Oh and I managed to fix the Melzi board that was broken, by replacing the FTDI and Atmega1284 so now I have a spare one yeay!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/printed_part1.jpg&quot; alt=&quot;3d printed part&quot; class=&quot;project-image-medium&quot; /&gt;&lt;/p&gt;
</description>
        <pubDate>Wed, 13 Jul 2016 22:11:11 +0000</pubDate>
        <link>https://erikkallen.nl/3d/printer/prusa/i3/tronxy/2016/07/13/3D-printer-madness.html</link>
        <guid isPermaLink="true">https://erikkallen.nl/3d/printer/prusa/i3/tronxy/2016/07/13/3D-printer-madness.html</guid>
        
        
        <category>3D</category>
        
        <category>printer</category>
        
        <category>Prusa</category>
        
        <category>i3</category>
        
        <category>Tronxy</category>
        
      </item>
    
      <item>
        <title>Mini kitchen with LED cooking top</title>
        <description>&lt;p&gt;Recently I constructed a wooden play kitchen for my daughter.
The kitchen came as a self build package.&lt;/p&gt;

&lt;p&gt;After quite a bit of sanding and a few extra screws I had the basic structure ready&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/basic_structure.jpg&quot; alt=&quot;Building basic structure&quot; class=&quot;rounded project-image-medium&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Of course beeing an engineer this is when the fun stuff started, so I decided to make a few changes to the plan.
First I bought some 0804 Red SMD led’s off ebay, next I went to the local plastic plate supplier and picked up a tinted plate of 30 x 40 x 0.5 cm, and finally got some long shaft 10k potentiometers. I still had an Arduino mini laying around and some proto PCB.&lt;/p&gt;

&lt;p&gt;The schematics for the board can be found &lt;a href=&quot;/images/keuken_ailynn_schema.pdf&quot;&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is what it kind of looks like on a breadboard&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keuken_ailynn_bb.png&quot; alt=&quot;Breadboard view&quot; class=&quot;project-image-medium rounded&quot; /&gt;&lt;/p&gt;

&lt;p&gt;So I soldered one hot plate up to see if it has the desired effect and luckily it was to my liking.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/led_test.jpg&quot; alt=&quot;LED Test&quot; class=&quot;rounded project-image-medium&quot; /&gt;&lt;/p&gt;

&lt;p&gt;What remained was to do the other 3 plates and the front panel controls.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/front_panel_controls.jpg&quot; alt=&quot;Front panel controls&quot; class=&quot;rounded project-image-medium&quot; /&gt;&lt;/p&gt;

&lt;p&gt;All that was left to do was mount the assembly and behold! we have a working stove.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/play_kitchen_led.jpg&quot; alt=&quot;Play kitchen&quot; class=&quot;rounded&quot; /&gt;&lt;/p&gt;

&lt;p&gt;To save power I run the Arduino on a 1 MHz clock instead of the default of 8 MHz&lt;/p&gt;

&lt;p&gt;The Arduino code used is the following:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-c&quot; data-lang=&quot;c&quot;&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;knop1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;A3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;knop2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;A1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;knop3&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;A5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;knop4&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;A2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;oven&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;A0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;plaat1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;plaat2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;plaat3&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;plaat4&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;oven_led&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pot_power&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;


&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;c1&quot;&gt;// declare the ledPin as an OUTPUT:&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plaat1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OUTPUT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plaat2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OUTPUT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plaat3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OUTPUT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plaat4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OUTPUT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;oven_led&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OUTPUT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

  &lt;span class=&quot;n&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pot_power&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OUTPUT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

  &lt;span class=&quot;c1&quot;&gt;//Serial.begin(57600);&lt;/span&gt;

&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;loop&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pot_power&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;HIGH&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;c1&quot;&gt;// read the value from the sensor:&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;knop1Value&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;analogRead&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;knop1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;knop2Value&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;analogRead&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;knop2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;knop3Value&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;analogRead&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;knop3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;knop4Value&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;analogRead&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;knop4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

  &lt;span class=&quot;n&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pot_power&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;LOW&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

  &lt;span class=&quot;c1&quot;&gt;//Serial.println(knop2Value);&lt;/span&gt;

  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;knop1Out&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;knop1Value&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2023&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;knop2Out&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;knop2Value&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2023&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;knop3Out&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;knop3Value&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2023&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;knop4Out&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;knop4Value&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2023&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

  &lt;span class=&quot;n&quot;&gt;analogWrite&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plaat1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;knop1Out&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;analogWrite&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plaat2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;knop2Out&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;analogWrite&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plaat3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;knop3Out&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;analogWrite&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plaat4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;knop4Out&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;



  &lt;span class=&quot;n&quot;&gt;delay&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

</description>
        <pubDate>Thu, 28 Apr 2016 23:11:11 +0000</pubDate>
        <link>https://erikkallen.nl/kitchen/led/pwm/2016/04/28/led-coocking-plates.html</link>
        <guid isPermaLink="true">https://erikkallen.nl/kitchen/led/pwm/2016/04/28/led-coocking-plates.html</guid>
        
        
        <category>kitchen</category>
        
        <category>led</category>
        
        <category>pwm</category>
        
      </item>
    
      <item>
        <title>iMac hdd replacement</title>
        <description>&lt;p&gt;Last week I replaced my terribly slow harddisk with a brand new Samsung EVO 850 500GB SSD.
Since I own an iMac this is not a straight forward as one might think.&lt;/p&gt;

&lt;p&gt;I have been wanting to replace the harddisk since I baught it because at the time I thought it was going to be simple and was not prepaired to pay the extra 500 euros for the flash drive apple offered as an option.
Turned out at that point there was no easy way to replace the harddrive since the tools and adhesive strips where not readily available.&lt;/p&gt;

&lt;p&gt;Well a couple of years later and that all changes so. First thing I had to do was buy a set of replacement adhesive strips from iFixit for closing up the iMac once the process is finished.&lt;/p&gt;

&lt;p&gt;The kind people form iFixit also included a tool for breaking the old adhesive without damaging the iMac.
So following the guide I removed the screen by cutting away the adhesive usign th supplied tool, then got aout a set of old bank/discount cards and used them to pry the remaining adhesive away, and finally I could open the iMac.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/opened_imac.jpg&quot; alt=&quot;opened imac&quot; class=&quot;rounded&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next I had to remove the left speaker (right on the image above) with two torx screws pop out the old hdd, and in with the new.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: you need to buy a 2.5 to 3.5inch bracket converter and if possible the big kind because mine only came half way which I solved with some elastic bands&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Anyway after removing the remains of the old adhesive strips and sticking on the new I tested if everything worked and closed her up again.&lt;/p&gt;

&lt;p&gt;I now have a blazing fast pc again :smiley:&lt;/p&gt;
</description>
        <pubDate>Thu, 05 Nov 2015 13:18:11 +0000</pubDate>
        <link>https://erikkallen.nl/mac/ssh/hdd/ifixit/2015/11/05/replacing-my-imac-hdd.html</link>
        <guid isPermaLink="true">https://erikkallen.nl/mac/ssh/hdd/ifixit/2015/11/05/replacing-my-imac-hdd.html</guid>
        
        
        <category>mac</category>
        
        <category>ssh</category>
        
        <category>hdd</category>
        
        <category>ifixit</category>
        
      </item>
    
  </channel>
</rss>
