Giter Club home page Giter Club logo

mchck's Introduction

The MC HCK!

The goal is to have a small, cheap, and powerful development board that supports USB for easy programming, with a target price of $5. This allows us to use the board for all silly purposes where spending >$20 for an Arduino is just too much.

mchck's People

Contributors

bgamari avatar bobryan530 avatar corecode avatar deanrock avatar jaseg avatar karel avatar kfoltman avatar larsh avatar mashu avatar pascalhahn avatar roysmeding avatar tralamazza avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mchck's Issues

GNDPWR <-> VSS connection missing?

Hi all, me again :-)

Here is another thing I don't understand in the latest board revision: the USB ground and VSS seem to be disconnected from each other? So VSS is floating? Maybe I am missing something really basic?

Normally they should be connected (of course, through a ferrite bead such as BLM15HG601SN1D or something like this, to avoid connection/disconnection spikes from damaging the MCU)

Use Linaro's bare metal arm-none-eabi-gcc instead of summon arm toolchain

To quote the readme file from summon-arm-toolchain:

THIS PROJECT IS NOT UNDER ACTIVE DEVELOPMENT ANY MORE.
THERE IS A BETTER REPLACEMENT FOR THIS!
Since not so long ago there is a very good toolchain available that replaces
summon-arm-toolchain. Is better tested and there are more people working on it.
Consider visiting:
https://launchpad.net/gcc-arm-embedded

I have been using the linaro toolchain in order to compile programs for STM32F0,3,4 as well as LPC11xx and it works flawlessly. Also it is much easier to install. Just extract the files to /opt/ and edit your .bashrc (.zshrc) to add the bin directory to your path.

compiling on windows

with a clean mingw, msys, arm-none-eabi, ruby install.
neatly compiles all the sources but runs into issues at linking.

seem to be related to the real-ld ruby shell script and -flto

even though most users are on linux, it seems a working windows environment is very close - and going the last mile would not be a bad thing.

Standardize basic interface pins

People will generally be using the basic interfaces like the UART, SPI etc. a lot. Makes sense to standardize what pins these use for ease of use.

The ideal scenario, I think, would be:

  • Default pins for UART, SPI, I2C, all 8 FTM0 channels brought out
  • No conflicts between any of them, i.e. all usable at the same time
  • Only use the 14-pin headers on either side for these, to make them easy to break out to a breadboard or whatever

I looked at the options a bit and here's what I've determined so far:

  • SPI: PU5 = SIN, PU6 = SOUT, PU7 = SCK. Would be nice to change CS for the flash to CS0 since it doesn't conflict with FTM.
  • UART0: PU1 = TX, PU2 = RX, conflicts with FTM, or PL4 = RX, PR5 = TX
  • UART1: PU12 = TX, PU13 = RX, conflicts with FTM
  • UART2: PU5 = TX, PU6 = RX, conflicts with SPI
  • I2C: PL10 = SCL, PL11 = SDA
  • PU14-12, PU4-1 can all be used as FTM channels. Channel 0 of the FTM is currently only brought out on the debug and other right-side connector.

I think the ideal scenario could be accomplished if some of the pins were moved around, namely:

  • Change flash footprint CS pin from SPI0_PCS1 (PTD4) to SPI0_PCS0 (PTD0) so it doesn't conflict with FTM0_CH4
  • Swap PR3 (PTC1) with the same SPI0_PCS0/PTD0 pin -- since it's reserved anyway -- so that all the FTM signals are available on the upper connector.
  • Swap PR5 (PTB17) with one of the pins on the lower header, preferrably PL5 (PTA4) so we can access UART0 RX/TX with no conflicts.

What do you guys think? I have no idea how much space there is for routing this, but I think it would remove having to think about conflicting pin muxes so much, so it might be worth it.

USB OTG signal?

Hi all!

Maybe I am not understanding something basic, but I am looking at the N-000056 and I don't get what it is supposed to be used. This is technically the Micro USB OTG ID which needs to be connected to signal ground if the board needs to act as a host, and left unconnected when acting as a slave.

However, it is connected to the pad "USB_D-" on the back. In the schematics it is connected to an independent P6 which isn't connected to anything.

Shouldn't we enabling connecting this to GNDPWR in order to selectively enable USB OTG host mode?

clean up silk screen

Need pin names on silkscreen and in general proper silkscreen for parts.

Probably need to generate new footprints for all of the parts.

link only sub-libraries

single library is getting too big - link only parts. also needed to avoid automatic linking of strong interrupt vector symbols

Getting linker error when using 'make' for compiling

I followed all the steps on the wiki to get the mchck code compiling. I am using xubuntu. I also installed Ruby 1.8

When i do 'make' in the examples/blink I get these errors.

arm-none-eabi-gcc -E -o blink.ld-template -P -CC -I../../toolchain//ld -I. -DTARGET_LDSCRIPT='"MK20DX32VLF5.ld"' -DMEMCFG_LDSCRIPT='"app.ld"' ../../toolchain//ld/link.ld.S
arm-none-eabi-gcc -o blink.elf -fplan9-extensions -ggdb3 -Os -Wall -Wno-main -mcpu=cortex-m4 -msoft-float -mthumb -ffunction-sections -fdata-sections -fno-builtin -fstrict-volatile-bitfields -flto -fno-use-linker-plugin -Wl,--gc-sections -fwhole-program -T blink.ld-template -nostartfiles -Wl,-Map=blink.map -Wl,-output-linker-script=blink.ld blink.o
../../toolchain//scripts/real-ld:77: syntax error, unexpected ',', expecting ']'
...-T", linker_in, *object_files, *call_args, "-Map=#{tmp_map.p...
^
../../toolchain//scripts/real-ld:77: syntax error, unexpected ']', expecting kEND
../../toolchain//scripts/real-ld:138: syntax error, unexpected ',', expecting ']'
...inker_out.path, *object_files, *call_args]
^
collect2: error: ld returned 1 exit status

Not sure if something is not configured correctly.

Simple IDE, PC interface and interpreted language

Imagine cheap USB MCU platform with those properties:

  • no SW installation required to develop at PC (ie no drivers installation, no IDE installation, ...)
  • IDE in web browser platform independent by design
  • powerful libraries to communicate (node-node, node-cloud)
  • concurrency tasks without threads

Dream ? May be, but could be feasible.

Well it is a lot of ideas and probably for extra wiki page or more, I will try to explain idea basis.

USB device without driver accessible from JavaScript in browser - USB MassStorage. HTML5 page with IDE can be stored there, it can be used for programming, debugging and data access communication also may be with combination of USB HID by GamepadAPI. So inserting USB MCU platform into PC can open Web browser with IDE. IDE can communicate with MCU throug "special files" or USB HID through Gamepad API.

Because IDE is in web browser, updates of IDE can be straight forward. Imagine that IDE can communicate with github directly ...

For building IDE components can help a lot, e.g. http://codemirror.net/

Storing whole IDE at USB MCU platform would not be problem because large SPI flash can be there.

If platform will support some simple interpreted language like http://www.sics.se/~adam/dunkels06lowoverhead.pdf compiler is not needed, just tokenizer and it can be implemented in browser JavaScript without huge effort.

If simple concurrency would be supported by interpreted language environment, hmmm
E.g. protothreads http://www.sics.se/~adam/dunkels06protothreads.pdf

OK libraries - I leave it for continuation, if there will be any.

What do you think about that ?

Crystal needed for reliable USB communication?

Hi,

Just noticed that the PCB doesn't have pads for an external crystal (say 16 MHz one). Should we have one? It should be easy to add one between pins 24 and 25.

I think a crystal will be a must if we want reliable USB communication (the internal oscillator in this type of MCUs usually has some drift leading to loss of USB connectivity).

Thanks, Adi

P.S. this is different than the 32.768 kHz RTC crystal for which there are some pads already - but that won't help in this scenario.

buffer cdc-acm tx until sof?

maybe we can buffer the usb serial data until SOF is received, and then package what we have. this avoids sending out 1-byte transfers when we're assembling a larger string char-by-char.

consider project rename

Well MC HCK or mchck is hard to pronounce and remember. I know it is a little bit silly issue, but addressing that now can help project to be popular. Contest could be way to right solution ...

put optional data FLASH/EEPROM on the bottom?

Feedback from 28c3:

if there is space, put a footprint for an optional data flash IC on the bottom. They are available in up to 64Mbit for SO-8 and could be nicely used for logging or small data exchange.

How can I buy the mchck board?

Hi!

I interested to buy the MC HCK board. I wanted to know how much it cost with the optional LiPo battery charger IC for battery operation and the optional automatic power source switch between USB, external and LiPo. Also I would like to know a little bit more about this options and more important some specifications. Finally, how can I get it here in Argentina and how much would it cost?

Please contact me at your earliest convenience,

shorter QFP48 pads?

There is a lot of space on the pins under the MCU. Why are these pads so long?

JST connector footprint for VLIPO

Consider switching GND and 3.3V so that GND and VLIPO wind up next to each other; modify VLIPO so that it can take a standard 100mil header and a 2mm JST battery connector.

Mini-USB connector is too far from edge of board

There is a great deal of room between the mini-USB connector and the edge of the board. Because of this it is not possible to plug most USB cables into the connector without cutting down the board.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.