
Hands on with the First Open Source Microcontroller - 2bluesc
http://hackaday.com/2017/01/05/hands-on-with-the-first-open-source-microcontroller/
======
cr0sh
You know - as much as I like the Arduino, I have always sincerely wished the
Massimo hadn't done an 11th hour rush job on parts placement, leading to the
0.05 inch foul-up on the headers.

That one, oh-so-minor difference is a thorn in many a uC experimenter's side,
because it means that standard 0.1" spacing of pins to make custom shields is
impossible without special thru-pin headers, bending pins, third-party thru-
hold blank shields, or just leaving one or the other header off entirely
(which isn't a real solution if you need one or more pins on both headers).

We could have seen a ton of custom 0.1" proto and strip-board shield designs,
but instead we are thwarted by this one simple mistake caused by being in a
hurry due to a deadline.

Now - we are stuck with it - likely forever, because each new iteration of
microcontroller hardware almost guarantees that there will be support for
"Arduino Shields" because so many are out there. Yes, I know there are
experimenters "blank" shields - but they are rarely as inexpensive as a
standard 0.1" PTH PCB - and almost all of them are the size of a single
shield, none larger.

It would have been nice, for instance, to be able to put in extra-long pin
headers on an Arduino, then plug that on top of another larger PCB with
standard hole spacing (whether soldered in-place or via headers too). Instead,
the only option is to "build" the Arduino onto such a custom board (ie,
program an ATMega328P and plop it on the board with
resonator/crystal/power/etc).

/sigh/ \- oh what could have been...!

~~~
Ductapemaster
While I agree that it sucks the arduono headers aren't spaced nicely for
standard prototyping, I think this issue has been largely solved by the more
recent versions like the Arduino Mini. I actually much prefer that form factor
to the larger original one, as it fits in smaller cases, has less "fluff"
(silkscreen, FTDI, etc) that costs more and isn't always used in development,
and fits in a small space on a standard Porto board!

Plus there are many versions out there within the arduino ecosystem, including
larger pin count ones, faster processors, and even ones that use non-Atmel
chips like the Teensy.

There was a problem, and It's been solved.

~~~
cr0sh
> There was a problem, and It's been solved.

While I agree that the ecosystem has provided solutions, I would have to
respectfully disagree with your conclusions.

Had the problem been solved, we would not see new SoC and microcontroller
platforms (heck, I think there's even an FPGA dev platform out there too) that
continue to supply properly-spaced headers for this issue.

Doing so continues to perpetuate the problem, not solve it, in my opinion. A
real solution would be to fix the issue (ideally, by the Arduino team), and
there being a push to adopt the new layout/spacing. Perhaps an adaptor shield
could be created, too, for legacy support.

Honestly, this should have happened immediately after it was found to be an
issue (which likely would have been seen a long time ago with the early
ATMega8 RS-232 boards made for the educational classes or whatever Massimo
made the boards for originally); it should have been corrected there and then,
with the next iteration.

But, history is history, and there's nothing we can do but lament, learn, and
move onward...

------
fra
I have one of the HiFive boards from the first batch they shipped a week or so
ago.

It works as advertised, the PCB is beautiful, and it's significantly less
proprietary than any board I've used before. All in all, well done.

That being said, I'm puzzled by the low amount of SRAM. I'd expect a chip that
runs at a couple 100's of MHz to come with 64-128KiB.

~~~
phkahler
And I'd expect a micro controller to have on-board flash, not some SPI
nonsense that has to rely on the 16K cache for performance.

But AFAICT flash memory is an area full of patents and secret sauce. I'm not
sure what's involved but it would be nice if some open flash designs become
available soon.

~~~
ajross
It's open source logic design, not semiconductor process. The SRAM for memory
and caches is almost certainly fab-supplied too, as are the specific gate
layouts, PLLs, etc... All that stuff is going to be secret sauce NDA'd IP
specific to the process they were using (FWIW: does anyone know what/whose
process that is?). Flash isn't fundamentally any different.

Presumably they just didn't want to devote engineering time to something
nonessential for the first project.

~~~
baobrien
The FE310-G000 is TSMC CL018G 180nm

~~~
ajross
Cool thanks. In which case I wonder if flash is even available on that
process. Were 180nm parts doing mixed flash and logic ever?

------
kevin_thibedeau
The Leon SPARC clone has been open source for over a decade.

~~~
nickpsecurity
With test boards, too. They cost an arm and a leg but just saying it was put
into production & even available. Same, proven I.P. w/ GPL license could've
been printed on 350nm or 500nm in a shuttle run to get a cheap
microcontroller.

On side of riskier ones, there was Plasma MIPS and Amber ARM that might have
been turned into ASIC's. Less risky, but less supported, OpenRISC was turned
into one. RISC-V is best contender right now far as most openness and industry
support. Great there's boards with some of them. Leon is still ahead in terms
of features & performance on something you can actually buy. I still think
someone should try converting the Leon3 + libraries to a RISC-V to get its
I.P. as a starter pack.

------
rootlocus
> I will simply link to the Nirvana fallacy and ask them to point me to a
> microcontroller that is more Free and Open Source.

What? To me this reads like: "Here's a pink unicorn! If you argue it's a brown
horse with a cardboard corn I dare you to show me a horse that is more
unicorn!". Is it open source or not?

~~~
georgemcbay
It is an open system that includes a closed component (FTDI FT2232HL chip).

Open Source (software) equivalent would be something like a Linux distribution
that is generally fully open source but relies on a binary blob driver for the
videocard... Is it still "open source"? Yes, mostly, but not 100% fully.

~~~
31h
That's pretty cool if the only closed source part is a USB-UART IC. Not much
secret sauce there; I bet if you wanted to be pure you could implement that
function on a second FE310 with software bit-banging.

------
skibz
> RISC architecture is gonna change everything.

;D

~~~
cellularmitosis
Yeah, I was confused by that. Isn't AVR already RISC? It seems the "game
changing" element here is its openness, not its architecture.

~~~
wanderingjew
Author of the original piece here. You need to watch Hackers.

~~~
wallacoloo
I think the point is that "RISC" should have been "RISC-V". "RISC" = "Reduced
Instruction Set Computer", which encompasses _many_ architectures. It's more
of an _approach_ to designing an architecture, and encompasses things like ARM
ISAs, etc, whereas RISC-V is a specific architecture.

~~~
rvense
The line "RISC architecture is going to change everything" is a quote from a
film (Hackers, 1995) that you're expected to know by heart if you want to be
in this treehouse, or something.

------
31h
Is there any place I can buy an unmounted FE310? I see the link for the
HiFive1 development board, but no way to buy individual chips.

~~~
simcop2387
They don't seem to have made it to any of the common distributors that I've
checked. My guess is that they haven't gotten the quantities yet where they
can do that. The HiFive1 is only a few months out on the market and the only
thing using the chip they had made. It seems to have done well (~1k of them
sold in the crowdfunding it looked like). So I hope we'll see them start to
show up soon, even if you can't get them in massive quantities yet.

~~~
TD-Linux
More like one week on the market. The first boards shipped the 23rd of
December.

------
billsmithaustin
The VAX was not a mainframe.

~~~
geomark
Orly?
[https://en.wikipedia.org/wiki/VAX_9000](https://en.wikipedia.org/wiki/VAX_9000)

