USB device를 가진 MCU를 PC에 연결시 Mass Storage Device로 동작시키고, Hex파일을 copy하면 MCU의 application code가 업데이트 되는 형태.
CREATOR Pro 보드 사용 및 분석
Rak Wireless사의 CREATOR Pro 보드는 Arduino Uno의 폼펙터를 가지며, RAK473 WiFi 모듈을 사용하고 NXP사의 LPC11U35를 사용해서 mbed에서도 프로그래밍이 가능하고, Arduino에서도 프로그래밍이 가능하다. WiKi에 나온 이 제품의 정보는 다음과 같은데, Realtek사의 Ameba RTL8710보드와 거의 동일하다.
CREATOR is a programmable platform for developing all kind of IoT applications. CREATOR is equiped with various peripheral interfaces, including Wifi, GPIO, I2C, UART, PWM, ADC. Through these interfaces, CREATOR can connect with electronic components such as LED, switches, manometer, hygrometer, PM2.5 dust sensors etc.
The collected data can be uploaded via WiFi, and be utilized by applications on smart devices to realize IoT implementation.
CREATOR and Arduino Uno have similar size, and the pins on CREATOR are compatible with Arduino Uno. CREATOR uses Micro USB to supply power, which is common in many smart devices.
Currently, CREATOR currently supports Windows XP/7/8 32 and 64 bits and MAC OS operating systems. In this example, please use Arduino IDE with version 1.6.7 or later.
LPC11U35의 역할
- CMSYS-DAP가 내장
- RAK473를 프로그래밍 및 디버깅이 가능하게 함
- CMSYS-DAP 펌웨어는 JTAG을 통해서 업로드하고, 이후에는 CRP-DISABLED에 파일을 Copy하면 된다. 문제는 Mac에서 파일을 카피하면 안되고 윈도우즈에서만 된다. 관련자료
- Tindie에서 $15에 판매하는 같은 기능을 갖는 외장형 보드
RAK473
Rak 홈페이지의 자료 및 Github의 자료
아두이노 개발 환경에서 사용법
추가적으로 함께 보면 좋은 자료
BBC Microbit 오프라인에서 사용하기
BBC microbit를 오프라인에서 사용하려면 링크를 참고 하고 Manuall Installation 항목을 따라서 환경을 셋업한다.
1. yotta설치
Mac OS의 경우
brew tap ARMmbed/homebrew-formulae
brew install python cmake ninja arm-none-eabi-gcc
pip install yotta
Trouble shooting
brew 관련 아래과 같은 문제가 있을 경우
sudo chown -R $(whoami):admin /usr/local
cd $(brew –prefix) && git fetch origin && git reset –hard origin/master
터미널에서 다음과 같은 에러메시지가 나올때
error: connection error: (“bad handshake: Error([(‘SSL routines’, ‘ssl3_get_server_certificate’, ‘certificate verify failed’)],)”,)
pip install -U certifi
참고: https://github.com/ARMmbed/yotta/issues/744
2. Srecord 설치
brew install srecord
3. 예제 코드 받기
git clone https://github.com/lancaster-university/microbit-samples
cd microbit-samples
4. 타겟을 miccrobit로 설정
yt target bbc-microbit-classic-gcc
5. 프로젝트 빌드
yt build
6. 마이크로비트에 다운로드 하기
마이크로비트는 MICROBIT라는 이름의 외장디바이스로 되어 있으니 hex파일을 copy하면 된다.
cp ./build/bbc-microbit-classic-gcc/source/microbit-samples-combined.hex /Volumes/”MICROBIT”
참고
https://lancaster-university.github.io/microbit-docs/offline-toolchains/
http://yottadocs.mbed.com/#installing
BBC micro:bit 분석
BBC micro:bit는 영국에서 컴퓨터 교육용으로 디자인된 마이크로컨트롤러 보드이다.
개발에 참여한 파트너사들
- Microsoft – Block Editor, Touch Develop 개발
- Lancaster University – Device runtime개발
- Farnell element14 – 디바이스 생산
- Nordic Semiconductor – MCU 제공
- NXP Semiconductors – USB인터테이스 칩 및 센서 칩제공
- ARM Holdings – mbed 하드웨어, 컴파일러 서비스
- Technology Will Save Us – 하드웨어 디바이스 개발
- Samsung – 안드로이드 앱 개발
- ScienceScope –iOS앱 개발
- Python Software Foundation – MicroPython 제공, 웹기반 파이썬 에디터 개발
- Bluetooth SIG – Developed the custom Bluetooth LE profile.
하드웨어
- 메인 MCU: ARM CortexM0 코어에 블루투스 LE가 내장된 노르딕사의 nRF51822 (256KB flash, 16KB SRAM)
- 인터테이스 칩: USB 2.0 OTG가 내장된 NXP의 KL26Z (CortexM0+)가 DAPLink를 제공하여, 가상 USB 플래시 드라이브를 제공해서 펌웨어 업데이트를 가능하게 하며, USB 파워를 받아서 전압 레귤레이터의 역할. 관련 포스팅
- 3축 가속도 칩: NXP MMA8652, 메인 MCU와 I2C로 연결
- 3축 지자기센서 칩: NXP MAG3110, 메인 MCU와 I2C로 연결
- 5×5 LED 어레이
- 2개의 버튼
핀아웃
모두다 브라우저기반의 컴파일러를 제공하며, 난이도에 따라 아래 그림 처럼 3가지로 나뉠 수 있다.
- CodeKingdoms – 자바스크립트
- Microsoft Block Editor – Blockly
- Microsoft TouchDevelop
- MicroPython
- mbed에서 사용하기
- Espruino에서 사용하기
아키텍처
기타
관련자료
- Bluetooth SIG에서 제공하는 4부작 웨비나 : 주로 BT관련 내용이 많다.
- http://bluetooth-mdw.blogspot.kr/p/bbc-microbit.html : BT개발자의 블로그
- https://m.pxt.io/
- http://www.samsung.com/uk/microbit/
- https://www.techwillsaveus.com/microbit/
- https://www.kitronik.co.uk/bbc-micro-bit-accessories.html
- https://codekingdoms.com
- http://research.microsoft.com/en-us/projects/microbit/
- https://github.com/Microsoft/microbit-touchdevelop
ARM mbed – 데모 (big mouth billy bass)
ARM mbed는 2008년 ARM사의 직원이었던 Simon과 Chris가 Rapid Prototyping을 위한 개발 보드를 기획하면서 프로젝트가 시작이 되었다. 이때 ARM 코어를 사용하는 NXP사의 LPC1768칩을 사용하여 모듈을 구성하였으며, 2009년에 보스턴에서 열린 ESC(Embedded System Conference)에서 NXP사의 부스에서 모듈이 릴리즈가 되었고 물고기가 트위터 메시지를 네트워크로 수신해서 음성으로 출력하는 데모를 진행하였다.
2009년도 관련 동영상
ARM mbed connect
2011년 참석한 ARM mebd connect 1회 행사에 대해 정리한 파일
WIZnet mbed 라이브러리
W5500 Ethernet 라이브러리를 mbed에 포팅후 W5100,W5200, W5500까지 지원을 하는 라이브러리를 만들어 mbed.org에 업로드했다. 사용법은 간단하다. 라이브러리를 import하고 사용하는 Wiznet칩 또는 모듈에 따라서 wiznet.h에 있는 #define문에서 사용할 칩만 나두고 나머지는 주석 처리하면 된다.
IoT 디바이스 개발을 위한 ARM의 플랫폼적 접근
mbed – SeeedArch 프로그래밍하기
SeeedArch
mbed의 플랫폼 중의 하나인 Seeedstudio에서 만든 보드, SeeedArch를 테스트중이다. 이 보드의 스펙은 다음과 같다.
- mbed enabled
- online development tools
- easy to use C/C++ SDK
- lots of published libraries, projects
- Standard Arduino Appearance, two Grove connectors
- available with 3.3V compatible shields
- a large number of grove modules
- Drag-n-drop programming
- NXP LPC11U24 MCU
- Low power ARM Cortex-M0 Core
- 48MHz, 32KB Flash, 8KB RAM, 4KB EEPROM
- USB Device, 2xSPI, UART, I2C
이 보드의 가장 큰 특징은 보드의 형태가 아두이노 보드와 같아서 아두이노 쉴드를 연결할 수 있다.
코딩은 mbed의 웹컴파일러로 하고 다운로드 역시 msd로 잡히는 외장드라이브에 copy를 하면 되는데, Mac이나 Linux에서는 Windows와 달리 drag & drop이 안된다.
프로그래밍 방법 (Mac)
- 보드의 왼쪽에 있는 리셋 버튼을 길게 누른다. (짧게 누르면 H/W 리셋이고, 길게 누르면 ISP 모드이다.)
- 그러면 Finder에 CRP DISABLED 라고 스토리지가 잡힌다. Windows에서는 이 폴더에 있는 firmware.bin을 지우고 새로운 firmware.bin을 copy하면 되지만 Mac에서는 Terminal에서 다음과 같이 dd 명령어로 copy한다.
- dd if=새로운 firmware 파일명 of=/Volumes/CRP\ DISABLD/firmware.bin conv=notrunc
좀 더 쉽게하기위해서 Mac의 Automator를 사용하여 쉘 스크립트를 만든다.
- dd if=$* of=/Volumes/CRP\ DISABLD/firmware.bin conv=notrunc
LED blink 프로그래밍
관련정보: SeeedStudio WiKi