-
-
-
Thanks for the perspective. I think I'm just as atypical, but on the other side of the fence. While Javascript is appealing, I'm a software engineer, so different languages aren't scary to me, whereas I'm still learning the hardware side (I hardly know what you're talking about with the mosfet) and I'm horrible at soldering. I get by fine with through hole, but my attempts at SMT were disastrous. I guess I just need to learn with some cheaper components instead of my pricey Espruino boards that I don't want to bork.
-
Hey, Gordon. I was a Kickstarter backer and I've enjoyed playing with my boards. Just thought I'd share some of my experiences.
I see your Espruino boards as prototyping boards, for two reasons:
- it has extra components/size that I wouldn't always need if embedding (same applies to the ST discovery boards)
- cost
However, it's not really the ideal prototyping board:
- I may be assuming too much from myself, but I doubt the audience that gets excited about Javascript on a micro also is great at SMT soldering (I sure am not and it's one of the main reasons I haven't played with the boards more)
- no headers for easy connection to shields or breadboards
All that said, cost is really the biggy. I appreciate your concerns and don't expect you to give things away for free, but when I can easily include even something like an Arduino Micro for half the cost (and not have to deal with SMT), I'm almost always going to go that route. But really, I'm usually just creating a standalone Arduino on perfboard.
Still, I think there are some gaps you could fill here that would help a lot and make me more likely to use Espruino:
- provide a more complete prototyping board (instead of SD card reader and SMT areas for components, include some sort of header/headers)
- provide a simpler, smaller board for lazy embedding (similar to the Arduino micro)
Just my opinions ;)
- it has extra components/size that I wouldn't always need if embedding (same applies to the ST discovery boards)
-
First, judging from the new comment in the code and this discussion, I just want to be absolutely clear that the intent of my question was nowhere near suggesting that you were lying or trying to nitpick the process. I just was surprised when I saw that it said complete and was curious. I completely understand your frustration and apologize for contributing to it.
I'm a bit slow to get into the code, as I'm trying to finish a couple of other projects before I start spending more time with Espruino. But I'll get to it soon and will happily make tutorials and help with bugs/features where I can.
-
Oh, I forgot to mention some config you'll need to use stlink in the vm. Basically, you'll want to tell virtualbox the vendor and product ids for your device. Look in vm/Vagrantfile and you'll see a line that looks like:
vb.customize ["usbfilter", "add", "1", "--target", :id, "--name", "stm32-vcom", "--vendorid", "0x0483", "--productid", "0x5740"]
Just change the values of vendorid and productid to match what lsusb ('system_profiler SPUSBDataType' on OS X) tells you for your device.
-
Well, there were lots of fun hurdles, but I finally got a working build environment that can build itself automagically. The instructions are the same as before, with a few extensions:
- after the vm is created, stlink is built (more on this below)
- after that, arm-eabi-toolchain from jsnyder (https://github.com/jsnyder/arm-eabi-toolchain) is installed
- on my machine, it took about an hour (all but maybe 10 minutes of this is building using the jsnyder/arm-eabi-toolchain makefile)
It works! I've been able to build for my STM32F4DISCOVERY, flash it using stlink, and use screen to get to the virtual terminal - all within the vm.
I wish it didn't take so long. For those more familiar with the toolchain, is an hour normal? I tried adding some settings to the vm to use more cores and added 'PROCS=2' before my make statement, but that didn't seem to change anything.
Another option is I could just create an image of the vm at this state and that could be hosted somewhere (probably not in this repository since it would be fairly large). However, it would be much faster to setup for the first time.
Please let me know how it goes if you give it a try. I hope this is useful to others ;)
- after the vm is created, stlink is built (more on this below)
-
-
-
-
I got a basic vagrant vm created. I don't have the compile toolchain setup yet. I'm new to building for embedded processors, so I'm still trying to figure out how to build. I installed arm-linux-gnueabi-gcc-4.6 and made a soft link to that from arm-none-eabi-gcc and ran 'STM32F4DISCOVERY=1 RELEASE=1 make' but get loads of warnings. I'm guessing that arm-linux-gnueabi-gcc-4.6 isn't what I should be using?
Anyhow, if you want to see the vm and maybe help get the correct compiler setup...
To setup the vm on your machine:
- install VirtualBox: https://www.virtualbox.org/
- install Vagrant: http://www.vagrantup.com/
- download the 'build_vm' branch of my fork of the Espruino repo: https://github.com/bluecamel/Espruino/tree/build_vm (I'll send a pull request when this is working)
- cd into the vm directory
- type 'vagrant up' (this should download the Ubuntu image, then install all of the required packages...it takes several minutes, depending on your bandwidth/machine)
- type 'vagrant ssh' (this gives you a ssh session into the machine)
- you have access to the Espruino repo within the vm at /Espruino (any files you edit here are synced with your host machine and vice versa)
For those interested in how I made it (or want to help with or suggest configuration):
It just uses a bare-bones precise32 image that I added a few basic things to (python, pip, git, make, blueprint). I left out arm-linux-gnueabi-gcc-4.6 for now, since I'm not sure that's right.
I used blueprint (http://devstructure.com/blueprint/) to generate the chef config files. Vagrant runs Chef Solo (http://docs.opscode.com/chef_solo.html) using these config files to install all of the packages we need/want in the vm.
If you want to contribute your changes (installed packages and config files):
- type 'blueprint create EspruinoBuild'
- type 'blueprint show -C EspruinoBuild'
- this should have created a folder named 'EspruinoBuild' in the current directory
- replace /espruino/vm/cookbooks/EspruinoBuild with the directory you just created
- commit your changes to the repo (all should be config files under the vm directory)
- all the rest of us will need to do (after pulling the changes) is type 'vagrant reload' from the vm directory
- install VirtualBox: https://www.virtualbox.org/
-
-
Sorry, I later remembered that the Espruino board uses the CC3000, and sure enough...it works. I would like to figure out Smart Config with it, though, but I'm probably just missing something.
Also LIS302DL is already supported and works very well on my F4!
I'm working on a project using the ID-?? RFID, so I'll probably be building out a library for them. What's the best way to add a module lib? Can we do something like Tessel does with npm packages? It would be really nice to just 'npm install pn532' and get going.
-
-
-
Thank you, thank you, thank you!
I'm just starting out with microcontrollers, but do hope to make and sell my own inventions (possibly crowd-funded) someday. It's great to know that I'll have STM32 as an option for open source projects and I'll definitely contribute to the community as much as I can.
Speaking of, I'd love to help improve documentation/tutorials (not that they're not great already, but definitely have room for expansion or touching up details). Will you be including that in the git repo or some other way that other people can contribute?
Also, when will you be releasing the hardware sources?
Okay, I'll stop blowing up your forum for now. Sorry, I'm truly very excited by this project. I'm off to start connecting things to my dev board and getting further engrossed.
-
I think a lot of us have a history of building Arduino-based projects, so support for a lot of the common devices would be smart. I'm thinking of the popular Adafruit, Sparkfun, etc. breakout boards and even shields. Off the top of my head, this would include:
TI CC3000 wifi
RN-41 and RN-42 bluetooth
HC-05 and HC-06 bluetooth
Adafruit neopixel
PN532 RFID/NFC
SM130 RFID
ID-20LA, ID-12LA, ID-3LA RFID
ADXL??? accelerometers
L3GD20 and L3G4200D gyros
ITG-3200 gyroAlso, since the STM32 discovery boards are a cheap way to play with these chips, being able to interface with their built-in devices would be nice:
- LIS302DL or LIS3DSH ST MEMS 3-axis accelerometer
- MP45DT02, ST MEMS audio sensor, omni-directional digital microphone
- CS43L22, audio DAC with integrated class D speaker driver
Sorry if some of these are already supported. I've just skimmed the surface of what's available ;)
- LIS302DL or LIS3DSH ST MEMS 3-axis accelerometer
-
-
-
-
I just got the basic setup working over serial on my STM32F4DISCOVERY (I had one and I couldn't wait for my WiFi Wireless Kit to start playing)! Thanks so much for releasing the code. I'll be playing with that next to see if I can save without registration. Can't wait to see where this project goes in the future and hopefully I can be involved in getting it there!
ummkay