Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
some kinda jackal
Feb 25, 2003

 
 
I haven't really dug too deep into the unit but I hope they have plans for some sort of antenna jack on the production model. If not, yeah... ehhh..

Adbot
ADBOT LOVES YOU

armorer
Aug 6, 2012

I like metal.

Martytoof posted:

Probably a really frowned-upon opinion, but I'm starting to think everything I need to do I can just do on an arduino because I'm way too impatient to do low level stuff these days.

I'm actually kind of looking forward to this thing: http://www.sparkdevices.com/. Cortex M3 Arduino + WiFi onboard. Use Wiring or use the JTAG headers to write low level stuff to the chip.

If you keep in mind that you can get an atmega328p, put optiboot on it, and build a super simple circuit around it to have a $5 "arduino uno", then I say go for it. The strength at that point is entirely in the abundance of pre-written libraries though.

That said, I am a software developer who started mucking around with this stuff in his free time to make fun toys. So I am by no means an expert. I am trying to learn the lower level stuff mostly because I find it interesting, but if I need to make something quickly I default to slapping something together with arduino libraries.

Victor
Jun 18, 2004

Victor posted:

Ok this seems very sales-pitchy so far. First, I'm excited about providing a cheap IMU that has a sufficiently beefy processor to do high quality state estimation with plenty of cycles to spare. Second, I'm excited about fostering a community around the STM32F4xx processors, analogous to Arduino but appealing to people willing to write more rigorous code and get the advantages that come with more powerful libraries. Arduino, for example, doesn't have an asynchronous I2C library and it only recently added asynchronous UART. Third, I look forward to helping write open-source multicopter code under a non-GPL license (so far we've settled on MIT Expat) that can assume a hefty microcontroller, and benefit from a few years' experience with writing multicopter code. I don't want to come down too hard on what's out there, but let's just say that the code has a long history of evolving from something simple; cruft inevitably accumulates, especially when nobody is being paid full-time to work on the code base. Finally, I look forward to using C++11 in an embedded context, from the libraries on up. Certain bugs just won't be possible, and one gets benefits like lambda functions.
Is anyone here actually interested in any of the above? There has been a bit of Arduino-dissing in this thread, but do you guys have a sense of how much people run into its limitations? I'm primarily talking about A) limitation of 16MHz, 8-bit, no FPU; B) libraries that are designed specifically for noobs, and thus don't expose the more powerful bits (like easy access to UART interrupts).

I don't want to call Arduino 'bad', because it has clearly fostered an huge community by making simple embedded development quite easy. I was amused to find out that one of my wife's coworkers is using an Arduino in their lab to keep a laser from bleaching out their samples by only activating it when the microscope camera is on. When it comes to more complex things (e.g. generating decent quality sound), Arduino just isn't capable. You aren't going to be running too many FFTs on an AVR, and they aren't going to be floats if you want even 100Hz. The code quality of the Arduino community also isn't that great; most if not all of us know how hard it is to foster a high quality and competent community.

What I don't know is how to effectively communicate the above. :-/

some kinda jackal
Feb 25, 2003

 
 
I'm curious how the adoption of something like the Arduino Due with an 80-something MHz Cortex M3 affects the above. Still no FPU AFAIK, but more cycles to spare.

As an outsider to the entire industry I think part of your problem might be that there's been something of an embarrassment of riches when it comes to niche microcontroller boards lately. There's arduino and there's "everyone's kickstarter" where it's hard to gain purchase even if you have an amazing product. You're still one of dozens of boards vying for people who need something more powerful than a base Arduino UNO. I don't know enough about larger projects to comment on your particular offering and I wish you luck, but it just seems like it's an uphill battle for upstart kickstarters :(

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip
IMO licensing and curation are very difficult issues for you given your stated goals, with curation being the greater of the two (think of the issues CPAN and similar have). I would also expect that you'd have a problem wherein people who are competent enough to write correct DSP building blocks also know about DSP chips and use them preferentially where speed is needed.

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip

Martytoof posted:

I'm curious how the adoption of something like the Arduino Due with an 80-something MHz Cortex M3 affects the above. Still no FPU AFAIK, but more cycles to spare.

Yep, none of the M3 variants have an FPU

JawnV6
Jul 4, 2004

So hot ...

Victor posted:

When it comes to more complex things (e.g. generating decent quality sound), Arduino just isn't capable. You aren't going to be running too many FFTs on an AVR, and they aren't going to be floats if you want even 100Hz. The code quality of the Arduino community also isn't that great; most if not all of us know how hard it is to foster a high quality and competent community.

Victor posted:

why must you become a microcontroller whiz and be able to design PCBs in your sleep?

Victor
Jun 18, 2004
Are you saying that there is nothing between using Arduino and becoming a microcontroller whiz? Let's forget the whole need to be able to design PCBs, which is definitely not something most people want (or need) to do.

JawnV6
Jul 4, 2004

So hot ...
There's a whole spectrum. You're alternating between hating above and hating below. I'm curious how you found yourself on the precise defensible point.

the wizards beard
Apr 15, 2007
Reppin

4 LIFE 4 REAL

Victor posted:

The startup I work for recently made a Kickstarter project called 'AshimaCore'

I think I read about this recently, weren't you ripped off on IndieGoGo?

Victor
Jun 18, 2004

JawnV6 posted:

There's a whole spectrum. You're alternating between hating above and hating below. I'm curious how you found yourself on the precise defensible point.
Was I so strong as to constitute 'hating'? Would you flesh out what you're saying a bit more? I'm not understanding how something in between is anything but a good thing. Is there some dogma I'm ignoring, like "If you're going to do more than get your feet wet, you must dive in the deep end."?

the wizards beard posted:

I think I read about this recently, weren't you ripped off on IndieGoGo?
Yep. I don't know what was up with that, but it got taken down pretty quickly.

Arcsech
Aug 5, 2008
Texas Instruments' chips that are easily available to hobbyists, the Tiva C Series (formerly Stellaris LM4F) and MSP430 are pretty nice pieces of hardware.

Code Composer Studio is a terrible piece of poo poo.

Captain Capacitor
Jan 21, 2008

The code you say?

Victor posted:

Was I so strong as to constitute 'hating'? Would you flesh out what you're saying a bit more? I'm not understanding how something in between is anything but a good thing. Is there some dogma I'm ignoring, like "If you're going to do more than get your feet wet, you must dive in the deep end."?

Yep. I don't know what was up with that, but it got taken down pretty quickly.

As an amateur who's only been immersed in this world since December, your Kickstarter seems too railroaded to me. It's giving me the feeling that all of the things I've learned with my Arduino boards will not be applicable (even though I know this isn't entirely true). It's also jamming avionics down my throat. Your product feels as distant to me as FPGA or making my own ASIC.

Sorry :( Just an amateur's perspective.

Victor
Jun 18, 2004
Hey, no reason to apologize! Yesterday, I talked to my boss about the whole idea behind Arduino, and to what extent that made Spark Core so successful. (almost at $200k, with $10k target) To what extent do you simply want to see that it's about as easy to get up-and-going with AshimaCore as it is with an Arduino?

I'm a little confused at how you see it 'shoving avionics down your throat'; could you explain how you got that message? It is designed to be an avionics package, but all that really means is that it has a decently powerful processor, µSD, two sensors, and multiple wireless options. If you were to try and get all these separately, you'd be paying well over $129, you'd have to hook things up yourself, and you probably wouldn't have a high-speed SDIO hookup. If, however, you don't want at least the accelerometer and gyro, I don't think this is the board for you anyway.

Slanderer
May 6, 2007
The arduino libraries somehow manage to be both devoid of features and entirely unoptimized. (Also their I2C libraries will always be poo poo, forever). Their build process is totally hosed, too.

Just sayin.

Bad Munki
Nov 4, 2008

We're all mad here.


Slanderer posted:

The arduino libraries somehow manage to be both devoid of features and entirely unoptimized. (Also their I2C libraries will always be poo poo, forever). Their build process is totally hosed, too.

Just sayin.

And yet the package as a whole is incredibly accessible to even the greenest of experimenters. There's a ton of value in that.

Victor
Jun 18, 2004

Slanderer posted:

The arduino libraries somehow manage to be both devoid of features and entirely unoptimized. (Also their I2C libraries will always be poo poo, forever). Their build process is totally hosed, too.

Just sayin.
There are some pretty hilarious changelogs in the Arduino libraries. For example, they tried providing users with ISRs for UARTs, and then took that feature away and implemented in a ghetto manner. Probably because users abused the ISRs and caused the many problems one can get from misbehaving ISRs.

Bad Munki is right, though. I really hate the 'worse is better' dogma, but it seems like people are often unable to make high-quality products that actually get delivered and have nice learning curves.

How does one reach out to people who want devices that have features and are optimized? Are there any good examples of this out there? If so, what does the learning curve look like?

Bad Munki
Nov 4, 2008

We're all mad here.


If you accept the Arduino as a sort of lowest-common-denominator solution, you'll find it's really not that aggravating at all.

JawnV6
Jul 4, 2004

So hot ...

Victor posted:

How does one reach out to people who want devices that have features and are optimized? Are there any good examples of this out there? If so, what does the learning curve look like?
My learning curve was a decade of computer engineering and I can pick up on the professional grade solutions really easily. When someone dropped an Xplained Pro in my lap I had it up and running real workloads in under a day, including figuring out I had the wrong Atmel Studio installed.

Why *must* there be something in that gap?

Bad Munki
Nov 4, 2008

We're all mad here.


Because not bridging--or worse, widening--that gap promotes elitism on one side and disenchantment on the other?

Victor
Jun 18, 2004

JawnV6 posted:

a decade of computer engineering
[...]
Why *must* there be something in that gap?
Not everyone has a decade of computer engineering.

JawnV6
Jul 4, 2004

So hot ...
Mechanical engineers I work with without any software training are able to get workable solutions to their problems with Arduino alone, so I'm really having a hard time fathoming what's in the gap.

e: like if you know enough to expand the acronym ISR, you can probably work with the Atmel tools I mentioned

Victor
Jun 18, 2004

JawnV6 posted:

Mechanical engineers I work with without any software training are able to get workable solutions to their problems with Arduino alone, so I'm really having a hard time fathoming what's in the gap.
You're assuming that only people with a decade of experience in computer engineering will want something more powerful than an Arduino.

JawnV6
Jul 4, 2004

So hot ...
If you know what "ISR" stands for, you can use an Atmel. Sorry you missed my edit, they're really great tools and did you even look at them before coming back to post at me again?

Captain Capacitor
Jan 21, 2008

The code you say?

Victor posted:

Hey, no reason to apologize! Yesterday, I talked to my boss about the whole idea behind Arduino, and to what extent that made Spark Core so successful. (almost at $200k, with $10k target) To what extent do you simply want to see that it's about as easy to get up-and-going with AshimaCore as it is with an Arduino?

I'm a little confused at how you see it 'shoving avionics down your throat'; could you explain how you got that message? It is designed to be an avionics package, but all that really means is that it has a decently powerful processor, µSD, two sensors, and multiple wireless options. If you were to try and get all these separately, you'd be paying well over $129, you'd have to hook things up yourself, and you probably wouldn't have a high-speed SDIO hookup. If, however, you don't want at least the accelerometer and gyro, I don't think this is the board for you anyway.

The whole avionics thing came from lack of sleep and mixup with other such similar products that are open in other tabs right now. Considering the other drone brain I saw at the local hobby shop runs for $400, what you guys have could be quite the steal. I'd say capitalize on that. Build some demo drones and play it off as the next step in protecting your yard from evil terrorist neighbour dogs. (Okay not really, but you get the idea.)

Kire
Aug 25, 2006
I'm trying to write an img of Ubuntu onto an SD card for my beaglebone, but since I'm doing this on Windows I can't easily just sudo apt-get whatever package everyone recommends. I tried downloading an "Omap4" img, but that just causes my beaglebone to never turn on its heart-beat LED, and my WinXP machine thinks that it has "found new hardware" every 10 seconds with no end. I'm trying to follow this tutorial: http://embeddedprogrammer.blogspot.com/2012/10/beaglebone-installing-ubuntu-1210.html and I'm downloading these 12.04 imgs from https://wiki.ubuntu.com/ARM/OmapDesktopInstall . What am I doing wrong?

I even got the file located at http://rcn-ee.net/deb/rootfs/quantal/ubuntu-12.10-r2-minimal-armhf-2012-11-29.tar.xz as shown in the tutorial, but that doesn't have an img in it! Instead it relies on a shell script to create the img, and I can't do that in windows.

When I get a root file system like at http://eewiki.net/display/linuxonarm/BeagleBone#BeagleBone-Ubuntu13.04%28Raring%29RootFileSystem , what can I do with this on Windows?

Edit: I should mention I had no problem with Angstrom for months, but I want to switch to Ubuntu for security and increased usability.

Kire fucked around with this message at 00:11 on May 9, 2013

Captain Capacitor
Jan 21, 2008

The code you say?
Virtualbox?

Kire
Aug 25, 2006

I may need to create the img on a linux computer at my office, but I don't understand why the Omap imgs don't work.

Cygwin wasn't any help.

Victor
Jun 18, 2004

JawnV6 posted:

If you know what "ISR" stands for, you can use an Atmel. Sorry you missed my edit, they're really great tools and did you even look at them before coming back to post at me again?
I used WinAVR in 2003; it was my first introduction to assembly and I was able to learn alright. On the other hand, I had used C++ before and I had already learned how to program standard 1-4 line LCD displays as well as a 128x64 graphical LCD display (from VB6 via parallel port, of all things). I haven't used later incarnations of ATMEL's IDEs because I primarily develop on OS X, where there is a sane shell, among other things. Having an IDE can be nice, but it doesn't necessarily help with the library situation. Does AVR Studio 6.x offer decent libraries? I tried searching for an official I2C library and didn't find one. As we all know, available libraries are what make or break most embedded environments (at least for hobbyists).

There seems to be quite a bit of noise about AVR Studio being buggy, within this thread and outside. Any idea what the current state of AVR Studio is? There has also been noise about the $54 AVR Dragon not always being the most reliable hardware debugger (apparently a lot of people manage to brick them); with the JTAGICE3 being $99 (not to mention the JTAGICE mkII being $400), hardware debugging of ATMEL devices is a bit pricey for hobbyists. To compare, STM32Fxxx devices can be programmed and debugged via the $15 STM32F4DISCOVERY board (gotta remove a 0Ω SMT) or the $21 ST-LINK/V2 programmer/debugger.

Taking a step back, I'm still not sure what your beef is. The point of Arduino seems to be twofold:
  1. provide hardware that can do a good number of interesting things, and allow for modularity (via 'shields')
  2. make it easy to get up and going with software and programming, by providing a nice IDE and easy-to-use libraries
Now that there's the Arduino DUE, 1) is changed a bit. Not having an FPU and not being 5V-tolerant makes the jump from AVR a bit smaller than one might think, though. On the 2) library front, I have yet to find any good options for 100-200MHz ARM platforms—admittedly, I haven't searched as much as I could have. I can say that STM's peripherals library isn't nearly as close to ready-to-use as Arduino.

There definitely seems to be an unfilled niche. Whether or not we're filling it is another question. $129 is a lot to just get going, although it's qty 50, not 1000. I would have thought there would be demand for a decent IMU + µSD + wireless option in this range. But perhaps we aren't marketing ourselves properly.

JawnV6
Jul 4, 2004

So hot ...
edit: I'm just being mean

JawnV6 fucked around with this message at 01:55 on May 9, 2013

Delta-Wye
Sep 29, 2005
Arduino is for people who are too lazy to read an Atmel datasheet. Of course, when they go to do 30-45 analog reads in a row (the multiplexor guide said it would work!!!!!) and find out that it's hellishly slow they lack both the ability to recognize the problem (ADC reads take a long time) or the solution (kick them off and use an ISR to grab the data instead of spinlocking and waiting). Who guessed learning how to do something complicated would be complicated? :ohdear:

armorer
Aug 6, 2012

I like metal.

Delta-Wye posted:

Arduino is for people who are too lazy to read an Atmel datasheet. Of course, when they go to do 30-45 analog reads in a row (the multiplexor guide said it would work!!!!!) and find out that it's hellishly slow they lack both the ability to recognize the problem (ADC reads take a long time) or the solution (kick them off and use an ISR to grab the data instead of spinlocking and waiting). Who guessed learning how to do something complicated would be complicated? :ohdear:

This entire sentiment is so elitist and off base that I wonder if you really believe it or are just trolling. Arduino is for people who have never even heard of Atmel. It's an entirely different problem that the Arduino is intended to solve. The vast majority of people using an Arduino will never do anything more complex than a blinkenlights project, but will be thrilled by the whole thing regardless. The folks who end up trying to do complex things and running into road blocks will move on and learn to do things the right way, or say gently caress it and not bother.

Arduino was not designed for anyone in this thread. It was designed to get people who have never done anything with embedded electronics in their entire lives started making things. It is the Duplo block of the construction world. Nobody in their right mind is going to try building a shed out of Duplo blocks, but they serve to get young kids building little "houses". Kids that are into it will graduate to Legos and them maybe move on to actually studying engineering. Sure you will run into people who have made their Arduino tweet when they flush the toilet, and think that somehow qualifies them as an embedded programmer, but those people are just stupid. There are stupid people in every area of life.

JawnV6
Jul 4, 2004

So hot ...

armorer posted:

Kids that are into it will graduate to Legos and them maybe move on to actually studying engineering.

I'm getting the distinct impression people think more complex things should be possible without an ounce of engineering effort applied.

Sucks, but past a certain point of complexity you need an engineer. From what I've seen Arduino's covering most of that low end and I don't see the gap between "what's possible with an Arduino" and "what you need an Engineer for". For what it's worth, if we're talking about floats and FFT's, I think you've got an engineer.

Slanderer
May 6, 2007

armorer posted:

Arduino was not designed for anyone in this thread. It was designed to get people who have never done anything with embedded electronics in their entire lives started making things. It is the Duplo block of the construction world. Nobody in their right mind is going to try building a shed out of Duplo blocks, but they serve to get young kids building little "houses". Kids that are into it will graduate to Legos and them maybe move on to actually studying engineering. Sure you will run into people who have made their Arduino tweet when they flush the toilet, and think that somehow qualifies them as an embedded programmer, but those people are just stupid. There are stupid people in every area of life.

Let me tell you about a project called Ardupilot...

:sigh:

armorer
Aug 6, 2012

I like metal.

JawnV6 posted:

I'm getting the distinct impression people think more complex things should be possible without an ounce of engineering effort applied.

Sucks, but past a certain point of complexity you need an engineer. From what I've seen Arduino's covering most of that low end and I don't see the gap between "what's possible with an Arduino" and "what you need an Engineer for". For what it's worth, if we're talking about floats and FFT's, I think you've got an engineer.

I completely agree - The Arduino was originally designed as an accessible platform for first year electrical engineering students. It exploded in popularity because it was accessible enough that installation artists, theater people, children, and all sorts of other groups (NOT professional computer / electronics engineers) could buy one and do something fun or useful with it. Some of those people will go on to do more complex things, most of them won't. It is definitely attracting more young people towards engineering disciplines though, which I think is a good thing.



Slanderer posted:

Let me tell you about a project called Ardupilot...

:sigh:

If that project lets someone (without the know-how to make such a thing otherwise) spend some money on a glorified quadcopter "puzzle" to assemble, then it will do ok. Maybe that person will have fun with it and decide to learn how the hell it actually works, although probably they won't. How does that make it "bad" though? Robotics professionals don't scoff at toy robots, they buy them for their kids to get them interested in what they do. I just looked up Ardupilot, and $400 gets you a copter with 1kg lift. Some indie movie director is going to strap a goPro to that and use it to film interesting scenes. Would that director build a quadcopter otherwise? Hell no.

That is why the Arduino (and some of the myriad followup products / kickstarters) is booming right now. It is accessible to people who don't know Ohm's law, are just trying to teach themselves C, and basically have no idea what the hell they are doing.

You guys look at it and see a (negative connotation) toy that can't handle the stuff you do, these other people look at it and see a (positive connotation) toy that they can use to do fun stuff.

JawnV6
Jul 4, 2004

So hot ...

armorer posted:

You guys look at it and see a (negative connotation) toy that can't handle the stuff you do, these other people look at it and see a (positive connotation) toy that they can use to do fun stuff.

If that's your characterization of me, have at it dude. I wasn't hating on Arduino, I was doubting a gap between it and pro grade solutions necessarily existed.

Guess that makes me an elitist shithead now?

armorer
Aug 6, 2012

I like metal.
That isn't my characterization of you, and I understood your position (and said "I completely agree").

My usage of "You guys" was a poor choice and I apologize, obviously different people in this thread have different opinions.

Slanderer
May 6, 2007

armorer posted:

If that project lets someone (without the know-how to make such a thing otherwise) spend some money on a glorified quadcopter "puzzle" to assemble, then it will do ok. Maybe that person will have fun with it and decide to learn how the hell it actually works, although probably they won't. How does that make it "bad" though? Robotics professionals don't scoff at toy robots, they buy them for their kids to get them interested in what they do. I just looked up Ardupilot, and $400 gets you a copter with 1kg lift. Some indie movie director is going to strap a goPro to that and use it to film interesting scenes. Would that director build a quadcopter otherwise? Hell no.

That is why the Arduino (and some of the myriad followup products / kickstarters) is booming right now. It is accessible to people who don't know Ohm's law, are just trying to teach themselves C, and basically have no idea what the hell they are doing.

You guys look at it and see a (negative connotation) toy that can't handle the stuff you do, these other people look at it and see a (positive connotation) toy that they can use to do fun stuff.

Actually, my complaint was about people taking Arduino way too far, and not saying, "Ok, let's start naming our files *.c and *.cpp, let's use our own build process, and let's actually commit to doing a good job". As it stands, that project has been so overextended that it's an incomprehensible mess a lot of the time, and it's not rare to encounter a completely untraceable bug that causes poo poo to fall out of the sky. Due to the way they integrated a lot of libs from arduino, tracing poo poo is hard as balls.

I admittedly still use the Arduino at times to prototype something extremely quickly (because it's quicker than digging out an Atmega, a programmer, a breadboard, and all the components I need). I through something together in a day last year using a graphical LCD shield and an isolator that counted hi speed pulses and kept a histogram of pulse duration (I was debugging an issue with some power switchover HW here at work). It's just annoying to see people accumulating a tower of crap on top of Arduino.

armorer
Aug 6, 2012

I like metal.
That I can completely agree with. I see now that you were mostly pointing out that they built this thing out of "Duplo blocks". I can only imagine they did that because of the huge community, figuring that it would get them more exposure.

I think the decisions to abstract away "main" and pretend that you weren't writing in C or C++ were poor ones (I have no idea why they did that, or what they thought was gained). Also the Arduino IDE is terrible to anyone who has a preferred development environment (whether command line or full IDE based). As for stuff implemented in software "the Arduino way" - any sufficiently complicated software system written by non-programmers is bound to be a pile of poo poo. Look at all of the VB written by business folks, it solves their problem but any developer who looks at it will cringe and run away screaming.

My point is mostly that Arduino is immensely popular for reasons that (and with people who) don't really have anything to do with good embedded system design.

Adbot
ADBOT LOVES YOU

Victor
Jun 18, 2004

JawnV6 posted:

I'm getting the distinct impression people think more complex things should be possible without an ounce of engineering effort applied.

Sucks, but past a certain point of complexity you need an engineer. From what I've seen Arduino's covering most of that low end and I don't see the gap between "what's possible with an Arduino" and "what you need an Engineer for". For what it's worth, if we're talking about floats and FFT's, I think you've got an engineer.
That impression is from your attitude that people must expend as much effort as you had to, in order to get going on something more powerful than an Arduino. I encounter plenty of your type: people who refuse to believe that helping people learn things in less time than it took you to learn them is a good thing. If you had to walk uphill both ways for school, your children ought to as well! It's... character-building!

It was telling that in your douchebaggy response that you edited out, you mocked my student-run data backup service idea as an example of bad niche-identification. That was pretty hilarious, given that the motivation for said project was my judgment that grad students needed a cheaper way to back up their data than use a then-pretty expensive ($50+/mo) plan. I thought it would be fun to figure out all the bits necessary to offer such a service (I love learning how things work); I was dissuaded from that because the liabilities were just too high. Well guess what, there are now $5/mo unlimited plans. I know several grad student labs that use CrashPlan, labs which had ghetto or nonexistent backups before. So in terms of seeing a niche? Yeah, I got that bit right. In terms of filling it? When it came to a student-run data backup service, I got it utterly wrong.

I took your challenge to examine the TWI libraries provided with AVR Studio 6. I found a TWI library for some of Atmel's SAM ARM devices; it didn't offer anything like callbacks for asynchronous operation, nor did it even do basic stuff like report back bus arbitration errors. Another TWI implementation I found doesn't differentiate between a nack and a lost arbitration in its return code! It wasn't robust. I couldn't find any AVR TWI libraries until I downloaded the Atmel Software Framework. It's allegedly contained in AS6, but I couldn't find matching files in AS6 and there are no 10MB+ zip files in the AS6 installation location. Anyhow I found a single, third-party twi_master.c that looks like a half-assed, buggy, global-variable-using implementation of the TWI Master app note. Not to mention that there is no asynchronous support for AVR I2C, even though I2C is a slow communications protocol. So I don't know what you were talking about when you said there are libraries ready to use, unless you regularly use non-robust libraries.

Do you think people should have to write their own I2C libraries before using a new microcontroller, JawnV6? armorer, if having ready-to-use, robust I2C libraries constitutes having "Duplo blocks", then hell yeah I want Duplo blocks. I'm guessing you don't hold such a dumb opinion, though.



Claiming that there is no niche between Arduino and you-must-read-through-the-datasheet-with-a-fine-toothed-comb is myopic, elitist, and just plain retarding. Creating robust, easy-to-use libraries is not easy and shouldn't have to be done over and over and over again. Arduino didn't have to be restricted to n00bs by having crap libraries. Hell, the use of digitalWrite(pin, level) could have been implemented via digitalWrite<pin>(level), avoiding the insane number of cycles it takes to write to a single pin. On the other hand, lots of people use 8N1 on UARTs, so Arduino's Serial.begin(baud) isn't insane as a default. Compare that to what STM's library provides.

  • Locked thread