Show Posts
Pages: 1 [2] 3 4
16  Topics / Education and Teaching / Re: are there any educators using arduino? on: December 09, 2012, 05:57:33 am
Worth also looking into , which shares a homebrew design intended to help educators by reducing the per-student cost of Arduino compatible prototyping, as well as gradually curating classroom and workshop resources to help adopting this design.
17  General Category / General Discussion / Re: Proposal for workshopping with Python and Firmata on: October 09, 2012, 08:26:56 pm
I also find this article and set of demos very inspiring to my way of thinking about learning/teaching programming - articulates well some of the issues with the status quo, and offers concrete solutions...
18  Topics / Education and Teaching / Re: Electrolytic Capacitors in the Classroom : Explosions!? on: October 09, 2012, 05:24:37 pm
Another possibility which was suggested by @oomlout was to upgrade/downgrade to a 1uF Ceramic, which eliminates the problem, and also probably eliminates the need for the 100nF ceramic in parallel (provided as a more responsive smoothing source before the electrolytic kicks in). It's only 18 cents from Tayda, but each decision like that adds another few pence. It's great to be able to say you can make one for £1.40, and that puts it nearer £1.50. Might make @ShrimpingIt a bit easier and more svelte, though (fewer wires pushed in the same holes and lower profile).
19  General Category / General Discussion / Re: Proposal for workshopping with Python and Firmata on: September 24, 2012, 07:51:07 am
The "Scratch for Arduino" project is an interesting development along the same lines to introduce basic programming concepts without having to teach C.
20  Topics / Education and Teaching / Re: Electrolytic Capacitors in the Classroom : Explosions!? on: September 21, 2012, 12:58:38 pm
Reassuringly I found this investigation...

The electrolytic capacitor can be modeled at an ideal capacitor with two back-to-back zener diodes in parallel with it, with each zener representing one of the cutoff voltages. The leakage slowly increases for voltages below these cutoff voltages, and then quickly for levels above the cutoff voltages. The performance is very consistent within these bounds as well, with differences most likely accounted for by heating effects due to the increase in current flow at higher voltages. So it seems that an electrolytic can be used backwards with negligible change in circuit behaviour, as long as it is within these bounds. These bounds change on both the positive and negative sides with capacitor voltage rating. A 1uF/50V capacitor was tested, and it operated up to -16V in reverse bias, which suggests a linear relationship between forward and reverse breakdown voltages. So if you plan to use a capacitor backwards, give it a quick check first to find out where its reverse breakdown begins. A DC current of 0.1uA is a good threshold to use.


If I interpret correctly, this experimentation suggests that a reverse bias of 5V on a Capacitor rated for 25V may be well-behaved as I hoped. It also offers a way to test the voltage threshold for the runaway overheating behaviour for a given cap, which may be worth experimenting with. I may well drop down to a 1uF cap and will consider bringing up the rated voltage to 50V to minimise some potential issues, though.
21  Topics / Education and Teaching / Electrolytic Capacitors in the Classroom : Explosions!? on: September 21, 2012, 12:16:06 pm
As part of the #Shrimp Arduino-compatible circuit design described at we suggest a 10uF electrolytic capacitor to smooth the power supply following a discussion here on the forum.

However, I'm concerned that working with these components in a classroom could be dangerous, given the possibility (guarantee) of someone reversing the capacitor even in a 5V circuit.

Is this as serious as I fear?

Are there mitigating approaches I can take, such as reducing the capacitance to 1uF, which was an option discussed during circuit design (I'm guessing this means less explosive material) or selecting capacitors which are designed to be safer. Obviously leaving it out is an option, but I gather it will be needed for certain projects to keep the power supply regular.

Are mitigations such as gloves and eye protection considered to be enough protection when powering up a test circuit at 5V with a potentially reversed electrolytic? Other thoughts?

Currently the component I'm distributing in kits (on a non-commercial basis) are these...

Glad of your contributions.
22  General Category / General Discussion / Re: Proposal for workshopping with Python and Firmata on: September 11, 2012, 07:04:39 pm
Loving Bitlash, in that it provides a means of transitioning from interpreted shell to hosted code. Always a little worried about being caught in a cul-de-sac though, even if it's a garden of eden smiley That's one of the reasons for raising this query to begin with.

dxw00d understand what you're saying on Firmata support. If in practice the community is turning away from it we have to take this into account. We're not using Megas (or Arduinos for that matter), so I'm not too worried on that front. However, I don't believe it's easy to substitute and write your own protocols, at least for the average person.

The I.T.A. parallel from Mike was pivotal to me understanding where I'm coming from. It clarified in my mind what exactly I feel needs to be taught. I think you're right if the aim is to get them to use C, then it's a bit mad to teach them Python. However, the aim is to teach them to be programmers, not C programmers (and importantly NOT computer scientists, this is like the difference between a carpenter and a dendrologist).

I'm hoping to teach the fundamental skills which transcend any language and are a matter of the programmers craft, insights like the concept of a variable, the habits and shortcuts of how and when you structure data into sequences (containers for items without names = list/array) or dictionaries (containers for items with names = struct/object) depending on what you're trying to achieve, sensible approaches for choosing names, how to break complex behaviours down into smaller parts. I believe these aspects are easier to learn in an interpreted, untyped shell language, and especially one which can be used for so many jobs, but in any case, these skills can transfer. In the ideal world, session participants will have developed some of the skills of a pragmatic programmer, concepts which can be used across javascript, java, ruby, php and so on.

If the fishing trip is successful, they bite the worm, and become developers probably C is one of the least useful languages for them when branching out into web programming, audio, graphics. If they were stuck with python, it could be worse - it can be used for almost anything and this is where the parallel with I.T.A. breaks down, which really was a cul-de-sac, and could never be used for real-world tasks.

I have to differ with dxw00d that you can explore individual concepts in C. I thought it was a matter of fact that causing anything to happen through  Arduino C demands a complete program compiled to hex, which means you're exposed to void, function defs, function calls, (implicitly) library calls and many other things before you can achieve anything at all. I'm talking from a semi-religious point of view here, as I've been convinced by Constructivism... and indeed Constructionism... , which takes things a little further, and more literally. Both of these emphasise being able to act on your world to figure stuff out or else most people just won't figure it out. If you can go pin.write(1) and see the light come on, this meets the challenge. If you have to write the whole of Blink without errors and upload and run it to confirm your comprehension of 10 concepts at once, this is a real problem.

It's no surprise that Papert (the original Constructionist guy) was behind the family of programming tools leading to Scratch. This could go some way to explain your experience of educationalists too, Mike. This atomic, active manipulation is the sort of experience they feel individuals need to have in order to make sense of programming. The geeks amongst us can cope even in the face of complexity. I fear many people other people are left by the wayside because our typical teaching approaches mean they cannot build up incrementally. I'm probably reaching more for the non-geeks here, but as a geek myself I'm badly qualified smiley-sad

Has anyone in the thread had success teaching non-programmers with either C or python or anything else? Be good to hear your anecdotes of how key concepts 'dawned on' people. I'm especially wondering if anyone's had success converting people who are not classically interested in computers/logic into using programming for its practical benefits? That's the particular line I'm trying to go down. Happy to teach natural geeks too, but I'm wondering if I can achieve some evangelical programming; on a mission smiley
23  General Category / General Discussion / Re: Proposal for workshopping with Python and Firmata on: September 11, 2012, 11:11:08 am
@dxw00d I appreciate you taking the time to engage in this debate.  Sorry for delay replying, I wanted to respond to each of your points in turn and was under pressure of deadlines at the time - a university submission is partly why the use-of-Firmata rationale was written up as the draft PDF which I linked to.

It's clear you don't agree that Firmata should be used, but I'm not sure I share your assumptions, and your reasons for your strong opinion aren't that clear to me.

I suppose it's a start, but as soon as you want to make something that can stand on its own, you have to learn to program the Arduino, so why not start with that?

This comes to the heart of the debate. Indeed this is specifically for novice programmers, and we detail how we transition from Python to C in the document. The reasons "why not start with that" were outlined in the PDF. I don't know if you found it tl;dr but it's probably better to say it here in the thread.

The main issue is that Arduino programs are monolithic. If you're a programmer it may not be obvious to you that there's a lot of concepts in the Blink sketch. With an interactive shell, using pyfirmata you can tackle language structures one by one, introduce the notion of values, types, expressions, named values (variables), named sequences of values (arrays), steps (statements), named groups of steps (functions) and so on, individually. Each can be introduced and explored step by step until the learner is comfortable with the concept in practice. They can see immediate results from individual steps because the servo moves, the array changes or the LED lights. There's a lot of commonality with work on Senseboard, and the section in called "Reducing the obstacle of programming" makes the argument well, although they settled on a 'Scratch' blocks programming language instead. 

It doesn't appear to be supported.

I'm confused by this. On the one hand, multiple Firmata sketches are distributed directly with the Arduino IDE under the Example menu, including updated sketches which handle the library compatibility changes since version 1.0 so I don't know what other model of 'support' you have in mind. As an open source project, it's as supported as the people who care about it enough to maintain it, update it and help users with its adoption. If any community is going to step up and do this support, it's the one represented in this forum. In any case if Firmata ain't broke, maybe it doesn't need fixing at all. Perhaps you think it's broke in some way.

It removes the point of having a microcontroller, with onboard intelligence...[unless] all of your projects are tethered, and driven by intelligence on the PC

Microcontrollers are specifically designed to open up the possibility of interfacing with the external world, (as opposed to mere microprocessors which provide the intelligence). An Arduino is something which can be extraordinarily useful when tethered as a slave of a laptop whose microprocessor does not have any general I/O pins. Most projects which I've been involved with are structured in exactly this way, combining PC programs with a bespoke physical-computing peripheral, implemented as an Arduino. One reason for pursuing this direction is that our project was initially all about "shrimping laptops". Of course there are deployment scenarios where tethering doesn't serve the application, but I don't think it's even possible to add GPIO to a PC without using a microcontroller, and Arduino is my board of choice. I was surprised by the implication that standalone use of Arduino is somehow the one true way.

If students are comfortable with all the relevant programming concepts, I believe moving to C is a relatively trivial issue, and for someone who is actively engaged in using Arduino the effort is then justified, just as you say, by the fact you can get your behaviour to run standalone. Starting with C, in my view, is a terrible way to introduce programming concepts for the reasons outlined in the PDF, and will tend to turn people off programming altogether, unless they are of a certain mindset. This project is about reaching out to the other 99%
24  Using Arduino / Microcontrollers / Re: Problems with Serial Programming on: September 11, 2012, 06:56:27 am
@bromatt I recently experienced a blown/broken crystal, which didn't behave as you describe - the circuit simply didn't function. However, I don't know if there's any weird behaviour before one fails completely.

Without seeing the circuit in action, it sounds like it might be resetting for some reason, such as a temporary load which affects the voltage. If I'm right, the variation in blinking is therefore to do with it restarting the whole program again. I've seen this happen in unprotected circuits controlling motors, and it may reveal latent issues with having some contacts which are not conducting well for some reason (perhaps corrosion in the breadboard connections).

Protection from variations in load is one primary reason, as well as stable analog reference voltages, for the differences between the minimal programmable circuit at...
...and the more practical, protected circuit at...
...which is recommended for any substantial physical computing work.

Try the more protected circuit instead, and be sure everything is cleanly contacting.
25  General Category / General Discussion / Proposal for workshopping with Python and Firmata on: September 06, 2012, 05:25:50 am
I have a kind of manifesto document for a specific workshopping technique at

It outlines why I think it's better to teach novice Arduino programmers using python and firmata rather than for example, the Blink sketch within the Arduino IDE.

I'd love to hear people's thoughts on this, especially if there are better ways, or if people can see big holes in the approach, or just if you disagree strongly (with reasons).
26  Using Arduino / Project Guidance / Re: Workshopping £1.40 Arduino-Compatible (£3.05 including USB!) on: September 06, 2012, 04:31:48 am
@bromatt we should probably continue discussion of your layout/wiring/config issue on the other thread,121571.0.html but if you're still stuck after all the helpful advice, after I've finished my deadlines from 11th September, I can post you a full tested set of parts, then you can post your duff layout back on the breadboard for me to figure out what's wrong.

That way I gain a breadboard, (really useful for workshopping here in Morecambe), and maybe a 328P-PU (I'm working with the cheaper 328-PUs)!  At worst, I'll have swapped a good CP2102 for a fried one, but that's fine by me. If you're heading for Preston Raspberry Jam or OSHCamp we could cross paths there, or you could join us at a future workshop in Morecambe.

Let me know if that's interesting to you.
27  Using Arduino / Project Guidance / Re: Workshopping £1.40 Arduino-Compatible (£3.05 including USB!) on: September 05, 2012, 06:37:21 pm
Does anyone have a view on the stability implications of placing the large electrolytic cap on the opposite side of the circuit. I'm guessing it's only going to respond over a relatively long timescale anyway compared to the smaller caps (which are there for rapid response).

Having it on the other side would be really useful given the left hand side is really packed when using just the 5 rails of a breadboard/stripboard...

However, it's not worth doing if it defeats the object of the cap altogether.
28  Using Arduino / Project Guidance / Re: Workshopping £1.40 Arduino-Compatible (£3.05 including USB!) on: September 05, 2012, 06:32:26 pm
@bromatt when you say "it doesn't work for me" what exactly are you experiencing.

If you can't reprogram it even manually with a (well-timed) reset button push then I'd stop investigating the DTR pin and look at the rest of the circuit, especially the TX vs RX as Lakes points out.

That one (inverted serial pins) foxed me with an entire workshop full of people when I'd done the diagram they were all working to the wrong way round [facepalm].
29  Using Arduino / Project Guidance / Re: Workshopping £1.40 Arduino-Compatible (£3.05 including USB!) on: September 05, 2012, 06:22:27 pm
If anyone wants to send me a (really clear) picture of their busted breadboard layout I can try to figure out what's wrong. Equally if there's anything else I can help with by way of parts or what have you, then get in touch especially if you're in the North of England. There's bound to be some way I can swap some bits with you for sanity checking whether things are roasted.

Contact me via this forum or If you're happy for me to share your pictures it would be good to have a resource of examples which need various fixes.

I'm relying on Bill Westfield's totally amazing Optiloader for flashing chips from Mouser. It does have a weird behaviour after I've flashed them. If I try to reflash them it seems to report they're busted, but they're actually fully functional. I think it's just a counterintuitive error message. I should file that on the Optiloader github when I get a chance.

I did have a DOA CP2102 but only one out of the 50 or so which I've bought, and I don't know what people did with it when workshopping, so they could have really zapped it somehow. Put it this way, I'm not going to try and get my money back smiley
30  Using Arduino / Project Guidance / Re: Workshopping £1.40 Arduino-Compatible (£3.05 including USB!) on: September 05, 2012, 06:11:39 pm
Just like Lakes says, you need to use the pin labelled DTR on the CP2102 to wire to the reset pin (pin 1 on the ATMEGA328P). All the CP2102s I've been passing on to people are exactly the same as Lakes, and have a right-angled male pin header manually soldered in place there. This really has to be detailed better on our website, sorry.

There's a picture of a minimal Shrimp on a breadboard which uses a modded CP2102 and matches Lakes' schematic exactly (apart from the LED) in the Shrimping Safari article at It looks like this...


However, there's a bunch of commentary in this forum thread which suggests some additional protective components which should be added for stability if you're trying to make a general purpose Arduino-compatible on a breadboard. The argument is that the components are so cheap that they're not worth trying to eliminate them, which we'd have to agree with, given our bill of materials at

We've tried to incorporate all of these insights in the latest layout which looks like this...

Alternatively, if you haven't access to a soldering iron, get the timing really good on hitting the reset button (which you need to wire with a pull-up resistor as per the schematic). Hit the reset button just after Compiling and just before Uploading. You have about a microsecond smiley Seriously, though, it's not that tight. I can generally get it every time.
Pages: 1 [2] 3 4