IAMCIty = )

Secure IoT idea for “Intelligent Autonomous system for Monitoring and Control of Intersections” brought to life with #2015HackadayPrize

Similar projects worth following
[Final Brief Description] Hi, IAMCIty = ) I will do my best with my available capabilities to guaranty an optimum safety of my intersection, an intersection that I’m installed LOCALLY. And I will guaranty safety of all – people and vehicles; through my 3 stages of operating: Basic, Advanced, Fail-safe. I will use DSP and Image recognition, but will not be keeping Imaging data of you passing by or on my intersection :-) I will make my operations, communications and data secure. And can Not give remote control capability as this does not exist in my functionality. Most importantly this is not my goal - "to give someone remote control to an intersection".
My goal is to make an intersection in my city a better place for All of You, incl me :D What better means is: safer & more efficient; with priority always on safety.
For this I will use iMX6SoloX series SoC - Solution based on Cortex-A9 & Cortex-M4 with enhanced security capabilities.

Secure #IoT Idea #IAMCIty

* For “Intelligent Autonomous system for Monitoring and Control of Intersection”

* Brought to life through #2015HackadayPrize contest.

* Ultimate goal of this Hackaday Project as such will be #IAMCIty Proof of Concept (PoC).

[ Concept of operation – Final version 06.08.2015 ]

Introduction (only for information):

- Numbering is in order of building-up the foundations. Differently put, it can be seen as numbering every piece of puzzle when put in place. Thus after all pieces are within the puzzle frame and in the right order, the whole Image of puzzle can be seen. And only then the puzzle's Image can make sense.

- Concept is presented from 1st person to give actual sense of the base that will support as foundation the following actual implementation.

- With all that introduction in mind, this is the fundamental part of IAMCIty, for 1st technical details, please check this presentation from 06.08 project update - .

- Intersection, a simple definition taken from acting laws: That is the area created by two or more roadways at their junction, which can be at any angle.

IAMCity = )

1. Monitoring – This is the core functionality I have. To process Imaging data and create meta-data, upon which the Decision making process takes place. In that sense the data from an Imaging sensor will be gathered only for the needs of my Digital Signal Processing to result in meta-data. Once done the sensor data will be discard. To state it clearly - NO Imaging data what so ever will be kept of the passing traffic on my intersection, pedestrians or drivers of vehicles. To have that data is not required, nor can be of better value, for the actual Decisions-making progress once there's sensible meta-data. Last, but not least an important notion is that: Based on the meta-data the reverse process of creating the source Image is considered to be close to impossible, if not impossible.

2. Intelligent – In relation to my decision making process I'm not an A.I. in any way. But have the flexibility, to an extend that, I make my own decisions and they can respond to an evolving environment. A single decision of mine depend both on pre-defined rules and gathered meta-data. Because the gather meta-data can result in new, additional rules, i.e. generated another set of rules which is added to the pre-defined one. Then there's the directive that: No generated rule can overrule a pre-defined one.

3. Autonomous – I'm operating on my own. I do NOT need a central managing or control system. Also my goal is NOT to give 'remote access' to my input or output devices, including built-in and as well outside peripherals. A good example is that through my systems no one will be able to receive control to the end-points I'm connected to (as actuators for example). Simply because no such functionality exists within my programming. Yet the following case is considered and taken care of: There can be a situation where I'm not capable to handle the end-points (again as actuators for example). Therefore I can decide to release them from my control so other system can take control ONLY over the end-points, not me. As I'm autonomous. For control to be given back to me all systems must go through reset and an initialization process, including the actual boot-up of my core system, will take place.

4. Control – Only when no information signaling is capable of resolving an immanent situation, then I will be able to take control over “Traffic Signaling”. This action will be completely AUTONOMOUS, i.e. not executed by a remote command or governor. Because that simply does not exist within my programming.

For quick example:

- I can use the LED Traffic Lights to close an intersection where a traffic accident has taken place. NOT prior of that !

- Change the LENS of LED Traffic Lights for better perceptions from the participants in the traffic. Of course that will be taken upon determining...

Read more »

  • 1 × efus A9X i.MX6 SoloX based COM module
  • 1 × Trusted Platform Module (Version 2.0 or higher) Still looking for exact part number in easy to use package

  • 1st Video + more

    Dimitar Tomov08/18/2015 at 00:23 0 comments

    Published 1st Video of 2mins to meet Stage 2 requirements. Had a lot of difficulties with the video editing, disturbing to found out that under Linux it has not been improved a lot. Regardless video is a fact and will be continuing to update.

    New updates:

    1. Link to video on youtube added in main project description.

    2. Link to presentation (updated) used in the video

    3. Added TPM as part of components list, will update with exact part number asap. The issue is to find easy to use package and to find TPM 2.x and not TPM1.x ,which have a big difference.

    4. Will push TPM related code this weekend, also I think is best to fork the Trusted U-boot on IAMCIty GitLab repo and to push the 3.14 official BSP kernel. If possible will use 4.1 kernel as it's the next LTS and must have even better SoloX support than 3.14.

    5. On hardware , expect the TPM search I'm doing, will ping F&S for the HW platform status.

    - Also need to notify you, as well them, that will have to use an usb camera interface for the IAMCIty PoC. That I think will also accelerate the HW platform arrival.

    Time constrains are more tight than I initially thought. Even maybe understood, but that's for me to deal with ;-)

    Will do my best this weekend to push 1 more update about TPM, HW platform and some source code for the attestation part. Also maybe I can provide some info on DSP and GNU octave, but am not yet sure.

    Thanks once more for your interest and time!


  • 1st Technical related presentation + New LOGO

    Dimitar Tomov08/07/2015 at 00:48 0 comments

    Hello all,

    * Please find here IAMCIty Introduction and 1st Presentation the 1st technical related presentation of what's currently known. I myself expected to be more in-deep, but expect 2 more to come before 17 August. So stay tuned on next 2 weekends ;) Also there I'm mentioning the Sponsor of the hardware development platform for IAMCIty with links and just a brief info about the Company.

    * Updated IAMCIty Logo - This is only 1 of 20+ versions available currently to me:

    Graphical work by Grozdan Tomov, naturally my supportive father with free and engineering spirit = ))

    * Earlier today pushed Final concept of operations for IAMCIty, added Freescale tag to the project.

    * Now I'm officially submitting the project for #Hackaday2015Prize

    To be honest a bit pass midnight, but had to finish this. And must admit expected to take me less time to produce 1st brief technical overview of what's currently known. So long-story short after F&S "put a check mark" on HW development platform, I've started getting more technical. But I'm a bit foundation type of 'person'. Can't release something that I'm not sure is true, so currently withdrawing drafts, notes, that will produce 2 more presentations in next 2 weekends before 17th of August (as said above). Attestation and External operations would be the targeted topics - 1 presentation each. And will be starting the DSP algorithms research and development in the meantime.

    Now lets push this project log and enter the project into Hackaday2015Prize.

    Dimitar Tomov

    07.08.2015 02:00am

    Grenoble/Europe = )

  • Final concept of operation RELEASED + more

    Dimitar Tomov08/06/2015 at 01:38 0 comments

    Very Quick update:

    * Finally released the final "Concept of operation" of #IAMCIty = ) ( Being self-ironic ;-) )

    * Also today I'll be releasing the 1st of many technical presentation

    * More good news Surprisingly as completely out of the blue received amazing sponsorship offer from F&S Elektronik Systeme GmbH ( , a German-based company producing Single Board Computers and Modules for industrial purposes , and of course not only for that one purpose. They expressed the wish to grant me a Development platform for IAMCIty! And platform exactly with SoloX SoC. More valuable information about the generous sponsorship and the platform itself + links with technical details find below. But even more detail stay tuned for the presentation mention above, to follow today.

    * Will be releasing the IAMCIty LOGO again today ! A lot of catching up to do.

    * Added Freescale tag to the Project - why , well it's for more than one reason, keep reading below if curious :-)

    Before I give you the interesting info let me say that past months with no update on IAMCITY for me actually were very extensive.Tody is going to be one of the peaks, but it's for a very good reason - To push forward IAMCIty and start the actual RnD process. That can make me only happier than before ! And it does :-) It will be even super if someone following the project gets some joy from all the updates that are and will take place today.

    All of the Final conpect of operation can be possible only with extensive, enhanced and modern Security features of the Computational Device. In an embedded systems those device where once only Microcontroller units (MCU), then came the System on Chips (SoC) solutions. Now there are Microprocessor Unit (MPU) type of Solutions and finally Hybrid solutions, which fall into the category of SoC. Those hybrids can integrate both MPU, MCU and even FPGA. Which is the really interesting part. For this PoC the choice fall upon i.MX6 SoloX which features such Security extensions. And is to a sense hybrid solution for me as it features asymmetric multicore design. Combining both worlds of Cortex-M4 and Cortex-A9. My very rough definition would be “close to real-time MCU” plus “application MCU”. What makes it stand-out from most other ARM-based SoC, even having similar internal architecture. SoloX includes built-in secure boot mechanism and surrounding built-in peripherals for that, then we have the hardware accelerated encryption peripherals built-in and even ARM IP for securing one embedded application called TrustZone. Where TrustZone received its power features in ARMv8, ARMv7 architecture still has it's edge, even there.

    Thanks to F&S Elektronik Systeme GmbH (Official company web-site: ), I'll be given a development platform based on i.MX6 SoloX SoC that I will use for IAMCIty Research & Development. The platform it-self will have at its heart this module “efus™A9X“ holding the SoloX CPU/SoC and necessary peripherals, including of course RAM and Flash memory for the firmware ( official product page: ). For the actual RnD process of the device IAMCIty is going to be that module is going to be installed in a Carrier / Base board “efus™ Base Board“ (official product page: ). NB: Currently the Base board for “efus™ A9X” is not yet officially released.

    NB: SoloX is not pin-to-pin compatible with other Members of the i.MX6 series SoC (please check images from 08.06 project log).

    So thank You again F&S Elektronik Systeme for not only deciding to sponsor me and IAMCIty in particular, but also to in-fact deciding to give early access to such hardware as one complete EVM/Development platform for SoloX. And this way IAMCIty received its Hardware foundation = ) And also the saved budget on the platform can go for other needed...

    Read more »

  • Pushing for Final Concept [HW base selected], Draft V2 dropped

    Dimitar Tomov06/07/2015 at 18:30 0 comments

    As professional activities took over my time fully past 2 weeks, my most sincere set goal for DraftV2 release had to be dropped, yet I'm going for the *Final Version of the Concept as I've made the next step - Selected a HW Platform - iMX6-SoloX*
    You will see attached 4 Image at end of post - All are from the official Freescale Site for i.MX6SoloX, which follows - .

    Fey Key Points "Why iMX6-SoloX is my choice for Hearth of #IAMCIty = ) ?"

    0. Secure Solution:

    FYI: Page Number 441 of total 4687 - Document Number: IMX6SXRM, Rev 0, 2/2015
    Chapter "System Security" - Abstract of Security Features from Official Freescale Documentation 
    High Assurance Boot (HAB) feature in the System Boot up to RSA-4096 signature
    • Secure Non Volatile Storage (SNVS)
    • TrustZone (TZ) Architecture in the ARM Cortex A7 Platform, TrustZone aware
    Interrupt Controller (GIC) and TrustZone Watchdog Timer (WDOG-2)
    • TrustZone Address Space Controller (TZC-380) - providing security address region
    control functions on DDR memory space.
    • On-chip RAM (OCRAM) with TrustZone protection using OCRAM controller.
    • 32 Kbyte of on-chip Secure RAM
    • On chip OTP (OCOTP) with on-chip electrical fuses
    • Central Security Unit (CSU
    • Resource Domain Controller (RDC)
    • Secure JTAG Controller (SJC)
    • Locked mode in the Smart Direct Memory Access (SDMA) controller
    • DryICE (real-time monitors for frequency, temperature and voltage)
    • 10 tamper pins with 5 active tamper detection sources support
    • Hardware Cryptographic Accelerators
    • Symmetric: AES-128, AES-192, AES-256, DES, 3DES, and ARC4
    • Hash Message Digest and HMAC: SHA-1, SHA-224, SHA-256, SHA-384,
    SHA-512, and MD-5Public Key RSA (up to 4096 bit) and ECC (up to 1023 bit)
    • DPA protection for 3DES engine
    • True and Pseudo Random Number Generator

    *1. iMX6 SoloX is based on a known Series of MPUs with Known ARM Architectures*

    1a. Known ARMv7 Architecture - Cortex-A9 for main MPU

    1b. Known ARMv7 Architecture - Cortex-M4 for secondary MCU

    *2. Freescale iMX6 as ARM Series, yet New SoloX are already known in some degree to me*

    2.1 A lot of info & community

    2.2 Have experience with Freescale's ways - Doc & BSP

    2.3 ARM TrustZone - Secure & Non-secure world (just in a nutshell)

    2.4 There's an MCU which can coup hopefully well , with the need of Real-time Operations (Capability)

    *3. Image Camera Interface - More than 1 option, but there's a catch "optional analog camera"*

    3a 24-bit RGB
    3b 1ch LVDS
    3c 2x20-bit CSI
    3d Analog NTSC

    4. Image Processing for iMX6, through the A9 core; is in focus.

    + I intend to use the HW acceleration available
    + Including ARM's NEON instructions
    + Every other DSP capabilities (instructions) present that can be of service to #IAMCIty = )

    + DPS & acceleration used through GNU Octave or some sort of Native C "sane madness"

    Side note1: I do not intend to brute-force the DSP process with 1GHz ARM A9 Core.
    Side note2: Goal is for efficient use & which means Optimization & Actual HW use.
    Side-note3: Not just SW rolling on-top of some Hi-techy HW ;)

    + There's OpenCV as described in the AppNote, but that doesn't overlay with my Goals.

    Pleas find link below for the AppNote mentioned:

    IMO: Although If You look at the Freescale's Engineer Face - Perhaps that's not so straightforward solution :D Not a very smile face for an Engineer (generally) :P

    Will use the A9 MPU to run Linux & run the Main Image Processing + Data Communication + Security on some Level (TrustZone further explanation). Then the M4 MCU will handle the Sensitive as Speed, Latency & again Security Operations, including actuators related operations.

    For A9 there's TrustZone in place 100% , which is A very good thing ! :-)
    For M4 TrustZone must be verified & if at all applicable as ARM's M4 IP do has...

    Read more »

  • Draft V2 (pre-final) is coming this week

    Dimitar Tomov05/24/2015 at 20:22 0 comments

    Hello to everyone :-)

    Like I've said - I expected by end of the month to have Draft V2. And today I spent almost my whole Sunday clearing that DRAFT V2 paper.

    Surprise for You & Me - Is that I cleared out a lot of stuff, added a lot of info, including Technical Details & in the end I decided to go for a Presentation, which to be very very in-deep of my design ambitions of this "Secure IoT Idea".

    I'm expecting to finish that Presentation within several days. At best day or two, at worst by end of this week.

    My goal here is to clear out as much as possible specific Technical details (as I've already done with few) so I can start Designing the real thing. The actual #IAMCIty = ) prototype. I've started that process with the selection of the Development board/ main Hardware platform.

    So this is going to be the last "wishful thinking" full of words post before I upload some time this New week - Draft V2:
    (1) the Presentation with Technical details and very much cleared Principles of operation
    (2) Brief description update & Long description update on page
    (3) Very few, yet I believe good for a start - block schemas
    (4) Now #IAMCIty = ) has it's own Logo too ^_^ But more on that along with the Draft V2 (pre-final) release ... let's call it a release :D

    Talk to you soon & I hope 'upload Draft v2' very soon, for sure ASAP !

    Also I want to express again to the few showing their interest & everyone following, but not so obviously:
    Thank You for your interest, which is amazing - it's based on just Text/Concept expressed only with words. But that same Text/Concept is what's been driving me forward + my vision of this Idea & soon2be #2015HackadayPrize SUBMITTED PROJECT.

    Till then - be positive & GL = )
    Dimitar Tomov

  • Being busy - Soon/ASAP to update to Draft v2 + Images/Schemes

    Dimitar Tomov05/13/2015 at 04:29 0 comments

    To all interested people ( users & 3rd parties :D ) :
    * I'm extremely busy and trying to manage 2 prof. projects & 2 personal
    * 1 of which - this one ;-) & :-| because it's obvious that I'm not very able to do so
    * I'll try to up-date to Draft v2 ASAP (my guess within this month), incl.
    - some block schemes
    - some flow charts for SW/Code (Firmware to be exact)
    - some ideas (only few of which survived the day, because I've not written and now are forgotten ... until the time they come around in my thoughts again ;-) /*lets hope :D*/)
    * I'm seeing a lot of buzz on Cortex-M7 front & Cortex-A + FPGA front (Hybrids)
    - still not sure which will be the better way to go
    - I very much wanted a M7 dev. as strong RTOS option & some DSP capabilities
    - but Cortex-A + FPGA is very promising way to go too
    * Will see once I updated the Draft v2 and get You (whoever you are & all) up-to-speed
    + I clear the design further on paper (black&white) = )

    Thank You for Your time !
    Dimitar Tomov

View all 6 project logs

Enjoy this project?



frankstripod wrote 05/13/2015 at 05:45 point

Good to hear from you again! :)

  Are you sure? yes | no

Dimitar Tomov wrote 05/13/2015 at 10:50 point

Sure, man! And I'm happy You are still following me & my project / interested in / regardless of the inactivity for the past month and a hafl :| Thank You ;) :-) bb

  Are you sure? yes | no

frankstripod wrote 03/12/2015 at 17:25 point

I can't wait to see what you come up with here. I used to work for a company that made control units for traffic lights, and most of the details I cannot share :( They did use parts with military specs for crazy operating temperatures like -100F (-73C) to +150F (65C). Also I notice you don't have the "HACKADAYPRIZE" tag on your project. You may want to add that, unless you have and I'm not seeing it here.

  Are you sure? yes | no

Dimitar Tomov wrote 03/12/2015 at 20:17 point

1st thing 1st Thank You very much for the first ever response :D
2nd about the TAG that is very odd !!! I make sure I added it :? hmm will check it right away.
Mil spec grade is too far for the system I'm building perhaps Medical
or Higher Industrial is what I will need, cause trust me I have
experience with the last one and it is expensive enough :D I also know
some prices of such components I've used in my projects/on work , etc.
and I had one Instrumental Op-amp from AD for 21$/1pcs and that was just
the INDUSTRIAL GRADE, the MIL grade was like X 10 :D I need to bring
proof of concept first, then very very very close to reality PROTOTYPE
from WHICH then PEOPLE or ME w/ the People :D will bring that PROTOTYPE
to its NEXT and FINAL step before RELEASING / CREATING AN ACTUAL product
:D sry for caps, but I underline in this way words ;) :) I'm used to
it, most people are not :D Of course I don't think about it most of the
time , which is not right of course ;) Understanding must come at the
efforts of both sides, but IF it's bad for reading, clear and
understandable text I will restrain myself from using this .... approach
? :-)

Again thank you very much ! not just for being the first
ever to comment , but to being actually informative in a way :) I have
not mention about QUALITY GRADE of the parts that will be used, but it
is A VERY GOOD point to me / for me to note that into next revision of
the DRAFT - I suppose there are going to be at least 2 more Draft
versions before getting to a final Specification :) But will get there
as fast as I can so I can actually BUILD and take support, ideas,
critics from everyone who is willing to spare time for my project, which
I'm sure i will not be the only one in that ... field/area :)

I started to write the draft of course from my tech. point of view but
very quickly get into the policies, safety/security and privacy of
personal life :) So I think it's not the best start , but it's the
better one than TECH instaed of MORAL/Human-like :) It is very important
to make clear that I'm serious about project with only 1 specific tech
fact in it , but it is exactly this that makes it so serious - I'm
taking great time ,investing a lot of my resources to make research how
to build the system in terms of operations, modes of operating , etc. so
it can be actually used one day , employed OR used as basis to dev a
new or related version !! :- ))) Talk to you soon I hope = ) bb

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates