Hi, Habr!
Recently, with a respected
dzhe, we thought about which title could be considered ideal for Habr - and you already understood what conclusion you came to. True, unfortunately, in fact, we do not have a cat, but I promise to slightly open the Arduino below.

')
However, we have other global news:
Black Swift did not just come out on Kickstarter, but in the first 6 days it almost collected the necessary amount.
This is not a lot and not a little - there were projects that were collected 100% in a day or an hour, there were projects that were dying, barely reaching 50% in the entire term. We got into an interesting situation - on the one hand, in the professional communities Black Swift caused mostly positive responses, on the other hand, the media didn’t get interested in more or less general media - some other microcomputer, there are few of them - therefore some massive we did not have a surge in the first day or two.
Here, of course, it was worth a little refinement before launching: to create some meaningless, but understandable and giving beautiful pictures and headings an expansion card, which ordinary media would bite. Well, for example, "the smallest router in the world" or "100% compatibility with Arduino". Pointless - because if you need a router, it is easier to buy ready-made, and if you really are worried about compatibility with Arduino with a 400-MHz processor and OpenWRT, that is, Yun. But, as practice shows, all those journalists who traditionally speak disdainfully about marketers are caught very well by such uncomplicated marketing gimmicks.
However, I will write more about working with Kickstarter later, when there will be an official “100%” information channel, but for now - about Arduin (actually not).
I have already mentioned a couple of times that together with Black Swift it is convenient to use some cheap and simple microcontroller - AVR, PIC, STM32 - to implement hardware PWM, ADC and honest real time on it. Obviously, one inconvenience arises - the controller needs to be programmed separately, and if we aim at people who are not necessarily seriously knowledgeable about microcontroller topics, then this becomes a problem.
Fortunately, under Linux, there is the avrdude package, which can do one very good thing - to program the AVR, which is connected to the usual input / output ports (GPIO) of a Linux device. OpenWRT - the same Linux, side view, so the assembly under it avrdude is, in general, a matter of technology and one small patch.
Test board:

It is equipped with ATtiny24A, 8 MHz quartz, power piping, connectors for Black Swift and a pair of IDC 2x5 connectors. No specific goal of just such a form factor was not pursued.

With Black Swift installed. One of the things for which I like it is the opportunity to put it on the connectors, and all sorts of additional components to place under it; even above quartz (normal HC-49S) there is a bit of free space.
The scheme is extremely simple: the SPI interface of the plugin connects to Black Swift, its RESET is also connected to one of the GPIOs and is simultaneously pulled to the power supply by a resistor. Eats tinka for simplicity from 3.3 V, issued by the Black Swift.
The scheme in PDF , the
scheme and the board for Diptrace and in gerberas.
This is obviously half the job. Now we take a fresh avrdude-6.1, slightly rule it so that it meets under OpenWRT, add support for hardware SPI by
Kevin Katsner for the future , write a Makefile and
compile it into a ready-made package.
Patches and Makefile
can be found here , and the ready package for OpenWRT 14.07 is
here . It is not designed for Black Swift in any special way (in particular, I did not rewrite the linuxgpio driver from slow sysfs to fast direct access to GPIO), so it will be easy to work on other motherboards.
We try (avrdude -p t24 -c linuxgpio -t):

The chip signature is correct, everything works. Flash AVR to flash LED:

We blink the LED, just like on the Arduino.
Obviously, it is easy to organize data exchange with the AVR through the same SPI through which we requested it - in one direction to send commands and parameters, in response to receive some data. That is, we have fully integrated the AVR with Black Swift, and in such a way that we don’t even need an external programmer - Black Swift can configure and flash a virgin chip.
Of course, Black Swift can be used as a programmer itself - with access via Wi-Fi and the possibility of autonomous power supply. I even see how to bring it to the finished product: add a [switchable] translator of levels 3.3 / 5 V and make a web interface with a calculator of fusions (there are such on JS) and fill the HEX firmware file. I even just had a suspicion that I would do it for myself.
If you wish, I suspect you can even compile gcc-avr for it, so that the firmware can be assembled directly on it, but somehow I do not see any practical need for this.
Well, about Arduino: in principle, nothing prevents you from writing them to AVR HEX files obtained from the Arduino IDE.
Upd. Jae demands to refute dirty slander and report that he has a cat.