티스토리 뷰
해당 포스트는 iot쪽에서 일하고 있는 현직자가 느끼는 어려운 점에 대한 내용입니다.
무엇을 개발을 하고 있는가?
현재 IoT 펌웨어 쪽을 개발하고 있습니다.
사실 대학다닐 때 펌웨어를 집중적으로 한 적 없어서 기본적인 내용도 몰랐기 때문에 처음 펌웨어를 개발할 때 고생좀 했습니다.
아직도 잘 모르지만 현재까지 1년동안 개발하면서 느낀 점을 써보려고 합니다.
현재 저는 LoRaWAN 펌웨어 개발을 하고 있습니다.
인프라에 사용될 디바이스를 미국 호주 유럽 일본 한국 등 여러나라에 팔기 위해서 개발을 하고 있습니다.
가격이 중요하다
사실 IoT 펌웨어 개발은 그렇게 어렵지 않습니다. 인프라에 활용되는 장비의 펌웨어는 정말 아무 기능이 없다고 해도 무방합니다.
단순한 GPIO 입력으로 장비에 연결된 값을 읽고 판단하는 정도 입니다. RTOS 역시 전혀 필요없는 기능이라고 생각합니다.
그렇게 복잡한 기능이 들어가지도 않고 AT 커맨드 모듈을 이용한 개발 역시 불필요하다고 생각합니다.
이렇게 생각하는 이유는 가격입니다. 고객들은 모든 디바이스들이 $50 수준으로 결정되기를 바랍니다.
그렇기 때문에 AT 커맨드를 사용할시 host mcu가 필요하고 이는 디바이스의 가격을 2배로 올리게 됩니다.
host mcu는 at 커맨드 펌웨어를 펌웨어 업데이트 역시 고려해야하기 때문에 비싼 mcu를 선택하게 됩니다.
MCU의 문제
개발을 진행할 수록 별 기능이 없는 디바이스를 만들 시 arm기반의 st사의 제품을 많이 사용하게 됩니다.
특히 요즘은 cortex m0기반의 mcu들을 쓰고 있는데 개인적으로 문제가 많다고 생각합니다.
일단 저소비모드에서 디버그가 불가능합니다. 여기서 문제 생각외로 많이 생기는데 버그 찾는데 고생 많이 합니다.....
모든 개발을 레지스터를 보고 만들 수 없기 때문에 제공해주는 라이브러리를 사용하거나 오픈소스 기반의 드라이버를 사용합니다.
이 때 생각외로 해당 디바이스나 라이브러리에 문제가 있는 경우가 많습니다.
제가 특히 고생했던 부분은 internal reference voltage adc 와 internal temperature adc 부분입니다.
해당 드라이버가 제대로 지원을 안한 탓인지 우리 쪽 디바이스에서는 몇번이고 검사를 해도 값이 이상했는데 레퍼런스 보드에서는 잘 작동하길래 원인을 찾느라 고생을 엄청했습니다.
전파법 인증
개인적으로 가장 어렵다고 느끼는 곳이라고 생각합니다. 현재 일하고 있는 부서에서도 해외에 팔 제품에 대한 개발이 많이 이루어지지 않았고, 해당 디바이스가 처음이였습니다. 특히 LoRaWAN은 문제가 많습니다. 각국의 전파환경을 제대로 고민하지 않고 만들었다고 장담합니다. 현재 Sigfox에 대한 디바이스 개발을 돕고 있는데 sigfox는 각국의 전파 환경에 대한 이해를 바탕으로 만들어져서 LoRaWAN처럼 확인하는 것이 힘들지 않습니다. 각국의 전파인증만 받으면 끝입니다.
각 나라의 전파법에 대한 특이점을 간단하게 정리해보겠습니다.
해당 내용은 subGhz대역, 즉 비면허 대역에서의 얘기입니다. 이거 부서사람들 중에 아무도 몰라서 해당 내용 찾느라 시간 엄청오래걸렸습니다.
미국 캐나다 남미 - dwelling time이라고 송신시간은 400ms를 넘지 말아야합니다. 또한 frequency hopping이라는 기능이 필요합니다. 또한 채널이 50개 이상되야하며 21dbm이상의 송신 파워가 필요합니다.
EU - Fair Access Policy이라는 법이 있습니다. 하루에 30초 이상 못보냅니다. 또한 duty cycle이라고 특정 채널에 정해진 duty cycle이 존재합니다. 해당 의미는 해당 사이클을 만족못하면 송신을 하지 못한다는 의미입니다. 예를 들면 1% duty cycle을 가지는 어떤 주파수에서 송신시간이 1초가 걸렸다면 다음 송신시간은 100초 이후가 됩니다.
일본, 한국 - carrier sense 라는 기능이 존재합니다. 송신 전 어떤 주파수가 일하고 있는 지 확인하고 빈 주파수를 사용하는 기능입니다.
라이센스
개발환경에 대한 라이센스 필요, 이건 고객이 소스코드를 받는 경우가 있는데 이 때 개발환경 구축에 대한 얘기가 나오게 됩니다. 현재 stm32L0 F0에 대해서는 2020.01까지 무료기 때문에 무료 라이센스를 써서 개발하고 있습니다. 하지만 그 이후면 라이센스가 끝나고 어떻게 해야하는 문제가 생깁니다. 이걸 인식했는지 st는 이클립스 기반의 독자 IDE를 개발했고 제공하고 있습니다. 이 IDE를 사용하면 라이센스에 대한 문제는 해결입니다. 그리고 맥에서 돌아갑니다.!!!
오픈소스 사용할 시 라이센스 필요. 이거 써도 되나하고 썻다가 큰일납니다.
무조건 오픈소스 확인 툴들을 돌려서 확인하세요. 다행히 LoRaWAN은 semtech에서 제공해주었기 때문에 잘 사용했습니다.
이상 현직자로서 느끼는 iot펌웨어 개발 시 느끼는 점에 대해서 써보았는데요.
개인적으로는 재미있습니다. 데이터시트를 하나하나 살펴보면서 이딴 기능도 있네 하며 몰랐던 내용들을 살펴보는 점들은 꽤나 즐겁기도 합니다.
- Total
- Today
- Yesterday
- XHR
- XMLHTTPRequest
- Session
- bash_profile
- Internet of Things
- data visualization
- OSX
- bashrc
- cookie
- 쿠키
- IOT
- Python
- homebrew
- Anaconda
- deck.gl
- 세션
- BREW
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |