Author Topic: DigisparkArduino-MacOSX 1.04 Reports that it is damaged during installation  (Read 11552 times)

WKB

  • Newbie
  • *
  • Posts: 7
Hello Folks -


I have been spending a few hours trying to get my Digispark recognised by the development environment. In version 1.03 It received a weird error report when attempting to unzip the file (not related to the native app issue.) I downloaded the 1.04 environment this morning and I have attached a screen grab  of the report from OS X.  I am currently running 10.8.3 for the OS.


It would be nice is if there were additional instructions on the wiki about editing the normal Arduino dev environment to support DigiSpark.


Right now my frustration level is very high with the product and I am beginning to think I might be better off breadboard a small processor than trying to get this to work.


Thanks
David

Bluebie

  • Sr. Member
  • ****
  • Posts: 486
What's the error? I've unzipped it fine on a machine which has identical CPU architecture (i7 - so runs all the same executable blobs) with absolutely no issues. Are you using the Apple provided Archive Utility program to unzip, or some third party compression software? Archive Utility is better at understanding mac and unix specific permission information which is sometimes necessary to unpack an application in a way which will execute without errors. The Arduino software in particular depends on a large collection of executable unix tools embedded within the app bundle, and messing up the executable permissions on any of these binaries would render the arduino app unusable. If you can't find Archive Utility (green icon) in Open With, it is located on your hard drive in /System/Library/CoreServices. It should be your number one choice for unzipping on Mac. I've seen a lot of people have trouble using third party compression apps to unzip other Mac apps.


If you downloaded the tools through Safari and allowed the browser to unzip the package automatically in to your downloads folder (i.e. you have not disabled the Open "safe" files after downloading option in safari preferences) it should have been unzipped correctly using archive utility in the background.


If all else fails, try downloading it again - your download may have been corrupt for whatever reason.

WKB

  • Newbie
  • *
  • Posts: 7
Hi -


thanks for responding.
  • [size=78%]I used Apple provided utility to unzip and execute install[/size]
  • [size=78%]The error report provided by the OS was attached to last message - I will reattach [/size] :)
  • [size=78%] I have not changes any of the permissions in the bundle (I have a background in development & software architecture)[/size]
  • [size=78%]I have seen the green icon during the opening process (like an old floppy disk - yes?)[/size]
  • [size=78%]I downloaded with Chrome, but I don't understand why the download application should matter [/size] :-\  (Yes, Safari did the unzipping automatically - Not sure if that is a good thing really)
  • [size=78%] I will try to download this again. [/size]
  • [size=78%]SAME RESULT - See 11:39 screen grab[/size]


I have had success with other Ardiuno boards in the past and have some experience programming ATMega chips in commercial devices. I am most surprised that the download and setup has not been essentially a no-brainer; it had been my hope to use the digispark for an educational project.




Bluebie

  • Sr. Member
  • ****
  • Posts: 486
This error is caused by Apple's Gatekeeper feature. Disable it as described at Error: Minecraft is damaged to solve this problem. Digispark software for Mac OS X has always required gatekeeper be disabled, at least initially. The right-click > open workaround doesn't seem to work with the official arduino software, the digispark software, or many other java-based apps for whatever reason. I guess Apple doesn't care much about Java support these days.


I think you can re-enable gatekeeper if you like, after you've successfully run the digispark software once. It doesn't protect against worms or anything, just social engineering viruses and known spyware, so if you are a careful user, having it enabled isn't particularly useful.

WKB

  • Newbie
  • *
  • Posts: 7
Bluebie -


First I want to thank you for your help. When you pointed out my mistake I checked and I had not unlocked all permissions. I feel dumb, but satisfied.


I do have one further question if you have the patience - I was planning on using this as a small programming project for near teens (9-12 year olds) since the price of the board fit within the budget, but I think the unlocking of the gateway may be a project killer; it will require network admin support from the programme. Is there a tool that can be used for coding digispark that will not require unlocking of the gateway? I am happy to write a python or ruby script to do a setup of read/write permissions.


Again, thank you
 ;D


P.S. I would be happy to write a short set of directions as a token of gratitude to update the wiki.

Bluebie

  • Sr. Member
  • ****
  • Posts: 486
You could try getting them to open a terminal, paste in this command:


Code: [Select]
xattr -d com.apple.quarantine

followed by a space, then drag the DigisparkArduino.app file on to the terminal and press enter. That should in theory disable gatekeeper. If that doesn't work they should then be able to "cd DigisparkArduino.app/Contents; ./MacOS/JavaApplicationStub" to get it to run.


The most ideal solution is if someone could figure out how to strip off the corrupt signatures so it can be bypassed in the usual ways. I couldn't figure out a way to do this. The codesign utility apple doesn't offer a clear way to do it.

WKB

  • Newbie
  • *
  • Posts: 7
Bluebie -


I think your point shows the limitation of the Arduino editor and that the major players understand that there are security risks associated with the USB port; these are relatively minimal for hobbyists but a major block to enterprise deployments  or educational institutions. While the Arduino editor is sufficiently feature rich for the leading/bleeding edge hobbyists, I think it is time for the Arduino community to think about a migration toward Eclipse or toward a module basis for the major platform tools like xcode or  MS studio. It is not necessary to implement more feature than are in the current editor, but this would offer a list of additional features for the community to opt into when resources allow - stretch goals if you will.


Out of curiosity is there a group for enthusiasts or the small companies who produce Arduino compatible products that could all pull together to chat about Arduino editor 2.0? Maybe there is a kickstarter project for forming an industry group for these kinds of issues.


Best,
WKB




Bluebie

  • Sr. Member
  • ****
  • Posts: 486
I can only speak for myself, but I'm totally disinterested in this idea. The issues talked about in this thread have absolutely nothing to do with USB Port related security concerns. GateKeeper and the quarantine system are a mechanism to constrain the spread of spyware and some types of worms. They have nothing to do with sandboxing apps to limit their access to physical hardware.


So far as I'm concerned, the problem here is not that the arduino software hasn't been designed explicitly to wiggle it's way through any tiny gaps left in educational computer deployments, it's that these computers have been setup to explicitly refuse students and access to these sorts of technologies. It's a policy problem, not a software bug.


Again, the specific issue here is that the Mac release of Digispark Arduino app is corrupt in a way which only affects users who leave gatekeeper enabled. Once this corruption is fixed, there will be no more issue, and the digispark arduino app will be as easy or difficult for students to run on their computers as any other app they downloaded from the internet.


You might be interested in the Digispark Xcode integration mentioned elsewhere on this forum. I would personally abandon the platform if Eclipse became the primary development tool of Arduino. The point is to have fun making silly little things, not to endure a bunch of training to learn how to use a ton of really complicated IDE software. Arduino is for people who aren't programmers, so they can poke together some bits and pieces and make a program and then get straight back to doing what they actually care about. These people are interactive multimedium artists, musicians, home automators, kids making silly robots, game designers prototyping new kinds of controllers, disabled folk creating their own custom input devices, gamers hacking USB connectors in their favourite oldschool gamepads, fashion designers making garments that glow, bicyclists making LED lights that flash better and keep them safer, and a million other things I haven't thought of yet. These people are magicians, here for the power of magic, not the craft of it. I am one of these people - my skill in programming comes from not having anyone else to solve problems I needed solved to create the art I wanted. My open source projects are to enable these creative types to get in and get out as quick as possible so they can spend time doing what they love, not learning complex computer systems. One of arduino's greatest assets is that their software has only six buttons, and all of them are useful and straight forward.


It is a grave mistake for a computer scientist to believe that anyone or everyone could intrinsically enjoy programming, and would want to learn more about it purely for the passion of programming itself. I hate it. I've been hating programming for over a decade! Programmers don't need yet another platform pandering to their comforts. Artists and experimenters appreciate Arduino.  We don't have many things designed for us, and you can't take this away from us. It's ours.


And as a sidenote, I didn't mention enterprise deployments at all because that makes no sense. Arduino has absolutely no connection to "the enterprise", nor should it. The enterprise is boring and wasting time supporting it is counter to the goals of creating the best tools to support installation artists, and the enterprise can afford fancy expensive programming tools and can afford to pay people who intrinsically enjoy programming and designing embedded systems, so the enterprise can keep doing it's thing and leave our art tools alone.


* I'm just an individual visual artist, I'm not digistump staff and my views do not in any way represent theirs. I am also not a member of the Arduino group, but I have contributed to some open source software used by the digispark project *


All that said, this has been a very negative post. I like education a lot and I'd love to see digisparks used more in education. All students should have some basic fundimental programming skills and understanding. It's very empowering to be able to mess with computer systems and make them dance for you. :)


If I can help make the digispark more useful for educating kids (for fun!) I'd be interested. A friend and I were playing with some visual programming metaphors a little while back for making tiny robots using digispark-compatibles and experimenting with their little AI brains. There's some interesting stuff to be done there!

WKB

  • Newbie
  • *
  • Posts: 7
Hello Bluebie -


I can whole heartily endorse your maker creed, while still appreciating the value makers gain indirectly from enterprise scale production and paranoia. I want to get more people making, specifically kids; but I need to get schools, children's social clubs and parents on board which is hard when they believe that the projects endager their 'security'. I am very aware that Apple, MS and some linux distros are using walled ecologies to own developers and claim it is for security. It is really hard to explain the difference when you are battling adults anxiety and fear on the complex stuff in their computer.


Your thoughts on a visual programming tool for digispark sounds very cool. This is where the limited functionality of the digispark becomes a very positive feature. I can imagine with a little work building a drag and drop interface of components to pins and having a script copied to the clipboard. Then drop it in an editor/compiler tool for testing. I think it could be done in Flash with very little effort and a bit more effort in JS.


I apologise for coming from old school tech. This kind of coding sends me back to my university days when I used punch cards and slept on the floor of the CS building to pick up my printouts. One of the things I like about this kind of development is being able to fix and adapt things as you go. I also know that some of the discipline of coding and engineering make for better projects.


While it is really cool that you like to make stuff for art, self-expression and  change the built environment, I get my kicks out of enabling reliable solutions for other people- not necessarily building them myself. I can see why eclipse or xcode might be a turn off for some, but better tools for beginners sounds like a win all around.


I fully accept your criticism about code monkey tools; that just happens to be where my head is at in this moment. I do hope you can see why better tools where we do not need to explain security are a major plus. I woud be very interested in a different model. I was walking my dog and talking to a women in the park who works with art (I live in Amsterdam and she is a kunstenaar which does not translate easily) and she was telling me that all of the tools I think about are frightening to her. She thought that a retro kind of knobs, nixie tubes and switches thing that you might see at a science museum would be a better tool and I can completely see that. She says that programming is too abstract and I would do better building a machine that programmed the digispark as part of the assembly process - I think it is a bit too ambitious for this project, but it is another way to think about this.


You have made a lot of really positive contributions through github. My frustration is that I will find it hard to convince adults responsible for children to allow them to unlock gatekeeper (where all of this started for me.) I would like to contribute to projects that help make this kind of programming more accessible and if that means accepting the OS makers defaults then this is where I need to go.


Best,
WKB




Mark

  • Full Member
  • ***
  • Posts: 196
Without butting in on your conversation, I tend to agree with Bluebie regarding the ease of using Arduino.

For more years than I care to remember, I avoided microcontrollers because learning the language etc, was far too time consuming.
I was more interested in spending the time creating the project.
It wasn't until Picaxe came along that I started, and then when I was introduced to Arduino, that was so much better.

I have run a course for Arduino, and the school used macs.
We had to set them up to run, so its not impossible, it just needs the school to support it. (why they wouldn't is another question)

I used a normal Arduino because DS wasn't around, and with some support from suppliers, the price dropped 65% and eight 10yr old kids got introduced to Arduino, which is being repeated this year. They went on to purchase a basic kit which ran to NZ$60 and lasted about 300 times longer than any computer game that the parents may have had to fork out for, as well as stretching their brains a bit more.

As much as I love Digispark, I still think the Arduino is a good platform to start from.

You might be interested in '12blocks' ( http://onerobot.org/products/12blocks/ ) which Hanno is just finishing the Arduino support for.
Its drag and drop with multi platform support and does give you the code as well.
It has some really clever tricks to allow manipulation of the real time variables, along with multiple sketches running at the same time.
( ** reminder to chase him to see where it is at)

Your security issues aren't present in Windows, and it also runs from a memory stick, so even less admin support.
Because of Bluebie and other 'open sourcers' (or should that be Sorcerers  ::) ) we can enjoy the benefits without paying an arm and leg, that many other platforms require ....thanks guys/girls.

Cheers
Mark




WKB

  • Newbie
  • *
  • Posts: 7
Hi Mark -


You are not butting in, your voice is worth hearing on this matter.



I think you are guys are making a very good case against using digispark outside of the home or personal lab. It really doesn't matter if Windows does not have this problem because I am working with Mac computer labs in this instance. All of the arguments and suggestions make it very clear that digispark and arduino communities  are arguing on the behalf of are peripheral interest on the fringe of the larger IT communities. Kids make things because it is part of their creative nature, education is about helping children find productive outcomes for their curiosity and initiative.


All of the somewhat libertarian views of community I have seen here make me believe that the tools and approaches may just be another foot note in the economic history of computing and manufacturing. I may be a bit Marxist in my analysis, but the social periphery needs to be pulled into the mainstream for it to matter. These conversations convince me that this approach will be looked upon with fond nostalgia and not much else.


I do appreciate the help, but I can see this is not where I should be investing my time for this project.  Maybe I will find a better use for the digisparks around my workshop than in the community.


Best,
WKB

digistump

  • Administrator
  • Hero Member
  • *****
  • Posts: 1465
WKB, all,


I tend to stay out of these discussions about goals, views, etc - my interest is purely in producing the best (and open source!) product I can - but I thought I'd chime in with the technical/roadmap "offical" side of things.


Digistump is a young company (very young) - and we are growing and improving at our limit right now. The value of something like perfect working of the Mac version without having to disable gatekeeper isn't lost on me (though I'm tinkerer first, business person second) - I hope to be able to work that out someday soon, but so far there have been bigger priorities - like shipping product and getting the IDE to work for all platforms first.


We've shipped about 500 Digisparks to schools so far, that we know of and I've personally taught local high school kids to use them. I grew up surrounded by teachers, including my father, and education is a key reason the Digispark is kept as cheap as possible. While my ideals lean very much toward the community, and the community will always drive which way I take most things - I still have my own goals for the company, and one of them is educational use.


Will Eclipse, etc ever be supported? - I won't do it, this would never justify the investment and is outside of my area of expertise, I also don't personally use eclipse - but, this is an open source community afterall so if someone wants it, they should do it, and I'd be happy to provide any informational/testing help I can.


All that said, Digistump can't please everyone, and we don't try - that's why we make it open source! If someone wants a no-gatekeeper-disable-required package right now, they should by all means go ahead and make it. Arduino isn't what it is because Mossimo, et al sat down and made everything perfect - it is that way because the community did that - and it took many years. If someone tomorrow said they wanted 100 Digisparks for school use but the gatekeeper thing was a dealbreaker, I'd probably make that a priority - but until then I have to balance everything on my list, and while that is toward the top, the top item is supporting the community and customers that we already have.


I don't want to interrupt or discourage discussions like this - just wanted to throw in the "official" (I hate saying that) word on Gatekeeper and things like that.

Mark

  • Full Member
  • ***
  • Posts: 196
Erik
Well put.
The priorities must have changed hugely with the quantum leap in size of the kickstarter ...

@WKB
Quote
... I think you are guys are making a very good case against using digispark outside of the home or personal lab...

I'm not sure I'd go that far, but the limitations does make some things more difficult for new comers to get their heads around.

Digispark has limitations with the number of pins and their uses, and to a newcomer grasping to understand how the same pin can be an input and output, but you can't use this because of that, and this one needs to have this treatment, can become a little daunting.

That said, its possible to put together a program to teach and avoid those issues.
The price means you can get a lot more for the same $ (I paired the pupils to share 5 kits, among 10 pupils)


I have always needed to send stuff back to the computer to see where my program is going wrong, and I missed that facility in DS (I haven't had a chance to try the new IDE) and windows.
While there are various programs to facilitate it, if you're using the USB pins for other purposes, then you just can't.


Theses are the limitations of DS, and also the strengths of DS, its great when you only need a few pins, or want to interact using USB, and is cheap.

For what its worth I mounted the standard Arduino to a board for the school project.
I'm not sure how I'd handle the DS in the same environment.



Mark


digistump

  • Administrator
  • Hero Member
  • *****
  • Posts: 1465
Mark - you should check out the DigiUSB library and command line tools - specifically the digiusb tool in the new release - while the hardware/space limitations still exist using DigiUSB.delay() instead of delay and DigiUSB.println() with the digiusb program you get very close to the Arduino experience.


One more thought to add to this discussion - support for codebender.cc is all but complete for the Digispark as well - this is a solution that requires no changes to gatekeeper.

Mark

  • Full Member
  • ***
  • Posts: 196
Erik
Thanks
I downloaded the new IDE, but there are many distractions at the moment  and the tropical holiday arrangements for some reason have a priority.

I will try to test it out.

mark