For the better part of a year, this blog has failed to provide you with
a lot of updates what I've been doing. This is somewhat relate to a
shift from doing freelance work on mainline / FOSS projects like the
Linux kernel.
In April 2011, Holger and I started a new company here in Berlin (sysmocom - systems for mobile communications
GmbH). This company, among other things, attempts to provide
products and services surrounding the various mobile communications
related FOSS projects, particularly OpenBSC, OsmoSGSN, OpenGGSN, but
also OsmocomBB, and now also OsmoBTS + OsmoPCU, two integral components
of our own BTS product called sysmoBTS.
Aside from the usual software development, this entails a variety of
other tasks, technical and non-technical. First of all, I did more
electrical engineering than I did in the years since Openmoko. And even
there, I was only leading the hardware architecture, and didn't actually
have to capture schematics or route PCBs myself. So now there are some
general-purpose and some customer-specific circuits that had to be done.
I really enjoy that work, sometimes even more than software development.
Particularly the early/initial design phase can be quite exciting.
Selecting components, figuring out how to interconnect them, whether you
can fit all of them together in the given amount of GPIOs and other
resource of your main CPU, etc. But then even the hand-soldering the
first couple of boards is fun, too.
Of all the things I so far had least exposure to is casing and
mechanical issues. Luckily we have a contractor working on that for us,
but still there are all kinds of issues that can go wrong, where
unpopulated PCB footprints can suddenly make contact with a case, or
all kinds of issues related to manufacturing tolerances. Another topic
is packaging. After all, you want the products to end up in the hands
of the customer in a neat, proper and form-fitting package.
On the other hand, there is a lot of administrative work. Sourcing
components can sometimes be a PITA, particularly if even distributors
like Digikey conspire against you and don't even carry those low
quantities of a component that we need for our 100-board low quantity
runs. EMC and other measurements for CE approval are a fun topic, too.
I've never been involved personally in those, and it has been an
interesting venture. Luckily, at least for sysmoBTS, things are looking
quite promising now. Customs paperwork, Import/Export related
buerocracy (both in Germany as well as other countries) always have new
surprises, despite me having experience in dealing with customs for
more than 10 years now.
Also significant amount of time is spent on evaluating suppliers and
their products, e.g. items like SIM/USIM cards, cavity duplexers,
antennas, cables, adapters, power amplifiers and other RF related
accessories for our products.
The thing that really caught me off-guard are the German laws on
inventory accounting. Basically there is no threshold for low-quantity
goods, so as a company on capital (GmbH/AG) you have to account for each
and every fscking SMD resistor or capacitor. And then you don't only
have to count all those parts, but also put a value at them. Depending
on the type of item, you have to use either the purchasing price, or the
current market price if you were to buy it again, or the price you
expect to sell the item for. Furthermore, the trade law requirements on
inventory accounting are different than the tax laws, not often with
contradictory aims ;)
In the end it seems the best possible strategy is to put a lot of the
low-value inventory into the garbage bin before the end of the financial
year, as the value of the product (e.g. 130 SMD resistors in 0402 worth
fractions of cents) is so much lower than the cost of counting it. Now
that's of course an environmental sin, especially if you consider lots
and lots of small and medium-sized companies ending up at that
conclusion :(
So all in all, this should give you somewhat of an explanation why there
might have been less activity on this blog about exciting technical
things. On the one hand, they might relate to customer related projects
which are of confidential nature. On the other hand, they might simply
be boring things like dealing with transport damage of cavity duplexers
from china, or with FedEx billing customs/import fees to the wrong
address...
Overall I still have the feeling that I was writing a decent amount of
code in 2012 - although there can never be enough :) Most of it was
probably either related to OsmoBTS, OpenBSC/OsmoNITB or the various
Erlang SS7/TCAP/MAP related projects. The list of more
community-oriented projects with long TODO lists is growing, though.
I'd like to work on SIMtrace MITM / card emulation support, the
CC32RS512 based smartcard OS, libosmosim (there's a first branch in
libosmocore.git). Let's hope I can find a bit more time for that kind
of stuff this year. You should never give up hope, they say ;)