Base! We have a problem!
얼마전에 있었던 일 입니다. 거의 다 작성된 코드로 테스트를 수행하던중, Device I/O 문제를 일으키며 예외가 발생하기 시작했지요. 바로 전날까지 멀쩡히 돌아가던게 말이죠. 최근 머리가 항상 무겁고 띵해서 그런지 원인을 찾는데 오랜 시간이 걸렸습니다. 원인은 S/W가 동작하던 라즈베리파이 기기와 연결된 마이크로 펌프 였습니다. 전체적으로 메인보드(컴퓨터의 그것은 아닙니다)에 몇가지 기기들이 붙어있는 모양으로 이루어 져 있는데, 문제가 발생하기 전엔 마이크로 펌프를 연결하기 전 이었거든요. 혹시나 싶어서 펌프 가동 전용 버튼을 만들고 임의적으로 가동과 정지를 해 보았습니다. 그리고 S/W의 메인루틴을 수행시켜 보았지요. 펌프를 가동하지 않고 수행하면 1회는 정상동작 하였으나, 펌프를 가동/정지를 한 후 수행하면 100% 오류를 냈습니다. 그리고 결국 메인보드에 공급되는 전체 전류와 메인보드에 장착된 기기들의 소비 전류를 계산 해 보았지요. 하지만 전류량 총합은 문제가 없어 보였습니다. 그.런.데.... 한가지 간과하고 있었던게 있었지요. 제가 전기나 기계쪽은 잘 몰라서 놓치고 있었지만, 펌프 라는것이 모터를 쓰는건데, 모터는 초기 가동시 전류를 많이 먹는다고 들었거든요. 가동중에 소비되는 전력 자체는 문제가 없겠지만 펌프의 모터가 구동되는 순간에 소비되는 전류가 높아서 일시적으로 많은 전류를 소비하였고, 이는 메인보드에 연결된 다른 기기에도 문제를 일으키는 것 인 것으로 추측되었습니다. 돌이켜 생각해 보면, 펌프를 메인보드에 장착하고 난 뒤로 라즈베리파이가 자꾸 뻗는다던가 빌드가 게시되지 않는다던가 하는 문제가 자주 발생하였거든요. 시험삼아 전압(12V)은 같고 소비전류가 절반(600mA)에 해당하는 펌프를 주문하여 테스트 해 본 결과, 잘 동작하네요. -_-).. - 라즈베리파이 3 B - Windows 10 IoT Core - C# 끗