Flying Bear P902: Fixing extruder dust problem

I recently got myself a new toy, so to speak. It’s a brand new Flying Bear P902 3d printer. For it’s price (~300$) it’s an awesome machine and is way better made than my old 2nd gen Solidoodle. So I’ll be posting a series of hacks that I had to do to work comfortably with it and this is the first post in series, starting with this one.

Continue reading “Flying Bear P902: Fixing extruder dust problem”

Social networks integration test

It’s been a while since I’ve posted anything in my blog so many of you might’ve thought that I’ve abandoned it. Well, on the contrary, I decided to put a little more life in it, so I will be posting way more tech tips here. And, since apparently there’s no other way, I’ve set up social integration for this blog. For now – only twitter and vkontakte. This is basically a test post to see if everything works as expected.

Do not expect me to answer any friend request/private message/retweet whatsoever. If you really want to contact me – email is still the best option. Why? Because it took 5 minutes since registration on vk for first spammers to start doing their dirty work: .

Continue reading “Social networks integration test”

3D-printed arrow nocks for easton carbon one arrows

Okay, time to introduce the rare reader to a brand new section of this blog: “archery”. Something that you’d never expect, right? And this will be the very first post covering this topic. Everyone who starts archery as a hobby soon has a terrible itch to cut down the costs on it… somehow. Since there aren’t many archers out there archery stuff is quite pricy, especially if you want to to compete on at least amateur level.

img_20160828_112710.jpg

Continue reading “3D-printed arrow nocks for easton carbon one arrows”

Weird Trickery: Compiling verilog VPI extension and unit-testing it using cmake/ctest

A few months ago I needed to write a VPI extension for verilog HDL and (just as I would normally do) I needed a proper buildsystem for that stuff. Unfortunately in terms of build/debug/test tools the folks doing ASIC are living… Well, not in the stone age, but in their own small isolated world and keep reinventing the wheel over and over again. OpenSource iverilog simulator didn’t go far away from the proprietary counterparts that tend to ditch commonly used in linux environments best practices.
Okay, now let’s stop bitching about the way things are and decide how to deal with that kind of stuff. In this note I’ll try to describe how to make a CMakeLists.txt for compiling a VPI extension and unit-testing it with ctest.

Continue reading “Weird Trickery: Compiling verilog VPI extension and unit-testing it using cmake/ctest”

Tablet guts necromancered into a fancy SBC

It’s been a hell of a summer with loads of work at my dull dayjob so that I’ve almost forgotten about everything including this very blog. However once the hell cooled down a little bit I found myself with a few spare days and my usual itch to tinker for a little bit with something. It happened I also needed another linux single-board computer to do some dull geeky stuff. Instead of ordering one from aliexpress once again I dived into the junk and found this little dead piece of hardware:

IMG_2598

Continue reading “Tablet guts necromancered into a fancy SBC”

SkyForge: Creating Debian root filesystems in a Dockerfile-style

For a handful of projects work and hobby alike I use Debian. However, when you deal with embedded systems (e.g. ARM SoC) you normally don’t have the installer CD or even the disk drive. You end up creating a filesystem, compiling the kernel. Well, pretty much the usual way it goes.

The process can be somehow lengthy if done by hand using debootstrap and multistrap and especially mind-blowing if you are a total newbie. (Alas, I’m already no n00b here. Getting older, heh)
The worst part of it is that you not only need to create a root filesystem for debian, but set it up in a more or less sane way, e.g. set the default password, ssh keys… The usual thing.

In the Big Enterprise ™ we can see tools like vagrant creating us a base box in the VM and chef or puppet actually setting the system up. While we can use, say chef or chef-solo on an armhf board (why not?) we still have to make sure we have some base image it will set things up on, right?

Continue reading “SkyForge: Creating Debian root filesystems in a Dockerfile-style”

CMake + atom + .clang_complete

A few months ago I moved from emacs to atom that looked like a more modern replacement. Most important for me – it had awesome CMake code completion that was very good. I soon made use of automplete and lint with clang. Both were good, but needed a .clang_autocomplete in your project root to work properly. Apparently if your project file get a bunch of compiler flags from the build-system managing this file by hand is not something I wanted, so I ended up with this snipplet in CMake that gets the job done:

message(STATUS "Generarating ${CMAKE_SOURCE_DIR}/.clang_complete")
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
file(WRITE ${CMAKE_SOURCE_DIR}/.clang_complete "")
foreach(dir ${dirs})
  file(APPEND ${CMAKE_SOURCE_DIR}/.clang_complete "-I${dir}\n")
endforeach()
string(REPLACE "'" "" CMAKE_C_FLAGS_SPLIT ${CMAKE_C_FLAGS})
string(REPLACE " " ";" CMAKE_C_FLAGS_SPLIT ${CMAKE_C_FLAGS_SPLIT})
foreach(flag ${CMAKE_C_FLAGS_SPLIT})
  file(APPEND ${CMAKE_SOURCE_DIR}/.clang_complete "${flag}\n")
endforeach()

If you use C++ in your project you need to use the CMAKE_CXX_FLAGS variable. This code also has the obvious limitation: If you pass via -D directive options that have spaces – this won’t quite work (e.g. -DRELEASE_CODENAME=”Black Burned Cookies”)