by on Maple Bacon

Here are the missing links and notes from my Open Source Bridge Talk for 2012.

A web copy of the slides are at http://suspectdevices.com/TheBaco-matic5000-OSB/.

arduino.cc — makers of the arduino.

www.leaflabs.com/ — makers of the Maple platform.

pjrc.com — maker of the teensy++

https://github.com/soycamo/maplebacon — hardware for the bom5k and the maple bacon.

https://github.com/leaflabs/libmaple — libmaple

https://github.com/suspect-devices/cache-and-carry firmware for the bom5k that I did as part of some thought work at random hacks of kindess at the beginning of June.

 

 

by on Arduino

A few months ago Paul Stoffregon asked to borrow an arduino mega 2560 to look at a bug that he was working around. I had access to several as I was working on a project for a client that was based on the same board. Around the same time I made the mistake of trying to add a watch dog timer to a complicated piece of code that I inherited. The results were disastrous and made me look more closely at both the stripped down opti-boot boot-loader that the arduino team is using and the not so stripped down but still buggy stk500v2 code that is currently on the arduino mega2560 which is there because opti-boot doesn’t handle the larger memory.

I was not so happy.

I am less happy with the fact that two years after issues #181 and a year and a half after #393 were filed you can still buy an arduino mega2560 with these bugs and re-burning the boot-loader will not fix the problem.

Issue #393.

void setup() {
 Serial.begin(9600);
}

void loop() {
 Serial.println("test!!!");
}

The above sketch will not load through the bootloader.

#include <avr/wdt.h>

print "Hello world\n";
wdt_enable(WDTO_15MS);

print "I am going to not get stuck..\n";
for(x=0; x<100; x++) {
  wdt_reset();
  x++;
  delay(10);
}
print "I am going to get stuck now..\n";
for(x=0; 1; x++) {
  delay(10);
}

The above sketch will hang the board until you power down or re-burn the boot-loader, setting the WDT to 15ms and waiting is a common practice for getting a clean software reset. But more importantly the WDT is an vital tool to make sure that systems don’t get stuck for long periods when things go wrong (and they do).

Fortunately some people aren’t waiting and there is source code for the bootloader that has these issues resolved is here.

https://github.com/msproul/Arduino-stk500v2-bootloader

and a hex file for the bootloader is at the bottom of the issue #181 if this direct link doesn’t work.

 

by on armMaple Bacon

For a while we have been working with a board that Cameron created called the Maple Bacon (http://github.com/soycamo/maplebacon), as well as a logging and wireless shield that we are calling the Baco-matic5000. The maple bacon is a clone of the maple mini (http://leaflabs.com/docs/hardware/maple-mini.html) . The point in recreating it was that LeafLabs did not stock it directly and that the only supplier was a chinese fab. It made more sense to redesign it and run it through the DorkbotPDX group pcb order and if we needed anything faster to go through Sunstone.

 

The maple platform (http://leaflabs.com/) is a wiring(arduino) port for the STM32 series of ARM microcontrollers.

Maple Mini and Maple RET6

 

Like the Arduino most of the details needed to get a program running are tucked neatly out of the way.

There are a few things I like about the maple platform  on top of having thrice as much memory, 3 serial ports and a usb serial port, a pair of i2c ports and another pair of spi ports in a package that costs less than 80 bucks. One of them is that the documentation for the language and the ide is local. The other part is that the ide is optional.

Maple is a library first and an Arduino clone second. So you can test things in the ide and then when you are ready to create a project you can actually use a real code editor and “make install” it onto your board. And its fast (look ma no java). See: http://leaflabs.com/docs/unix-toolchain.html

Getting our clone board up and running was relatively simple the STM32s have a serial bootloader which you can program with any 3.3v serial adapter and a cross platform python script. Using this you load a usb based bootloader which loads your code. Much easier than having to in circuit program your boot-loader with a platform specific programmer. See: http://leaflabs.com/docs/bootloader.html

 

Speaking of 3.3v no more  converting rom 5 to 3v to talk to your wireless modules or an sd card. In the picture at the top of this post over 2 thirds of the parts on the hydrogen are devoted to converting signals from the arduinos 5v processor to the 3.3v gainspan wifi module and the 3.3v sd card. In the bacomatic these lines are directly connected to the processor.  Below is an ethernet solution that is also 3.3v based connected to the Maple Mini and the shield that Cameron designed.

It’s been brought to my attention that while lots of folks in this group are doing arm based processing it still hasn’t been brought down to where it can be used by artists and musicians like the Arduino and Wiring (and even the teensy). So I hope to be presenting more Maple and Libmaple based projects in the near future.

 

 

 

by on arm

The dorkbotPDX mailing list recently posted a link to a 25 dollar arm linux based nas called the PogoPlug. It was pink and ugly but it was $33 with shipping, so I bought one. It was stashed conspicuously under the rug by the nice people at UPS yesterday after I signed a slip saying they could leave it.

Using the thing was scary. I plugged it in but it didn’t show up anywhere. When I went to the pogo plug site they told me to download their software and when I did I was able to enable any disk that I plugged into it and then i could let it sync and share my personal files with some cloud thing in the wild blue yonder. This wasn’t done in any transparent and secure-able way but through a software wedge that made the thing show up as a drive locally. The scariest thing was that when I logged into the web site it was able to figure out where my device was (I assume because it was on the same lan as the computer I logged in from) reset the password and enable ssh on the weird looking box. Yeah it cut a hole into my lan.

There was only one thing to do with the scary pink beast. Name it Bradley and put another operating system on it.

So, after figuring out which particular pogo plug I had, I dug up a flash drive and followed the bouncing prompt from http://archlinuxarm.org/platforms/armv6/pogoplug-provideov3 and less than an hour later I had a relatively usable linux box.

Now to figure out what to do with it.

 

 

by on electronicsMaple Bacon

I had been itching to do more Eagle projects since I took Laen’s class, so Don tasked me with a variation of the Maple Mini to use with a Gainspan module. It is rather large, but the surface mount parts are large enough to do at home on a hotplate. In fact, the board is designed just for at-home assembly. The project is called Maple Bacon, since the finished product should be as thick as a slice of Sweet Briar Farms maple bacon.

This was my second attempt at a large-scale Eagle project, so any comments or critiques would be appreciated. You can watch or fork my repo at github.com/soycamo/maplebacon.

Happy holidays!

by on electronics

I wish I had seen Ladyada’s blog about getting off the fence about kicad before she closed comments to it. I just ran up kicad on my mac and its still not ready for prime time. The worst part of it is that the designs that are in kicad are stuck in kicad.

It scared me, because I thought that if adafruit adapted kicad as apposed to eagle as it has been, it would mean is that adafruits designs would no longer be open to people who are not using kicad. For those of us who use the automation, meta data, and well developed shared libraries of eagle this is a great loss.

Especially when the very tools which are missing from kicad make it easy to convert eagle designs to kicad or any other platform. A gerber is not the same as having the parts list, schematic and the plethora of other meta data that sharing a design really entails. It is the source code of a design.

If I give you an eagle schematic file you are free to improve upon my design or export it to the cad software of your choice. If I gave you a set of gerbers you are stuck with my design but are perfectly capable of shipping them off to the cheapest asian fab you can find.

Since kicad locks this data away and does not allow you to export the design and its meta data I am going to argue that it is not really open source. Unless I can recreate a different design or change the usb processor or the package of the parts outside of kicad or at least all 3 major platforms (ie on a Macintosh) in my opinion kicad projects are not open source at all.

I know the joy of open source is that its my fault for not donating countless man-months of time debugging and adding features like eagles ULP and usability on OSX. But I don’t care because in EDA the design is the source. Cadsoft paid and continues to pay its software engineers to create a professional cad system which allows the open sharing of design and metadata and then offeres it to us for free.

While the kicad community has been very quick to capitalize on eagles exposure of the communities shared source and libraries, very little has been done to make sure that we are not stuck with a single design platform that is not nearly as well developed.

Even worse, as people who we look to consistently for reference designs like ladyada turn to kicad, those of us who want to use and share designs can look forward to manually rebuilding them.

I thinks its a damn shame.

 

 

 

by on Arduino

Arduino Cult Induction 30OCT11 at ADX

Introducing the TAD (a Through-hole Arduino compatible Design).

 

Jobs Woz Poster

 

During this quarter’s induction we are going to try something different.

We are going to build a complete arduino compatible board made entirely of through hole components.  Called the TAD (for Through hole Arduino compatible Design) The board uses the same footprint as the arduino but does not require any surface mount components. This workshop will be lite on lecture and heavy on putting the thing together so be prepared to solder.

What:

This is a an opportunity for 13 people to build their own TAD , A complete microprocessor based development environment which is very popular with artists and other creative people. Suspect Devices has put together a kit which takes the surface mount out of the arduino. This seminar is to walk you through putting yours together and programming it

Where:

ADX — SE 11th between Oak and Stark

When:

Sunday October 30, 2011 from 1 to 5pm

You Bring

  • A laptop
  • A soldering iron (20-30W Pencil type)
  • A standard (not mini) usb cable (A->B)
  • A pair of dikes (wire cutters/nippers)

You will get

  • An Arduino that you built yourself.
  • A very brief introduction to the Arduino
  • Help when you need it
  • To know that what you built worked at least once

How do I rsvp?

The workshop costs $40 including all kit parts (plus $5 room use fee for ADX).  (1)

— or —

    • At the preceding dorkbot-pdx meeting (make checks out to “tempus dictum, inc”);

Due to the limited seating we will not take walk ins to this workshop.

(1) note that you are paying for the RSVP. Refunds and kits will not be given out side of the class unless arranged at least 24 hours beforehand.